shared-macros.mk revision 64
2N/A#
2N/A# CDDL HEADER START
2N/A#
2N/A# The contents of this file are subject to the terms of the
2N/A# Common Development and Distribution License (the "License").
2N/A# You may not use this file except in compliance with the License.
2N/A#
2N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A# or http://www.opensolaris.org/os/licensing.
2N/A# See the License for the specific language governing permissions
2N/A# and limitations under the License.
2N/A#
2N/A# When distributing Covered Code, include this CDDL HEADER in each
2N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A# If applicable, add the following below this CDDL HEADER, with the
2N/A# fields enclosed by brackets "[]" replaced with your own identifying
2N/A# information: Portions Copyright [yyyy] [name of copyright owner]
2N/A#
2N/A# CDDL HEADER END
2N/A#
58N/A# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
2N/A#
2N/A
32N/APATH=/usr/bin:/usr/gnu/bin
32N/A
313N/ACONSOLIDATION = userland
313N/APUBLISHER = $(CONSOLIDATION)-build
313N/A
313N/AIS_GLOBAL_ZONE = $(shell /usr/sbin/zoneadm list | grep -c global)
313N/AROOT = /
313N/A
313N/A# get the most recent build number from the last mercurial tag
313N/ALAST_HG_TAG = $(shell hg tags -q | head -2 | tail -1)
313N/ALAST_BUILD_NUM = $(LAST_HG_TAG:build-%=%)
313N/A
313N/AOS_VERSION = $(shell uname -r)
313N/ASOLARIS_VERSION = $(OS_VERSION:5.%=2.%)
313N/ABUILD_NUM = 0.$(shell expr $(LAST_BUILD_NUM) + 1)
313N/ABUILD_VERSION = $(OS_VERSION)-$(BUILD_NUM)
313N/A
313N/A
127N/ACOMPILER = studio
127N/ABITS = 32
127N/APYTHON_VERSION = 2.6
127N/APYTHON_VERSIONS = 2.6
177N/A
177N/AWS_LOGS = $(WS_TOP)/logs
177N/AWS_REPO = $(WS_TOP)/repo
2N/AWS_TOOLS = $(WS_TOP)/tools
145N/AWS_MAKE_RULES = $(WS_TOP)/make-rules
26N/AWS_COMPONENTS = $(WS_TOP)/components
38N/AWS_INCORPORATIONS = $(WS_TOP)/incorporations
38N/AWS_LINT_CACHE = $(WS_TOP)/cache
29N/A
93N/ABASS_O_MATIC = $(WS_TOOLS)/bass-o-matic
29N/A
29N/APKG_REPO = file:$(WS_REPO)
26N/A
26N/ASOURCE_DIR = $(shell pwd)/$(COMPONENT_SRC)
29N/ABUILD_DIR = $(shell pwd)/build
26N/APROTO_DIR = $(BUILD_DIR)/prototype/$(MACH)
2N/A
38N/AUSRDIR = /usr
2N/ABINDIR = /bin
6N/ALIBDIR = /lib
2N/AUSRBINDIR = $(USRDIR)/bin
58N/AUSRLIBDIR = $(USRDIR)/lib
2N/AUSRSHAREDIR = $(USRDIR)/share
145N/AUSRSHAREMANDIR = $(USRSHAREDIR)/man
145N/AUSRSHAREMAN1DIR = $(USRSHAREMANDIR)/man1
34N/AUSRSHAREMAN3DIR = $(USRSHAREMANDIR)/man3
34N/AUSRLIBDIR64 = $(USRDIR)/lib/$(MACH64)
34N/APROTOUSRDIR = $(PROTO_DIR)/$(USRDIR)
49N/APROTOUSRBINDIR = $(PROTO_DIR)/$(USRBINDIR)
145N/APROTOUSRLIBDIR = $(PROTO_DIR)/$(USRLIBDIR)
2N/APROTOUSRLIBDIR64 = $(PROTO_DIR)/$(USRLIBDIR64)
34N/APROTOUSRSHAREDIR = $(PROTO_DIR)/$(USRSHAREDIR)
34N/APROTOUSRSHAREMANDIR = $(PROTO_DIR)/$(USRSHAREMANDIR)
94N/APROTOUSRSHAREMAN1DIR = $(PROTO_DIR)/$(USRSHAREMAN1DIR)
94N/APROTOUSRSHAREMAN3DIR = $(PROTO_DIR)/$(USRSHAREMAN3DIR)
156N/A
156N/A
34N/ASFWBIN = /usr/sfw/bin
59N/ASFWLIB = /usr/sfw/lib
186N/ASFWSHARE = /usr/sfw/share
186N/ASFWSHAREMAN = /usr/sfw/share/man
186N/ASFWSHAREMAN1 = /usr/sfw/share/man/man1
186N/APROTOSFWBIN = $(PROTO_DIR)/$(SFWBIN)
72N/APROTOSFWLIB = $(PROTO_DIR)/$(SFWLIB)
72N/APROTOSFWSHARE = $(PROTO_DIR)/$(SFWSHARE)
72N/APROTOSFWSHAREMAN = $(PROTO_DIR)/$(SFWSHAREMAN)
59N/APROTOSFWSHAREMAN1 = $(PROTO_DIR)/$(SFWSHAREMAN1)
2N/A
85N/AGNUBIN = /usr/gnu/bin
61N/AGNUSHARE = /usr/gnu/share
61N/AGNUSHAREMAN = /usr/gnu/share/man
220N/AGNUSHAREMAN1 = /usr/gnu/share/man/man1
61N/APROTOGNUBIN = $(PROTO_DIR)/$(GNUBIN)
61N/APROTOGNUSHARE = $(PROTO_DIR)/$(GNUSHARE)
172N/APROTOGNUSHAREMAN = $(PROTO_DIR)/$(GNUSHAREMAN)
61N/APROTOGNUSHAREMAN1 = $(PROTO_DIR)/$(GNUSHAREMAN1)
61N/A
220N/A# work around _TIME, _DATE, embedded date chatter in component builds
220N/A# to use, set TIME_CONSTANT in the component Makefile and add $(CONSTANT_TIME)
61N/A# to the appropriate {CONFIGURE|BUILD|INSTALL}_ENV
172N/ACONSTANT_TIME = LD_PRELOAD_32=$(WS_TOOLS)/time-$(MACH32).so
61N/ACONSTANT_TIME += LD_PRELOAD_64=$(WS_TOOLS)/time-$(MACH64).so
172N/ACONSTANT_TIME += TIME_CONSTANT=$(TIME_CONSTANT)
61N/A
152N/A# set MACH from uname -p to either sparc or i386
74N/AMACH = $(shell uname -p)
61N/A
220N/A# set MACH32 from MACH to either sparcv7 or i86
85N/AMACH32_1 = $(MACH:sparc=sparcv7)
172N/AMACH32 = $(MACH32_1:i386=i86)
61N/A
172N/A# set MACH64 from MACH to either sparcv9 or amd64
61N/AMACH64_1 = $(MACH:sparc=sparcv9)
172N/AMACH64 = $(MACH64_1:i386=amd64)
61N/A
61N/ABUILD_DIR_32 = $(BUILD_DIR)/$(MACH32)
220N/ABUILD_DIR_64 = $(BUILD_DIR)/$(MACH64)
61N/A
61N/ABUILD_32 = $(BUILD_DIR_32)/.built
172N/ABUILD_64 = $(BUILD_DIR_64)/.built
61N/ABUILD_32_and_64 = $(BUILD_32) $(BUILD_64)
172N/A
61N/AINSTALL_32 = $(BUILD_DIR_32)/.installed
152N/AINSTALL_64 = $(BUILD_DIR_64)/.installed
152N/AINSTALL_32_and_64 = $(INSTALL_32) $(INSTALL_64)
220N/A
61N/A# BUILD_TOOLS is the root of all tools not normally installed on the system.
61N/ABUILD_TOOLS = /ws/onnv-tools
43N/A
220N/ASPRO_ROOT = $(BUILD_TOOLS)/SUNWspro
43N/ASPRO_VROOT = $(SPRO_ROOT)/sunstudio12.1
120N/A
64N/AGCC_ROOT = /usr/gnu
64N/A
64N/ACC.studio.32 = $(SPRO_VROOT)/bin/cc -m32
43N/ACCC.studio.32 = $(SPRO_VROOT)/bin/CC -m32
43N/A
120N/ACC.studio.64 = $(SPRO_VROOT)/bin/cc -m64
64N/ACCC.studio.64 = $(SPRO_VROOT)/bin/CC -m64
64N/A
64N/ACC.gcc.32 = $(GCC_ROOT)/bin/cc -m32
220N/ACCC.gcc.32 = $(GCC_ROOT)/bin/CC -m32
64N/A
64N/ACC.gcc.64 = $(GCC_ROOT)/bin/cc -m64
64N/ACCC.gcc.64 = $(GCC_ROOT)/bin/CC -m64
64N/A
64N/ACC = $(CC.$(COMPILER).$(BITS))
64N/ACCC = $(CCC.$(COMPILER).$(BITS))
64N/A
64N/Alint.32 = $(SPRO_VROOT)/bin/lint -m32
64N/Alint.64 = $(SPRO_VROOT)/bin/lint -m64
43N/A
16N/ALINT = $(lint.$(BITS))
16N/A
16N/ALD = /usr/bin/ld
34N/A
34N/APYTHON.2.6.32 = /usr/bin/python2.6
16N/APYTHON.2.6.64 = /usr/bin/$(MACH64)/python2.6
6N/A
12N/APYTHON.32 = $(PYTHON.$(PYTHON_VERSION).$(BITS))
12N/APYTHON.64 = $(PYTHON.$(PYTHON_VERSION).$(BITS))
12N/A
12N/AGMAKE = /usr/gnu/bin/make
12N/AGPATCH = /usr/gnu/bin/patch
12N/AGPATCH_FLAGS = -p1 -b
12N/A
12N/APKGSEND = /usr/bin/pkgsend
12N/A
12N/ATOUCH = /usr/bin/touch
12N/AMKDIR = /bin/mkdir -p
61N/ARM = /bin/rm -f
61N/ACP = /bin/cp -f
61N/ALN = /bin/ln
61N/ASYMLINK = /bin/ln -s
61N/AENV = /usr/bin/env
12N/AINSTALL = /usr/bin/ginstall
181N/A
181N/AINS.dir= $(INSTALL) -d $@
12N/AINS.file= $(INSTALL) -m 444 $< $(@D)
61N/A
61N/A# C compiler mode. Future compilers may change the default on us,
12N/A# so force transition mode globally. Lower level makefiles can
279N/A# override this by setting CCMODE.
279N/A#
181N/ACCMODE= -Xa
181N/ACCMODE64= -Xa
181N/A
2N/A# compiler '-xarch' flag. This is here to centralize it and make it
99N/A# overridable for testing.
99N/Asparc_XARCH= $(CCBITS32) -xarch=sparc
99N/Asparcv9_XARCH= $(CCBITS64) -xcode=abs64
181N/Ai386_XARCH= $(CCBITS32) -xchip=pentium
181N/Aamd64_XARCH= $(CCBITS64) -xarch=generic -Ui386 -U__i386
181N/A
181N/A# disable the incremental linker
181N/AILDOFF= -xildoff
99N/A
40N/A# C99 mode
40N/AC99_ENABLE= -xc99=all
40N/AC99_DISABLE= -xc99=none
40N/AC99MODE= $(C99_ENABLE)
43N/AC99LMODE= $(C99MODE:-xc99%=-Xc99%)
40N/A
127N/A# XPG6 mode. This option enables XPG6 conformance, plus extensions.
2N/A# Amongst other things, this option will cause system calls like
99N/A# popen (3C) and system (3C) to invoke the standards-conforming
206N/A# shell, /usr/xpg4/bin/sh, instead of /usr/bin/sh.
2N/AXPG6MODE= $(C99MODE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1
99N/A
206N/A
2N/A# The Sun Studio 11 compiler has changed the behaviour of integer
151N/A# wrap arounds and so a flag is needed to use the legacy behaviour
206N/A# (without this flag panics/hangs could be exposed within the source).
2N/A#
151N/Asparc_IROPTFLAG = -W2,-xwrap_int
206N/Asparcv9_IROPTFLAG = -W2,-xwrap_int
2N/Ai386_IROPTFLAG =
2N/Aamd64_IROPTFLAG =
206N/AIROPTFLAG = $($(MACH)_IROPTFLAG)
2N/AIROPTFLAG64 = $($(MACH64)_IROPTFLAG)
61N/A
61N/Asparc_CFLAGS= $(sparc_XARCH)
61N/Asparcv9_CFLAGS= $(sparcv9_XARCH) -dalign $(CCVERBOSE)
61N/Ai386_CFLAGS= $(i386_XARCH)
61N/Aamd64_CFLAGS= $(amd64_XARCH)
16N/A
16N/Asparc_COPTFLAG= -xO3
148N/Asparcv9_COPTFLAG= -xO3
148N/Ai386_COPTFLAG= -xO3
148N/Aamd64_COPTFLAG= -xO3
148N/ACOPTFLAG= $($(MACH)_COPTFLAG)
2N/ACOPTFLAG64= $($(MACH64)_COPTFLAG)
47N/A
2N/Asparc_XREGSFLAG = -xregs=no%appl
2N/Asparcv9_XREGSFLAG = -xregs=no%appl
2N/Ai386_XREGSFLAG =
148N/Aamd64_XREGSFLAG =
2N/AXREGSFLAG = $($(MACH)_XREGSFLAG)
146N/AXREGSFLAG64 = $($(MACH64)_XREGSFLAG)
146N/A
146N/ACFLAGS= \
146N/A $(COPTFLAG) $($(MACH)_CFLAGS) $(CCMODE) \
146N/A $(ILDOFF) $(C99MODE) $(IROPTFLAG)
116N/A
116N/ACFLAGS64= \
260N/A $(COPTFLAG64) $($(MACH64)_CFLAGS) $(CCMODE64) \
260N/A $(ILDOFF) $(C99MODE) $(IROPTFLAG64)
277N/A
260N/A# build with a non-executable stack by default.
260N/A# override this if necessary
260N/ALD_MAP_NOEXSTK="-M /usr/lib/ld/map.noexstk"
260N/ALD_OPTIONS+= $(LD_MAP_NOEXSTK)
260N/A
260N/A# Environment variables and arguments passed into the build and install
260N/A# environment(s). These are the initial settings.
127N/ACOMPONENT_BUILD_ENV= \
260N/A LD_OPTIONS=$(LD_OPTIONS)
260N/ACOMPONENT_INSTALL_ENV= \
260N/A LD_OPTIONS=$(LD_OPTIONS)
260N/A
260N/A# Add any bit-specific settings
260N/ACOMPONENT_BUILD_ENV += $(COMPONENT_BUILD_ENV.$(BITS))
260N/ACOMPONENT_BUILD_ARGS += $(COMPONENT_BUILD_ARGS.$(BITS))
260N/ACOMPONENT_INSTALL_ENV += $(COMPONENT_INSTALL_ENV.$(BITS))
260N/ACOMPONENT_INSTALL_ARGS += $(COMPONENT_INSTALL_ARGS.$(BITS))
260N/A