89 # LIBS_unix Additional LIBS_unix |
89 # LIBS_unix Additional LIBS_unix |
90 # LIBS_windows Additional LIBS_windows |
90 # LIBS_windows Additional LIBS_windows |
91 # LDFLAGS_solaris Additional LDFLAGS_solaris |
91 # LDFLAGS_solaris Additional LDFLAGS_solaris |
92 # RC_FLAGS Additional RC_FLAGS |
92 # RC_FLAGS Additional RC_FLAGS |
93 # MACOSX_SIGNED On macosx, sign this binary |
93 # MACOSX_SIGNED On macosx, sign this binary |
94 # WINDOWS_STATIC_LINK On windows, link statically with C runtime and libjli. |
|
95 # OPTIMIZATION Override default optimization level (LOW) |
94 # OPTIMIZATION Override default optimization level (LOW) |
96 # OUTPUT_DIR Override default output directory |
95 # OUTPUT_DIR Override default output directory |
97 # VERSION_INFO_RESOURCE Override default Windows resource file |
96 # VERSION_INFO_RESOURCE Override default Windows resource file |
98 # NO_JAVA_MS Do not add -ms8m to JAVA_ARGS. |
|
99 SetupBuildLauncher = $(NamedParamsMacroTemplate) |
97 SetupBuildLauncher = $(NamedParamsMacroTemplate) |
100 define SetupBuildLauncherBody |
98 define SetupBuildLauncherBody |
101 # Setup default values (unless overridden) |
99 # Setup default values (unless overridden) |
102 ifeq ($$($1_OPTIMIZATION), ) |
100 ifeq ($$($1_OPTIMIZATION), ) |
103 $1_OPTIMIZATION := LOW |
101 $1_OPTIMIZATION := LOW |
104 endif |
102 endif |
105 |
103 |
106 ifneq ($$($1_NO_JAVA_MS), true) |
|
107 # The norm is to append -ms8m, unless otherwise instructed. |
|
108 $1_JAVA_ARGS += -ms8m |
|
109 endif |
|
110 |
|
111 ifeq ($$($1_MAIN_MODULE), ) |
104 ifeq ($$($1_MAIN_MODULE), ) |
112 $1_MAIN_MODULE := $(MODULE) |
105 $1_MAIN_MODULE := $(MODULE) |
113 endif |
106 endif |
114 |
107 |
115 ifneq ($$($1_JAVA_ARGS), ) |
108 $1_JAVA_ARGS += -ms8m |
116 ifneq ($$($1_EXTRA_JAVA_ARGS), ) |
109 ifneq ($$($1_MAIN_CLASS), ) |
117 $1_EXTRA_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \ |
110 $1_LAUNCHER_CLASS := -m $$($1_MAIN_MODULE)/$$($1_MAIN_CLASS) |
118 $$(addprefix -J, $$($1_EXTRA_JAVA_ARGS)), "$$a"$(COMMA) )) }' |
111 endif |
119 $1_CFLAGS += -DEXTRA_JAVA_ARGS=$$($1_EXTRA_JAVA_ARGS_STR) |
112 |
120 endif |
113 ifneq ($$($1_EXTRA_JAVA_ARGS), ) |
121 $1_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \ |
114 $1_EXTRA_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \ |
122 $$(addprefix -J, $$($1_JAVA_ARGS)) -m $$($1_MAIN_MODULE)/$$($1_MAIN_CLASS), "$$a"$(COMMA) )) }' |
115 $$(addprefix -J, $$($1_EXTRA_JAVA_ARGS)), "$$a"$(COMMA) )) }' |
123 $1_CFLAGS += -DJAVA_ARGS=$$($1_JAVA_ARGS_STR) |
116 $1_CFLAGS += -DEXTRA_JAVA_ARGS=$$($1_EXTRA_JAVA_ARGS_STR) |
124 endif |
117 endif |
|
118 $1_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \ |
|
119 $$(addprefix -J, $$($1_JAVA_ARGS)) $$($1_LAUNCHER_CLASS), "$$a"$(COMMA) )) }' |
|
120 $1_CFLAGS += -DJAVA_ARGS=$$($1_JAVA_ARGS_STR) |
125 |
121 |
126 $1_LIBS := |
122 $1_LIBS := |
127 ifeq ($(OPENJDK_TARGET_OS), macosx) |
123 ifeq ($(OPENJDK_TARGET_OS), macosx) |
128 ifeq ($$($1_MACOSX_SIGNED), true) |
124 ifeq ($$($1_MACOSX_SIGNED), true) |
129 $1_PLIST_FILE := Info-privileged.plist |
125 $1_PLIST_FILE := Info-privileged.plist |
159 |
155 |
160 ifeq ($(USE_EXTERNAL_LIBZ), true) |
156 ifeq ($(USE_EXTERNAL_LIBZ), true) |
161 $1_LIBS += -lz |
157 $1_LIBS += -lz |
162 endif |
158 endif |
163 |
159 |
164 ifeq ($$($1_WINDOWS_STATIC_LINK), true) |
160 $1_WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjli/jli.lib |
165 $1_CFLAGS += $(filter-out -MD, $(CFLAGS_JDKEXE)) |
|
166 $1_WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/jli_static.lib |
|
167 else |
|
168 $1_CFLAGS += $(CFLAGS_JDKEXE) |
|
169 $1_WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjli/jli.lib |
|
170 endif |
|
171 |
161 |
172 $$(eval $$(call SetupJdkExecutable, BUILD_LAUNCHER_$1, \ |
162 $$(eval $$(call SetupJdkExecutable, BUILD_LAUNCHER_$1, \ |
173 NAME := $1, \ |
163 NAME := $1, \ |
174 EXTRA_FILES := $(LAUNCHER_SRC)/main.c, \ |
164 EXTRA_FILES := $(LAUNCHER_SRC)/main.c, \ |
175 OPTIMIZATION := $$($1_OPTIMIZATION), \ |
165 OPTIMIZATION := $$($1_OPTIMIZATION), \ |
176 CFLAGS := $$($1_CFLAGS) \ |
166 CFLAGS := $$(CFLAGS_JDKEXE) $$($1_CFLAGS) \ |
177 $(LAUNCHER_CFLAGS) \ |
167 $(LAUNCHER_CFLAGS) \ |
178 $(VERSION_CFLAGS) \ |
168 $(VERSION_CFLAGS) \ |
179 -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' \ |
169 -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' \ |
180 -DPROGNAME='"$1"' \ |
170 -DPROGNAME='"$1"' \ |
181 $$($1_CFLAGS), \ |
171 $$($1_CFLAGS), \ |
184 CFLAGS_windows := $$($1_CFLAGS_windows), \ |
174 CFLAGS_windows := $$($1_CFLAGS_windows), \ |
185 LDFLAGS := $$(LDFLAGS_JDKEXE) \ |
175 LDFLAGS := $$(LDFLAGS_JDKEXE) \ |
186 $$(ORIGIN_ARG) \ |
176 $$(ORIGIN_ARG) \ |
187 $$($1_LDFLAGS), \ |
177 $$($1_LDFLAGS), \ |
188 LDFLAGS_linux := \ |
178 LDFLAGS_linux := \ |
189 -L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jli, \ |
179 -L$(call FindLibDirForModule, java.base)/jli, \ |
190 LDFLAGS_macosx := \ |
180 LDFLAGS_macosx := \ |
191 -L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jli, \ |
181 -L$(call FindLibDirForModule, java.base)/jli, \ |
192 LDFLAGS_solaris := $$($1_LDFLAGS_solaris) \ |
182 LDFLAGS_solaris := $$($1_LDFLAGS_solaris) \ |
193 -L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jli, \ |
183 -L$(call FindLibDirForModule, java.base)/jli, \ |
194 LIBS := $(JDKEXE_LIBS) $$($1_LIBS), \ |
184 LIBS := $(JDKEXE_LIBS) $$($1_LIBS), \ |
195 LIBS_unix := $$($1_LIBS_unix), \ |
185 LIBS_unix := $$($1_LIBS_unix), \ |
196 LIBS_linux := -lpthread -ljli $(LIBDL), \ |
186 LIBS_linux := -lpthread -ljli $(LIBDL), \ |
197 LIBS_macosx := -ljli, \ |
187 LIBS_macosx := -ljli, \ |
198 LIBS_solaris := -ljli -lthread $(LIBDL), \ |
188 LIBS_solaris := -ljli -lthread $(LIBDL), \ |