make/launcher/LauncherCommon.gmk
changeset 51808 3f32076a43a6
parent 51783 4482acfef2a5
child 51811 4be08a5102b0
equal deleted inserted replaced
51807:3221f5e14866 51808:3f32076a43a6
    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), \