1 # 2 # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 default: all 27 28 include $(SPEC) 29 include MakeBase.gmk 30 include JavaCompilation.gmk 31 include NativeCompilation.gmk 32 33 # Setup the java compilers for the JDK build. 34 include Setup.gmk 35 36 # Append demo goals to this variable. 37 BUILD_DEMOS= 38 39 # The demo structure and contents should really be cleaned up. 40 # Now every other demo has its own quirks where to put the 41 # READMEs and other files. 42 43 ################################################################################################## 44 45 define SetupAppletDemo 46 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_APPLET_$1,\ 47 SETUP:=GENERATE_USINGJDKBYTECODE$2,\ 48 SRC:=$(JDK_TOPDIR)/src/$3share/demo/applets/$1,\ 49 BIN:=$(JDK_OUTPUTDIR)/newdemo/applets/$1,\ 50 COPY:=.html .java .xyz .obj .au .gif)) 51 BUILD_DEMOS += $$(BUILD_DEMO_APPLET_$1) 52 endef 53 54 $(eval $(call SetupAppletDemo,ArcTest)) 55 $(eval $(call SetupAppletDemo,BarChart)) 56 $(eval $(call SetupAppletDemo,Blink)) 57 $(eval $(call SetupAppletDemo,CardTest)) 58 $(eval $(call SetupAppletDemo,Clock)) 59 $(eval $(call SetupAppletDemo,DitherTest)) 60 $(eval $(call SetupAppletDemo,DrawTest)) 61 $(eval $(call SetupAppletDemo,Fractal)) 62 $(eval $(call SetupAppletDemo,GraphicsTest)) 63 $(eval $(call SetupAppletDemo,MoleculeViewer)) 64 $(eval $(call SetupAppletDemo,NervousText)) 65 $(eval $(call SetupAppletDemo,SimpleGraph)) 66 $(eval $(call SetupAppletDemo,SortDemo)) 67 $(eval $(call SetupAppletDemo,SpreadSheet)) 68 # Build WireFrame without a server since it 69 # has a class Matrix3D that also exists in MoleculeViewer. 70 $(eval $(call SetupAppletDemo,WireFrame,_NOSERV)) 71 72 ifndef OPENJDK 73 $(eval $(call SetupAppletDemo,Animator,,closed/)) 74 $(eval $(call SetupAppletDemo,GraphLayout,_NOSERV,closed/)) 75 $(eval $(call SetupAppletDemo,JumpingBox,,closed/)) 76 $(eval $(call SetupAppletDemo,TicTacToe,,closed/)) 77 endif 78 79 ################################################################################################## 80 81 PATTERNS_TO_COPY=.html .txt .properties .js .gif .jpg .theme .data .opt README .c .h .png .ttf 82 83 define SetupDemo 84 # Param 1 = Name of the demo 85 # Param 2 = Subdirectory of the demo below the demo directory. 86 # Param 3 = Additional javac flags. 87 # Param 4 = The main class for the jar. 88 # Param 5 = Additional source directory. 89 # Param 6 = Extra dir below $(JDK_TOPDIR)/src (closed) 90 # Param 7 = List of files to copy 91 # Param 8 = Base name of jar file. Defaults to $1 92 # Param 9 = Exclude list 93 # Param 10 = Extra copy patterns 94 # Param 11 = Extra manifest attribute 95 # Param 12 = Suffix for compiler setup name 96 97 # In some demos the source is found in a subdir called src. 98 $1_MAIN_SRC:=$$(wildcard $(JDK_TOPDIR)/src/$6share/demo/$2/$1/src) 99 ifeq ($$($1_MAIN_SRC),) 100 $1_MAIN_SRC:=$(JDK_TOPDIR)/src/$6share/demo/$2/$1 101 endif 102 103 ifneq ($8,) 104 $1_JARFILE := $8.jar 105 else 106 $1_JARFILE := $1.jar 107 endif 108 109 # Compile java classes if there are any. 110 $1_JAVA_FILES_EXIST := $$(shell $$(FIND) $$($1_MAIN_SRC) -name "*.java") 111 112 ifneq ($$($1_JAVA_FILES_EXIST),) 113 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_$1,\ 114 SETUP:=GENERATE_USINGJDKBYTECODE$(12),\ 115 ADD_JAVAC_FLAGS:=$3,\ 116 SRC:=$$($1_MAIN_SRC) $5,\ 117 BIN:=$(JDK_OUTPUTDIR)/newdemoclasses/$2/$1,\ 118 COPY:=$(PATTERNS_TO_COPY) $(10),\ 119 JAR:=$(JDK_OUTPUTDIR)/newdemo/$2/$1/$$($1_JARFILE),\ 120 JARMAIN:=$4,\ 121 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf,\ 122 EXTRA_MANIFEST_ATTR:=$(11),\ 123 SRCZIP:=$(JDK_OUTPUTDIR)/newdemo/$2/$1/src.zip,\ 124 EXCLUDE_FILES:=$9)) 125 126 BUILD_DEMOS += $$(BUILD_DEMO_$1) \ 127 $(JDK_OUTPUTDIR)/newdemo/$2/$1/$$($1_JARFILE) \ 128 $(JDK_OUTPUTDIR)/newdemo/$2/$1/src.zip 129 endif 130 131 # Copy files. 132 $1_COPY_TARGETS := $$(patsubst $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%,\ 133 $(JDK_OUTPUTDIR)/newdemo/$2/$1/%,\ 134 $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/$6share/demo/$2/$1/,$7))) 135 ifneq ($7,) 136 $(JDK_OUTPUTDIR)/newdemo/$2/$1/% : $(JDK_TOPDIR)/src/$6share/demo/$2/$1/% 137 $(MKDIR) -p $$(@D) 138 $(CP) $$< $$@ 139 $(CHMOD) -f ug+w $$@ 140 141 BUILD_DEMOS += $$($1_COPY_TARGETS) 142 endif 143 144 endef 145 146 $(eval $(call SetupDemo,CodePointIM,jfc,,CodePointIM,,,*.html)) 147 $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/_the.services : \ 148 $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/CodePointIM.jar \ 149 $(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor 150 (cd $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM && \ 151 $(MKDIR) -p _the.tmp/META-INF/services && \ 152 $(CP) $(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor _the.tmp/META-INF/services && \ 153 cd _the.tmp && \ 154 $(JAR) uf $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/CodePointIM.jar META-INF/services/java.awt.im.spi.InputMethodDescriptor && \ 155 cd META-INF/services && \ 156 $(JAR) uf $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/CodePointIM.jar java.awt.im.spi.InputMethodDescriptor) 157 $(RM) -r $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/_the.tmp 158 $(TOUCH) $@ 159 160 BUILD_DEMOS+=$(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/_the.services 161 162 $(eval $(call SetupDemo,FileChooserDemo,jfc,,FileChooserDemo,,,README*)) 163 $(eval $(call SetupDemo,Font2DTest,jfc,,Font2DTest,,,*.html *.txt)) 164 $(eval $(call SetupDemo,Metalworks,jfc,,Metalworks,,,README*)) 165 $(eval $(call SetupDemo,Notepad,jfc,,Notepad,,,README*)) 166 $(eval $(call SetupDemo,SampleTree,jfc,,SampleTree,,,README*)) 167 $(eval $(call SetupDemo,SwingApplet,jfc,,SwingApplet,,,README* *.html)) 168 $(eval $(call SetupDemo,TableExample,jfc,,TableExample,,,README*)) 169 $(eval $(call SetupDemo,TransparentRuler,jfc,,transparentruler.Ruler,,,README*)) 170 $(eval $(call SetupDemo,jconsole-plugin,scripting,-cp $(JDK_OUTPUTDIR)/lib/jconsole.jar,,,,*.xml *.txt,,,,Main-Class: \n)) 171 $(eval $(call SetupDemo,FullThreadDump,management,,FullThreadDump,,,README*)) 172 $(eval $(call SetupDemo,JTop,management,-cp $(JDK_OUTPUTDIR)/lib/jconsole.jar,JTop,,,README*)) 173 $(eval $(call SetupDemo,MemoryMonitor,management,,MemoryMonitor,,,README*)) 174 $(eval $(call SetupDemo,VerboseGC,management,,VerboseGC,,,README*)) 175 $(eval $(call SetupDemo,zipfs,nio,,,,,README* *.java,,,,Main-Class: \n)) 176 177 ifndef OPENJDK 178 $(eval $(call SetupDemo,Laffy,jfc,,,,closed/,*)) 179 $(eval $(call SetupDemo,SwingSet3,jfc,,,,closed/,*)) 180 181 $(eval $(call SetupDemo,Java2D,jfc,,java2d.Java2Demo,,closed/,*.html README*,Java2Demo)) 182 $(eval $(call SetupDemo,Stylepad,jfc,,Stylepad,\ 183 $(JDK_TOPDIR)/src/share/demo/jfc/Notepad,closed/,*.txt,,$(JDK_TOPDIR)/src/share/demo/jfc/Notepad/README.txt)) 184 $(eval $(call SetupDemo,SwingSet2,jfc,,SwingSet2,,closed/,README* *.html,,,.java COPYRIGHT,\ 185 SplashScreen-Image: resources/images/splash.png,_NOSERV)) 186 187 BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%,\ 188 $(JDK_OUTPUTDIR)/newdemo/nbproject/%,\ 189 $(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/demo/nbproject/ -type f)) 190 $(JDK_OUTPUTDIR)/newdemo/nbproject/% : $(JDK_TOPDIR)/src/closed/share/demo/nbproject/% 191 $(MKDIR) -p $(@D) 192 $(CP) $< $@ 193 $(CHMOD) -f ug+w $@ 194 endif 195 196 ################################################################################################## 197 198 # Why do we install a demo jar into the main jre/lib/ext???????????????? 199 $(JDK_OUTPUTDIR)/lib/ext/zipfs.jar : $(JDK_OUTPUTDIR)/newdemo/nio/zipfs/zipfs.jar 200 $(MKDIR) -p $(@D) 201 $(CP) $< $@ 202 203 BUILD_DEMOS += $(JDK_OUTPUTDIR)/lib/ext/zipfs.jar 204 205 ################################################################################################## 206 207 # In the old makefiles, j2dbench was not compiled. 208 #$(eval $(call SetupDemo,J2DBench,java2d,/src,,j2dbench/J2DBench)) 209 210 define SetupJVMTIDemo 211 # Param 1 = Name of the demo 212 # Param 2 = add these directories to the includes, default is agent_util 213 # Param 3 = extra CFLAGS 214 # Param 4 = C or C++ (defaults to C) 215 # Param 5 = libs for posix 216 # Param 6 = libs for winapi 217 # Param 7 = libs for solaris 218 BUILD_DEMO_JVMTI_$1_EXTRA_SRC:= $$(wildcard $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/demo/jvmti/$1) \ 219 $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/,$2)) 220 BUILD_DEMO_JVMTI_$1_EXTRA_INC:=$$(addprefix -I,$$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC)) 221 BUILD_DEMO_JVMTI_$1_LANG:=C 222 BUILD_DEMO_JVMTI_$1_O_FLAG:=$(C_O_FLAG_NORM) 223 ifneq (,$4) 224 BUILD_DEMO_JVMTI_$1_LANG:=$4 225 endif 226 ifeq (C++,$4) 227 $1_EXTRA_CXX:=$(LIBCXX) 228 BUILD_DEMO_JVMTI_$1_O_FLAG:=$(CXX_O_FLAG_NORM) 229 endif 230 $$(eval $$(call SetupNativeCompilation,BUILD_DEMO_JVMTI_$1,\ 231 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC),\ 232 LANG:=$$(BUILD_DEMO_JVMTI_$1_LANG),\ 233 CFLAGS:=$(CFLAGS_JDKLIB) $$(BUILD_DEMO_JVMTI_$1_O_FLAG) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3,\ 234 CXXFLAGS:=$(CXXFLAGS_JDKLIB) $$(BUILD_DEMO_JVMTI_$1_O_FLAG) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3,\ 235 LDFLAGS:=$(LDFLAGS_JDKLIB),\ 236 LDFLAGS_SUFFIX:=$$($1_EXTRA_CXX),\ 237 LDFLAGS_SUFFIX_posix:=$5,\ 238 LDFLAGS_SUFFIX_winapi:=$6,\ 239 LDFLAGS_SUFFIX_solaris:=-lc $7,\ 240 BIN:=$(JDK_OUTPUTDIR)/newdemoobjs/jvmti/$1,\ 241 LIB:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/lib/$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX))) 242 243 $$(eval $$(call SetupZipArchive,BUILD_DEMO_JVMTI_SRC_$1,\ 244 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC),\ 245 ZIP:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/src.zip)) 246 247 $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/README.txt : $(JDK_TOPDIR)/src/share/demo/jvmti/$1/README.txt 248 $(MKDIR) -p $$(@D) 249 $(CP) $$< $$@ 250 $(CHMOD) -f ug+w $$@ 251 252 ifneq (,$$(wildcard $(JDK_TOPDIR)/src/share/demo/jvmti/$1/*.java)) 253 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_JVMTI_$1_JAVA,\ 254 SETUP:=GENERATE_USINGJDKBYTECODE,\ 255 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1,\ 256 BIN:=$(JDK_OUTPUTDIR)/newdemoclasses/jvmti/$1,\ 257 COPY:=$(PATTERNS_TO_COPY),\ 258 JAR:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/$1.jar,\ 259 EXTRA_MANIFEST_ATTR:=Main-Class: \n,\ 260 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf)) 261 262 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/$1.jar 263 endif 264 265 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/lib/$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX) \ 266 $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/src.zip \ 267 $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/README.txt 268 endef 269 270 $(eval $(call SetupJVMTIDemo,compiledMethodLoad, agent_util)) 271 $(eval $(call SetupJVMTIDemo,gctest, agent_util)) 272 $(eval $(call SetupJVMTIDemo,heapTracker, agent_util java_crw_demo)) 273 $(eval $(call SetupJVMTIDemo,heapViewer, agent_util)) 274 # hprof contains error messages using __FILE__ macro. These expand to the absolute path 275 # in the new build system and relative in the old, causing the binaries to differ. 276 $(eval $(call SetupJVMTIDemo,hprof, java_crw_demo,\ 277 -I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/npt,C,\ 278 -ldl,ws2_32.lib winmm.lib,-lsocket -lnsl)) 279 280 $(eval $(call SetupJVMTIDemo,minst, agent_util java_crw_demo)) 281 $(eval $(call SetupJVMTIDemo,mtrace, agent_util java_crw_demo)) 282 $(eval $(call SetupJVMTIDemo,waiters, agent_util,,C++)) 283 $(eval $(call SetupJVMTIDemo,versionCheck, agent_util)) 284 285 ################################################################################################## 286 287 # The jpda demo (com/sun/tools/example) is oddly enough stored in src/share/classes. 288 # At least, we do not need to compile the jpda demo, just jar/zip up the sources. 289 JPDA_SOURCES:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example -type f) 290 # The number of files are few enough so that we can use echo safely below to list them. 291 JPDA_FILES:=$(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES)) 292 293 $(JDK_OUTPUTDIR)/newdemo/jpda/src.zip : $(JPDA_SOURCES) 294 $(MKDIR) -p $(@D) 295 (cd $(JDK_TOPDIR)/src/share/classes && $(ZIP) -qru $@ com -i "com/sun/tools/example/*") 296 297 $(JDK_OUTPUTDIR)/newdemo/jpda/examples.jar : $(JPDA_SOURCES) 298 $(MKDIR) -p $(@D) 299 $(RM) $(@D)/_the.sources 300 $(call ListPathsSafely,JPDA_FILES,\n, >> $(@D)/_the.sources) 301 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ 302 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $(JDK_TOPDIR)/make/tools/manifest.mf > $(@D)/_the.manifest 303 $(ECHO) "Main-Class: " >> $(@D)/_the.manifest 304 (cd $(JDK_TOPDIR)/src/share/classes && $(JAR) cfm $@ $(@D)/_the.manifest @$(@D)/_the.sources) 305 (cd $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example && $(JAR) uf $@ README) 306 307 $(JDK_OUTPUTDIR)/newdemo/jpda/com/sun/tools/example/README : $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example/README 308 $(MKDIR) -p $(@D) 309 $(CP) $< $@ 310 $(CHMOD) -f ug+w $@ 311 312 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jpda/src.zip $(JDK_OUTPUTDIR)/newdemo/jpda/examples.jar \ 313 $(JDK_OUTPUTDIR)/newdemo/jpda/com/sun/tools/example/README 314 315 ################################################################################################## 316 317 $(JDK_OUTPUTDIR)/newdemo/management/index.html : $(JDK_TOPDIR)/src/share/demo/management/index.html 318 $(MKDIR) -p $(@D) 319 $(CP) $< $@ 320 $(CHMOD) -f ug+w $@ 321 322 $(JDK_OUTPUTDIR)/newdemo/jvmti/index.html : $(JDK_TOPDIR)/src/share/demo/jvmti/index.html 323 $(MKDIR) -p $(@D) 324 $(CP) $< $@ 325 $(CHMOD) -f ug+w $@ 326 327 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/management/index.html \ 328 $(JDK_OUTPUTDIR)/newdemo/jvmti/index.html 329 330 ################################################################################################## 331 332 # The netbeans project files are copied into the demo directory. 333 BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/share/demo/nbproject/%,\ 334 $(JDK_OUTPUTDIR)/newdemo/nbproject/%,\ 335 $(shell $(FIND) $(JDK_TOPDIR)/src/share/demo/nbproject/ -type f)) 336 337 $(JDK_OUTPUTDIR)/newdemo/nbproject/% : $(JDK_TOPDIR)/src/share/demo/nbproject/% 338 $(MKDIR) -p $(@D) 339 $(CP) $< $@ 340 $(CHMOD) -f ug+w $@ 341 342 ################################################################################################## 343 344 $(JDK_OUTPUTDIR)/newdemo/README: $(JDK_TOPDIR)/src/share/demo/README 345 $(MKDIR) -p $(@D) 346 $(CP) $< $@ 347 348 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/README 349 350 ################################################################################################## 351 352 ifeq ($(PLATFORM), solaris) 353 354 $(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller/% : $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/% 355 $(MKDIR) -p $(@D) 356 $(CP) $< $@ 357 $(CHMOD) -f ug+w $@ 358 359 $(JDK_OUTPUTDIR)/newdemo/jni/Poller/README.txt : $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/README.txt 360 $(MKDIR) -p $(@D) 361 $(CP) $< $@ 362 $(CHMOD) -f ug+w $@ 363 364 $(JDK_OUTPUTDIR)/newdemo/jni/Poller/Poller.jar : \ 365 $(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller/README.txt $(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller/Poller.c 366 367 $(eval $(call SetupJavaCompilation,BUILD_DEMO_POLLER_JAR,\ 368 SETUP:=GENERATE_USINGJDKBYTECODE, \ 369 SRC:=$(JDK_TOPDIR)/src/solaris/demo/jni/Poller, \ 370 BIN:=$(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller, \ 371 HEADERS:=$(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller, \ 372 JAR:=$(JDK_OUTPUTDIR)/newdemo/jni/Poller/Poller.jar, \ 373 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf, \ 374 SRCZIP:=$(JDK_OUTPUTDIR)/newdemo/jni/Poller/src.zip, \ 375 COPY := README.txt Poller.c, \ 376 JARMAIN := Client)) 377 378 379 380 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jni/Poller/Poller.jar $(JDK_OUTPUTDIR)/newdemo/jni/Poller/src.zip \ 381 $(JDK_OUTPUTDIR)/newdemo/jni/Poller/README.txt 382 383 $(eval $(call SetupNativeCompilation,BUILD_LIBPOLLER,\ 384 SRC:=$(JDK_TOPDIR)/src/solaris/demo/jni/Poller, \ 385 LANG := C, \ 386 CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \ 387 -I$(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller, \ 388 LDFLAGS:=$(LDFLAGS_JDKLIB), \ 389 BIN:=$(JDK_OUTPUTDIR)/newdemoobjs/jni/Poller,\ 390 LIB:=$(JDK_OUTPUTDIR)/newdemoobjs/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX))) 391 392 # 393 # We can only compile native code after jar has been build (since we depend on generated .h files) 394 # 395 $(JDK_OUTPUTDIR)/newdemoobjs/jni/Poller/Poller.o : $(JDK_OUTPUTDIR)/newdemo/jni/Poller/Poller.jar 396 397 $(JDK_OUTPUTDIR)/newdemo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX) : \ 398 $(JDK_OUTPUTDIR)/newdemoobjs/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX) 399 $(MKDIR) -p $(@D) 400 $(CP) $< $@ 401 402 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX) 403 404 endif 405 406 ################################################################################################## 407 408 ifndef OPENJDK 409 DB_DEMO_ZIPFILE := $(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/db -name "*demo*.zip") 410 411 $(JDK_OUTPUTDIR)/newdemo/_the.db.unzipped: $(DB_DEMO_ZIPFILE) 412 $(MKDIR) -p $(@D) 413 $(RM) -rf $(JDK_OUTPUTDIR)/newdemo/db $(JDK_OUTPUTDIR)/newdemo/demo 414 $(CD) $(JDK_OUTPUTDIR)/newdemo && $(UNZIP) -o $< 415 $(MV) $(JDK_OUTPUTDIR)/newdemo/demo $(JDK_OUTPUTDIR)/newdemo/db 416 $(TOUCH) $@ 417 418 # Copy this after the unzip above to avoid race with directory creation and mv command. 419 $(JDK_OUTPUTDIR)/newdemo/db/README-JDK-DEMOS.html: \ 420 $(JDK_TOPDIR)/src/closed/share/db/README-JDK-DEMOS.html \ 421 | $(JDK_OUTPUTDIR)/newdemo/_the.db.unzipped 422 $(MKDIR) -p $(@D) 423 $(CP) '$<' '$@' 424 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/_the.db.unzipped $(JDK_OUTPUTDIR)/newdemo/db/README-JDK-DEMOS.html 425 endif 426 427 ################################################################################################## 428 429 all: $(BUILD_DEMOS) 430 431 .PHONY: all