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 include SetupJavaCompilers.gmk
33
34 # Prepare the find cache.
35 $(eval $(call FillCacheFind, $(JDK_TOPDIR)/src))
36
37 # Append demo goals to this variable.
38 BUILD_DEMOS =
39
40 # The demo structure and contents should really be cleaned up.
41 # Now every other demo has its own quirks where to put the
42 # READMEs and other files.
43
44 DEMO_SHARE_SRC := $(JDK_TOPDIR)/src/demo/share
45 DEMO_CLOSED_SHARE_SRC := $(JDK_TOPDIR)/src/closed/demo/share
46 DEMO_SOLARIS_SRC := $(JDK_TOPDIR)/src/demo/solaris
47 DEMO_OS_TYPE_SRC := $(JDK_TOPDIR)/src/demo/$(OPENJDK_TARGET_OS_TYPE)
48 GLOBAL_VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/common/version.rc
49
50 ##################################################################################################
51
52 define SetupAppletDemo
53 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_APPLET_$1, \
54 SETUP := GENERATE_USINGJDKBYTECODE, \
55 SRC := $(JDK_TOPDIR)/src/$3demo/share/applets/$1, \
56 BIN := $(SUPPORT_OUTPUTDIR)/demo/image/applets/$1, \
57 COPY := .html .java .xyz .obj .au .gif, \
58 DISABLE_SJAVAC := $2))
59 BUILD_DEMOS += $$(BUILD_DEMO_APPLET_$1)
60 endef
61
62 ifneq ($(OPENJDK_TARGET_OS), solaris)
63 $(eval $(call SetupAppletDemo,ArcTest))
64 $(eval $(call SetupAppletDemo,BarChart))
65 $(eval $(call SetupAppletDemo,Blink))
66 $(eval $(call SetupAppletDemo,CardTest))
67 $(eval $(call SetupAppletDemo,Clock))
68 $(eval $(call SetupAppletDemo,DitherTest))
69 $(eval $(call SetupAppletDemo,DrawTest))
70 $(eval $(call SetupAppletDemo,Fractal))
71 $(eval $(call SetupAppletDemo,GraphicsTest))
105 $1_MAIN_SRC := $$(wildcard $$($1_SRC_BASE)/src)
106 ifeq ($$($1_MAIN_SRC), )
107 $1_MAIN_SRC := $$($1_SRC_BASE)
108 endif
109
110 ifneq ($8, )
111 $1_JARFILE := $8.jar
112 else
113 $1_JARFILE := $1.jar
114 endif
115
116 ifeq ($(findstring $1,Laffy SwingSet3), )
117 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_$1, \
118 SETUP := GENERATE_USINGJDKBYTECODE, \
119 ADD_JAVAC_FLAGS := $3, \
120 SRC := $$($1_MAIN_SRC) $5, \
121 BIN := $(SUPPORT_OUTPUTDIR)/demo/classes/$2/$1, \
122 COPY := $(PATTERNS_TO_COPY) $(10), \
123 JAR := $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/$$($1_JARFILE), \
124 JARMAIN := $4, \
125 MANIFEST := $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf, \
126 EXTRA_MANIFEST_ATTR := $(11), \
127 SRCZIP := $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/src.zip, \
128 EXCLUDE_FILES := $9, \
129 DISABLE_SJAVAC := $(12)))
130
131 BUILD_DEMOS += $$(BUILD_DEMO_$1) \
132 $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/$$($1_JARFILE) \
133 $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/src.zip
134 endif
135
136 # Copy files.
137 $1_COPY_TARGETS := $$(patsubst $$($1_SRC_BASE)/%, \
138 $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/%, \
139 $$(wildcard $$(addprefix $$($1_SRC_BASE)/, $7)))
140 ifneq ($7, )
141 $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/%: $$($1_SRC_BASE)/%
142 $$(call install-file)
143 $(CHMOD) -f ug+w $$@
144
145 BUILD_DEMOS += $$($1_COPY_TARGETS)
273 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/lib, \
274 LIBRARY := $1))
275
276 $$(eval $$(call SetupZipArchive,BUILD_DEMO_JVMTI_SRC_$1, \
277 SRC := $(DEMO_SHARE_SRC)/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC), \
278 EXCLUDE_FILES := $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC_EXCLUDE), \
279 ZIP := $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/src.zip))
280
281 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/README.txt: $(DEMO_SHARE_SRC)/jvmti/$1/README.txt
282 $$(call install-file)
283 $(CHMOD) -f ug+w $$@
284
285 ifneq (, $$(wildcard $(DEMO_SHARE_SRC)/jvmti/$1/*.java))
286 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_JVMTI_$1_JAVA, \
287 SETUP := GENERATE_USINGJDKBYTECODE, \
288 SRC := $(DEMO_SHARE_SRC)/jvmti/$1, \
289 BIN := $(SUPPORT_OUTPUTDIR)/demo/classes/jvmti/$1, \
290 COPY := $(PATTERNS_TO_COPY), \
291 JAR := $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/$1.jar, \
292 EXTRA_MANIFEST_ATTR := Main-Class: \n, \
293 MANIFEST := $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf))
294
295 BUILD_DEMOS += $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/$1.jar
296 endif
297
298 BUILD_DEMOS += $$(BUILD_DEMO_JVMTI_$1) \
299 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/src.zip \
300 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/README.txt
301
302 ifeq ($(OPENJDK_TARGET_OS), windows)
303 # These files normally end up in OBJECT_DIR but for demos they
304 # are supposed to be included in the distro.
305 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/lib/$1.lib: $$(BUILD_DEMO_JVMTI_$1)
306 $(CP) $(SUPPORT_OUTPUTDIR)/demo/native/jvmti/$1/$1.lib $$@
307
308 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/lib/$1.exp: $$(BUILD_DEMO_JVMTI_$1)
309 $(CP) $(SUPPORT_OUTPUTDIR)/demo/native/jvmti/$1/$1.exp $$@
310
311 BUILD_DEMOS += $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/lib/$1.lib \
312 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/lib/$1.exp
313 endif
365 ifeq ($(OPENJDK_TARGET_OS), solaris)
366
367 $(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller/%: $(DEMO_SOLARIS_SRC)/jni/Poller/%
368 $(call install-file)
369 $(CHMOD) -f ug+w $@
370
371 $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/README.txt: $(DEMO_SOLARIS_SRC)/jni/Poller/README.txt
372 $(call install-file)
373 $(CHMOD) -f ug+w $@
374
375 $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/Poller.jar: \
376 $(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller/README.txt \
377 $(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller/Poller.c
378
379 $(eval $(call SetupJavaCompilation,BUILD_DEMO_POLLER_JAR, \
380 SETUP := GENERATE_USINGJDKBYTECODE, \
381 SRC := $(DEMO_SOLARIS_SRC)/jni/Poller, \
382 BIN := $(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller, \
383 HEADERS := $(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller, \
384 JAR := $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/Poller.jar, \
385 MANIFEST := $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf, \
386 SRCZIP := $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/src.zip, \
387 COPY := README.txt Poller.c, \
388 JARMAIN := Client))
389
390
391
392 BUILD_DEMOS += $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/Poller.jar \
393 $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/src.zip \
394 $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/README.txt
395
396 $(eval $(call SetupNativeCompilation,BUILD_LIBPOLLER, \
397 SRC := $(DEMO_SOLARIS_SRC)/jni/Poller, \
398 OPTIMIZATION := LOW, \
399 CFLAGS := $(CFLAGS_JDKLIB) \
400 -I$(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller, \
401 LDFLAGS := $(LDFLAGS_JDKLIB), \
402 LDFLAGS_SUFFIX_solaris := -lc, \
403 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/demo/native/jni/Poller, \
404 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/demo/native, \
405 LIBRARY := Poller))
|
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 include SetupJavaCompilers.gmk
33 include TextFileProcessing.gmk
34
35 # Prepare the find cache.
36 $(eval $(call FillCacheFind, $(JDK_TOPDIR)/src))
37
38 # Append demo goals to this variable.
39 BUILD_DEMOS =
40
41 # The demo structure and contents should really be cleaned up.
42 # Now every other demo has its own quirks where to put the
43 # READMEs and other files.
44
45 DEMO_SHARE_SRC := $(JDK_TOPDIR)/src/demo/share
46 DEMO_CLOSED_SHARE_SRC := $(JDK_TOPDIR)/src/closed/demo/share
47 DEMO_SOLARIS_SRC := $(JDK_TOPDIR)/src/demo/solaris
48 DEMO_OS_TYPE_SRC := $(JDK_TOPDIR)/src/demo/$(OPENJDK_TARGET_OS_TYPE)
49 GLOBAL_VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/common/version.rc
50
51 ##################################################################################################
52
53 # This rule will be depended on due to the MANIFEST line
54 $(eval $(call SetupTextFileProcessing, BUILD_JAVA_MANIFEST, \
55 SOURCE_FILES := $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf, \
56 OUTPUT_FILE := $(SUPPORT_OUTPUTDIR)/demo/java-main-manifest.mf, \
57 REPLACEMENTS := \
58 @@RELEASE@@ => $(RELEASE) ; \
59 @@COMPANY_NAME@@ => $(COMPANY_NAME) , \
60 ))
61
62 define SetupAppletDemo
63 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_APPLET_$1, \
64 SETUP := GENERATE_USINGJDKBYTECODE, \
65 SRC := $(JDK_TOPDIR)/src/$3demo/share/applets/$1, \
66 BIN := $(SUPPORT_OUTPUTDIR)/demo/image/applets/$1, \
67 COPY := .html .java .xyz .obj .au .gif, \
68 DISABLE_SJAVAC := $2))
69 BUILD_DEMOS += $$(BUILD_DEMO_APPLET_$1)
70 endef
71
72 ifneq ($(OPENJDK_TARGET_OS), solaris)
73 $(eval $(call SetupAppletDemo,ArcTest))
74 $(eval $(call SetupAppletDemo,BarChart))
75 $(eval $(call SetupAppletDemo,Blink))
76 $(eval $(call SetupAppletDemo,CardTest))
77 $(eval $(call SetupAppletDemo,Clock))
78 $(eval $(call SetupAppletDemo,DitherTest))
79 $(eval $(call SetupAppletDemo,DrawTest))
80 $(eval $(call SetupAppletDemo,Fractal))
81 $(eval $(call SetupAppletDemo,GraphicsTest))
115 $1_MAIN_SRC := $$(wildcard $$($1_SRC_BASE)/src)
116 ifeq ($$($1_MAIN_SRC), )
117 $1_MAIN_SRC := $$($1_SRC_BASE)
118 endif
119
120 ifneq ($8, )
121 $1_JARFILE := $8.jar
122 else
123 $1_JARFILE := $1.jar
124 endif
125
126 ifeq ($(findstring $1,Laffy SwingSet3), )
127 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_$1, \
128 SETUP := GENERATE_USINGJDKBYTECODE, \
129 ADD_JAVAC_FLAGS := $3, \
130 SRC := $$($1_MAIN_SRC) $5, \
131 BIN := $(SUPPORT_OUTPUTDIR)/demo/classes/$2/$1, \
132 COPY := $(PATTERNS_TO_COPY) $(10), \
133 JAR := $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/$$($1_JARFILE), \
134 JARMAIN := $4, \
135 MANIFEST := $(SUPPORT_OUTPUTDIR)/demo/java-main-manifest.mf, \
136 EXTRA_MANIFEST_ATTR := $(11), \
137 SRCZIP := $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/src.zip, \
138 EXCLUDE_FILES := $9, \
139 DISABLE_SJAVAC := $(12)))
140
141 BUILD_DEMOS += $$(BUILD_DEMO_$1) \
142 $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/$$($1_JARFILE) \
143 $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/src.zip
144 endif
145
146 # Copy files.
147 $1_COPY_TARGETS := $$(patsubst $$($1_SRC_BASE)/%, \
148 $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/%, \
149 $$(wildcard $$(addprefix $$($1_SRC_BASE)/, $7)))
150 ifneq ($7, )
151 $(SUPPORT_OUTPUTDIR)/demo/image/$2/$1/%: $$($1_SRC_BASE)/%
152 $$(call install-file)
153 $(CHMOD) -f ug+w $$@
154
155 BUILD_DEMOS += $$($1_COPY_TARGETS)
283 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/lib, \
284 LIBRARY := $1))
285
286 $$(eval $$(call SetupZipArchive,BUILD_DEMO_JVMTI_SRC_$1, \
287 SRC := $(DEMO_SHARE_SRC)/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC), \
288 EXCLUDE_FILES := $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC_EXCLUDE), \
289 ZIP := $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/src.zip))
290
291 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/README.txt: $(DEMO_SHARE_SRC)/jvmti/$1/README.txt
292 $$(call install-file)
293 $(CHMOD) -f ug+w $$@
294
295 ifneq (, $$(wildcard $(DEMO_SHARE_SRC)/jvmti/$1/*.java))
296 $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_JVMTI_$1_JAVA, \
297 SETUP := GENERATE_USINGJDKBYTECODE, \
298 SRC := $(DEMO_SHARE_SRC)/jvmti/$1, \
299 BIN := $(SUPPORT_OUTPUTDIR)/demo/classes/jvmti/$1, \
300 COPY := $(PATTERNS_TO_COPY), \
301 JAR := $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/$1.jar, \
302 EXTRA_MANIFEST_ATTR := Main-Class: \n, \
303 MANIFEST := $(SUPPORT_OUTPUTDIR)/demo/java-main-manifest.mf))
304
305 BUILD_DEMOS += $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/$1.jar
306 endif
307
308 BUILD_DEMOS += $$(BUILD_DEMO_JVMTI_$1) \
309 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/src.zip \
310 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/README.txt
311
312 ifeq ($(OPENJDK_TARGET_OS), windows)
313 # These files normally end up in OBJECT_DIR but for demos they
314 # are supposed to be included in the distro.
315 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/lib/$1.lib: $$(BUILD_DEMO_JVMTI_$1)
316 $(CP) $(SUPPORT_OUTPUTDIR)/demo/native/jvmti/$1/$1.lib $$@
317
318 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/lib/$1.exp: $$(BUILD_DEMO_JVMTI_$1)
319 $(CP) $(SUPPORT_OUTPUTDIR)/demo/native/jvmti/$1/$1.exp $$@
320
321 BUILD_DEMOS += $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/lib/$1.lib \
322 $(SUPPORT_OUTPUTDIR)/demo/image/jvmti/$1/lib/$1.exp
323 endif
375 ifeq ($(OPENJDK_TARGET_OS), solaris)
376
377 $(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller/%: $(DEMO_SOLARIS_SRC)/jni/Poller/%
378 $(call install-file)
379 $(CHMOD) -f ug+w $@
380
381 $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/README.txt: $(DEMO_SOLARIS_SRC)/jni/Poller/README.txt
382 $(call install-file)
383 $(CHMOD) -f ug+w $@
384
385 $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/Poller.jar: \
386 $(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller/README.txt \
387 $(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller/Poller.c
388
389 $(eval $(call SetupJavaCompilation,BUILD_DEMO_POLLER_JAR, \
390 SETUP := GENERATE_USINGJDKBYTECODE, \
391 SRC := $(DEMO_SOLARIS_SRC)/jni/Poller, \
392 BIN := $(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller, \
393 HEADERS := $(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller, \
394 JAR := $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/Poller.jar, \
395 MANIFEST := $(SUPPORT_OUTPUTDIR)/demo/java-main-manifest.mf, \
396 SRCZIP := $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/src.zip, \
397 COPY := README.txt Poller.c, \
398 JARMAIN := Client))
399
400
401
402 BUILD_DEMOS += $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/Poller.jar \
403 $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/src.zip \
404 $(SUPPORT_OUTPUTDIR)/demo/image/jni/Poller/README.txt
405
406 $(eval $(call SetupNativeCompilation,BUILD_LIBPOLLER, \
407 SRC := $(DEMO_SOLARIS_SRC)/jni/Poller, \
408 OPTIMIZATION := LOW, \
409 CFLAGS := $(CFLAGS_JDKLIB) \
410 -I$(SUPPORT_OUTPUTDIR)/demo/classes/jni/Poller, \
411 LDFLAGS := $(LDFLAGS_JDKLIB), \
412 LDFLAGS_SUFFIX_solaris := -lc, \
413 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/demo/native/jni/Poller, \
414 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/demo/native, \
415 LIBRARY := Poller))
|