1 #
  2 # Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
  3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  4 #
  5 # This code is free software; you can redistribute it and/or modify it
  6 # under the terms of the GNU General Public License version 2 only, as
  7 # published by the Free Software Foundation.  Oracle designates this
  8 # particular file as subject to the "Classpath" exception as provided
  9 # by Oracle in the LICENSE file that accompanied this code.
 10 #
 11 # This code is distributed in the hope that it will be useful, but WITHOUT
 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 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 include LauncherCommon.gmk
 27 
 28 $(eval $(call IncludeCustomExtension, launcher/Launcher-java.base.gmk))
 29 
 30 JAVA_VERSION_INFO_RESOURCE := $(TOPDIR)/src/java.base/windows/native/launcher/java.rc
 31 
 32 JAVA_RC_FLAGS += -I$(TOPDIR)/src/java.base/windows/native/common
 33 JAVA_RC_FLAGS += -I$(TOPDIR)/src/java.base/windows/native/launcher/icons
 34 
 35 ################################################################################
 36 
 37 # On windows, the debuginfo files get the same name as for java.dll. Build
 38 # into another dir and copy selectively so debuginfo for java.dll isn't
 39 # overwritten.
 40 $(eval $(call SetupBuildLauncher, java, \
 41     CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \
 42     EXTRA_RC_FLAGS := $(JAVA_RC_FLAGS), \
 43     VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
 44     OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/java_objs, \
 45     OPTIMIZATION := HIGH, \
 46     INCLUDE_TSAN := $(INCLUDE_TSAN), \
 47 ))
 48 
 49 $(SUPPORT_OUTPUTDIR)/modules_cmds/java.base/java$(EXE_SUFFIX): $(BUILD_LAUNCHER_java)
 50 	$(call MakeTargetDir)
 51 	$(RM) $@
 52 	$(CP) $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/java_objs/java$(EXE_SUFFIX) $@
 53 
 54 TARGETS += $(SUPPORT_OUTPUTDIR)/modules_cmds/java.base/java$(EXE_SUFFIX)
 55 
 56 ifeq ($(call isTargetOs, windows), true)
 57   $(eval $(call SetupBuildLauncher, javaw, \
 58       CFLAGS := -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \
 59       EXTRA_RC_FLAGS := $(JAVA_RC_FLAGS), \
 60       VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
 61   ))
 62 endif
 63 
 64 $(eval $(call SetupBuildLauncher, keytool, \
 65     MAIN_CLASS := sun.security.tools.keytool.Main, \
 66 ))
 67 
 68 ################################################################################
 69 
 70 ifeq ($(call isTargetOs, linux), true)
 71   $(eval $(call SetupJdkExecutable, BUILD_JEXEC, \
 72       NAME := jexec, \
 73       SRC := $(TOPDIR)/src/$(MODULE)/unix/native/launcher, \
 74       INCLUDE_FILES := jexec.c, \
 75       OPTIMIZATION := LOW, \
 76       CFLAGS := $(CFLAGS_JDKEXE) \
 77           -I$(TOPDIR)/src/$(MODULE)/share/native/libjli, \
 78       CFLAGS_linux := -fPIC, \
 79       CFLAGS_solaris := -KPIC, \
 80       LDFLAGS := $(LDFLAGS_JDKEXE), \
 81       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
 82   ))
 83 
 84   TARGETS += $(BUILD_JEXEC)
 85 endif
 86 
 87 ################################################################################
 88 
 89 ifeq ($(call isTargetOs, macosx solaris aix linux), true)
 90   $(eval $(call SetupJdkExecutable, BUILD_JSPAWNHELPER, \
 91       NAME := jspawnhelper, \
 92       SRC := $(TOPDIR)/src/$(MODULE)/unix/native/jspawnhelper, \
 93       OPTIMIZATION := LOW, \
 94       CFLAGS := $(CFLAGS_JDKEXE) -I$(TOPDIR)/src/$(MODULE)/unix/native/libjava, \
 95       EXTRA_OBJECT_FILES := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjava/childproc.o, \
 96       LDFLAGS := $(LDFLAGS_JDKEXE), \
 97       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
 98   ))
 99 
100   TARGETS += $(BUILD_JSPAWNHELPER)
101 endif
102 
103 ################################################################################