119 COPY:=$(PATTERNS_TO_COPY) $(10),\
120 JAR:=$(JDK_OUTPUTDIR)/demo/$2/$1/$$($1_JARFILE),\
121 JARMAIN:=$4,\
122 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf,\
123 EXTRA_MANIFEST_ATTR:=$(11),\
124 SRCZIP:=$(JDK_OUTPUTDIR)/demo/$2/$1/src.zip,\
125 EXCLUDE_FILES:=$9,\
126 DISABLE_SJAVAC:=$(12)))
127
128 BUILD_DEMOS += $$(BUILD_DEMO_$1) \
129 $(JDK_OUTPUTDIR)/demo/$2/$1/$$($1_JARFILE) \
130 $(JDK_OUTPUTDIR)/demo/$2/$1/src.zip
131 endif
132
133 # Copy files.
134 $1_COPY_TARGETS := $$(patsubst $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%,\
135 $(JDK_OUTPUTDIR)/demo/$2/$1/%,\
136 $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/$6share/demo/$2/$1/,$7)))
137 ifneq ($7,)
138 $(JDK_OUTPUTDIR)/demo/$2/$1/% : $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%
139 $(MKDIR) -p $$(@D)
140 $(CP) $$< $$@
141 $(CHMOD) -f ug+w $$@
142
143 BUILD_DEMOS += $$($1_COPY_TARGETS)
144 endif
145
146 endef
147
148 $(eval $(call SetupDemo,CodePointIM,jfc,,CodePointIM,,,*.html))
149 $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/_the.services : \
150 $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/CodePointIM.jar \
151 $(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor
152 (cd $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM && \
153 $(MKDIR) -p _the.tmp/META-INF/services && \
154 $(CP) $(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor _the.tmp/META-INF/services && \
155 cd _the.tmp && \
156 $(JAR) uf $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/CodePointIM.jar META-INF/services/java.awt.im.spi.InputMethodDescriptor && \
157 cd META-INF/services && \
158 $(JAR) uf $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/CodePointIM.jar java.awt.im.spi.InputMethodDescriptor)
159 $(RM) -r $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/_the.tmp
160 $(TOUCH) $@
173 $(eval $(call SetupDemo,FullThreadDump,management,,FullThreadDump,,,README*))
174 $(eval $(call SetupDemo,JTop,management,,JTop,,,README*))
175 $(eval $(call SetupDemo,MemoryMonitor,management,,MemoryMonitor,,,README*))
176 $(eval $(call SetupDemo,VerboseGC,management,,VerboseGC,,,README*))
177 $(eval $(call SetupDemo,zipfs,nio,,,,,README* *.java,,,,Main-Class: \n))
178
179 ifndef OPENJDK
180 $(eval $(call SetupDemo,Laffy,jfc,,,,closed/,*))
181 $(eval $(call SetupDemo,SwingSet3,jfc,,,,closed/,*))
182
183 $(eval $(call SetupDemo,Java2D,jfc,,java2d.Java2Demo,,closed/,*.html README*,Java2Demo))
184 $(eval $(call SetupDemo,Stylepad,jfc,,Stylepad,\
185 $(JDK_TOPDIR)/src/share/demo/jfc/Notepad,closed/,*.txt,,$(JDK_TOPDIR)/src/share/demo/jfc/Notepad/README.txt))
186 $(eval $(call SetupDemo,SwingSet2,jfc,,SwingSet2,,closed/,README* *.html,,,.java COPYRIGHT,\
187 SplashScreen-Image: resources/images/splash.png,true))
188
189 BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%,\
190 $(JDK_OUTPUTDIR)/demo/nbproject/%,\
191 $(call CacheFind,$(JDK_TOPDIR)/src/closed/share/demo/nbproject))
192 $(JDK_OUTPUTDIR)/demo/nbproject/% : $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%
193 $(MKDIR) -p $(@D)
194 $(CP) $< $@
195 $(CHMOD) -f ug+w $@
196 endif
197
198 ##################################################################################################
199
200 # In the old makefiles, j2dbench was not compiled.
201 #$(eval $(call SetupDemo,J2DBench,java2d,/src,,j2dbench/J2DBench))
202
203 # JVMTI demos are a bit strange and share some files, but be careful the
204 # shared files are just the *.c and *.h files, not the README or sample
205 # makefiles. So we always exclude the README.txt and sample.makefile.txt
206 # from the extra sources.
207 define SetupJVMTIDemo
208 # Param 1 = Name of the demo
209 # Param 2 = add these directories to the includes, default is agent_util
210 # Param 3 = extra CFLAGS
211 # Param 4 = C or C++ (defaults to C)
212 # Param 5 = libs for posix
213 # Param 6 = libs for windows
214 # Param 7 = libs for solaris
251 LDFLAGS_SUFFIX:=$$($1_EXTRA_CXX),\
252 LDFLAGS_SUFFIX_posix:=$5,\
253 LDFLAGS_SUFFIX_windows:=$6,\
254 LDFLAGS_SUFFIX_solaris:=$7 -lc,\
255 LDFLAGS_SUFFIX_linux:=$8,\
256 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
257 RC_FLAGS:=$$(RC_FLAGS) \
258 -D "JDK_FNAME=$1.dll" \
259 -D "JDK_INTERNAL_NAME=$1" \
260 -D "JDK_FTYPE=0x2L",\
261 OBJECT_DIR:=$(JDK_OUTPUTDIR)/demoobjs/jvmti/$1,\
262 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/demo/jvmti/$1/lib,\
263 LIBRARY:=$1))
264
265 $$(eval $$(call SetupZipArchive,BUILD_DEMO_JVMTI_SRC_$1,\
266 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC),\
267 EXCLUDE_FILES:=$$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC_EXCLUDE), \
268 ZIP:=$(JDK_OUTPUTDIR)/demo/jvmti/$1/src.zip))
269
270 $(JDK_OUTPUTDIR)/demo/jvmti/$1/README.txt : $(JDK_TOPDIR)/src/share/demo/jvmti/$1/README.txt
271 $(MKDIR) -p $$(@D)
272 $(CP) $$< $$@
273 $(CHMOD) -f ug+w $$@
274
275 ifneq (,$$(wildcard $(JDK_TOPDIR)/src/share/demo/jvmti/$1/*.java))
276 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_JVMTI_$1_JAVA,\
277 SETUP:=GENERATE_USINGJDKBYTECODE,\
278 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1,\
279 BIN:=$(JDK_OUTPUTDIR)/democlasses/jvmti/$1,\
280 COPY:=$(PATTERNS_TO_COPY),\
281 JAR:=$(JDK_OUTPUTDIR)/demo/jvmti/$1/$1.jar,\
282 EXTRA_MANIFEST_ATTR:=Main-Class: \n,\
283 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf))
284
285 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jvmti/$1/$1.jar
286 endif
287
288 BUILD_DEMOS += $$(BUILD_DEMO_JVMTI_$1) \
289 $(JDK_OUTPUTDIR)/demo/jvmti/$1/src.zip \
290 $(JDK_OUTPUTDIR)/demo/jvmti/$1/README.txt
291
292 ifeq ($(OPENJDK_TARGET_OS),windows)
322 # At least, we do not need to compile the jpda demo, just jar/zip up the sources.
323 JPDA_SOURCES:=$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/tools/example)
324 # The number of files are few enough so that we can use echo safely below to list them.
325 JPDA_FILES:=$(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES))
326
327 $(JDK_OUTPUTDIR)/demo/jpda/src.zip : $(JPDA_SOURCES)
328 $(MKDIR) -p $(@D)
329 (cd $(JDK_TOPDIR)/src/share/classes && $(ZIP) -qru $@ com -i "com/sun/tools/example/*")
330
331 $(JDK_OUTPUTDIR)/demo/jpda/examples.jar : $(JPDA_SOURCES)
332 $(MKDIR) -p $(@D)
333 $(RM) $(@D)/_the.sources
334 $(call ListPathsSafely,JPDA_FILES,\n, >> $(@D)/_the.sources)
335 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
336 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $(JDK_TOPDIR)/make/tools/manifest.mf > $(@D)/_the.manifest
337 $(ECHO) "Main-Class: " >> $(@D)/_the.manifest
338 (cd $(JDK_TOPDIR)/src/share/classes && $(JAR) cfm $@ $(@D)/_the.manifest @$(@D)/_the.sources)
339 (cd $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example && $(JAR) uf $@ README)
340
341 $(JDK_OUTPUTDIR)/demo/jpda/com/sun/tools/example/README : $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example/README
342 $(MKDIR) -p $(@D)
343 $(CP) $< $@
344 $(CHMOD) -f ug+w $@
345
346 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jpda/src.zip $(JDK_OUTPUTDIR)/demo/jpda/examples.jar \
347 $(JDK_OUTPUTDIR)/demo/jpda/com/sun/tools/example/README
348
349 ##################################################################################################
350
351 $(JDK_OUTPUTDIR)/demo/management/index.html : $(JDK_TOPDIR)/src/share/demo/management/index.html
352 $(MKDIR) -p $(@D)
353 $(CP) $< $@
354 $(CHMOD) -f ug+w $@
355
356 $(JDK_OUTPUTDIR)/demo/jvmti/index.html : $(JDK_TOPDIR)/src/share/demo/jvmti/index.html
357 $(MKDIR) -p $(@D)
358 $(CP) $< $@
359 $(CHMOD) -f ug+w $@
360
361 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/management/index.html \
362 $(JDK_OUTPUTDIR)/demo/jvmti/index.html
363
364 ##################################################################################################
365
366 # The netbeans project files are copied into the demo directory.
367 BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/share/demo/nbproject/%,\
368 $(JDK_OUTPUTDIR)/demo/nbproject/%,\
369 $(call CacheFind,$(JDK_TOPDIR)/src/share/demo/nbproject))
370
371 $(JDK_OUTPUTDIR)/demo/nbproject/% : $(JDK_TOPDIR)/src/share/demo/nbproject/%
372 $(MKDIR) -p $(@D)
373 $(CP) $< $@
374 $(CHMOD) -f ug+w $@
375
376 ##################################################################################################
377
378 $(JDK_OUTPUTDIR)/demo/README: $(JDK_TOPDIR)/src/share/demo/README
379 $(MKDIR) -p $(@D)
380 $(CP) $< $@
381
382 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/README
383
384 ##################################################################################################
385
386 ifeq ($(OPENJDK_TARGET_OS), solaris)
387
388 $(JDK_OUTPUTDIR)/democlasses/jni/Poller/% : $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/%
389 $(MKDIR) -p $(@D)
390 $(CP) $< $@
391 $(CHMOD) -f ug+w $@
392
393 $(JDK_OUTPUTDIR)/demo/jni/Poller/README.txt : $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/README.txt
394 $(MKDIR) -p $(@D)
395 $(CP) $< $@
396 $(CHMOD) -f ug+w $@
397
398 $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar : \
399 $(JDK_OUTPUTDIR)/democlasses/jni/Poller/README.txt $(JDK_OUTPUTDIR)/democlasses/jni/Poller/Poller.c
400
401 $(eval $(call SetupJavaCompilation,BUILD_DEMO_POLLER_JAR,\
402 SETUP:=GENERATE_USINGJDKBYTECODE, \
403 SRC:=$(JDK_TOPDIR)/src/solaris/demo/jni/Poller, \
404 BIN:=$(JDK_OUTPUTDIR)/democlasses/jni/Poller, \
405 HEADERS:=$(JDK_OUTPUTDIR)/democlasses/jni/Poller, \
406 JAR:=$(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar, \
407 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf, \
408 SRCZIP:=$(JDK_OUTPUTDIR)/demo/jni/Poller/src.zip, \
409 COPY:=README.txt Poller.c, \
410 JARMAIN:=Client))
411
412
413
414 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar $(JDK_OUTPUTDIR)/demo/jni/Poller/src.zip \
415 $(JDK_OUTPUTDIR)/demo/jni/Poller/README.txt
416
417 $(eval $(call SetupNativeCompilation,BUILD_LIBPOLLER,\
418 SRC:=$(JDK_TOPDIR)/src/solaris/demo/jni/Poller, \
419 LANG:=C,\
420 OPTIMIZATION:=LOW,\
421 CFLAGS:=$(CFLAGS_JDKLIB) $(SHARED_LIBRARY_FLAGS) \
422 -I$(JDK_OUTPUTDIR)/democlasses/jni/Poller, \
423 LDFLAGS:=$(LDFLAGS_JDKLIB), \
424 LDFLAGS_SUFFIX_solaris:=-lc,\
425 OBJECT_DIR:=$(JDK_OUTPUTDIR)/demoobjs/jni/Poller,\
426 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/demoobjs, \
427 LIBRARY:=Poller))
428
429 #
430 # We can only compile native code after jar has been build (since we depend on generated .h files)
431 #
432 $(JDK_OUTPUTDIR)/demoobjs/jni/Poller/Poller.o : $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar
433
434 $(JDK_OUTPUTDIR)/demo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX) : \
435 $(JDK_OUTPUTDIR)/demoobjs/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX)
436 $(MKDIR) -p $(@D)
437 $(CP) $< $@
438
439 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX)
440
441 endif
442
443 ##################################################################################################
444
445 ifndef OPENJDK
446 DB_DEMO_ZIPFILE := $(wildcard $(JDK_TOPDIR)/src/closed/share/db/*demo*.zip)
447
448 $(JDK_OUTPUTDIR)/demo/_the.db.unzipped: $(DB_DEMO_ZIPFILE)
449 $(MKDIR) -p $(@D)
450 $(RM) -r $(JDK_OUTPUTDIR)/demo/db $(JDK_OUTPUTDIR)/demo/demo
451 $(CD) $(JDK_OUTPUTDIR)/demo && $(UNZIP) -q -o $<
452 $(MV) $(JDK_OUTPUTDIR)/demo/demo $(JDK_OUTPUTDIR)/demo/db
453 $(TOUCH) $@
454
455 # Copy this after the unzip above to avoid race with directory creation and mv command.
456 $(JDK_OUTPUTDIR)/demo/db/README-JDK-DEMOS.html: \
457 $(JDK_TOPDIR)/src/closed/share/db/README-JDK-DEMOS.html \
458 | $(JDK_OUTPUTDIR)/demo/_the.db.unzipped
459 $(MKDIR) -p $(@D)
460 $(CP) '$<' '$@'
461 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/_the.db.unzipped $(JDK_OUTPUTDIR)/demo/db/README-JDK-DEMOS.html
462 endif
463
464 ##################################################################################################
465
466 all: $(BUILD_DEMOS)
467
468 .PHONY: all
|
119 COPY:=$(PATTERNS_TO_COPY) $(10),\
120 JAR:=$(JDK_OUTPUTDIR)/demo/$2/$1/$$($1_JARFILE),\
121 JARMAIN:=$4,\
122 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf,\
123 EXTRA_MANIFEST_ATTR:=$(11),\
124 SRCZIP:=$(JDK_OUTPUTDIR)/demo/$2/$1/src.zip,\
125 EXCLUDE_FILES:=$9,\
126 DISABLE_SJAVAC:=$(12)))
127
128 BUILD_DEMOS += $$(BUILD_DEMO_$1) \
129 $(JDK_OUTPUTDIR)/demo/$2/$1/$$($1_JARFILE) \
130 $(JDK_OUTPUTDIR)/demo/$2/$1/src.zip
131 endif
132
133 # Copy files.
134 $1_COPY_TARGETS := $$(patsubst $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%,\
135 $(JDK_OUTPUTDIR)/demo/$2/$1/%,\
136 $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/$6share/demo/$2/$1/,$7)))
137 ifneq ($7,)
138 $(JDK_OUTPUTDIR)/demo/$2/$1/% : $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%
139 $$(call install-file)
140 $(CHMOD) -f ug+w $$@
141
142 BUILD_DEMOS += $$($1_COPY_TARGETS)
143 endif
144
145 endef
146
147 $(eval $(call SetupDemo,CodePointIM,jfc,,CodePointIM,,,*.html))
148 $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/_the.services : \
149 $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/CodePointIM.jar \
150 $(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor
151 (cd $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM && \
152 $(MKDIR) -p _the.tmp/META-INF/services && \
153 $(CP) $(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor _the.tmp/META-INF/services && \
154 cd _the.tmp && \
155 $(JAR) uf $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/CodePointIM.jar META-INF/services/java.awt.im.spi.InputMethodDescriptor && \
156 cd META-INF/services && \
157 $(JAR) uf $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/CodePointIM.jar java.awt.im.spi.InputMethodDescriptor)
158 $(RM) -r $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/_the.tmp
159 $(TOUCH) $@
172 $(eval $(call SetupDemo,FullThreadDump,management,,FullThreadDump,,,README*))
173 $(eval $(call SetupDemo,JTop,management,,JTop,,,README*))
174 $(eval $(call SetupDemo,MemoryMonitor,management,,MemoryMonitor,,,README*))
175 $(eval $(call SetupDemo,VerboseGC,management,,VerboseGC,,,README*))
176 $(eval $(call SetupDemo,zipfs,nio,,,,,README* *.java,,,,Main-Class: \n))
177
178 ifndef OPENJDK
179 $(eval $(call SetupDemo,Laffy,jfc,,,,closed/,*))
180 $(eval $(call SetupDemo,SwingSet3,jfc,,,,closed/,*))
181
182 $(eval $(call SetupDemo,Java2D,jfc,,java2d.Java2Demo,,closed/,*.html README*,Java2Demo))
183 $(eval $(call SetupDemo,Stylepad,jfc,,Stylepad,\
184 $(JDK_TOPDIR)/src/share/demo/jfc/Notepad,closed/,*.txt,,$(JDK_TOPDIR)/src/share/demo/jfc/Notepad/README.txt))
185 $(eval $(call SetupDemo,SwingSet2,jfc,,SwingSet2,,closed/,README* *.html,,,.java COPYRIGHT,\
186 SplashScreen-Image: resources/images/splash.png,true))
187
188 BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%,\
189 $(JDK_OUTPUTDIR)/demo/nbproject/%,\
190 $(call CacheFind,$(JDK_TOPDIR)/src/closed/share/demo/nbproject))
191 $(JDK_OUTPUTDIR)/demo/nbproject/% : $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%
192 $(call install-file)
193 $(CHMOD) -f ug+w $@
194 endif
195
196 ##################################################################################################
197
198 # In the old makefiles, j2dbench was not compiled.
199 #$(eval $(call SetupDemo,J2DBench,java2d,/src,,j2dbench/J2DBench))
200
201 # JVMTI demos are a bit strange and share some files, but be careful the
202 # shared files are just the *.c and *.h files, not the README or sample
203 # makefiles. So we always exclude the README.txt and sample.makefile.txt
204 # from the extra sources.
205 define SetupJVMTIDemo
206 # Param 1 = Name of the demo
207 # Param 2 = add these directories to the includes, default is agent_util
208 # Param 3 = extra CFLAGS
209 # Param 4 = C or C++ (defaults to C)
210 # Param 5 = libs for posix
211 # Param 6 = libs for windows
212 # Param 7 = libs for solaris
249 LDFLAGS_SUFFIX:=$$($1_EXTRA_CXX),\
250 LDFLAGS_SUFFIX_posix:=$5,\
251 LDFLAGS_SUFFIX_windows:=$6,\
252 LDFLAGS_SUFFIX_solaris:=$7 -lc,\
253 LDFLAGS_SUFFIX_linux:=$8,\
254 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
255 RC_FLAGS:=$$(RC_FLAGS) \
256 -D "JDK_FNAME=$1.dll" \
257 -D "JDK_INTERNAL_NAME=$1" \
258 -D "JDK_FTYPE=0x2L",\
259 OBJECT_DIR:=$(JDK_OUTPUTDIR)/demoobjs/jvmti/$1,\
260 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/demo/jvmti/$1/lib,\
261 LIBRARY:=$1))
262
263 $$(eval $$(call SetupZipArchive,BUILD_DEMO_JVMTI_SRC_$1,\
264 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC),\
265 EXCLUDE_FILES:=$$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC_EXCLUDE), \
266 ZIP:=$(JDK_OUTPUTDIR)/demo/jvmti/$1/src.zip))
267
268 $(JDK_OUTPUTDIR)/demo/jvmti/$1/README.txt : $(JDK_TOPDIR)/src/share/demo/jvmti/$1/README.txt
269 $$(call install-file)
270 $(CHMOD) -f ug+w $$@
271
272 ifneq (,$$(wildcard $(JDK_TOPDIR)/src/share/demo/jvmti/$1/*.java))
273 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_JVMTI_$1_JAVA,\
274 SETUP:=GENERATE_USINGJDKBYTECODE,\
275 SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1,\
276 BIN:=$(JDK_OUTPUTDIR)/democlasses/jvmti/$1,\
277 COPY:=$(PATTERNS_TO_COPY),\
278 JAR:=$(JDK_OUTPUTDIR)/demo/jvmti/$1/$1.jar,\
279 EXTRA_MANIFEST_ATTR:=Main-Class: \n,\
280 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf))
281
282 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jvmti/$1/$1.jar
283 endif
284
285 BUILD_DEMOS += $$(BUILD_DEMO_JVMTI_$1) \
286 $(JDK_OUTPUTDIR)/demo/jvmti/$1/src.zip \
287 $(JDK_OUTPUTDIR)/demo/jvmti/$1/README.txt
288
289 ifeq ($(OPENJDK_TARGET_OS),windows)
319 # At least, we do not need to compile the jpda demo, just jar/zip up the sources.
320 JPDA_SOURCES:=$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/tools/example)
321 # The number of files are few enough so that we can use echo safely below to list them.
322 JPDA_FILES:=$(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES))
323
324 $(JDK_OUTPUTDIR)/demo/jpda/src.zip : $(JPDA_SOURCES)
325 $(MKDIR) -p $(@D)
326 (cd $(JDK_TOPDIR)/src/share/classes && $(ZIP) -qru $@ com -i "com/sun/tools/example/*")
327
328 $(JDK_OUTPUTDIR)/demo/jpda/examples.jar : $(JPDA_SOURCES)
329 $(MKDIR) -p $(@D)
330 $(RM) $(@D)/_the.sources
331 $(call ListPathsSafely,JPDA_FILES,\n, >> $(@D)/_the.sources)
332 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
333 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $(JDK_TOPDIR)/make/tools/manifest.mf > $(@D)/_the.manifest
334 $(ECHO) "Main-Class: " >> $(@D)/_the.manifest
335 (cd $(JDK_TOPDIR)/src/share/classes && $(JAR) cfm $@ $(@D)/_the.manifest @$(@D)/_the.sources)
336 (cd $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example && $(JAR) uf $@ README)
337
338 $(JDK_OUTPUTDIR)/demo/jpda/com/sun/tools/example/README : $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example/README
339 $(call install-file)
340 $(CHMOD) -f ug+w $@
341
342 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jpda/src.zip $(JDK_OUTPUTDIR)/demo/jpda/examples.jar \
343 $(JDK_OUTPUTDIR)/demo/jpda/com/sun/tools/example/README
344
345 ##################################################################################################
346
347 $(JDK_OUTPUTDIR)/demo/management/index.html : $(JDK_TOPDIR)/src/share/demo/management/index.html
348 $(call install-file)
349 $(CHMOD) -f ug+w $@
350
351 $(JDK_OUTPUTDIR)/demo/jvmti/index.html : $(JDK_TOPDIR)/src/share/demo/jvmti/index.html
352 $(call install-file)
353 $(CHMOD) -f ug+w $@
354
355 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/management/index.html \
356 $(JDK_OUTPUTDIR)/demo/jvmti/index.html
357
358 ##################################################################################################
359
360 # The netbeans project files are copied into the demo directory.
361 BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/share/demo/nbproject/%,\
362 $(JDK_OUTPUTDIR)/demo/nbproject/%,\
363 $(call CacheFind,$(JDK_TOPDIR)/src/share/demo/nbproject))
364
365 $(JDK_OUTPUTDIR)/demo/nbproject/% : $(JDK_TOPDIR)/src/share/demo/nbproject/%
366 $(call install-file)
367 $(CHMOD) -f ug+w $@
368
369 ##################################################################################################
370
371 $(JDK_OUTPUTDIR)/demo/README: $(JDK_TOPDIR)/src/share/demo/README
372 $(call install-file)
373
374 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/README
375
376 ##################################################################################################
377
378 ifeq ($(OPENJDK_TARGET_OS), solaris)
379
380 $(JDK_OUTPUTDIR)/democlasses/jni/Poller/% : $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/%
381 $(call install-file)
382 $(CHMOD) -f ug+w $@
383
384 $(JDK_OUTPUTDIR)/demo/jni/Poller/README.txt : $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/README.txt
385 $(call install-file)
386 $(CHMOD) -f ug+w $@
387
388 $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar : \
389 $(JDK_OUTPUTDIR)/democlasses/jni/Poller/README.txt $(JDK_OUTPUTDIR)/democlasses/jni/Poller/Poller.c
390
391 $(eval $(call SetupJavaCompilation,BUILD_DEMO_POLLER_JAR,\
392 SETUP:=GENERATE_USINGJDKBYTECODE, \
393 SRC:=$(JDK_TOPDIR)/src/solaris/demo/jni/Poller, \
394 BIN:=$(JDK_OUTPUTDIR)/democlasses/jni/Poller, \
395 HEADERS:=$(JDK_OUTPUTDIR)/democlasses/jni/Poller, \
396 JAR:=$(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar, \
397 MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf, \
398 SRCZIP:=$(JDK_OUTPUTDIR)/demo/jni/Poller/src.zip, \
399 COPY:=README.txt Poller.c, \
400 JARMAIN:=Client))
401
402
403
404 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar $(JDK_OUTPUTDIR)/demo/jni/Poller/src.zip \
405 $(JDK_OUTPUTDIR)/demo/jni/Poller/README.txt
406
407 $(eval $(call SetupNativeCompilation,BUILD_LIBPOLLER,\
408 SRC:=$(JDK_TOPDIR)/src/solaris/demo/jni/Poller, \
409 LANG:=C,\
410 OPTIMIZATION:=LOW,\
411 CFLAGS:=$(CFLAGS_JDKLIB) $(SHARED_LIBRARY_FLAGS) \
412 -I$(JDK_OUTPUTDIR)/democlasses/jni/Poller, \
413 LDFLAGS:=$(LDFLAGS_JDKLIB), \
414 LDFLAGS_SUFFIX_solaris:=-lc,\
415 OBJECT_DIR:=$(JDK_OUTPUTDIR)/demoobjs/jni/Poller,\
416 OUTPUT_DIR:=$(JDK_OUTPUTDIR)/demoobjs, \
417 LIBRARY:=Poller))
418
419 #
420 # We can only compile native code after jar has been build (since we depend on generated .h files)
421 #
422 $(JDK_OUTPUTDIR)/demoobjs/jni/Poller/Poller.o : $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar
423
424 $(JDK_OUTPUTDIR)/demo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX) : \
425 $(JDK_OUTPUTDIR)/demoobjs/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX)
426 $(call install-file)
427
428 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX)
429
430 endif
431
432 ##################################################################################################
433
434 ifndef OPENJDK
435 DB_DEMO_ZIPFILE := $(wildcard $(JDK_TOPDIR)/src/closed/share/db/*demo*.zip)
436
437 $(JDK_OUTPUTDIR)/demo/_the.db.unzipped: $(DB_DEMO_ZIPFILE)
438 $(MKDIR) -p $(@D)
439 $(RM) -r $(JDK_OUTPUTDIR)/demo/db $(JDK_OUTPUTDIR)/demo/demo
440 $(CD) $(JDK_OUTPUTDIR)/demo && $(UNZIP) -q -o $<
441 $(MV) $(JDK_OUTPUTDIR)/demo/demo $(JDK_OUTPUTDIR)/demo/db
442 $(TOUCH) $@
443
444 # Copy this after the unzip above to avoid race with directory creation and mv command.
445 $(JDK_OUTPUTDIR)/demo/db/README-JDK-DEMOS.html: \
446 $(JDK_TOPDIR)/src/closed/share/db/README-JDK-DEMOS.html \
447 | $(JDK_OUTPUTDIR)/demo/_the.db.unzipped
448 $(call install-file)
449
450 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/_the.db.unzipped $(JDK_OUTPUTDIR)/demo/db/README-JDK-DEMOS.html
451 endif
452
453 ##################################################################################################
454
455 all: $(BUILD_DEMOS)
456
457 .PHONY: all
|