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_OPENJDK_TARGET_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 231 $1_CXXFLAGS:=$(CXXFLAGS_JDKLIB) $$(BUILD_DEMO_JVMTI_$1_O_FLAG) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3 232 ifeq ($1-$(OPENJDK_TARGET_CPU_ARCH),waiters-sparc) 233 $1_FILTER:=-xregs=no%appl 234 $1_CXXFLAGS:=$$(filter-out $$($1_FILTER),$$($1_CXXFLAGS)) 235 endif 236 237 $$(eval $$(call SetupNativeCompilation,BUILD_DEMO_JVMTI_$1,\ 238 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC),\ 239 LANG:=$$(BUILD_DEMO_JVMTI_$1_LANG),\ 240 CFLAGS:=$(CFLAGS_JDKLIB) $$(BUILD_DEMO_JVMTI_$1_O_FLAG) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3,\ 241 CXXFLAGS:=$$($1_CXXFLAGS),\ 242 LDFLAGS:=$(LDFLAGS_JDKLIB),\ 243 LDFLAGS_SUFFIX:=$$($1_EXTRA_CXX),\ 244 LDFLAGS_SUFFIX_posix:=$5,\ 245 LDFLAGS_SUFFIX_winapi:=$6,\ 246 LDFLAGS_SUFFIX_solaris:=-lc $7,\ 247 OBJECT_DIR:=$(JDK_OUTPUTDIR)/newdemoobjs/jvmti/$1,\ 248 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/lib,\ 249 LIBRARY:=$1)) 250 251 $$(eval $$(call SetupZipArchive,BUILD_DEMO_JVMTI_SRC_$1,\ 252 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC),\ 253 ZIP:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/src.zip)) 254 255 $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/README.txt : $(JDK_TOPDIR)/src/share/demo/jvmti/$1/README.txt 256 $(MKDIR) -p $$(@D) 257 $(CP) $$< $$@ 258 $(CHMOD) -f ug+w $$@ 259 260 ifneq (,$$(wildcard $(JDK_TOPDIR)/src/share/demo/jvmti/$1/*.java)) 261 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_JVMTI_$1_JAVA,\ 262 SETUP:=GENERATE_USINGJDKBYTECODE,\ 263 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1,\ 264 BIN:=$(JDK_OUTPUTDIR)/newdemoclasses/jvmti/$1,\ 265 COPY:=$(PATTERNS_TO_COPY),\ 266 JAR:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/$1.jar,\ 267 EXTRA_MANIFEST_ATTR:=Main-Class: \n,\ 268 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf)) 269 270 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/$1.jar 271 endif 272 273 BUILD_DEMOS += $$(BUILD_DEMO_JVMTI_$1) \ 274 $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/src.zip \ 275 $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/README.txt 276 endef 277 278 $(eval $(call SetupJVMTIDemo,compiledMethodLoad, agent_util)) 279 $(eval $(call SetupJVMTIDemo,gctest, agent_util)) 280 $(eval $(call SetupJVMTIDemo,heapTracker, agent_util java_crw_demo)) 281 $(eval $(call SetupJVMTIDemo,heapViewer, agent_util)) 282 # hprof contains error messages using __FILE__ macro. These expand to the absolute path 283 # in the new build system and relative in the old, causing the binaries to differ. 284 $(eval $(call SetupJVMTIDemo,hprof, java_crw_demo,\ 285 -I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/npt,C,\ 286 -ldl,ws2_32.lib winmm.lib,-lsocket -lnsl)) 287 288 $(eval $(call SetupJVMTIDemo,minst, agent_util java_crw_demo)) 289 $(eval $(call SetupJVMTIDemo,mtrace, agent_util java_crw_demo)) 290 $(eval $(call SetupJVMTIDemo,waiters, agent_util,,C++)) 291 $(eval $(call SetupJVMTIDemo,versionCheck, agent_util)) 292 293 ################################################################################################## 294 295 # The jpda demo (com/sun/tools/example) is oddly enough stored in src/share/classes. 296 # At least, we do not need to compile the jpda demo, just jar/zip up the sources. 297 JPDA_SOURCES:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example -type f) 298 # The number of files are few enough so that we can use echo safely below to list them. 299 JPDA_FILES:=$(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES)) 300 301 $(JDK_OUTPUTDIR)/newdemo/jpda/src.zip : $(JPDA_SOURCES) 302 $(MKDIR) -p $(@D) 303 (cd $(JDK_TOPDIR)/src/share/classes && $(ZIP) -qru $@ com -i "com/sun/tools/example/*") 304 305 $(JDK_OUTPUTDIR)/newdemo/jpda/examples.jar : $(JPDA_SOURCES) 306 $(MKDIR) -p $(@D) 307 $(RM) $(@D)/_the.sources 308 $(call ListPathsSafely,JPDA_FILES,\n, >> $(@D)/_the.sources) 309 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ 310 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $(JDK_TOPDIR)/make/tools/manifest.mf > $(@D)/_the.manifest 311 $(ECHO) "Main-Class: " >> $(@D)/_the.manifest 312 (cd $(JDK_TOPDIR)/src/share/classes && $(JAR) cfm $@ $(@D)/_the.manifest @$(@D)/_the.sources) 313 (cd $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example && $(JAR) uf $@ README) 314 315 $(JDK_OUTPUTDIR)/newdemo/jpda/com/sun/tools/example/README : $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example/README 316 $(MKDIR) -p $(@D) 317 $(CP) $< $@ 318 $(CHMOD) -f ug+w $@ 319 320 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jpda/src.zip $(JDK_OUTPUTDIR)/newdemo/jpda/examples.jar \ 321 $(JDK_OUTPUTDIR)/newdemo/jpda/com/sun/tools/example/README 322 323 ################################################################################################## 324 325 $(JDK_OUTPUTDIR)/newdemo/management/index.html : $(JDK_TOPDIR)/src/share/demo/management/index.html 326 $(MKDIR) -p $(@D) 327 $(CP) $< $@ 328 $(CHMOD) -f ug+w $@ 329 330 $(JDK_OUTPUTDIR)/newdemo/jvmti/index.html : $(JDK_TOPDIR)/src/share/demo/jvmti/index.html 331 $(MKDIR) -p $(@D) 332 $(CP) $< $@ 333 $(CHMOD) -f ug+w $@ 334 335 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/management/index.html \ 336 $(JDK_OUTPUTDIR)/newdemo/jvmti/index.html 337 338 ################################################################################################## 339 340 # The netbeans project files are copied into the demo directory. 341 BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/share/demo/nbproject/%,\ 342 $(JDK_OUTPUTDIR)/newdemo/nbproject/%,\ 343 $(shell $(FIND) $(JDK_TOPDIR)/src/share/demo/nbproject/ -type f)) 344 345 $(JDK_OUTPUTDIR)/newdemo/nbproject/% : $(JDK_TOPDIR)/src/share/demo/nbproject/% 346 $(MKDIR) -p $(@D) 347 $(CP) $< $@ 348 $(CHMOD) -f ug+w $@ 349 350 ################################################################################################## 351 352 $(JDK_OUTPUTDIR)/newdemo/README: $(JDK_TOPDIR)/src/share/demo/README 353 $(MKDIR) -p $(@D) 354 $(CP) $< $@ 355 356 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/README 357 358 ################################################################################################## 359 360 ifeq ($(OPENJDK_TARGET_OS), solaris) 361 362 $(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller/% : $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/% 363 $(MKDIR) -p $(@D) 364 $(CP) $< $@ 365 $(CHMOD) -f ug+w $@ 366 367 $(JDK_OUTPUTDIR)/newdemo/jni/Poller/README.txt : $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/README.txt 368 $(MKDIR) -p $(@D) 369 $(CP) $< $@ 370 $(CHMOD) -f ug+w $@ 371 372 $(JDK_OUTPUTDIR)/newdemo/jni/Poller/Poller.jar : \ 373 $(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller/README.txt $(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller/Poller.c 374 375 $(eval $(call SetupJavaCompilation,BUILD_DEMO_POLLER_JAR,\ 376 SETUP:=GENERATE_USINGJDKBYTECODE, \ 377 SRC:=$(JDK_TOPDIR)/src/solaris/demo/jni/Poller, \ 378 BIN:=$(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller, \ 379 HEADERS:=$(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller, \ 380 JAR:=$(JDK_OUTPUTDIR)/newdemo/jni/Poller/Poller.jar, \ 381 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf, \ 382 SRCZIP:=$(JDK_OUTPUTDIR)/newdemo/jni/Poller/src.zip, \ 383 COPY := README.txt Poller.c, \ 384 JARMAIN := Client)) 385 386 387 388 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jni/Poller/Poller.jar $(JDK_OUTPUTDIR)/newdemo/jni/Poller/src.zip \ 389 $(JDK_OUTPUTDIR)/newdemo/jni/Poller/README.txt 390 391 $(eval $(call SetupNativeCompilation,BUILD_LIBPOLLER,\ 392 SRC:=$(JDK_TOPDIR)/src/solaris/demo/jni/Poller, \ 393 LANG := C, \ 394 CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \ 395 -I$(JDK_OUTPUTDIR)/newdemoclasses/jni/Poller, \ 396 LDFLAGS:=$(LDFLAGS_JDKLIB), \ 397 OBJECT_DIR:=$(JDK_OUTPUTDIR)/newdemoobjs/jni/Poller,\ 398 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/newdemoobjs, \ 399 LIBRARY:=Poller)) 400 401 # 402 # We can only compile native code after jar has been build (since we depend on generated .h files) 403 # 404 $(JDK_OUTPUTDIR)/newdemoobjs/jni/Poller/Poller.o : $(JDK_OUTPUTDIR)/newdemo/jni/Poller/Poller.jar 405 406 $(JDK_OUTPUTDIR)/newdemo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX) : \ 407 $(JDK_OUTPUTDIR)/newdemoobjs/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX) 408 $(MKDIR) -p $(@D) 409 $(CP) $< $@ 410 411 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX) 412 413 endif 414 415 ################################################################################################## 416 417 ifndef OPENJDK 418 DB_DEMO_ZIPFILE := $(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/db -name "*demo*.zip") 419 420 $(JDK_OUTPUTDIR)/newdemo/_the.db.unzipped: $(DB_DEMO_ZIPFILE) 421 $(MKDIR) -p $(@D) 422 $(RM) -rf $(JDK_OUTPUTDIR)/newdemo/db $(JDK_OUTPUTDIR)/newdemo/demo 423 $(CD) $(JDK_OUTPUTDIR)/newdemo && $(UNZIP) -o $< 424 $(MV) $(JDK_OUTPUTDIR)/newdemo/demo $(JDK_OUTPUTDIR)/newdemo/db 425 $(TOUCH) $@ 426 427 # Copy this after the unzip above to avoid race with directory creation and mv command. 428 $(JDK_OUTPUTDIR)/newdemo/db/README-JDK-DEMOS.html: \ 429 $(JDK_TOPDIR)/src/closed/share/db/README-JDK-DEMOS.html \ 430 | $(JDK_OUTPUTDIR)/newdemo/_the.db.unzipped 431 $(MKDIR) -p $(@D) 432 $(CP) '$<' '$@' 433 BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/_the.db.unzipped $(JDK_OUTPUTDIR)/newdemo/db/README-JDK-DEMOS.html 434 endif 435 436 ################################################################################################## 437 438 all: $(BUILD_DEMOS) 439 440 .PHONY: all