spec.gmk.in revision 504:78bb27faf889
1251876Speter#
2251876Speter# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
3251876Speter# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4251876Speter#
5251876Speter# This code is free software; you can redistribute it and/or modify it
6251876Speter# under the terms of the GNU General Public License version 2 only, as
7251876Speter# published by the Free Software Foundation.  Oracle designates this
8251876Speter# particular file as subject to the "Classpath" exception as provided
9251876Speter# by Oracle in the LICENSE file that accompanied this code.
10251876Speter#
11251876Speter# This code is distributed in the hope that it will be useful, but WITHOUT
12251876Speter# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13251876Speter# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14251876Speter# version 2 for more details (a copy is included in the LICENSE file that
15251876Speter# accompanied this code).
16251876Speter#
17251876Speter# You should have received a copy of the GNU General Public License version
18251876Speter# 2 along with this work; if not, write to the Free Software Foundation,
19251876Speter# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20251876Speter#
21251876Speter# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22251876Speter# or visit www.oracle.com if you need additional information or have any
23251876Speter# questions.
24251876Speter#
25251876Speter
26251876Speter# Configured @DATE_WHEN_CONFIGURED@ to build
27251876Speter# for target system @OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU@
28251876Speter#   (called @OPENJDK_TARGET_AUTOCONF_NAME@ by autoconf)
29251876Speter# on build system @OPENJDK_BUILD_OS@-@OPENJDK_BUILD_CPU@
30251876Speter#   (called @OPENJDK_BUILD_AUTOCONF_NAME@ by autoconf)
31251876Speter# using 'configure @CONFIGURE_COMMAND_LINE@'
32251876Speter
33251876Speter# When calling macros, the spaces between arguments are 
34251876Speter# often semantically important! Sometimes we need to subst 
35251876Speter# spaces and commas, therefore we need the following macros.
36251876SpeterX:=
37251876SpeterSPACE:=$(X) $(X)
38251876SpeterCOMMA:=,
39251876SpeterHASH:=\#
40251876SpeterSQUOTE:='
41251876Speter#'
42251876SpeterDQUOTE:="
43251876Speter#"
44251876Speterdefine NEWLINE
45251876Speter
46251876Speter
47251876Speterendef
48251876Speter
49251876Speter# A self-referential reference to this file.
50251876SpeterSPEC:=@SPEC@
51251876Speter
52251876Speter# Specify where the spec file is.
53251876SpeterMAKE_ARGS="SPEC=$(SPEC)"
54251876Speter
55251876SpeterMAKE:=@MAKE@
56251876Speter
57251876Speter# Pass along the verbosity setting.
58251876Speterifeq (,$(findstring VERBOSE=,$(MAKE)))
59251876Speter    MAKE:=$(MAKE) $(VERBOSE) VERBOSE="$(VERBOSE)"
60251876Speterendif
61251876Speter
62251876Speter# No implicit variables or rules!
63251876Speterifeq (,$(findstring -R,$(MAKE)))
64251876Speter    MAKE:=$(MAKE) -R
65251876Speterendif
66251876Speter
67251876Speter# Specify where the common include directory for makefiles is.
68251876Speterifeq (,$(findstring -I @SRC_ROOT@/common/makefiles,$(MAKE)))
69251876Speter    MAKE:=$(MAKE) -I @SRC_ROOT@/common/makefiles
70251876Speterendif
71251876Speter
72251876Speter# The "human readable" name of this configuration
73251876SpeterCONF_NAME:=@CONF_NAME@
74251876Speter
75251876Speter# The built jdk will run in this target system.
76251876SpeterOPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@
77251876SpeterOPENJDK_TARGET_OS_API:=@OPENJDK_TARGET_OS_API@
78251876SpeterOPENJDK_TARGET_OS_ENV:=@OPENJDK_TARGET_OS_ENV@
79251876Speter
80251876SpeterOPENJDK_TARGET_CPU:=@OPENJDK_TARGET_CPU@
81251876SpeterOPENJDK_TARGET_CPU_ARCH:=@OPENJDK_TARGET_CPU_ARCH@
82251876SpeterOPENJDK_TARGET_CPU_BITS:=@OPENJDK_TARGET_CPU_BITS@
83251876SpeterOPENJDK_TARGET_CPU_ENDIAN:=@OPENJDK_TARGET_CPU_ENDIAN@
84251876Speter
85251876SpeterCOMPILE_TYPE:=@COMPILE_TYPE@
86251876Speter
87251876Speter# Legacy support
88251876SpeterOPENJDK_TARGET_CPU_ISADIR:=@OPENJDK_TARGET_CPU_ISADIR@
89251876SpeterOPENJDK_TARGET_CPU_LIBDIR:=@OPENJDK_TARGET_CPU_LIBDIR@
90251876SpeterOPENJDK_TARGET_CPU_LEGACY:=@OPENJDK_TARGET_CPU_LEGACY@
91251876SpeterOPENJDK_TARGET_CPU_LEGACY_LIB:=@OPENJDK_TARGET_CPU_LEGACY_LIB@
92251876SpeterOPENJDK_TARGET_CPU_OSARCH:=@OPENJDK_TARGET_CPU_OSARCH@
93251876SpeterOPENJDK_TARGET_CPU_JLI_CFLAGS:=@OPENJDK_TARGET_CPU_JLI_CFLAGS@
94251876SpeterOPENJDK_TARGET_OS_API_DIR:=@OPENJDK_TARGET_OS_API_DIR@
95251876Speter
96251876Speter# We are building on this build system.
97251876Speter# When not cross-compiling, it is the same as the target.
98251876SpeterOPENJDK_BUILD_OS:=@OPENJDK_BUILD_OS@
99251876SpeterOPENJDK_BUILD_OS_API:=@OPENJDK_BUILD_OS_API@
100251876Speter
101251876SpeterOPENJDK_BUILD_CPU:=@OPENJDK_BUILD_CPU@
102251876SpeterOPENJDK_BUILD_CPU_ARCH:=@OPENJDK_BUILD_CPU_ARCH@
103251876SpeterOPENJDK_BUILD_CPU_BITS:=@OPENJDK_BUILD_CPU_BITS@
104251876SpeterOPENJDK_BUILD_CPU_ENDIAN:=@OPENJDK_BUILD_CPU_ENDIAN@
105251876Speter
106251876Speter# Legacy OS values for use in release file.
107251876SpeterREQUIRED_OS_NAME:=@REQUIRED_OS_NAME@
108251876SpeterREQUIRED_OS_VERSION:=@REQUIRED_OS_VERSION@
109251876Speter
110251876Speter@SET_OPENJDK@
111251876SpeterLIBM:=-lm
112251876SpeterLIBDL:=@LIBDL@
113251876Speter
114251876Speter# colon or semicolon
115251876SpeterPATH_SEP:=@PATH_SEP@
116251876Speter
117251876Speterifeq ($(OPENJDK_TARGET_OS), windows)
118251876Speter  # On Windows, the Visual Studio toolchain needs the LIB and INCLUDE
119251876Speter  # environment variables (in Windows path style), and the PATH needs to
120251876Speter  # be adjusted to include Visual Studio tools (but this needs to be in
121251876Speter  # cygwin/msys style).
122251876Speter  export PATH:=@VS_PATH@
123251876Speter  export INCLUDE:=@VS_INCLUDE@
124251876Speter  export LIB:=@VS_LIB@
125251876Speterendif
126251876Speter
127251876Speter# The sys root where standard headers and libraries are found.
128251876Speter# Usually not needed since the configure script should have
129251876Speter# taken it into account already when setting CFLAGS et al.
130251876SpeterSYS_ROOT:=@SYS_ROOT@
131251876Speter
132251876Speter# Paths to the source code
133251876SpeterSRC_ROOT:=@SRC_ROOT@
134251876SpeterADD_SRC_ROOT:=@ADD_SRC_ROOT@
135251876SpeterOVERRIDE_SRC_ROOT:=@OVERRIDE_SRC_ROOT@
136251876SpeterTOPDIR:=@SRC_ROOT@
137251876SpeterOUTPUT_ROOT:=@OUTPUT_ROOT@
138251876SpeterJDK_TOPDIR:=@JDK_TOPDIR@
139251876SpeterLANGTOOLS_TOPDIR:=@LANGTOOLS_TOPDIR@
140251876SpeterCORBA_TOPDIR:=@CORBA_TOPDIR@
141251876SpeterJAXP_TOPDIR:=@JAXP_TOPDIR@
142251876SpeterJAXWS_TOPDIR:=@JAXWS_TOPDIR@
143251876SpeterHOTSPOT_TOPDIR:=@HOTSPOT_TOPDIR@
144251876SpeterCOPYRIGHT_YEAR:=@COPYRIGHT_YEAR@
145251876Speter
146251876Speter# Location where build customization files may be found
147251876SpeterCUSTOM_MAKE_DIR:=@CUSTOM_MAKE_DIR@
148251876Speter
149251876Speter# Information gathered from the version.numbers file.
150251876SpeterJDK_MAJOR_VERSION:=@JDK_MAJOR_VERSION@
151251876SpeterJDK_MINOR_VERSION:=@JDK_MINOR_VERSION@
152251876SpeterJDK_MICRO_VERSION:=@JDK_MICRO_VERSION@
153251876SpeterJDK_UPDATE_VERSION:=@JDK_UPDATE_VERSION@
154251876SpeterJDK_BUILD_NUMBER:=@JDK_BUILD_NUMBER@
155251876SpeterMILESTONE:=@MILESTONE@
156251876SpeterLAUNCHER_NAME:=@LAUNCHER_NAME@
157251876SpeterPRODUCT_NAME:=@PRODUCT_NAME@
158251876SpeterPRODUCT_SUFFIX:=@PRODUCT_SUFFIX@
159251876SpeterJDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@
160251876SpeterCOMPANY_NAME:=@COMPANY_NAME@
161251876SpeterMACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@
162251876SpeterMACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@
163251876Speter
164251876Speter# Different version strings generated from the above information.
165251876SpeterJDK_VERSION:=@JDK_VERSION@
166251876SpeterRUNTIME_NAME:=@RUNTIME_NAME@
167251876SpeterFULL_VERSION:=@FULL_VERSION@
168251876SpeterJRE_RELEASE_VERSION:=@FULL_VERSION@
169251876SpeterRELEASE:=@RELEASE@
170251876SpeterCOOKED_BUILD_NUMBER:=@COOKED_BUILD_NUMBER@
171251876Speter
172251876Speter# How to compile the code: release, fastdebug or slowdebug
173251876SpeterDEBUG_LEVEL:=@DEBUG_LEVEL@
174251876Speter
175251876Speter# This is the JDK variant to build.
176251876Speter# The JDK variant is a name for a specific set of modules to be compiled for the JDK.
177251876SpeterJDK_VARIANT:=@JDK_VARIANT@
178251876Speter
179251876Speter# Should we compile support for running with a graphical UI? (ie headful)
180251876Speter# Should we compile support for running without? (ie headless)
181251876SpeterSUPPORT_HEADFUL:=@SUPPORT_HEADFUL@
182251876SpeterSUPPORT_HEADLESS:=@SUPPORT_HEADLESS@
183251876Speter# Legacy defines controlled by the SUPPORT_HEADLESS and SUPPORT_HEADFUL options.
184251876Speter@BUILD_HEADLESS@
185251876Speter
186251876Speter# These are the libjvms that we want to build.
187251876Speter# The java launcher uses the default.
188251876Speter# The other can be selected by specifying -client -server -kernel -zero or -zeroshark
189251876Speter# on the java launcher command line.
190251876SpeterJVM_VARIANTS:=@JVM_VARIANTS@
191251876SpeterJVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@
192251876SpeterJVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@
193251876SpeterJVM_VARIANT_KERNEL:=@JVM_VARIANT_KERNEL@
194251876SpeterJVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@
195251876SpeterJVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@
196251876Speter
197251876Speter# Universal binaries on macosx
198251876SpeterMACOSX_UNIVERSAL=@MACOSX_UNIVERSAL@
199251876Speter
200251876Speter# Legacy setting: -debug or -fastdebug
201251876Speter# Still used in version string...
202251876SpeterBUILD_VARIANT_RELEASE:=@BUILD_VARIANT_RELEASE@
203251876Speter
204251876Speter# JDK_OUTPUTDIR specifies where a working jvm is built.
205251876Speter# You can run $(JDK_OUTPUTDIR)/bin/java
206251876Speter# Though the layout of the contents of $(JDK_OUTPUTDIR) is not
207251876Speter# yet the same as a default installation.
208251876Speter#
209251876Speter# When you run "make install" it will create the standardized
210251876Speter# layout for the jdk and the jre inside the IMAGES_OUTPUTDIR subdir.
211251876Speter# Then it will copy the contents of the jdk into the installation
212251876Speter# directory.
213251876Speter
214251876SpeterBUILD_OUTPUT:=@BUILD_OUTPUT@
215251876SpeterLANGTOOLS_OUTPUTDIR=$(BUILD_OUTPUT)/langtools
216251876SpeterCORBA_OUTPUTDIR=$(BUILD_OUTPUT)/corba
217251876SpeterJAXP_OUTPUTDIR=$(BUILD_OUTPUT)/jaxp
218251876SpeterJAXWS_OUTPUTDIR=$(BUILD_OUTPUT)/jaxws
219251876SpeterHOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot
220251876SpeterJDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk
221251876SpeterIMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images
222251876Speter
223251876SpeterLANGTOOLS_DIST=$(LANGTOOLS_OUTPUTDIR)/dist
224251876SpeterCORBA_DIST=$(CORBA_OUTPUTDIR)/dist
225251876SpeterJAXP_DIST=$(JAXP_OUTPUTDIR)/dist
226251876SpeterJAXWS_DIST=$(JAXWS_OUTPUTDIR)/dist
227251876SpeterHOTSPOT_DIST=@HOTSPOT_DIST@
228251876Speter
229251876SpeterBUILD_HOTSPOT=@BUILD_HOTSPOT@
230251876Speter
231251876Speter# The boot jdk to use
232251876SpeterBOOT_JDK:=@BOOT_JDK@
233251876SpeterBOOT_JDK_JVMARGS:=@BOOT_JDK_JVMARGS@
234251876SpeterBOOT_RTJAR:=@BOOT_RTJAR@
235251876SpeterBOOT_TOOLSJAR=$(BOOT_JDK)/lib/tools.jar
236251876Speter
237251876Speter# When compiling Java source to be run by the boot jdk
238251876Speter# use these extra flags, eg -source 6 -target 6
239251876SpeterBOOT_JDK_SOURCETARGET:=@BOOT_JDK_SOURCETARGET@
240251876Speter
241251876Speter# Information about the build system
242251876SpeterNUM_CORES:=@NUM_CORES@
243251876Speter# Enable sjavac support = use a javac server,
244251876Speter# multi core javac compilation and dependency tracking.
245251876SpeterENABLE_SJAVAC:=@ENABLE_SJAVAC@
246251876Speter# Store sjavac server synchronization files here, and
247251876Speter# the sjavac server log files.
248251876SpeterSJAVAC_SERVER_DIR:=@SJAVAC_SERVER_DIR@
249251876Speter# We can block the Javac server to never use more cores than this.
250251876Speter# This is not for performance reasons, but for memory usage, since each
251251876Speter# core requires its own JavaCompiler. We might have 64 cores and 4GB
252251876Speter# of memory, 64 JavaCompilers will currently not fit in a 3GB heap.
253251876Speter# Since there is no sharing of data between the JavaCompilers.
254251876SpeterSJAVAC_SERVER_CORES:=@SJAVAC_SERVER_CORES@
255251876Speter
256251876Speter# The OpenJDK makefiles should be changed to using the standard
257251876Speter# configure output ..._CFLAGS and ..._LIBS. In the meantime we
258251876Speter# extract the information here.
259251876SpeterFREETYPE2_LIB_PATH:=@FREETYPE2_LIB_PATH@
260251876SpeterFREETYPE2_LIBS:=@FREETYPE2_LIBS@
261251876SpeterFREETYPE2_CFLAGS:=@FREETYPE2_CFLAGS@
262251876SpeterUSING_SYSTEM_FT_LIB=@USING_SYSTEM_FT_LIB@
263251876SpeterCUPS_CFLAGS:=@CUPS_CFLAGS@
264251876Speter
265251876SpeterPACKAGE_PATH=@PACKAGE_PATH@
266251876Speter
267251876Speter# Source file for cacerts
268251876SpeterCACERTS_FILE=@CACERTS_FILE@
269251876Speter
270251876Speter# Enable unlimited crypto policy
271251876SpeterUNLIMITED_CRYPTO=@UNLIMITED_CRYPTO@
272251876Speter
273251876Speter# Necessary additional compiler flags to compile X11 
274251876SpeterX_CFLAGS:=@X_CFLAGS@
275251876SpeterX_LIBS:=@X_LIBS@
276251876SpeterOPENWIN_HOME:=@OPENWIN_HOME@
277251876Speter
278251876Speter# There are two types: CC or CL
279251876Speter# CC is gcc and others behaving reasonably similar.
280251876Speter# CL is cl.exe only.
281251876SpeterCOMPILER_TYPE:=@COMPILER_TYPE@
282251876Speter
283251876SpeterCC_OUT_OPTION:=@CC_OUT_OPTION@
284251876SpeterEXE_OUT_OPTION:=@EXE_OUT_OPTION@
285251876SpeterLD_OUT_OPTION:=@LD_OUT_OPTION@
286251876SpeterAR_OUT_OPTION:=@AR_OUT_OPTION@
287251876Speter
288251876Speter# Flags used for overriding the default opt setting for a C/C++ source file.
289251876SpeterC_O_FLAG_HIGHEST:=@C_O_FLAG_HIGHEST@
290251876SpeterC_O_FLAG_HI:=@C_O_FLAG_HI@
291251876SpeterC_O_FLAG_NORM:=@C_O_FLAG_NORM@
292251876SpeterC_O_FLAG_NONE:=@C_O_FLAG_NONE@
293251876SpeterCXX_O_FLAG_HIGHEST:=@CXX_O_FLAG_HIGHEST@
294251876SpeterCXX_O_FLAG_HI:=@CXX_O_FLAG_HI@
295251876SpeterCXX_O_FLAG_NORM:=@CXX_O_FLAG_NORM@
296251876SpeterCXX_O_FLAG_NONE:=@CXX_O_FLAG_NONE@
297251876Speter
298251876SpeterC_FLAG_DEPS:=@C_FLAG_DEPS@
299251876SpeterCXX_FLAG_DEPS:=@CXX_FLAG_DEPS@
300251876Speter
301251876Speter# Tools that potentially need to be cross compilation aware.
302251876SpeterCC:=@FIXPATH@ @CCACHE@ @CC@
303251876Speter
304251876Speter# CFLAGS used to compile the jdk native libraries (C-code)
305251876SpeterCFLAGS_JDKLIB:=@CFLAGS_JDKLIB@
306251876SpeterCXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@
307251876Speter
308251876Speter# CFLAGS used to compile the jdk native launchers (C-code)
309251876SpeterCFLAGS_JDKEXE:=@CFLAGS_JDKEXE@
310251876SpeterCXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@
311251876Speter
312251876SpeterCXX:=@FIXPATH@ @CCACHE@ @CXX@
313251876Speter#CXXFLAGS:=@CXXFLAGS@
314251876Speter
315251876SpeterOBJC:=@CCACHE@ @OBJC@
316251876Speter#OBJCFLAGS:=@OBJCFLAGS@
317251876Speter
318251876SpeterCPP:=@FIXPATH@ @CPP@
319251876Speter#CPPFLAGS:=@CPPFLAGS@
320251876Speter
321251876Speter# The linker can be gcc or ld on posix systems, or link.exe on windows systems.
322251876SpeterLD:=@FIXPATH@ @LD@
323251876Speter
324251876Speter# LDFLAGS used to link the jdk native libraries (C-code)
325251876SpeterLDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@
326251876SpeterLDFLAGS_JDKLIB_SUFFIX:=@LDFLAGS_JDKLIB_SUFFIX@
327251876Speter
328251876Speter# On some platforms the linker cannot be used to create executables, thus
329251876Speter# the need for a separate LDEXE command.
330251876SpeterLDEXE:=@FIXPATH@ @LDEXE@
331251876Speter
332251876Speter# LDFLAGS used to link the jdk native launchers (C-code)
333251876SpeterLDFLAGS_JDKEXE:=@LDFLAGS_JDKEXE@
334251876SpeterLDFLAGS_JDKEXE_SUFFIX:=@LDFLAGS_JDKEXE_SUFFIX@
335251876Speter
336251876Speter# LDFLAGS specific to C++ linking.
337251876SpeterLDFLAGS_CXX_JDK:=@LDFLAGS_CXX_JDK@
338251876Speter
339251876Speter# Sometimes a different linker is needed for c++ libs
340251876SpeterLDCXX:=@FIXPATH@ @LDCXX@
341251876Speter# The flags for linking libstdc++ linker.
342251876SpeterLIBCXX:=@LIBCXX@
343251876Speter
344251876Speter# Sometimes a different linker is needed for c++ executables
345251876SpeterLDEXECXX:=@FIXPATH@ @LDEXECXX@
346251876Speter
347251876Speter# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the
348251876Speter# build platform.
349251876SpeterBUILD_CC:=@FIXPATH@ @BUILD_CC@
350251876SpeterBUILD_LD:=@FIXPATH@ @BUILD_LD@
351251876Speter
352251876SpeterAS:=@FIXPATH@ @AS@
353251876Speter
354251876Speter# AR is used to create a static library (is ar in posix, lib.exe in windows)
355251876SpeterAR:=@FIXPATH@ @AR@
356251876SpeterARFLAGS:=@ARFLAGS@
357251876Speter
358251876SpeterNM:=@NM@
359251876SpeterSTRIP:=@STRIP@
360251876SpeterMCS:=@MCS@
361251876Speter
362251876SpeterLIPO:=@LIPO@
363251876Speter
364251876Speter# Command to create a shared library
365251876SpeterSHARED_LIBRARY_FLAGS:=@SHARED_LIBRARY_FLAGS@
366253734Speter
367251876Speter# Options to linker to specify a mapfile. 
368251876Speter# (Note absence of := assignment, because we do not want to evaluate the macro body here)
369251876SpeterSET_SHARED_LIBRARY_MAPFILE=@SET_SHARED_LIBRARY_MAPFILE@
370251876Speter
371251876Speter# Options for C/CXX compiler to be used if linking is performed
372251876Speter#   using reorder file
373251876SpeterC_FLAG_REORDER:=@C_FLAG_REORDER@
374251876SpeterCXX_FLAG_REORDER:=@CXX_FLAG_REORDER@
375251876Speter
376251876Speter#
377251876Speter# Options for generating debug symbols
378251876SpeterENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@
379251876SpeterCFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
380251876SpeterCXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
381251876SpeterZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
382251876Speter
383251876Speter#
384251876Speter# Compress (or not) jars
385251876SpeterCOMPRESS_JARS=@COMPRESS_JARS@
386251876Speter
387251876Speter# Options to linker to specify the library name.
388251876Speter# (Note absence of := assignment, because we do not want to evaluate the macro body here)
389251876SpeterSET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@
390251876Speter
391251876Speter# Set origin using the linker, ie use the relative path to the dependent library to find the dependees.
392251876Speter# (Note absence of := assignment, because we do not want to evaluate the macro body here)
393251876SpeterSET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@
394251876SpeterSET_EXECUTABLE_ORIGIN=@SET_EXECUTABLE_ORIGIN@
395253734Speter
396253734Speter# Different OS:es have different ways of naming shared libraries.
397251876Speter# The SHARED_LIBRARY macro takes "verify" as and argument and returns:
398251876Speter#    "libverify.so" or "libverify.dylib" or "verify.dll" depending on platform.
399251876Speter# (Note absence of := assignment, because we do not want to evaluate the macro body here)
400251876SpeterSHARED_LIBRARY=@SHARED_LIBRARY@
401251876SpeterSTATIC_LIBRARY=@STATIC_LIBRARY@
402251876SpeterLIBRARY_PREFIX:=@LIBRARY_PREFIX@
403251876SpeterSHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@
404251876SpeterSTATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@
405251876SpeterEXE_SUFFIX:=@EXE_SUFFIX@
406251876SpeterOBJ_SUFFIX:=@OBJ_SUFFIX@
407251876Speter
408251876SpeterPOST_STRIP_CMD:=@POST_STRIP_CMD@
409251876SpeterPOST_MCS_CMD:=@POST_MCS_CMD@
410251876Speter
411251876SpeterJAVA_FLAGS:=@BOOT_JDK_JVMARGS@
412251876Speter
413251876SpeterJAVA=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS)
414251876Speter
415251876SpeterJAVAC=@FIXPATH@ $(BOOT_JDK)/bin/javac
416251876Speter# Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid
417251876Speter# overriding that value by using ?=.
418251876SpeterJAVAC_FLAGS?=@JAVAC_FLAGS@
419251876Speter
420251876SpeterJAVAH=@FIXPATH@ $(BOOT_JDK)/bin/javah
421251876Speter
422251876SpeterJAR=@FIXPATH@ $(BOOT_JDK)/bin/jar
423251876Speter
424251876SpeterRMIC=@FIXPATH@ $(BOOT_JDK)/bin/rmic
425251876Speter
426251876SpeterNATIVE2ASCII=@FIXPATH@ $(BOOT_JDK)/bin/native2ascii
427251876Speter
428251876Speter# Base flags for RC
429251876Speter# Guarding this against resetting value. Legacy make files include spec multiple
430251876Speter# times.
431251876Speterifndef RC_FLAGS
432251876SpeterRC_FLAGS:=@RC_FLAGS@
433251876Speterendif
434251876Speter
435251876Speter# A specific java binary with specific options can be used to run
436251876Speter# the long running background sjavac servers and other long running tasks.
437251876SpeterSJAVAC_SERVER_JAVA:=@FIXPATH@ @SJAVAC_SERVER_JAVA@
438251876Speter
439251876Speter# Tools adhering to a minimal and common standard of posix compliance.
440251876SpeterAWK:=@AWK@
441251876SpeterBASENAME:=@BASENAME@
442251876SpeterBASH:=@BASH@
443251876SpeterCAT:=@CAT@
444251876SpeterCCACHE:=@CCACHE@
445251876Speter# CD is going away, but remains to cater for legacy makefiles.
446251876SpeterCD:=cd
447251876SpeterCHMOD:=@CHMOD@
448251876SpeterCP:=@CP@
449251876SpeterCUT:=@CUT@
450251876SpeterDATE:=@DATE@
451251876SpeterDIFF:=@DIFF@
452251876SpeterFIND:=@FIND@
453251876SpeterFIND_DELETE:=@FIND_DELETE@
454251876SpeterECHO:=@ECHO@
455251876SpeterEGREP:=@EGREP@
456251876SpeterFGREP:=@FGREP@
457251876SpeterGREP:=@GREP@
458251876SpeterHEAD:=@HEAD@
459251876SpeterLS:=@LS@
460251876SpeterLN:=@LN@
461251876SpeterMKDIR:=@MKDIR@
462251876SpeterMV:=@MV@
463251876SpeterNAWK:=@NAWK@
464251876SpeterPRINTF:=@PRINTF@
465251876SpeterPWD:=@THEPWDCMD@
466251876SpeterRM:=@RM@
467251876SpeterSED:=@SED@
468251876SpeterSH:=@SH@
469251876SpeterSORT:=@SORT@
470251876SpeterTAR:=@TAR@
471251876SpeterTAIL:=@TAIL@
472251876SpeterTEE:=@TEE@
473251876SpeterTIME:=@TIME@
474251876SpeterTR:=@TR@
475251876SpeterTOUCH:=@TOUCH@
476251876SpeterWC:=@WC@
477251876SpeterXARGS:=@XARGS@
478251876SpeterZIPEXE:=@ZIP@
479251876SpeterZIP:=@ZIP@
480251876SpeterUNZIP:=@UNZIP@
481251876SpeterMT:=@FIXPATH@ @MT@
482251876SpeterRC:=@FIXPATH@ @RC@
483251876SpeterDUMPBIN:=@FIXPATH@ @DUMPBIN@
484251876SpeterCYGPATH:=@CYGPATH@
485251876SpeterLDD:=@LDD@
486251876SpeterOTOOL:=@OTOOL@
487251876SpeterREADELF:=@READELF@
488251876SpeterEXPR:=@EXPR@
489251876SpeterFILE:=@FILE@
490251876SpeterHG:=@HG@
491251876SpeterOBJCOPY:=@OBJCOPY@
492251876SpeterSETFILE:=@SETFILE@
493251876Speter
494251876SpeterFIXPATH:=@FIXPATH@
495251876Speter
496251876Speter# Where the build output is stored for your convenience.
497251876SpeterBUILD_LOG:=@BUILD_LOG@
498251876SpeterBUILD_LOG_PREVIOUS:=@BUILD_LOG_PREVIOUS@
499251876SpeterBUILD_LOG_WRAPPER:=@BUILD_LOG_WRAPPER@
500251876Speter
501251876Speter# Build setup
502251876SpeterENABLE_JFR=@ENABLE_JFR@
503251876SpeterUSE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
504251876SpeterUSE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
505251876SpeterUSE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
506251876SpeterLIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
507251876SpeterMSVCR_DLL:=@MSVCR_DLL@
508251876Speter
509251876Speter
510251876Speter# ADD_SRCS takes a single argument with source roots
511251876Speter# and appends any corresponding source roots found
512251876Speter# below --with-add-source-root and below
513251876Speter# --with-override-source-root. It is the responsibility
514251876Speter# of the next macro to get rid of superfluous files.
515251876SpeterADD_SRCS=$1
516251876Speterifneq (,$(ADD_SRC_ROOT))
517251876Speter    # Append wildcard rule to pickup any matching source roots found below ADD_SRC_ROOT 
518251876Speter    ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(ADD_SRC_ROOT),$1))
519251876Speterendif
520251876Speterifneq (,$(OVERRIDE_SRC_ROOT))
521251876Speter    # Append wildcard rule to pickup any matching source roots found below OVERRIDE_SRC_ROOT 
522251876Speter    ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(OVERRIDE_SRC_ROOT),$1))
523251876Speterendif
524251876Speter
525251876Speter# OVR_SRCS creates a filter expression to filter out sources in
526251876Speter# the original source directory that lie inside directories below
527251876Speter# --with-override-source-root.
528251876Speter# Use := here since we want to scan for these files here. To avoid recomputation later.
529251876Speter# We cannot do the scan in configure, since that would force us to rerun configure when
530251876Speter# we add overridden sources.
531251876Speterifneq (,$(OVERRIDE_SRC_ROOT))
532251876Speter    OVR_SRCS:=$(addsuffix %,$(subst $(OVERRIDE_SRC_ROOT),$(SRC_ROOT),$(sort $(dir $(shell $(FIND) $(OVERRIDE_SRC_ROOT) -type f)))))
533251876Speterelse
534251876Speter    OVR_SRCS:=
535251876Speterendif
536251876Speter
537251876Speter####################################################
538251876Speter#
539251876Speter# INSTALLATION
540251876Speter#
541251876Speter
542251876Speter# Common prefix for all installed files. Defaults to /usr/local,
543251876Speter# but /opt/myjdk is another common version. 
544251876SpeterINSTALL_PREFIX=@prefix@
545251876Speter
546251876Speter# Directories containing architecture-dependent files should be relative to exec_prefix
547251876SpeterINSTALL_EXECPREFIX=@exec_prefix@
548251876Speter
549251876Speter# java,javac,javah,javap etc are installed here.
550251876SpeterINSTALL_BINDIR=@bindir@
551251876Speter
552251876Speter# Read only architecture-independent data
553251876SpeterINSTALL_DATADIR=@datadir@
554251876Speter
555251876Speter# Root of above.
556251876SpeterINSTALL_DATAROOTDIR=@datarootdir@
557251876Speter
558251876Speter# Doc files, other than info and man.
559251876SpeterINSTALL_DOCDIR=@docdir@
560251876Speter
561251876Speter# Html documentation
562251876SpeterINSTALL_HTMLDIR=@htmldir@
563251876Speter
564251876Speter# Installing C header files, JNI headers for example.
565251876SpeterINSTALL_INCLUDEDIR=@includedir@
566251876Speter
567251876Speter# Installing library files....
568251876SpeterINSTALL_INCLUDEDIR=@libdir@
569251876Speter
570251876Speter# Executables that other programs run.
571251876SpeterINSTALL_LIBEXECDIR=@libexecdir@
572251876Speter
573251876Speter# Locale-dependent but architecture-independent data, such as message catalogs. 
574251876SpeterINSTALL_LOCALEDIR=@localedir@
575251876Speter
576251876Speter# Modifiable single-machine data
577251876SpeterINSTALL_LOCALSTATEDIR=@localstatedir@
578251876Speter
579251876Speter# Man pages
580251876SpeterINSTALL_MANDIR=@mandir@
581251876Speter
582251876Speter# Modifiable architecture-independent data.
583251876SpeterINSTALL_SHAREDSTATEDIR=@sharedstatedir@
584251876Speter
585251876Speter# Read-only single-machine data
586251876SpeterINSTALL_SYSCONFDIR=@sysconfdir@
587251876Speter
588251876Speter
589251876Speter####################################################
590251876Speter#
591251876Speter# Misc
592251876Speter#
593251876Speter
594251876Speter# Name of Service Agent library
595251876SpeterSALIB_NAME=@SALIB_NAME@
596251876Speter
597251876SpeterOS_VERSION_MAJOR:=@OS_VERSION_MAJOR@
598251876SpeterOS_VERSION_MINOR:=@OS_VERSION_MINOR@
599251876SpeterOS_VERSION_MICRO:=@OS_VERSION_MICRO@
600251876Speter
601251876Speter# Include the custom-spec.gmk file if it exists
602251876Speter-include $(dir @SPEC@)/custom-spec.gmk
603251876Speter