make-rules/shared-macros.mk
branchs11-update
changeset 2855 576d5a7857b7
parent 2818 ff3cbef81e88
child 2910 f8b8cbc43356
--- a/make-rules/shared-macros.mk	Wed Dec 18 04:50:56 2013 -0800
+++ b/make-rules/shared-macros.mk	Wed Dec 18 10:04:53 2013 -0800
@@ -32,13 +32,14 @@
 
 # The location of an external mirror of community source archives that we build
 # in this gate.  The external mirror is a replica of the internal mirror.
-EXTERNAL_ARCHIVE_MIRROR = \
-	http://static.opensolaris.org/action/browse/userland/tarball/userland
+EXTERNAL_ARCHIVE_MIRROR = 
 
 # Default to looking for source archives on the internal mirror and the external
 # mirror before we hammer on the community source archive repositories.
 export DOWNLOAD_SEARCH_PATH +=	$(INTERNAL_ARCHIVE_MIRROR)
+ifneq   ($(strip $(EXTERNAL_ARCHIVE_MIRROR)),)
 export DOWNLOAD_SEARCH_PATH +=	$(EXTERNAL_ARCHIVE_MIRROR)
+endif
 
 # The workspace starts at the mercurial root
 ifeq ($(origin WS_TOP), undefined)
@@ -65,6 +66,10 @@
 install:	SHELLOPTS=
 publish:	SHELLOPTS=pipefail
 
+# some things don't build properly in non-C locales,
+# so lets stay there
+export LC_ALL=C
+
 SHELL=	/bin/bash
 
 CONSOLIDATION =	userland
@@ -222,7 +227,9 @@
 SPRO_ROOT =	$(BUILD_TOOLS)/SUNWspro
 SPRO_VROOT =	$(SPRO_ROOT)/sunstudio12.1
 
-PARFAIT_ROOT =	$(BUILD_TOOLS)/parfait/parfait-tools-0.5.0.1/
+PARFAIT_ROOT =	$(BUILD_TOOLS)/parfait/parfait-tools-1.2.0.2
+PARFAIT_TOOLS=  $(WS_TOOLS)/$(MACH)/parfait
+PARFAIT_TOOLS_GCC3=     $(PARFAIT_TOOLS)/gcc3
 PARFAIT= $(PARFAIT_ROOT)/bin/parfait
 export PARFAIT_NATIVESUNCC=$(SPRO_VROOT)/bin/cc
 export PARFAIT_NATIVESUNCXX=$(SPRO_VROOT)/bin/CC
@@ -231,7 +238,8 @@
 # for now
 export PARFAIT_CLANG=0
 
-GCC_ROOT =	/usr/sfw
+GCC_ROOT =      /usr/gcc/4.7
+GCC3_ROOT =	/usr/sfw
 
 CC.studio.32 =	$(SPRO_VROOT)/bin/cc
 CXX.studio.32 =	$(SPRO_VROOT)/bin/CC
@@ -246,6 +254,12 @@
 CC.gcc.64 =	$(GCC_ROOT)/bin/gcc
 CXX.gcc.64 =	$(GCC_ROOT)/bin/g++
 
+CC.gcc3.32 =    $(GCC3_ROOT)/bin/gcc
+CXX.gcc3.32 =   $(GCC3_ROOT)/bin/g++
+
+CC.gcc3.64 =    $(GCC3_ROOT)/bin/gcc
+CXX.gcc3.64 =   $(GCC3_ROOT)/bin/g++
+
 
 lint.32 =	$(SPRO_VROOT)/bin/lint -m32
 lint.64 =	$(SPRO_VROOT)/bin/lint -m64
