spec.gmk.in revision 1234:d52ae6b38836
1240116Smarcel# 2240116Smarcel# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. 3240116Smarcel# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4240116Smarcel# 5240116Smarcel# This code is free software; you can redistribute it and/or modify it 6240116Smarcel# under the terms of the GNU General Public License version 2 only, as 7240116Smarcel# published by the Free Software Foundation. Oracle designates this 8240116Smarcel# particular file as subject to the "Classpath" exception as provided 9240116Smarcel# by Oracle in the LICENSE file that accompanied this code. 10240116Smarcel# 11240116Smarcel# This code is distributed in the hope that it will be useful, but WITHOUT 12240116Smarcel# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13240116Smarcel# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14240116Smarcel# version 2 for more details (a copy is included in the LICENSE file that 15240116Smarcel# accompanied this code). 16240116Smarcel# 17240116Smarcel# You should have received a copy of the GNU General Public License version 18240116Smarcel# 2 along with this work; if not, write to the Free Software Foundation, 19240116Smarcel# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20240116Smarcel# 21240116Smarcel# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22240116Smarcel# or visit www.oracle.com if you need additional information or have any 23240116Smarcel# questions. 24240116Smarcel# 25240116Smarcel 26273929Sjmmv# Configured @DATE_WHEN_CONFIGURED@ to build 27273929Sjmmv# for target system @OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU@ 28240116Smarcel# (called @OPENJDK_TARGET_AUTOCONF_NAME@ by autoconf) 29240116Smarcel# on build system @OPENJDK_BUILD_OS@-@OPENJDK_BUILD_CPU@ 30240116Smarcel# (called @OPENJDK_BUILD_AUTOCONF_NAME@ by autoconf) 31240116Smarcel# using 'configure @CONFIGURE_COMMAND_LINE@' 32240116Smarcel 33240116Smarcel# When calling macros, the spaces between arguments are 34240116Smarcel# often semantically important! Sometimes we need to subst 35240116Smarcel# spaces and commas, therefore we need the following macros. 36240116SmarcelX:= 37240116SmarcelSPACE:=$(X) $(X) 38273929SjmmvCOMMA:=, 39240116SmarcelDOLLAR:=$$ 40273929SjmmvHASH:=\# 41273929SjmmvLEFT_PAREN:=( 42273929SjmmvRIGHT_PAREN:=) 43273929SjmmvSQUOTE:=' 44273929Sjmmv#' 45273929SjmmvDQUOTE:=" 46240116Smarcel#" 47240116Smarceldefine NEWLINE 48240116Smarcel 49240116Smarcel 50240116Smarcelendef 51240116Smarcel 52240116Smarcel# The command line given to configure. 53240116SmarcelCONFIGURE_COMMAND_LINE:=@CONFIGURE_COMMAND_LINE@ 54240116Smarcel 55240116Smarcel# A self-referential reference to this file. 56240116SmarcelSPEC:=@SPEC@ 57240116Smarcel 58240116Smarcel# Specify where the spec file is. 59240116SmarcelMAKE_ARGS="SPEC=$(SPEC)" 60240116Smarcel 61240116SmarcelMAKE:=@MAKE@ 62240116Smarcel 63240116Smarcel# Pass along the verbosity and log level settings. 64240116Smarcelifeq (,$(findstring VERBOSE=,$(MAKE))) 65240116Smarcel MAKE:=$(MAKE) $(VERBOSE) VERBOSE="$(VERBOSE)" LOG_LEVEL="$(LOG_LEVEL)" 66240116Smarcelendif 67240116Smarcel 68240116Smarcel# No implicit variables or rules! 69240116Smarcelifeq (,$(findstring -R,$(MAKE))) 70240116Smarcel MAKE:=$(MAKE) -R 71240116Smarcelendif 72240116Smarcel 73240116Smarcel# Specify where the common include directory for makefiles is. 74240116Smarcelifeq (,$(findstring -I @TOPDIR@/make/common,$(MAKE))) 75240116Smarcel MAKE:=$(MAKE) -I @TOPDIR@/make/common 76240116Smarcelendif 77240116Smarcel 78240116SmarcelOUTPUT_SYNC_SUPPORTED:=@OUTPUT_SYNC_SUPPORTED@ 79240116SmarcelOUTPUT_SYNC:=@OUTPUT_SYNC@ 80240116Smarcel 81240116Smarcel# The "human readable" name of this configuration 82240116SmarcelCONF_NAME:=@CONF_NAME@ 83240116Smarcel 84240116Smarcel# The built jdk will run in this target system. 85240116SmarcelOPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@ 86240116SmarcelOPENJDK_TARGET_OS_TYPE:=@OPENJDK_TARGET_OS_TYPE@ 87240116SmarcelOPENJDK_TARGET_OS_ENV:=@OPENJDK_TARGET_OS_ENV@ 88240116Smarcel 89240116SmarcelOPENJDK_TARGET_CPU:=@OPENJDK_TARGET_CPU@ 90240116SmarcelOPENJDK_TARGET_CPU_ARCH:=@OPENJDK_TARGET_CPU_ARCH@ 91240116SmarcelOPENJDK_TARGET_CPU_BITS:=@OPENJDK_TARGET_CPU_BITS@ 92240116SmarcelOPENJDK_TARGET_CPU_ENDIAN:=@OPENJDK_TARGET_CPU_ENDIAN@ 93240116Smarcel 94240116SmarcelCOMPILE_TYPE:=@COMPILE_TYPE@ 95240116Smarcel 96240116Smarcel# Legacy support 97240116SmarcelOPENJDK_TARGET_CPU_ISADIR:=@OPENJDK_TARGET_CPU_ISADIR@ 98240116SmarcelOPENJDK_TARGET_CPU_LIBDIR:=@OPENJDK_TARGET_CPU_LIBDIR@ 99240116SmarcelOPENJDK_TARGET_CPU_LEGACY:=@OPENJDK_TARGET_CPU_LEGACY@ 100240116SmarcelOPENJDK_TARGET_CPU_LEGACY_LIB:=@OPENJDK_TARGET_CPU_LEGACY_LIB@ 101240116SmarcelOPENJDK_TARGET_CPU_OSARCH:=@OPENJDK_TARGET_CPU_OSARCH@ 102240116SmarcelOPENJDK_TARGET_CPU_JLI_CFLAGS:=@OPENJDK_TARGET_CPU_JLI_CFLAGS@ 103240116SmarcelOPENJDK_TARGET_OS_EXPORT_DIR:=@OPENJDK_TARGET_OS_EXPORT_DIR@ 104240116Smarcel 105240116Smarcel# We are building on this build system. 106240116Smarcel# When not cross-compiling, it is the same as the target. 107240116SmarcelOPENJDK_BUILD_OS:=@OPENJDK_BUILD_OS@ 108240116SmarcelOPENJDK_BUILD_OS_TYPE:=@OPENJDK_BUILD_OS_TYPE@ 109240116SmarcelOPENJDK_BUILD_OS_ENV:=@OPENJDK_BUILD_OS_ENV@ 110240116Smarcel 111240116SmarcelOPENJDK_BUILD_CPU:=@OPENJDK_BUILD_CPU@ 112240116SmarcelOPENJDK_BUILD_CPU_ARCH:=@OPENJDK_BUILD_CPU_ARCH@ 113240116SmarcelOPENJDK_BUILD_CPU_BITS:=@OPENJDK_BUILD_CPU_BITS@ 114240116SmarcelOPENJDK_BUILD_CPU_ENDIAN:=@OPENJDK_BUILD_CPU_ENDIAN@ 115240116Smarcel 116240116Smarcel# Legacy OS values for use in release file. 117240116SmarcelREQUIRED_OS_NAME:=@REQUIRED_OS_NAME@ 118240116SmarcelREQUIRED_OS_VERSION:=@REQUIRED_OS_VERSION@ 119240116Smarcel 120240116Smarcel@SET_OPENJDK@ 121240116SmarcelLIBM:=-lm 122240116SmarcelLIBDL:=@LIBDL@ 123240116Smarcel 124240116Smarcel# colon or semicolon 125240116SmarcelPATH_SEP:=@PATH_SEP@ 126240116Smarcel 127240116Smarcelifeq ($(OPENJDK_TARGET_OS), windows) 128240116Smarcel # On Windows, the Visual Studio toolchain needs the LIB and INCLUDE 129240116Smarcel # environment variables (in Windows path style), and the PATH needs to 130240116Smarcel # be adjusted to include Visual Studio tools (but this needs to be in 131240116Smarcel # cygwin/msys style). 132240116Smarcel export PATH:=@VS_PATH@ 133240116Smarcel export INCLUDE:=@VS_INCLUDE@ 134240116Smarcel export LIB:=@VS_LIB@ 135240116Smarcelendif 136240116Smarcel 137240116SmarcelSYSROOT_CFLAGS := @SYSROOT_CFLAGS@ 138240116SmarcelSYSROOT_LDFLAGS := @SYSROOT_LDFLAGS@ 139240116Smarcel 140240116Smarcel# Paths to the source code 141240116SmarcelADD_SRC_ROOT:=@ADD_SRC_ROOT@ 142240116SmarcelOVERRIDE_SRC_ROOT:=@OVERRIDE_SRC_ROOT@ 143240116Smarcel 144240116Smarcel# The top-level directory of the forest (SRC_ROOT is a traditional alias) 145240116SmarcelTOPDIR:=@TOPDIR@ 146240116SmarcelSRC_ROOT:=@TOPDIR@ 147240116Smarcel 148240116SmarcelOUTPUT_ROOT:=@OUTPUT_ROOT@ 149240116SmarcelJDK_TOPDIR:=@JDK_TOPDIR@ 150240116SmarcelLANGTOOLS_TOPDIR:=@LANGTOOLS_TOPDIR@ 151240116SmarcelCORBA_TOPDIR:=@CORBA_TOPDIR@ 152240116SmarcelJAXP_TOPDIR:=@JAXP_TOPDIR@ 153240116SmarcelJAXWS_TOPDIR:=@JAXWS_TOPDIR@ 154240116SmarcelHOTSPOT_TOPDIR:=@HOTSPOT_TOPDIR@ 155240116SmarcelNASHORN_TOPDIR:=@NASHORN_TOPDIR@ 156240116SmarcelCOPYRIGHT_YEAR:=@COPYRIGHT_YEAR@ 157240116Smarcel 158240116Smarcel# Information gathered from the version.numbers file. 159240116SmarcelJDK_MAJOR_VERSION:=@JDK_MAJOR_VERSION@ 160240116SmarcelJDK_MINOR_VERSION:=@JDK_MINOR_VERSION@ 161240116SmarcelJDK_MICRO_VERSION:=@JDK_MICRO_VERSION@ 162240116SmarcelJDK_UPDATE_VERSION:=@JDK_UPDATE_VERSION@ 163240116SmarcelJDK_BUILD_NUMBER:=@JDK_BUILD_NUMBER@ 164240116SmarcelMILESTONE:=@MILESTONE@ 165240116SmarcelLAUNCHER_NAME:=@LAUNCHER_NAME@ 166240116SmarcelPRODUCT_NAME:=@PRODUCT_NAME@ 167240116SmarcelPRODUCT_SUFFIX:=@PRODUCT_SUFFIX@ 168240116SmarcelJDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@ 169240116SmarcelCOMPANY_NAME:=@COMPANY_NAME@ 170240116SmarcelMACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@ 171240116SmarcelMACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@ 172240116SmarcelUSER_RELEASE_SUFFIX=@USER_RELEASE_SUFFIX@ 173240116Smarcel 174240116Smarcel# Different version strings generated from the above information. 175240116SmarcelJDK_VERSION:=@JDK_VERSION@ 176240116SmarcelRUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX) 177240116SmarcelCOOKED_BUILD_NUMBER:=@COOKED_BUILD_NUMBER@ 178240116Smarcel# These variables need to be generated here so that MILESTONE and 179240116Smarcel# JDK_BUILD_NUMBER can be overridden on the make command line. 180240116Smarcelifeq ($(MILESTONE), fcs) 181240116Smarcel RELEASE=$(JDK_VERSION)$(BUILD_VARIANT_RELEASE) 182240116Smarcelelse 183240116Smarcel RELEASE=$(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE) 184240116Smarcelendif 185240116Smarcel 186240116Smarcelifneq ($(USER_RELEASE_SUFFIX), ) 187240116Smarcel FULL_VERSION=$(RELEASE)-$(USER_RELEASE_SUFFIX)-$(JDK_BUILD_NUMBER) 188240116Smarcelelse 189240116Smarcel FULL_VERSION=$(RELEASE)-$(JDK_BUILD_NUMBER) 190240116Smarcelendif 191240116SmarcelJRE_RELEASE_VERSION:=$(FULL_VERSION) 192240116Smarcel 193240116Smarcel# How to compile the code: release, fastdebug or slowdebug 194240116SmarcelDEBUG_LEVEL:=@DEBUG_LEVEL@ 195240116Smarcel 196240116Smarcel# This is the JDK variant to build. 197240116Smarcel# The JDK variant is a name for a specific set of modules to be compiled for the JDK. 198240116SmarcelJDK_VARIANT:=@JDK_VARIANT@ 199240116Smarcel 200240116Smarcel# Should we compile support for running with a graphical UI? (ie headful) 201240116Smarcel# Should we compile support for running without? (ie headless) 202240116SmarcelSUPPORT_HEADFUL:=@SUPPORT_HEADFUL@ 203240116SmarcelSUPPORT_HEADLESS:=@SUPPORT_HEADLESS@ 204240116Smarcel# Legacy defines controlled by the SUPPORT_HEADLESS and SUPPORT_HEADFUL options. 205240116Smarcel@BUILD_HEADLESS@ 206240116Smarcel 207240116Smarcel# These are the libjvms that we want to build. 208240116Smarcel# The java launcher uses the default. 209240116Smarcel# The others can be selected by specifying -client -server -minimal1 -kernel -zero or -zeroshark 210240116Smarcel# on the java launcher command line. 211240116SmarcelJVM_VARIANTS:=@JVM_VARIANTS@ 212240116SmarcelJVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@ 213240116SmarcelJVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@ 214240116SmarcelJVM_VARIANT_MINIMAL1:=@JVM_VARIANT_MINIMAL1@ 215240116SmarcelJVM_VARIANT_KERNEL:=@JVM_VARIANT_KERNEL@ 216240116SmarcelJVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@ 217240116SmarcelJVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@ 218240116SmarcelJVM_VARIANT_CORE:=@JVM_VARIANT_CORE@ 219240116Smarcel 220240116Smarcel# Universal binaries on macosx 221240116SmarcelMACOSX_UNIVERSAL=@MACOSX_UNIVERSAL@ 222240116Smarcel 223240116Smarcel# Legacy setting: -debug or -fastdebug 224240116Smarcel# Still used in version string... 225240116SmarcelBUILD_VARIANT_RELEASE:=@BUILD_VARIANT_RELEASE@ 226240116Smarcel 227240116Smarcel# JDK_OUTPUTDIR specifies where a working jvm is built. 228240116Smarcel# You can run $(JDK_OUTPUTDIR)/bin/java 229240116Smarcel# Though the layout of the contents of $(JDK_OUTPUTDIR) is not 230240116Smarcel# yet the same as a default installation. 231240116Smarcel# 232240116Smarcel# When you run "make install" it will create the standardized 233240116Smarcel# layout for the jdk and the jre inside the IMAGES_OUTPUTDIR subdir. 234240116Smarcel# Then it will copy the contents of the jdk into the installation 235240116Smarcel# directory. 236240116Smarcel 237240116SmarcelBUILD_OUTPUT:=@BUILD_OUTPUT@ 238240116Smarcel# Colon left out to be able to override IMAGES_OUTPUTDIR for bootcycle-images 239240116SmarcelLANGTOOLS_OUTPUTDIR=$(BUILD_OUTPUT)/langtools 240240116SmarcelCORBA_OUTPUTDIR=$(BUILD_OUTPUT)/corba 241240116SmarcelJAXP_OUTPUTDIR=$(BUILD_OUTPUT)/jaxp 242240116SmarcelJAXWS_OUTPUTDIR=$(BUILD_OUTPUT)/jaxws 243240116SmarcelHOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot 244240116SmarcelJDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk 245240116SmarcelNASHORN_OUTPUTDIR=$(BUILD_OUTPUT)/nashorn 246240116SmarcelIMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images 247240116SmarcelTESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/testmake 248240116SmarcelMAKESUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/make-support 249240116Smarcel 250240116SmarcelLANGTOOLS_DIST=$(LANGTOOLS_OUTPUTDIR)/dist 251240116SmarcelCORBA_DIST=$(CORBA_OUTPUTDIR)/dist 252240116SmarcelJAXP_DIST=$(JAXP_OUTPUTDIR)/dist 253240116SmarcelJAXWS_DIST=$(JAXWS_OUTPUTDIR)/dist 254240116SmarcelHOTSPOT_DIST=@HOTSPOT_DIST@ 255240116SmarcelNASHORN_DIST=$(NASHORN_OUTPUTDIR)/dist 256240116Smarcel 257240116SmarcelBUILD_HOTSPOT=@BUILD_HOTSPOT@ 258240116Smarcel 259240116Smarcel# The boot jdk to use. These are overridden in bootcycle-spec.gmk. Make sure to keep 260240116Smarcel# them in sync. 261240116SmarcelBOOT_JDK:=@BOOT_JDK@ 262240116SmarcelBOOT_RTJAR:=@BOOT_RTJAR@ 263240116SmarcelBOOT_TOOLSJAR=$(BOOT_JDK)/lib/tools.jar 264240116Smarcel 265240116Smarcel# When compiling Java source to be run by the boot jdk 266240116Smarcel# use these extra flags, eg -source 6 -target 6 267240116SmarcelBOOT_JDK_SOURCETARGET:=@BOOT_JDK_SOURCETARGET@ 268240116Smarcel 269240116Smarcel# Information about the build system 270240116SmarcelNUM_CORES:=@NUM_CORES@ 271240116SmarcelMEMORY_SIZE:=@MEMORY_SIZE@ 272240116Smarcel# Enable sjavac support = use a javac server, 273240116Smarcel# multi core javac compilation and dependency tracking. 274240116SmarcelENABLE_SJAVAC:=@ENABLE_SJAVAC@ 275240116Smarcel# Store sjavac server synchronization files here, and 276240116Smarcel# the sjavac server log files. 277240116SmarcelSJAVAC_SERVER_DIR:=@SJAVAC_SERVER_DIR@ 278240116Smarcel 279240116Smarcel# Number of parallel jobs to use for compilation 280240116SmarcelJOBS?=@JOBS@ 281240116Smarcel 282240116SmarcelFREETYPE_LIBS:=@FREETYPE_LIBS@ 283240116SmarcelFREETYPE_CFLAGS:=@FREETYPE_CFLAGS@ 284240116SmarcelFREETYPE_BUNDLE_LIB_PATH=@FREETYPE_BUNDLE_LIB_PATH@ 285240116SmarcelCUPS_CFLAGS:=@CUPS_CFLAGS@ 286240116SmarcelALSA_LIBS:=@ALSA_LIBS@ 287240116SmarcelALSA_CFLAGS:=@ALSA_CFLAGS@ 288240116Smarcel 289240116SmarcelPACKAGE_PATH=@PACKAGE_PATH@ 290240116Smarcel 291240116Smarcel# Source file for cacerts 292240116SmarcelCACERTS_FILE=@CACERTS_FILE@ 293258289Sjmmv 294240116Smarcel# Enable unlimited crypto policy 295240116SmarcelUNLIMITED_CRYPTO=@UNLIMITED_CRYPTO@ 296240116Smarcel 297240116Smarcel# Enable RMIConnector IIOP transport 298240116SmarcelRMICONNECTOR_IIOP=@RMICONNECTOR_IIOP@ 299240116Smarcel 300240116Smarcel# Necessary additional compiler flags to compile X11 301240116SmarcelX_CFLAGS:=@X_CFLAGS@ 302240116SmarcelX_LIBS:=@X_LIBS@ 303240116Smarcel 304240116Smarcel# The lowest required version of macosx to enforce compatiblity for 305240116SmarcelMACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@ 306240116Smarcel 307258289Sjmmv# Toolchain type: gcc, clang, solstudio, lxc, microsoft... 308240116SmarcelTOOLCHAIN_TYPE:=@TOOLCHAIN_TYPE@ 309240116Smarcel 310240116Smarcel# Option used to tell the compiler whether to create 32- or 64-bit executables 311240116SmarcelCOMPILER_TARGET_BITS_FLAG:=@COMPILER_TARGET_BITS_FLAG@ 312240116SmarcelCOMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@ 313240116Smarcel 314240116SmarcelCC_OUT_OPTION:=@CC_OUT_OPTION@ 315240116SmarcelEXE_OUT_OPTION:=@EXE_OUT_OPTION@ 316240116SmarcelLD_OUT_OPTION:=@LD_OUT_OPTION@ 317240116SmarcelAR_OUT_OPTION:=@AR_OUT_OPTION@ 318240116Smarcel 319240116Smarcel# Flags used for overriding the default opt setting for a C/C++ source file. 320240116SmarcelC_O_FLAG_HIGHEST:=@C_O_FLAG_HIGHEST@ 321258289SjmmvC_O_FLAG_HI:=@C_O_FLAG_HI@ 322258289SjmmvC_O_FLAG_NORM:=@C_O_FLAG_NORM@ 323240116SmarcelC_O_FLAG_NONE:=@C_O_FLAG_NONE@ 324240116SmarcelCXX_O_FLAG_HIGHEST:=@CXX_O_FLAG_HIGHEST@ 325240116SmarcelCXX_O_FLAG_HI:=@CXX_O_FLAG_HI@ 326240116SmarcelCXX_O_FLAG_NORM:=@CXX_O_FLAG_NORM@ 327240116SmarcelCXX_O_FLAG_NONE:=@CXX_O_FLAG_NONE@ 328240116Smarcel 329240116SmarcelC_FLAG_DEPS:=@C_FLAG_DEPS@ 330240116SmarcelCXX_FLAG_DEPS:=@CXX_FLAG_DEPS@ 331240116Smarcel 332240116SmarcelCFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@ 333240116Smarcel 334240116Smarcel# Tools that potentially need to be cross compilation aware. 335240116SmarcelCC:=@FIXPATH@ @CCACHE@ @CC@ 336240116Smarcel 337240116Smarcel# CFLAGS used to compile the jdk native libraries (C-code) 338240116SmarcelCFLAGS_JDKLIB:=@CFLAGS_JDKLIB@ 339240116SmarcelCXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@ 340240116Smarcel 341240116Smarcel# CFLAGS used to compile the jdk native launchers (C-code) 342240116SmarcelCFLAGS_JDKEXE:=@CFLAGS_JDKEXE@ 343240116SmarcelCXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@ 344240116Smarcel 345240116SmarcelCXX:=@FIXPATH@ @CCACHE@ @CXX@ 346240116Smarcel#CXXFLAGS:=@CXXFLAGS@ 347240116Smarcel 348240116SmarcelOBJC:=@CCACHE@ @OBJC@ 349240116Smarcel#OBJCFLAGS:=@OBJCFLAGS@ 350240116Smarcel 351240116SmarcelCPP:=@FIXPATH@ @CPP@ 352240116Smarcel#CPPFLAGS:=@CPPFLAGS@ 353240116Smarcel 354240116Smarcel# The linker can be gcc or ld on unix systems, or link.exe on windows systems. 355240116SmarcelLD:=@FIXPATH@ @LD@ 356240116Smarcel 357258289Sjmmv# Xcode SDK path 358240116SmarcelSDKROOT:=@SDKROOT@ 359240116Smarcel 360258289Sjmmv# The linker on older SuSE distros (e.g. on SLES 10) complains with: 361258289Sjmmv# "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable." 362240116Smarcel# if feeded with a version script which contains named tags. 363240116SmarcelUSING_BROKEN_SUSE_LD:=@USING_BROKEN_SUSE_LD@ 364240116Smarcel 365240116Smarcel# LDFLAGS used to link the jdk native libraries (C-code) 366240116SmarcelLDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@ 367240116SmarcelLDFLAGS_JDKLIB_SUFFIX:=@LDFLAGS_JDKLIB_SUFFIX@ 368240116Smarcel 369240116Smarcel# On some platforms the linker cannot be used to create executables, thus 370240116Smarcel# the need for a separate LDEXE command. 371240116SmarcelLDEXE:=@FIXPATH@ @LDEXE@ 372240116Smarcel 373240116Smarcel# LDFLAGS used to link the jdk native launchers (C-code) 374240116SmarcelLDFLAGS_JDKEXE:=@LDFLAGS_JDKEXE@ 375240116SmarcelLDFLAGS_JDKEXE_SUFFIX:=@LDFLAGS_JDKEXE_SUFFIX@ 376240116Smarcel 377240116Smarcel# LDFLAGS specific to C++ linking. 378240116SmarcelLDFLAGS_CXX_JDK:=@LDFLAGS_CXX_JDK@ 379240116Smarcel 380240116Smarcel# Sometimes a different linker is needed for c++ libs 381240116SmarcelLDCXX:=@FIXPATH@ @LDCXX@ 382240116Smarcel# The flags for linking libstdc++ linker. 383240116SmarcelLIBCXX:=@LIBCXX@ 384240116Smarcel 385240116Smarcel# Sometimes a different linker is needed for c++ executables 386240116SmarcelLDEXECXX:=@FIXPATH@ @LDEXECXX@ 387240116Smarcel 388240116Smarcel# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the 389240116Smarcel# build platform. 390240116SmarcelBUILD_CC:=@FIXPATH@ @BUILD_CC@ 391240116SmarcelBUILD_LD:=@FIXPATH@ @BUILD_LD@ 392240116Smarcel 393240116SmarcelAS:=@FIXPATH@ @AS@ 394240116Smarcel 395240116Smarcel# AR is used to create a static library (is ar in unix, lib.exe in windows) 396240116SmarcelAR:=@FIXPATH@ @AR@ 397240116SmarcelARFLAGS:=@ARFLAGS@ 398240116Smarcel 399240116SmarcelNM:=@NM@ 400240116SmarcelGNM:=@GNM@ 401240116SmarcelSTRIP:=@STRIP@ 402240116SmarcelMCS:=@MCS@ 403240116Smarcel 404240116SmarcelLIPO:=@LIPO@ 405240116Smarcel 406240116Smarcel# Command to create a shared library 407258289SjmmvSHARED_LIBRARY_FLAGS:=@SHARED_LIBRARY_FLAGS@ 408240116Smarcel 409240116Smarcel# Options to linker to specify a mapfile. 410258289Sjmmv# (Note absence of := assignment, because we do not want to evaluate the macro body here) 411240116SmarcelSET_SHARED_LIBRARY_MAPFILE=@SET_SHARED_LIBRARY_MAPFILE@ 412240116Smarcel 413240116Smarcel# Options for C/CXX compiler to be used if linking is performed 414240116Smarcel# using reorder file 415240116SmarcelC_FLAG_REORDER:=@C_FLAG_REORDER@ 416240116SmarcelCXX_FLAG_REORDER:=@CXX_FLAG_REORDER@ 417240116Smarcel 418240116Smarcel# 419240116Smarcel# Options for generating debug symbols 420240116SmarcelENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@ 421240116SmarcelCFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@ 422240116SmarcelCXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@ 423240116SmarcelZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@ 424240116Smarcel 425240116Smarcel# 426240116Smarcel# Compress (or not) jars 427240116SmarcelCOMPRESS_JARS=@COMPRESS_JARS@ 428240116Smarcel 429240116Smarcel# Options to linker to specify the library name. 430240116Smarcel# (Note absence of := assignment, because we do not want to evaluate the macro body here) 431240116SmarcelSET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@ 432240116Smarcel 433240116Smarcel# Set origin using the linker, ie use the relative path to the dependent library to find the dependees. 434240116Smarcel# (Note absence of := assignment, because we do not want to evaluate the macro body here) 435240116SmarcelSET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@ 436240116SmarcelSET_EXECUTABLE_ORIGIN=@SET_EXECUTABLE_ORIGIN@ 437240116Smarcel 438240116Smarcel# Different OS:es have different ways of naming shared libraries. 439240116Smarcel# The SHARED_LIBRARY macro takes "verify" as and argument and returns: 440240116Smarcel# "libverify.so" or "libverify.dylib" or "verify.dll" depending on platform. 441240116Smarcel# (Note absence of := assignment, because we do not want to evaluate the macro body here) 442240116SmarcelSHARED_LIBRARY=@SHARED_LIBRARY@ 443240116SmarcelSTATIC_LIBRARY=@STATIC_LIBRARY@ 444240116SmarcelLIBRARY_PREFIX:=@LIBRARY_PREFIX@ 445240116SmarcelSHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@ 446240116SmarcelSTATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@ 447240116SmarcelEXE_SUFFIX:=@EXE_SUFFIX@ 448240116SmarcelOBJ_SUFFIX:=@OBJ_SUFFIX@ 449240116Smarcel 450240116SmarcelPOST_STRIP_CMD:=@POST_STRIP_CMD@ 451240116SmarcelPOST_MCS_CMD:=@POST_MCS_CMD@ 452258289Sjmmv 453240116SmarcelJAVA_FLAGS:=@JAVA_FLAGS@ 454240116SmarcelJAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@ 455258289SjmmvJAVA_FLAGS_SMALL:=@JAVA_FLAGS_SMALL@ 456240116SmarcelJAVA_TOOL_FLAGS_SMALL:=@JAVA_TOOL_FLAGS_SMALL@ 457240116SmarcelSJAVAC_SERVER_JAVA_FLAGS:=@SJAVAC_SERVER_JAVA_FLAGS@ 458240116Smarcel 459240116Smarcel# The *_CMD variables are defined separately to be easily overridden in bootcycle-spec.gmk 460240116Smarcel# for bootcycle-images build. Make sure to keep them in sync. Do not use the *_CMD 461240116Smarcel# versions of the variables directly. 462240116SmarcelJAVA_CMD:=@JAVA@ 463240116SmarcelJAVAC_CMD:=@JAVAC@ 464240116SmarcelJAVAH_CMD:=@JAVAH@ 465240116SmarcelJAR_CMD:=@JAR@ 466240116SmarcelNATIVE2ASCII_CMD:=@NATIVE2ASCII@ 467240116SmarcelJARSIGNER_CMD:=@JARSIGNER@ 468240116SmarcelSJAVAC_SERVER_JAVA_CMD:=@SJAVAC_SERVER_JAVA@ 469240116Smarcel# These variables are meant to be used. They are defined with = instead of := to make 470240116Smarcel# it possible to override only the *_CMD variables. 471240116SmarcelJAVA=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) 472240116SmarcelJAVA_SMALL=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) 473240116SmarcelJAVAC=@FIXPATH@ $(JAVAC_CMD) 474240116SmarcelJAVAH=@FIXPATH@ $(JAVAH_CMD) 475240116SmarcelJAR=@FIXPATH@ $(JAR_CMD) 476240116SmarcelNATIVE2ASCII=@FIXPATH@ $(NATIVE2ASCII_CMD) $(JAVA_TOOL_FLAGS_SMALL) 477240116SmarcelJARSIGNER=@FIXPATH@ $(JARSIGNER_CMD) 478240116Smarcel# A specific java binary with specific options can be used to run 479240116Smarcel# the long running background sjavac servers and other long running tasks. 480240116SmarcelSJAVAC_SERVER_JAVA=@FIXPATH@ $(SJAVAC_SERVER_JAVA_CMD) $(SJAVAC_SERVER_JAVA_FLAGS) 481240116Smarcel 482240116Smarcel# Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid 483240116Smarcel# overriding that value by using ?=. 484240116SmarcelJAVAC_FLAGS?=@JAVAC_FLAGS@ 485240116Smarcel 486240116Smarcel# You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ... 487240116SmarcelINTERIM_LANGTOOLS_JAR := $(LANGTOOLS_OUTPUTDIR)/dist/interim_langtools.jar 488240116SmarcelINTERIM_LANGTOOLS_ARGS := "-Xbootclasspath/p:$(INTERIM_LANGTOOLS_JAR)" -cp $(INTERIM_LANGTOOLS_JAR) 489240116SmarcelNEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javac.Main 490240116SmarcelNEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javadoc.Main 491240116Smarcel 492240116Smarcel# The interim corba jar is needed for running rmic 493240116SmarcelINTERIM_CORBA_JAR := $(CORBA_OUTPUTDIR)/dist/interim_corba.jar 494240116Smarcel 495240116Smarcel# Base flags for RC 496240116Smarcel# Guarding this against resetting value. Legacy make files include spec multiple 497240116Smarcel# times. 498240116Smarcelifndef RC_FLAGS 499258289Sjmmv RC_FLAGS:=@RC_FLAGS@ 500240116Smarcelendif 501240116Smarcel 502258289Sjmmv# Tools adhering to a minimal and common standard of posix compliance. 503240116SmarcelAWK:=@AWK@ 504240116SmarcelBASENAME:=@BASENAME@ 505240116SmarcelBASH:=@BASH@ 506240116SmarcelCAT:=@CAT@ 507240116SmarcelCCACHE:=@CCACHE@ 508240116Smarcel# CD is going away, but remains to cater for legacy makefiles. 509240116SmarcelCD:=cd 510240116SmarcelCHMOD:=@CHMOD@ 511240116SmarcelCODESIGN:=@CODESIGN@ 512240116SmarcelCOMM:=@COMM@ 513240116SmarcelCP:=@CP@ 514240116SmarcelCPIO:=@CPIO@ 515240116SmarcelCUT:=@CUT@ 516240116SmarcelDATE:=@DATE@ 517240116SmarcelDIFF:=@DIFF@ 518240116SmarcelDIRNAME:=@DIRNAME@ 519240116SmarcelDSYMUTIL:=@DSYMUTIL@ 520240116SmarcelFIND:=@FIND@ 521240116SmarcelFIND_DELETE:=@FIND_DELETE@ 522240116SmarcelECHO:=@ECHO@ 523240116SmarcelEGREP:=@EGREP@ 524240116SmarcelFGREP:=@FGREP@ 525240116SmarcelGREP:=@GREP@ 526240116SmarcelHEAD:=@HEAD@ 527240116SmarcelLS:=@LS@ 528240116SmarcelLN:=@LN@ 529240116SmarcelMKDIR:=@MKDIR@ 530240116SmarcelMV:=@MV@ 531240116SmarcelNAWK:=@NAWK@ 532240116SmarcelPRINTF:=@PRINTF@ 533240116SmarcelPWD:=@THEPWDCMD@ 534240116SmarcelRM:=@RM@ 535240116SmarcelSED:=@SED@ 536240116SmarcelSH:=@SH@ 537240116SmarcelSORT:=@SORT@ 538240116SmarcelTAR:=@TAR@ 539240116SmarcelTAIL:=@TAIL@ 540240116SmarcelTEE:=@TEE@ 541240116SmarcelTIME:=@TIME@ 542240116SmarcelIS_GNU_TIME:=@IS_GNU_TIME@ 543240116SmarcelTR:=@TR@ 544258289SjmmvTOUCH:=@TOUCH@ 545240116SmarcelUNIQ:=@UNIQ@ 546240116SmarcelWC:=@WC@ 547258289SjmmvXARGS:=@XARGS@ 548240116SmarcelZIPEXE:=@ZIP@ 549240116SmarcelZIP:=@ZIP@ 550240116SmarcelUNZIP:=@UNZIP@ 551240116SmarcelMT:=@FIXPATH@ @MT@ 552240116SmarcelRC:=@FIXPATH@ @RC@ 553240116SmarcelDUMPBIN:=@FIXPATH@ @DUMPBIN@ 554240116SmarcelCYGPATH:=@CYGPATH@ 555240116SmarcelLDD:=@LDD@ 556240116SmarcelOTOOL:=@OTOOL@ 557240116SmarcelREADELF:=@READELF@ 558240116SmarcelEXPR:=@EXPR@ 559240116SmarcelFILE:=@FILE@ 560240116SmarcelHG:=@HG@ 561240116SmarcelOBJCOPY:=@OBJCOPY@ 562240116SmarcelSETFILE:=@SETFILE@ 563240116SmarcelXATTR:=@XATTR@ 564240116SmarcelJT_HOME:=@JT_HOME@ 565240116SmarcelJTREGEXE:=@JTREGEXE@ 566240116SmarcelXCODEBUILD=@XCODEBUILD@ 567240116SmarcelFIXPATH:=@FIXPATH@ 568240116Smarcel 569240116Smarcel# Where the build output is stored for your convenience. 570240116SmarcelBUILD_LOG:=@BUILD_LOG@ 571240116SmarcelBUILD_LOG_PREVIOUS:=@BUILD_LOG_PREVIOUS@ 572240116Smarcel# Disable the build log wrapper on sjavac+windows until 573240116Smarcel# we have solved how to prevent the log wrapper to wait 574240116Smarcel# for the background sjavac server process. 575240116Smarcelifeq (@ENABLE_SJAVAC@X@OPENJDK_BUILD_OS@,yesXwindows) 576240116Smarcel BUILD_LOG_WRAPPER:= 577240116Smarcelelse 578240116Smarcel BUILD_LOG_WRAPPER:=@BUILD_LOG_WRAPPER@ 579240116Smarcelendif 580240116Smarcel 581240116Smarcel# Build setup 582240116SmarcelENABLE_JFR=@ENABLE_JFR@ 583240116SmarcelENABLE_INTREE_EC=@ENABLE_INTREE_EC@ 584240116SmarcelUSE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ 585240116SmarcelUSE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ 586240116SmarcelUSE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ 587240116SmarcelLIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ 588240116SmarcelMSVCR_DLL:=@MSVCR_DLL@ 589240116Smarcel 590258289Sjmmv 591240116Smarcel# ADD_SRCS takes a single argument with source roots 592240116Smarcel# and appends any corresponding source roots found 593240116Smarcel# below --with-add-source-root and below 594240116Smarcel# --with-override-source-root. It is the responsibility 595240116Smarcel# of the next macro to get rid of superfluous files. 596258289SjmmvADD_SRCS=$1 597240116Smarcelifneq (,$(ADD_SRC_ROOT)) 598240116Smarcel # Append wildcard rule to pickup any matching source roots found below ADD_SRC_ROOT 599240116Smarcel ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(ADD_SRC_ROOT),$1)) 600240116Smarcelendif 601240116Smarcelifneq (,$(OVERRIDE_SRC_ROOT)) 602240116Smarcel # Append wildcard rule to pickup any matching source roots found below OVERRIDE_SRC_ROOT 603240116Smarcel ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(OVERRIDE_SRC_ROOT),$1)) 604240116Smarcelendif 605240116Smarcel 606240116Smarcel# OVR_SRCS creates a filter expression to filter out sources in 607240116Smarcel# the original source directory that lie inside directories below 608240116Smarcel# --with-override-source-root. 609240116Smarcel# Use := here since we want to scan for these files here. To avoid recomputation later. 610240116Smarcel# We cannot do the scan in configure, since that would force us to rerun configure when 611240116Smarcel# we add overridden sources. 612240116Smarcelifneq (,$(OVERRIDE_SRC_ROOT)) 613240116Smarcel OVR_SRCS:=$(addsuffix %,$(subst $(OVERRIDE_SRC_ROOT),$(SRC_ROOT),$(sort $(dir $(shell $(FIND) $(OVERRIDE_SRC_ROOT) -type f))))) 614240116Smarcelelse 615240116Smarcel OVR_SRCS:= 616240116Smarcelendif 617240116Smarcel 618240116Smarcel#################################################### 619240116Smarcel# 620240116Smarcel# INSTALLATION 621240116Smarcel# 622240116Smarcel 623240116Smarcel# Common prefix for all installed files. Defaults to /usr/local, 624240116Smarcel# but /opt/myjdk is another common version. 625240116SmarcelINSTALL_PREFIX=@prefix@ 626240116Smarcel 627240116Smarcel# Directories containing architecture-dependent files should be relative to exec_prefix 628240116SmarcelINSTALL_EXECPREFIX=@exec_prefix@ 629240116Smarcel 630240116Smarcel# java,javac,javah,javap etc are installed here. 631240116SmarcelINSTALL_BINDIR=@bindir@ 632240116Smarcel 633240116Smarcel# Read only architecture-independent data 634240116SmarcelINSTALL_DATADIR=@datadir@ 635240116Smarcel 636240116Smarcel# Root of above. 637240116SmarcelINSTALL_DATAROOTDIR=@datarootdir@ 638240116Smarcel 639240116Smarcel# Doc files, other than info and man. 640240116SmarcelINSTALL_DOCDIR=@docdir@ 641240116Smarcel 642258289Sjmmv# Html documentation 643240116SmarcelINSTALL_HTMLDIR=@htmldir@ 644240116Smarcel 645240116Smarcel# Installing C header files, JNI headers for example. 646240116SmarcelINSTALL_INCLUDEDIR=@includedir@ 647240116Smarcel 648258289Sjmmv# Installing library files.... 649240116SmarcelINSTALL_INCLUDEDIR=@libdir@ 650240116Smarcel 651240116Smarcel# Executables that other programs run. 652240116SmarcelINSTALL_LIBEXECDIR=@libexecdir@ 653240116Smarcel 654240116Smarcel# Locale-dependent but architecture-independent data, such as message catalogs. 655240116SmarcelINSTALL_LOCALEDIR=@localedir@ 656240116Smarcel 657240116Smarcel# Modifiable single-machine data 658240116SmarcelINSTALL_LOCALSTATEDIR=@localstatedir@ 659240116Smarcel 660240116Smarcel# Man pages 661240116SmarcelINSTALL_MANDIR=@mandir@ 662240116Smarcel 663240116Smarcel# Modifiable architecture-independent data. 664240116SmarcelINSTALL_SHAREDSTATEDIR=@sharedstatedir@ 665240116Smarcel 666240116Smarcel# Read-only single-machine data 667240116SmarcelINSTALL_SYSCONFDIR=@sysconfdir@ 668240116Smarcel 669240116Smarcel#################################################### 670240116Smarcel# 671240116Smarcel# Libraries 672240116Smarcel# 673240116Smarcel 674240116SmarcelUSE_EXTERNAL_LCMS:=@USE_EXTERNAL_LCMS@ 675240116SmarcelLCMS_CFLAGS:=@LCMS_CFLAGS@ 676240116SmarcelLCMS_LIBS:=@LCMS_LIBS@ 677240116Smarcel 678240116SmarcelUSE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@ 679240116SmarcelPNG_LIBS:=@PNG_LIBS@ 680240116SmarcelPNG_CFLAGS:=@PNG_CFLAGS@ 681240116Smarcel 682240116Smarcel 683240116Smarcel#################################################### 684240116Smarcel# 685240116Smarcel# Misc 686240116Smarcel# 687240116Smarcel 688240116Smarcel# Name of Service Agent library 689240116SmarcelSALIB_NAME=@SALIB_NAME@ 690240116Smarcel 691240116SmarcelINCLUDE_SA=@INCLUDE_SA@ 692258289Sjmmv 693240116SmarcelOS_VERSION_MAJOR:=@OS_VERSION_MAJOR@ 694258289SjmmvOS_VERSION_MINOR:=@OS_VERSION_MINOR@ 695240116SmarcelOS_VERSION_MICRO:=@OS_VERSION_MICRO@ 696240116Smarcel 697240116Smarcel# Images directory definitions 698258289SjmmvJDK_IMAGE_SUBDIR:=j2sdk-image 699240116SmarcelJRE_IMAGE_SUBDIR:=j2re-image 700240116SmarcelJDK_OVERLAY_IMAGE_SUBDIR:=j2sdk-overlay-image 701240116SmarcelJRE_OVERLAY_IMAGE_SUBDIR:=j2re-overlay-image 702240116Smarcel# Colon left out to be able to override output dir for bootcycle-images 703240116SmarcelJDK_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR) 704240116SmarcelJRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR) 705240116SmarcelJDK_OVERLAY_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_OVERLAY_IMAGE_SUBDIR) 706240116SmarcelJRE_OVERLAY_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_OVERLAY_IMAGE_SUBDIR) 707240116Smarcel 708240116Smarcel# Macosx bundles directory definitions 709240116SmarcelJDK_BUNDLE_SUBDIR=j2sdk-bundle/jdk$(JDK_VERSION).jdk/Contents 710240116SmarcelJRE_BUNDLE_SUBDIR=j2re-bundle/jre$(JDK_VERSION).jre/Contents 711240116SmarcelJDK_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_BUNDLE_SUBDIR) 712240116SmarcelJRE_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_BUNDLE_SUBDIR) 713240116Smarcel 714240116Smarcel# This macro is called to allow inclusion of closed source counterparts. 715240116Smarcel# Unless overridden in closed sources, it expands to nothing. 716240116Smarcel# Usage: This function is called in an open makefile, with the following 717240116Smarcel# arguments: 718240116Smarcel# $1 the name of the repo, or empty if the top-level repo. 719240116Smarcel# $2 the name of the makefile 720240116Smarceldefine IncludeCustomExtension 721240116Smarcelendef 722240116Smarcel 723240116Smarcel# Include the custom-spec.gmk file if it exists 724240116Smarcel-include $(dir @SPEC@)/custom-spec.gmk 725240116Smarcel