jdk/makefiles/CompileLaunchers.gmk
changeset 13702 efd6a05935b2
parent 13164 72c5d01a857d
child 14231 a0c23c1c010f
child 14182 3041082abb40
equal deleted inserted replaced
13694:ffe6bce5a521 13702:efd6a05935b2
    34 
    34 
    35 # Build tools
    35 # Build tools
    36 include Tools.gmk
    36 include Tools.gmk
    37 
    37 
    38 BUILD_LAUNCHERS=
    38 BUILD_LAUNCHERS=
       
    39 
       
    40 # When building a legacy overlay image (on solaris 64 bit), the launchers 
       
    41 # need to be built with a different rpath and a different output dir.
       
    42 ifeq ($(OVERLAY_IMAGES),true)
       
    43     ORIGIN_ROOT:=/../..
       
    44     OUTPUT_SUBDIR:=$(OPENJDK_TARGET_CPU_ISADIR)
       
    45 else
       
    46     ORIGIN_ROOT:=/..
       
    47 endif
       
    48 
       
    49 ifeq ($(OPENJDK_TARGET_OS), macosx)
       
    50     ORIGIN_ARG:=$(call SET_EXECUTABLE_ORIGIN)
       
    51 else
       
    52     ORIGIN_ARG:=$(call SET_EXECUTABLE_ORIGIN,$(ORIGIN_ROOT)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli) \
       
    53                 $(call SET_EXECUTABLE_ORIGIN,$(ORIGIN_ROOT)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli)
       
    54 endif
       
    55 
       
    56 #
       
    57 # Applications expect to be able to link against libjawt without invoking
       
    58 # System.loadLibrary("jawt") first. This was the behaviour described in the
       
    59 # devloper documentation of JAWT and what worked with OpenJDK6.
       
    60 #
       
    61 ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris),)
       
    62     ORIGIN_ARG+=$(call SET_EXECUTABLE_ORIGIN,$(ORIGIN_ROOT)/lib$(OPENJDK_TARGET_CPU_LIBDIR)) \
       
    63                 $(call SET_EXECUTABLE_ORIGIN,$(ORIGIN_ROOT)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)) 
       
    64 endif
    39 
    65 
    40 define SetupLauncher
    66 define SetupLauncher
    41     # TODO: Fix mapfile on solaris. Won't work with ld as linker.
    67     # TODO: Fix mapfile on solaris. Won't work with ld as linker.
    42     # Parameter 1 is the name of the launcher (java,javac,jar...)
    68     # Parameter 1 is the name of the launcher (java,javac,jar...)
    43     # Parameter 2 is extra CFLAGS
    69     # Parameter 2 is extra CFLAGS
    44     # Parameter 3 is extra LDFLAGS
    70     # Parameter 3 is extra LDFLAGS
    45     # Parameter 4 is extra LDFLAGS_SUFFIX_posix
    71     # Parameter 4 is extra LDFLAGS_SUFFIX_posix
    46     # Parameter 5 is extra LDFLAGS_SUFFIX_winapi
    72     # Parameter 5 is extra LDFLAGS_SUFFIX_windows
    47     # Parameter 6 is optional Windows JLI library (full path)
    73     # Parameter 6 is optional Windows JLI library (full path)
    48     # Parameter 7 is optional Windows resource (RC) flags
    74     # Parameter 7 is optional Windows resource (RC) flags
    49     # Parameter 8 is optional Windows version resource file (.rc)
    75     # Parameter 8 is optional Windows version resource file (.rc)
    50     # Parameter 9  is different output dir
    76     # Parameter 9  is different output dir
    51     # Parameter 10 is FULL DEBUG SYMBOLS (set value to turn OFF, since most(all) seems to have it)
    77     # Parameter 10 if set, link statically with c runtime on windows.
       
    78     # Parameter 11 if set, override plist file on macosx.
    52 
    79 
    53     $1_WINDOWS_JLI_LIB:=$(JDK_OUTPUTDIR)/objs/libjli/jli.lib
    80     $1_WINDOWS_JLI_LIB:=$(JDK_OUTPUTDIR)/objs/libjli/jli.lib
    54     ifneq ($6,)
    81     ifneq ($6,)
    55         $1_WINDOWS_JLI_LIB:=$6
    82         $1_WINDOWS_JLI_LIB:=$6
    56     endif
    83     endif
    58     ifneq ($8,)
    85     ifneq ($8,)
    59         $1_VERSION_INFO_RESOURCE:=$8
    86         $1_VERSION_INFO_RESOURCE:=$8
    60     endif
    87     endif
    61 
    88 
    62     $1_LDFLAGS := $3
    89     $1_LDFLAGS := $3
       
    90     $1_LDFLAGS_SUFFIX :=
    63     ifeq ($(OPENJDK_TARGET_OS), macosx)
    91     ifeq ($(OPENJDK_TARGET_OS), macosx)
    64         $1_LDFLAGS += -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
    92         $1_PLIST_FILE:=Info-cmdline.plist
    65                        -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
    93         ifneq ($(11),)
    66     endif
    94             $1_PLIST_FILE:=$(11)
    67 
    95         endif
    68     $1_LDFLAGS_SUFFIX :=
    96 
       
    97         $1_LDFLAGS += -Wl,-all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \
       
    98                       -framework Cocoa -framework Security -framework ApplicationServices \
       
    99                       -sectcreate __TEXT __info_plist $(JDK_TOPDIR)/src/macosx/lib/$$($1_PLIST_FILE)
       
   100         $1_LDFLAGS_SUFFIX += -pthread
       
   101     endif
       
   102 
    69     ifeq ($(USE_EXTERNAL_LIBZ), true)
   103     ifeq ($(USE_EXTERNAL_LIBZ), true)
    70         $1_LDFLAGS_SUFFIX += -lz
   104         $1_LDFLAGS_SUFFIX += -lz
    71     endif
   105     endif
    72 
       
    73     ifeq ($(OPENJDK_TARGET_OS), macosx)
       
    74         $1_LDFLAGS_SUFFIX += -Wl,-all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \
       
    75                              -framework Cocoa -framework Security -framework ApplicationServices \
       
    76                              -sectcreate __TEXT __info_plist $(JDK_TOPDIR)/src/macosx/lib/Info-cmdline.plist
       
    77     endif
       
    78 
       
    79 
   106 
    80     $1_OUTPUT_DIR_ARG:=$9
   107     $1_OUTPUT_DIR_ARG:=$9
    81     ifeq (,$$($1_OUTPUT_DIR_ARG))
   108     ifeq (,$$($1_OUTPUT_DIR_ARG))
    82         $1_OUTPUT_DIR_ARG:=$(JDK_OUTPUTDIR)/bin
   109         $1_OUTPUT_DIR_ARG:=$(JDK_OUTPUTDIR)/bin
    83     endif
   110     endif
    84 
   111 
    85     $1_DEBUG_SYMBOLS:=yes
       
    86     ifneq (,$(10))
       
    87       $1_DEBUG_SYMBOLS:=
       
    88     endif
       
    89 
       
    90     $1_OPTIMIZATION:= LOW
       
    91 
       
    92     # TODO: maybe it's better to move this if-statement out of this function
   112     # TODO: maybe it's better to move this if-statement out of this function
    93     ifeq ($(1),java)
   113     ifeq ($1,java)
    94       $1_OPTIMIZATION:=HIGH
   114         $1_OPTIMIZATION_ARG:=HIGH
       
   115 	$1_LDFLAGS_solaris:=-R$(OPENWIN_HOME)/lib$(OPENJDK_TARGET_CPU_ISADIR)
       
   116     else
       
   117         $1_OPTIMIZATION_ARG:=LOW
       
   118     endif
       
   119 
       
   120     $1_CFLAGS:=$(CFLAGS_JDKEXE)
       
   121     ifeq ($(10),true)
       
   122         $1_CFLAGS:=$(filter-out -MD,$(CFLAGS_JDKEXE))
    95     endif
   123     endif
    96 
   124 
    97     $(call SetupNativeCompilation,BUILD_LAUNCHER_$1,\
   125     $(call SetupNativeCompilation,BUILD_LAUNCHER_$1,\
    98 	SRC:=$(JDK_TOPDIR)/src/share/bin,\
   126 	SRC:=$(JDK_TOPDIR)/src/share/bin,\
    99 	INCLUDE_FILES:=main.c,\
   127 	INCLUDE_FILES:=main.c,\
   100 	LANG:=C,\
   128 	LANG:=C,\
   101 	OPTIMIZATION :=$$($1_OPTIMIZATION), \
   129 	OPTIMIZATION:=$$($1_OPTIMIZATION_ARG), \
   102 	CFLAGS:=$(CFLAGS_JDKEXE) \
   130 	CFLAGS:=$$($1_CFLAGS) \
   103 		-I$(JDK_TOPDIR)/src/share/bin \
   131 		-I$(JDK_TOPDIR)/src/share/bin \
   104 		-I$(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/bin \
   132 		-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin \
   105 		-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS)/bin \
   133 		-I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS)/bin \
   106                 -DFULL_VERSION='"$(FULL_VERSION)"' \
   134                 -DFULL_VERSION='"$(FULL_VERSION)"' \
   107                 -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \
   135                 -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \
   108                 -DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \
   136                 -DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \
   109 		-DLIBARCHNAME='"$(ARCH)"' \
   137 		-DLIBARCHNAME='"$(OPENJDK_TARGET_CPU_LEGACY)"' \
   110 		-DLAUNCHER_NAME='"java"' \
   138 		-DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' \
   111 		-DPROGNAME='"$1"' $(DPACKAGEPATH) \
   139 		-DPROGNAME='"$1"' $(DPACKAGEPATH) \
   112 		$2,\
   140 		$2,\
   113 	CFLAGS_linux:=-fPIC,\
   141 	CFLAGS_linux:=-fPIC,\
   114         CFLAGS_solaris:=-KPIC -DHAVE_GETHRTIME,\
   142         CFLAGS_solaris:=-KPIC -DHAVE_GETHRTIME,\
   115 	LDFLAGS:=$(LDFLAGS_JDKEXE) \
   143 	LDFLAGS:=$(LDFLAGS_JDKEXE) \
   116                  $(call SET_SHARED_LIBRARY_ORIGIN,../lib/$(LIBARCH)/jli) \
   144                  $(ORIGIN_ARG) \
   117                  $(call SET_SHARED_LIBRARY_ORIGIN,../jre/lib/$(LIBARCH)/jli) \
       
   118 		 $$($1_LDFLAGS),\
   145 		 $$($1_LDFLAGS),\
   119 	MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/launchers/mapfile-$(ARCH), \
   146 	LDFLAGS_macosx:=$(call SET_SHARED_LIBRARY_NAME,$1),\
       
   147 	LDFLAGS_linux:=-lpthread \
       
   148                        $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)),\
       
   149 	LDFLAGS_solaris:=$$($1_LDFLAGS_solaris) \
       
   150                        $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)),\
       
   151 	MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/launchers/mapfile-$(OPENJDK_TARGET_CPU), \
   120         LDFLAGS_SUFFIX:=$(LDFLAGS_JDKEXE_SUFFIX) $$($1_LDFLAGS_SUFFIX),\
   152         LDFLAGS_SUFFIX:=$(LDFLAGS_JDKEXE_SUFFIX) $$($1_LDFLAGS_SUFFIX),\
   121 	LDFLAGS_SUFFIX_posix:=$4 -lc,\
   153 	LDFLAGS_SUFFIX_posix:=$4,\
   122 	LDFLAGS_SUFFIX_winapi:=$$($1_WINDOWS_JLI_LIB) \
   154 	LDFLAGS_SUFFIX_windows:=$$($1_WINDOWS_JLI_LIB) \
   123 			       $(JDK_OUTPUTDIR)/objs/libjava/java.lib advapi32.lib $5,\
   155 			       $(JDK_OUTPUTDIR)/objs/libjava/java.lib advapi32.lib $5,\
   124 	LDFLAGS_SUFFIX_solaris := -lthread $(LIBDL), \
   156 	LDFLAGS_SUFFIX_linux:=-L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli $(LIBDL) -lc, \
   125 	OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/$1_objs,\
   157 	LDFLAGS_SUFFIX_solaris:=-L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli -lthread $(LIBDL) -lc, \
   126 	OUTPUT_DIR:=$$($1_OUTPUT_DIR_ARG),\
   158 	OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/$1_objs$(OUTPUT_SUBDIR),\
       
   159 	OUTPUT_DIR:=$$($1_OUTPUT_DIR_ARG)$(OUTPUT_SUBDIR),\
   127 	PROGRAM:=$1,\
   160 	PROGRAM:=$1,\
   128 	DEBUG_SYMBOLS:=$$($1_DEBUG_SYMBOLS),\
   161 	DEBUG_SYMBOLS:=true,\
   129 	VERSIONINFO_RESOURCE:=$$($1_VERSION_INFO_RESOURCE),\
   162 	VERSIONINFO_RESOURCE:=$$($1_VERSION_INFO_RESOURCE),\
   130 	RC_FLAGS:=$(RC_FLAGS)\
   163 	RC_FLAGS:=$(RC_FLAGS)\
   131 		  /D "JDK_FNAME=$1$(EXE_SUFFIX)" \
   164 		  /D "JDK_FNAME=$1$(EXE_SUFFIX)" \
   132 		  /D "JDK_INTERNAL_NAME=$1" \
   165 		  /D "JDK_INTERNAL_NAME=$1" \
   133 		  /D "JDK_FTYPE=0x1L" \
   166 		  /D "JDK_FTYPE=0x1L" \
   158     JAVA_RC_FLAGS += -i "$(JDK_TOPDIR)/src/windows/resource/icons"
   191     JAVA_RC_FLAGS += -i "$(JDK_TOPDIR)/src/windows/resource/icons"
   159 else
   192 else
   160     JAVA_RC_FLAGS += -i "$(JDK_TOPDIR)/src/closed/windows/native/sun/windows"
   193     JAVA_RC_FLAGS += -i "$(JDK_TOPDIR)/src/closed/windows/native/sun/windows"
   161 endif
   194 endif
   162 
   195 
       
   196 # On windows, the debuginfo files get the same name as for java.dll. Build
       
   197 # into another dir and copy selectively so debuginfo for java.dll isn't
       
   198 # overwritten.
   163 $(eval $(call SetupLauncher,java,\
   199 $(eval $(call SetupLauncher,java,\
   164     -DEXPAND_CLASSPATH_WILDCARDS,,,user32.lib comctl32.lib,\
   200     -DEXPAND_CLASSPATH_WILDCARDS,,,user32.lib comctl32.lib,\
   165     $(JDK_OUTPUTDIR)/objs/jli_static.lib,$(JAVA_RC_FLAGS),\
   201     $(JDK_OUTPUTDIR)/objs/jli_static.lib,$(JAVA_RC_FLAGS),\
   166     $(JDK_TOPDIR)/src/windows/resource/java.rc))
   202     $(JDK_TOPDIR)/src/windows/resource/java.rc,$(JDK_OUTPUTDIR)/objs/java_objs,true))
       
   203 
       
   204 $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java$(EXE_SUFFIX): $(BUILD_LAUNCHER_java)
       
   205 	$(MKDIR) -p $(@D)
       
   206 	$(RM) $@
       
   207 	$(CP) $(JDK_OUTPUTDIR)/objs/java_objs$(OUTPUT_SUBDIR)/java$(EXE_SUFFIX) $@
       
   208 
       
   209 BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java$(EXE_SUFFIX)
   167 
   210 
   168 ifeq ($(OPENJDK_TARGET_OS),windows)
   211 ifeq ($(OPENJDK_TARGET_OS),windows)
   169     $(eval $(call SetupLauncher,javaw,\
   212     $(eval $(call SetupLauncher,javaw,\
   170         -DEXPAND_CLASSPATH_WILDCARDS,,,user32.lib comctl32.lib,\
   213         -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS,,,user32.lib comctl32.lib,\
   171         $(JDK_OUTPUTDIR)/objs/jli_static.lib,$(JAVA_RC_FLAGS),\
   214         $(JDK_OUTPUTDIR)/objs/jli_static.lib,$(JAVA_RC_FLAGS),\
   172         $(JDK_TOPDIR)/src/windows/resource/java.rc))
   215         $(JDK_TOPDIR)/src/windows/resource/java.rc,,true))
   173 endif
   216 endif
   174 
   217 
   175 ifeq ($(OPENJDK_TARGET_OS),solaris)
       
   176     THREAD_LIB:=-lthread
       
   177 endif
       
   178 ifeq ($(OPENJDK_TARGET_OS),linux)
       
   179     THREAD_LIB:=-lpthread
       
   180 endif
       
   181 
   218 
   182 ifndef BUILD_HEADLESS_ONLY
   219 ifndef BUILD_HEADLESS_ONLY
   183 $(eval $(call SetupLauncher,appletviewer,\
   220 $(eval $(call SetupLauncher,appletviewer,\
   184     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.applet.Main"$(COMMA) }',,\
   221     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.applet.Main"$(COMMA) }',,\
   185     $(THREAD_LIB) $(XLIBS) -ldl))
   222     $(XLIBS)))
   186 endif
   223 endif
   187 
   224 
   188 $(eval $(call SetupLauncher,extcheck,\
   225 $(eval $(call SetupLauncher,extcheck,\
   189     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.extcheck.Main"$(COMMA) }'))
   226     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.extcheck.Main"$(COMMA) }'))
   190 
   227 
   215 $(eval $(call SetupLauncher,javap,\
   252 $(eval $(call SetupLauncher,javap,\
   216     -DEXPAND_CLASSPATH_WILDCARDS \
   253     -DEXPAND_CLASSPATH_WILDCARDS \
   217     -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
   254     -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
   218     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javap.Main"$(COMMA) }'))
   255     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javap.Main"$(COMMA) }'))
   219 
   256 
   220 BUILD_LAUNCHER_jconsole_CPPFLAGS_windows:=-DJAVAW
   257 BUILD_LAUNCHER_jconsole_CFLAGS_windows:=-DJAVAW
   221 BUILD_LAUNCHER_jconsole_LDFLAGS_windows:=user32.lib
   258 BUILD_LAUNCHER_jconsole_LDFLAGS_windows:=user32.lib
   222 
   259 
   223 $(eval $(call SetupLauncher,jconsole,\
   260 $(eval $(call SetupLauncher,jconsole,\
   224     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "-J-Djconsole.showOutputViewer"$(COMMA) "sun.tools.jconsole.JConsole"$(COMMA) }' \
   261     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "-J-Djconsole.showOutputViewer"$(COMMA) "sun.tools.jconsole.JConsole"$(COMMA) }' \
   225     -DAPP_CLASSPATH='{ "/lib/jconsole.jar"$(COMMA) "/lib/tools.jar"$(COMMA) "/classes" }'))
   262     -DAPP_CLASSPATH='{ "/lib/jconsole.jar"$(COMMA) "/lib/tools.jar"$(COMMA) "/classes" }'))
   234 $(eval $(call SetupLauncher,jinfo,\
   271 $(eval $(call SetupLauncher,jinfo,\
   235     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
   272     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
   236 		   "-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
   273 		   "-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
   237 		   "-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
   274 		   "-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
   238 		   "sun.tools.jinfo.JInfo"$(COMMA) }' \
   275 		   "sun.tools.jinfo.JInfo"$(COMMA) }' \
   239     -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
   276     -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }' \
       
   277     ,,,,,,,,,Info-privileged.plist))
   240 
   278 
   241 $(eval $(call SetupLauncher,jmap,\
   279 $(eval $(call SetupLauncher,jmap,\
   242     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
   280     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
   243 		   "-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
   281 		   "-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
   244 		   "-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
   282 		   "-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
   245 		   "sun.tools.jmap.JMap"$(COMMA) }' \
   283 		   "sun.tools.jmap.JMap"$(COMMA) }' \
   246     -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
   284     -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }' \
       
   285     ,,,,,,,,,Info-privileged.plist))
   247 
   286 
   248 $(eval $(call SetupLauncher,jps,\
   287 $(eval $(call SetupLauncher,jps,\
   249     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jps.Jps"$(COMMA) }'))
   288     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jps.Jps"$(COMMA) }'))
   250 
   289 
   251 $(eval $(call SetupLauncher,jrunscript,\
   290 $(eval $(call SetupLauncher,jrunscript,\
   252     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.script.shell.Main"$(COMMA) }'))
   291     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.script.shell.Main"$(COMMA) }'))
   253 
   292 
   254 $(eval $(call SetupLauncher,jsadebugd,\
   293 $(eval $(call SetupLauncher,jsadebugd,\
   255     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.jvm.hotspot.jdi.SADebugServer"$(COMMA) }' \
   294     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.jvm.hotspot.jdi.SADebugServer"$(COMMA) }' \
   256     -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
   295     -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }' \
       
   296     ,,,,,,,,,Info-privileged.plist))
   257 
   297 
   258 $(eval $(call SetupLauncher,jstack,\
   298 $(eval $(call SetupLauncher,jstack,\
   259     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
   299     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
   260 		   "-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
   300 		   "-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
   261 		   "-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
   301 		   "-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
   262 		   "sun.tools.jstack.JStack"$(COMMA) }' \
   302 		   "sun.tools.jstack.JStack"$(COMMA) }' \
   263     -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
   303     -DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }' \
       
   304     ,,,,,,,,,Info-privileged.plist))
   264 
   305 
   265 $(eval $(call SetupLauncher,jstat,\
   306 $(eval $(call SetupLauncher,jstat,\
   266     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jstat.Jstat"$(COMMA) }'))
   307     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jstat.Jstat"$(COMMA) }'))
   267 
   308 
   268 $(eval $(call SetupLauncher,jstatd,\
   309 $(eval $(call SetupLauncher,jstatd,\
   274 $(eval $(call SetupLauncher,native2ascii,\
   315 $(eval $(call SetupLauncher,native2ascii,\
   275     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.native2ascii.Main"$(COMMA) }'))
   316     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.native2ascii.Main"$(COMMA) }'))
   276 
   317 
   277 ifndef BUILD_HEADLESS_ONLY
   318 ifndef BUILD_HEADLESS_ONLY
   278 $(eval $(call SetupLauncher,policytool,\
   319 $(eval $(call SetupLauncher,policytool,\
   279     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.tools.policytool.PolicyTool"$(COMMA) }'))
   320     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.tools.policytool.PolicyTool"$(COMMA) }',,\
       
   321     $(XLIBS)))
   280 endif
   322 endif
   281 
   323 
   282 $(eval $(call SetupLauncher,rmic,\
   324 $(eval $(call SetupLauncher,rmic,\
   283     -DEXPAND_CLASSPATH_WILDCARDS \
   325     -DEXPAND_CLASSPATH_WILDCARDS \
   284     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.rmi.rmic.Main"$(COMMA) }'))
   326     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.rmi.rmic.Main"$(COMMA) }'))
   359 			$(JDK_OUTPUTDIR)/objs/libzip/inffast$(OBJ_SUFFIX)
   401 			$(JDK_OUTPUTDIR)/objs/libzip/inffast$(OBJ_SUFFIX)
   360 
   402 
   361 endif
   403 endif
   362 
   404 
   363 ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
   405 ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
   364      UNPACKEXE_CFLAGS += -xregs=no%appl
   406     UNPACKEXE_CFLAGS += -xregs=no%appl
       
   407 endif
       
   408 
       
   409 UNPACKEXE_LANG:=C
       
   410 ifeq ($(OPENJDK_TARGET_OS),solaris)
       
   411     UNPACKEXE_LANG:=C++
   365 endif
   412 endif
   366 
   413 
   367 $(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE,\
   414 $(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE,\
   368                 SRC:=$(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack,\
   415                 SRC:=$(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack,\
   369 		EXCLUDE_FILES:=jni.cpp,\
   416 		EXCLUDE_FILES:=jni.cpp,\
   370 		LANG:=C,\
   417 		LANG:=$(UNPACKEXE_LANG),\
   371 		OPTIMIZATION := LOW, \
   418 		OPTIMIZATION := LOW, \
   372 		CFLAGS:=$(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE)\
   419 		CFLAGS:=$(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE)\
   373 			 -DFULL, \
   420                         -DFULL, \
   374 		CFLAGS_release:=-DPRODUCT,\
   421 		CFLAGS_release:=-DPRODUCT,\
   375 		CFLAGS_linux:=-fPIC,\
   422 		CFLAGS_linux:=-fPIC,\
   376 		CFLAGS_solaris := -KPIC, \
   423 		CFLAGS_solaris := -KPIC, \
   377 		CFLAGS_macosx := -fPIC, \
   424 		CFLAGS_macosx := -fPIC, \
   378 		MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libunpack/mapfile-vers-unpack200, \
   425 		MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libunpack/mapfile-vers-unpack200, \
   379 		LDFLAGS:=$(LDFLAGS_JDKEXE) \
   426 		LDFLAGS:=$(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
   380 			 $(call SET_SHARED_LIBRARY_ORIGIN), \
   427 			 $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)) \
   381 		LDFLAGS_SUFFIX:=$(UNPACKEXE_ZIPOBJS) $(LIBCXX),\
   428 			 $(call SET_SHARED_LIBRARY_ORIGIN) \
       
   429 			 $(UNPACKEXE_ZIPOBJS),\
       
   430 		LDFLAGS_linux:=-lc,\
       
   431 		LDFLAGS_SUFFIX:=$(LIBCXX),\
   382 		LDFLAGS_SUFFIX_solaris:=-lc,\
   432 		LDFLAGS_SUFFIX_solaris:=-lc,\
   383 		OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/unpackexe,\
   433 		OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR),\
   384 		OUTPUT_DIR:=$(JDK_OUTPUTDIR)/bin,\
   434 		OUTPUT_DIR:=$(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR),\
   385 		PROGRAM:=unpack200,\
   435 		PROGRAM:=unpack200,\
   386 		VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
   436 		VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
   387 		RC_FLAGS:=$(RC_FLAGS)\
   437 		RC_FLAGS:=$(RC_FLAGS)\
   388 			  /D "JDK_FNAME=unpack200.exe" \
   438 			  /D "JDK_FNAME=unpack200.exe" \
   389 			  /D "JDK_INTERNAL_NAME=unpack200" \
   439 			  /D "JDK_INTERNAL_NAME=unpack200" \
   402 
   452 
   403 
   453 
   404 BUILD_JEXEC := 
   454 BUILD_JEXEC := 
   405 BUILD_JEXEC_SRC :=
   455 BUILD_JEXEC_SRC :=
   406 BUILD_JEXEC_INC :=
   456 BUILD_JEXEC_INC :=
   407 BUILD_JEXEC_DST_DIR := $(JDK_OUTPUTDIR)/lib/$(LIBARCH)
   457 BUILD_JEXEC_DST_DIR := $(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)
   408 
   458 
   409 #
   459 #
   410 # UNHANDLED:
   460 # UNHANDLED:
   411 # - COMPILE_APPROACH = normal
   461 # - COMPILE_APPROACH = normal
   412 #
   462 #
   413 
   463 
   414 #
   464 #
   415 # jdk/make/java/Makefile
   465 # jdk/make/java/Makefile
   416 #
   466 #
   417 ifeq ($(OPENJDK_TARGET_OS), solaris)
   467 ifeq ($(OPENJDK_TARGET_OS), solaris)
   418 	ifeq ($(ARCH_DATA_MODEL), 32)
   468 	ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
   419 		BUILD_JEXEC := 1
   469 		BUILD_JEXEC := 1
   420 	endif
   470 	endif
   421 endif
   471 endif
   422 
   472 
   423 ifeq ($(OPENJDK_TARGET_OS), linux)
   473 ifeq ($(OPENJDK_TARGET_OS), linux)
   452 		INCLUDE_FILES:=jexec.c,\
   502 		INCLUDE_FILES:=jexec.c,\
   453 		LANG:=C,\
   503 		LANG:=C,\
   454 		OPTIMIZATION := LOW, \
   504 		OPTIMIZATION := LOW, \
   455 		CFLAGS:=$(CFLAGS_JDKEXE)\
   505 		CFLAGS:=$(CFLAGS_JDKEXE)\
   456                         $(BUILD_JEXEC_INC), \
   506                         $(BUILD_JEXEC_INC), \
   457 		LDFLAGS:=$(LDFLAGS_JDKEXE), \
   507 		CFLAGS_linux:=-fPIC,\
       
   508 		CFLAGS_solaris:=-KPIC,\
       
   509 		LDFLAGS:=$(LDFLAGS_JDKEXE) \
       
   510 			 $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \
   458 		OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/jexec_obj,\
   511 		OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/jexec_obj,\
   459 		OUTPUT_DIR:=$(BUILD_JEXEC_DST_DIR),\
   512 		OUTPUT_DIR:=$(BUILD_JEXEC_DST_DIR),\
   460 		PROGRAM:=jexec))
   513 		PROGRAM:=jexec))
   461 
   514 
   462 	BUILD_LAUNCHERS += $(BUILD_JEXEC)
   515 	BUILD_LAUNCHERS += $(BUILD_JEXEC)
   465 ##########################################################################################
   518 ##########################################################################################
   466 
   519 
   467 #
   520 #
   468 # The java-rmi.cgi script in bin/ only gets delivered in certain situations
   521 # The java-rmi.cgi script in bin/ only gets delivered in certain situations
   469 #
   522 #
   470 JAVA_RMI_CGI:=$(JDK_OUTPUTDIR)/bin/java-rmi.cgi
   523 JAVA_RMI_CGI:=$(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java-rmi.cgi
   471 ifeq ($(OPENJDK_TARGET_OS), linux)
   524 ifeq ($(OPENJDK_TARGET_OS), linux)
   472   BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
   525   BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
   473 endif
   526 endif
   474 ifeq ($(OPENJDK_TARGET_OS), solaris)
   527 ifeq ($(OPENJDK_TARGET_OS), solaris)
   475   ifeq ($(ARCH_DATA_MODEL), 32)
   528   ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
   476     BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
   529     BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
   477   endif
   530   endif
   478 endif
   531 endif
   479 
   532 
   480 # TODO: 
   533 # TODO: 
   482 # this time anyway. Since jdk6, it has been built from the wrong source and resulted
   535 # this time anyway. Since jdk6, it has been built from the wrong source and resulted
   483 # in a copy of the standard java launcher named "java-rmi.exe" ending up in the final
   536 # in a copy of the standard java launcher named "java-rmi.exe" ending up in the final
   484 # images bin dir. This weird behavior is mimicked here in the converted makefiles for
   537 # images bin dir. This weird behavior is mimicked here in the converted makefiles for
   485 # now. Should probably just be deleted.
   538 # now. Should probably just be deleted.
   486 # http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6512052
   539 # http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6512052
   487 ifeq ($(OPENJDK_TARGET_OS_API),winapi)
   540 ifeq ($(OPENJDK_TARGET_OS),windows)
   488     $(eval $(call SetupLauncher,java-rmi,\
   541     $(eval $(call SetupLauncher,java-rmi,\
   489         -DEXPAND_CLASSPATH_WILDCARDS,\
   542         -DEXPAND_CLASSPATH_WILDCARDS,\
   490         $(call SET_SHARED_LIBRARY_MAPFILE,$(JDK_TOPDIR)/makefiles/java/main/java/mapfile-$(ARCH)),\
   543         $(call SET_SHARED_LIBRARY_MAPFILE,$(JDK_TOPDIR)/makefiles/java/main/java/mapfile-$(OPENJDK_TARGET_CPU))))
   491         ,,,,,$(JDK_OUTPUTDIR)/objs))
       
   492 
       
   493     $(JAVA_RMI_CGI): $(BUILD_LAUNCHER_java-rmi)
       
   494 	$(MKDIR) -p $(@D)
       
   495 	$(CP) $< $@
       
   496 
       
   497     BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
       
   498 else
   544 else
   499     $(JAVA_RMI_CGI): $(JDK_TOPDIR)/src/solaris/bin/java-rmi.cgi.sh
   545     $(JAVA_RMI_CGI): $(JDK_TOPDIR)/src/solaris/bin/java-rmi.cgi.sh
   500 	$(MKDIR) -p $(@D)
   546 	$(MKDIR) -p $(@D)
   501 	$(CP) $< $@
   547 	$(CP) $< $@
   502 	$(CHMOD) a+x $@
   548 	$(CHMOD) a+x $@