@@ -263,15 +277,19 @@
 PYTHON.2.7.VENDOR_PACKAGES = $(PYTHON.2.7.VENDOR_PACKAGES.$(BITS))
 
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-CC.studio.32 =	$(WS_TOOLS)/parfait/cc
-CXX.studio.32 =	$(WS_TOOLS)/parfait/CC
-CC.studio.64 =	$(WS_TOOLS)/parfait/cc
-CXX.studio.64 =	$(WS_TOOLS)/parfait/CC
-CC.gcc.32 =	$(WS_TOOLS)/parfait/gcc
-CXX.gcc.32 =	$(WS_TOOLS)/parfait/g++
-CC.gcc.64 =	$(WS_TOOLS)/parfait/gcc
-CXX.gcc.64 =	$(WS_TOOLS)/parfait/g++
-LD =		$(WS_TOOLS)/parfait/ld
+CC.studio.32 =	$(PARFAIT_TOOLS)/cc
+CXX.studio.32 =	$(PARFAIT_TOOLS)/CC
+CC.studio.64 =	$(PARFAIT_TOOLS)/cc
+CXX.studio.64 =	$(PARFAIT_TOOLS)/CC
+CC.gcc.32 =	$(PARFAIT_TOOLS)/gcc
+CXX.gcc.32 =	$(PARFAIT_TOOLS)/g++
+CC.gcc.64 =	$(PARFAIT_TOOLS)/gcc
+CXX.gcc.64 =	$(PARFAIT_TOOLS)/g++
+CC.gcc3.32 =    $(PARFAIT_TOOLS_GCC3)/gcc
+CXX.gcc3.32 =   $(PARFAIT_TOOLS_GCC3)/g++
+CC.gcc3.64 =    $(PARFAIT_TOOLS_GCC3)/gcc
+CXX.gcc3.64 =   $(PARFAIT_TOOLS_GCC3)/g++
+LD =		$(PARFAIT_TOOLS)/ld
 endif
 
 CC =		$(CC.$(COMPILER).$(BITS))
@@ -357,7 +375,11 @@
 
 PKGREPO =	/usr/bin/pkgrepo
 PKGSEND =	/usr/bin/pkgsend
-PKGLINT =	/usr/bin/pkglint
+ifeq   ($(strip $(PKGLINT_COMPONENT)),)
+PKGLINT =       /usr/bin/pkglint
+else
+PKGLINT =       ${WS_TOOLS}/pkglint
+endif
 
 ACLOCAL =	/usr/bin/aclocal-1.10
 AUTOMAKE =	/usr/bin/automake-1.10
@@ -555,6 +577,8 @@
 # configure environment.
 CFLAGS.gcc +=	$(gcc_OPT)
 CFLAGS.gcc +=	$(gcc_XREGS)
+CFLAGS.gcc3 +=  $(gcc_OPT)
+CFLAGS.gcc3 +=  $(gcc_XREGS)
 
 
 # Build 32 or 64 bit objects.
@@ -612,7 +636,7 @@
 # only be required if the component's native build is horribly broken.
 LD_Z_RESCAN_NOW =	-z rescan-now
 
-LD_Z_TEXT =		-z direct
+LD_Z_TEXT =		-z text
 
 # make sure that -lc is always present when building shared objects.
 LD_DEF_LIBS +=		-lc
@@ -623,6 +647,9 @@
 # eliminate unreferenced dynamic dependencies
 LD_Z_IGNORE =		-z ignore
 
+# eliminate comments
+LD_Z_STRIP_CLASS =      -z strip-class=comment
+
 # use direct binding
 LD_B_DIRECT =		-Bdirect
 
@@ -656,7 +683,8 @@
 # libraries to this macro, as it will apply to everything linked during the
 # component build.
 LD_OPTIONS +=	$(LD_MAP_NOEXSTK.$(MACH)) $(LD_MAP_NOEXDATA.$(MACH)) \
-		$(LD_MAP_PAGEALIGN) $(LD_B_DIRECT) $(LD_Z_IGNORE)
+		$(LD_MAP_PAGEALIGN) $(LD_B_DIRECT) $(LD_Z_IGNORE) \
+		$(LD_Z_STRIP_CLASS)
 
 # Environment variables and arguments passed into the build and install
 # environment(s).  These are the initial settings.