# HG changeset patch # User Shawn Walker-Salas # Date 1448321623 28800 # Node ID 34cc580c62c2bc11fb301962d92c4ef57c6fabce # Parent 3a6b9e3809f7f693d50f12eecd888e8cc816f6f5 21029732 PKG_CONFIG_PATH should be included in CONFIGURE_ENV and BUILD_ENV 21029735 shared-macros should define service manifest and method macros 21093823 sample-manifest should omit or comment "standard" directories and certain files 21144358 configure scripts usually detect wrong host for 64-bit builds 21157847 shared-macros.mk instructions have a typo for studio c99 mode 22067225 common make-rules desired for simplifying makefiles 22067806 transforms needs expanding for desktop services diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/aalib/Makefile --- a/components/aalib/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/aalib/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -48,20 +48,16 @@ PKG_PROTO_DIRS += $(COMPONENT_SRC) -# We need to reset configure options here because aalib is confused with -# CC and CFLAGS definitions as configure parameters. -CONFIGURE_OPTIONS = --prefix=/usr +# Ensure ancient autoconf scripts are overwritten with fixed versions that +# properly detect SunOS 5.x hosts. +COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fiv) + CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR) -CONFIGURE_OPTIONS += --mandir=$(CONFIGURE_MANDIR) -CONFIGURE_OPTIONS += --bindir=$(CONFIGURE_BINDIR.$(BITS)) -CONFIGURE_OPTIONS += --libdir=$(CONFIGURE_LIBDIR.$(BITS)) CONFIGURE_OPTIONS += --enable-shared CONFIGURE_OPTIONS += --disable-static CONFIGURE_OPTIONS += --x-includes=/usr/include CONFIGURE_OPTIONS += --x-libraries=$(CONFIGURE_LIBDIR.$(BITS)) -CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(BITS)) -CONFIGURE_ENV += CC="$(CC)" CONFIGURE_ENV += CFLAGS="$(CFLAGS)" COMPONENT_TEST_DIR = $(@D)/src diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/apache2-modules/mod_wsgi/Makefile --- a/components/apache2-modules/mod_wsgi/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/apache2-modules/mod_wsgi/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -37,6 +37,8 @@ TPNO= 19269 include $(WS_MAKE_RULES)/prep.mk +# Don't use default CPPFLAGS; it causes Apache's custom CPP to fail. +CONFIGURE_CPPFLAGS= include $(WS_MAKE_RULES)/configure.mk include $(WS_MAKE_RULES)/ips.mk include ../modules.mk diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/berkeleydb/Makefile --- a/components/berkeleydb/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/berkeleydb/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -75,7 +75,6 @@ CONFIGURE_ENV += CFLAGS="$(CFLAGS)" CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)" -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" JAVA_HOME = $(JAVA7_HOME) CONFIGURE_ENV += JAVA_HOME="$(JAVA_HOME)" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/cmake/Makefile --- a/components/cmake/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/cmake/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -57,8 +57,6 @@ # We need these in the environment, although they are already passed # as CONFIGURE_OPTIONS; otherwise the correct compilers are not used -CONFIGURE_ENV += CC="$(CC)" -CONFIGURE_ENV += CXX="$(CXX)" CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)" CONFIGURE_ENV += MAKE="$(GMAKE)" CONFIGURE_ENV += CFLAGS="$(CFLAGS)" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/conflict/Makefile --- a/components/conflict/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/conflict/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -23,6 +23,7 @@ # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. # +BITS=64 include ../../make-rules/shared-macros.mk COMPONENT_NAME= conflict @@ -45,17 +46,7 @@ # Required to configure correctly. COMPONENT_PRE_CONFIGURE_ACTION = \ ($(CLONEY) $(SOURCE_DIR) $(@D)) - -CC += $(CC_BITS) - -CONFIGURE_ENV += "CC=$(CC)" - -# If the configure options are not explicitly set, then configure fails with: -# configure: warning: CC=/ws/onnv-tools/SUNWspro/sunstudio12.1/bin/cc: invalid host type -# configure: warning: CXX=/ws/onnv-tools/SUNWspro/sunstudio12.1/bin/CC: invalid host type -# configure: error: can only configure for one host and one target at a time -CONFIGURE_OPTIONS = --prefix=$(CONFIGURE_PREFIX) -CONFIGURE_OPTIONS += --mandir=$(CONFIGURE_MANDIR) +CONFIGURE_ENV += CFLAGS="$(CFLAGS)" COMPONENT_TEST_DIR = $(BUILD_DIR_64) COMPONENT_TEST_CMD = ./run_test.sh diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/cups/Makefile --- a/components/cups/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/cups/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -45,8 +45,11 @@ # don't use LD_Z_IGNORE: causes linker problems LD_Z_IGNORE= -CONFIGURE_OPTIONS += --prefix=/usr -CONFIGURE_OPTIONS += --mandir=/usr/share/man +# cups has an unusual hybrid-build system to support 32-bit and 64-bit +# libraries in a single build; avoid confusing it by omitting default configure +# CPPFLAGS. +CONFIGURE_CPPFLAGS= + CONFIGURE_OPTIONS += --localedir=$(USRSHARELOCALEDIR) CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR) CONFIGURE_OPTIONS += --localstatedir=/var diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/curl/Makefile --- a/components/curl/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/curl/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -50,7 +50,6 @@ CONFIGURE_ENV += CFLAGS="$(CFLAGS)" CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS) -I/usr/include/openldap" -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" CONFIGURE_OPTIONS += --localstatedir=/var --enable-shared --disable-static CONFIGURE_OPTIONS += --enable-http --enable-ftp diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/doxygen/Makefile --- a/components/doxygen/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/doxygen/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -20,6 +20,7 @@ # # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. # +BITS=64 include ../../make-rules/shared-macros.mk COMPONENT_NAME= doxygen @@ -41,6 +42,8 @@ TPNO= 21549 include $(WS_MAKE_RULES)/prep.mk +# Omit directory options that break doxygen's configure script. +CONFIGURE_DEFAULT_DIRS=no include $(WS_MAKE_RULES)/configure.mk include $(WS_MAKE_RULES)/ips.mk @@ -57,11 +60,8 @@ # Missing files in build dir for configure without this. COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D)) -# Need to override default options since configure doesn't -# understand CC, CXX, etc. -CONFIGURE_OPTIONS = --platform solaris-g++ -CONFIGURE_OPTIONS += --prefix /usr -CONFIGURE_OPTIONS += --enable-langs am,ar,br,ca,cn,cz,de,dk,en,eo,es,fa,fi,fr,gr,hr,hu,id,it,je,jp,ke,kr,lt,lv,mk,nl,no,pl,pt,ro,ru,sc,si,sk,sr,sv,tr,tw,ua,vi,za +CONFIGURE_OPTIONS += --platform solaris-g++ +CONFIGURE_OPTIONS += --enable-langs=am,ar,br,ca,cn,cz,de,dk,en,eo,es,fa,fi,fr,gr,hr,hu,id,it,je,jp,ke,kr,lt,lv,mk,nl,no,pl,pt,ro,ru,sc,si,sk,sr,sv,tr,tw,ua,vi,za # Tests not available from the top-level Makefile, nor via a standard target. # We need to add /usr/gnu/bin to the front of the PATH environment variable diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/emacs/Makefile --- a/components/emacs/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/emacs/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -72,6 +72,9 @@ # #CONFIGURE_PREFIX = $(PROTO_DIR)/usr +# configure env common to all variants of emacs that we want to build. +CONFIGURE_ENV += CFLAGS="$(CFLAGS)" + # The configure script runs the pkg-config command. This allows it to # find the non-default GnuTLS v3 library. CONFIGURE_ENV += PKG_CONFIG_PATH=/usr/lib/$(MACH64)/pkgconfig/gnutls-3 @@ -82,7 +85,6 @@ CONFIGURE_ENV += XMKMF="false" # configure options common to all variants of emacs that we want to build. -CONFIGURE_OPTIONS += CC="$(CC) -m64" CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR) CONFIGURE_OPTIONS += --datarootdir=$(CONFIGURE_PREFIX)/share CONFIGURE_OPTIONS += --libexecdir=$(CONFIGURE_PREFIX)/lib diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/gcc3/Makefile --- a/components/gcc3/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/gcc3/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -55,20 +55,14 @@ CONFIGURE_PREFIX = /usr/gcc/3.4 -# we need to override CONFIGURE_OPTIONS because GCC uses a configure that -# can't deal with CC as an argument -CONFIGURE_OPTIONS = --prefix=$(CONFIGURE_PREFIX) -CONFIGURE_OPTIONS += --mandir=$(CONFIGURE_MANDIR) -CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_PREFIX)/share/info +CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_PREFIX)/share/info CONFIGURE_OPTIONS += --without-gnu-ld --with-ld=/usr/bin/ld CONFIGURE_OPTIONS += --enable-languages='c,c++,f77,objc' CONFIGURE_OPTIONS += --enable-shared # sparc and x86 use different assemblers CONFIGURE_OPTIONS.sparc += --without-gnu-as --with-as=/usr/bin/as CONFIGURE_OPTIONS.i386 += --with-gnu-as --with-as=/usr/gnu/bin/as -CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(MACH)) -CONFIGURE_ENV += CC="$(CC)" CONFIGURE_ENV += CFLAGS="$(CFLAGS)" COMPONENT_BUILD_ENV += STAGE1_CFLAGS="$(CFLAGS)" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/gd2/Makefile --- a/components/gd2/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/gd2/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -42,9 +42,6 @@ include $(WS_MAKE_RULES)/ips.mk include $(WS_MAKE_RULES)/lint-libraries.mk -PKG_CONFIG_PATH_32 = /usr/lib/pkgconfig -PKG_CONFIG_PATH_64 = /usr/lib/$(MACH64)/pkgconfig - PATCH_LEVEL = 0 CFLAGS += $(CPP_LARGEFILES) @@ -56,7 +53,6 @@ CONFIGURE_ENV += CFLAGS="$(CFLAGS)" CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)" -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH_$(BITS))" CONFIGURE_OPTIONS += --includedir=$(CONFIGURE_INCLUDEDIR)/gd2 CONFIGURE_OPTIONS += --disable-static diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/ggrep/Makefile --- a/components/ggrep/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/ggrep/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -20,6 +20,7 @@ # # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. # +BITS=64 include ../../make-rules/shared-macros.mk COMPONENT_NAME= grep @@ -43,8 +44,11 @@ # We need to be able to return from void functions CFLAGS += $(studio_FEATURES_EXTENSIONS) +# 64-bit only components are delivered to the "32-bit" locations since we don't +# need both versions. +CONFIGURE_BINDIR.32 = $(CONFIGURE_PREFIX)/gnu/bin + CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)" -CONFIGURE_OPTIONS += --prefix=/usr # Enable aslr for this component ASLR_MODE = $(ASLR_ENABLE) diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/ggrep/gnu-grep.p5m --- a/components/ggrep/gnu-grep.p5m Mon Nov 16 06:14:40 2015 -0800 +++ b/components/ggrep/gnu-grep.p5m Mon Nov 23 15:33:43 2015 -0800 @@ -40,9 +40,9 @@ link path=usr/bin/ggrep target=../gnu/bin/grep facet.compat.gnulinks=true -file usr/bin/$(MACH64)/egrep path=usr/gnu/bin/egrep -file usr/bin/$(MACH64)/fgrep path=usr/gnu/bin/fgrep -file usr/bin/$(MACH64)/grep path=usr/gnu/bin/grep +file path=usr/gnu/bin/egrep +file path=usr/gnu/bin/fgrep +file path=usr/gnu/bin/grep file usr/share/man/man1/egrep.1 path=usr/gnu/share/man/man1/egrep.1 file usr/share/man/man1/fgrep.1 path=usr/gnu/share/man/man1/fgrep.1 file usr/share/man/man1/grep.1 path=usr/gnu/share/man/man1/grep.1 diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/ghostscript/Makefile --- a/components/ghostscript/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/ghostscript/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -47,6 +47,11 @@ PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin +# ghostscript uses a non-standard hybrid-build to build both 32 and 64-bit; +# override these to prevent build failure. +CC_FOR_BUILD= +CONFIGURE_CPPFLAGS= + # configure(1) options to use CONFIGURE_OPTIONS += --with-drivers=ALL CONFIGURE_OPTIONS += --with-ijs diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/gnump/Makefile --- a/components/gnump/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/gnump/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -90,8 +90,6 @@ # libgmpxx.so.4 always gets built with unnecessary paths in RUNPATH/RPATH ELFEDIT = /usr/bin/elfedit -CONFIGURE_ENV += CC="$(CC)" -CONFIGURE_ENV += CXX="$(CXX)" CONFIGURE_ENV += CFLAGS="$(CFLAGS)" CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)" CONFIGURE_ENV += CXXFLAGS="$(CC_BITS) $(CXXFLAGS)" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/gnupg/Makefile --- a/components/gnupg/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/gnupg/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -20,6 +20,7 @@ # # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. # +BITS=64 include ../../make-rules/shared-macros.mk COMPONENT_NAME= gnupg @@ -119,8 +120,6 @@ CONFIGURE_OPTIONS += --with-zlib=$(CONFIGURE_PREFIX) CONFIGURE_OPTIONS += --with-bzip2=$(CONFIGURE_PREFIX) CONFIGURE_OPTIONS += --with-readline=$(CONFIGURE_PREFIX) -CONFIGURE_BINDIR.64 = $(CONFIGURE_PREFIX)/bin -CONFIGURE_SBINDIR.64 = $(CONFIGURE_PREFIX)/sbin LIBKSBA_MANIFEST = manifest-$(MACH)-libksba.depend LIBASSUAN_MANIFEST = manifest-$(MACH)-libassuan.depend diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/gnupth/Makefile --- a/components/gnupth/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/gnupth/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -61,7 +61,6 @@ CONFIGURE_OPTIONS += --localstatedir=/var CONFIGURE_OPTIONS += --with-pic -CONFIGURE_ENV += CC="$(CC)" CONFIGURE_ENV += LD="$(CC) $(CFLAGS) $(LDFLAGS)" CONFIGURE_ENV += CFLAGS="$(CFLAGS)" CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/ilmbase/Makefile --- a/components/ilmbase/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/ilmbase/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -53,7 +53,6 @@ CONFIGURE_ENV += CFLAGS="$(CFLAGS)" CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)" CONFIGURE_ENV += LIBS="$(LIBS)" -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" CONFIGURE_OPTIONS += --disable-static CONFIGURE_OPTIONS += --enable-threading diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/lcms/Makefile --- a/components/lcms/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/lcms/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -65,7 +65,6 @@ CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)" CONFIGURE_ENV += PYTHON="$(PYTHON)" CONFIGURE_ENV += PYTHONMODULEDIR="$(PYTHON_VENDOR_PACKAGES)" -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" CONFIGURE_OPTIONS += --includedir=/usr/include/lcms CONFIGURE_OPTIONS += --enable-shared diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/mailman/Makefile --- a/components/mailman/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/mailman/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -20,6 +20,7 @@ # # Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. # +BITS=64 include ../../make-rules/shared-macros.mk COMPONENT_NAME= mailman @@ -41,7 +42,7 @@ CONFIGURE_ENV += MAILMAN_USER=mailman CONFIGURE_ENV += MAILMAN_GROUP=mailman -CONFIGURE_OPTIONS += --prefix=/usr/lib/mailman +CONFIGURE_PREFIX= /usr/lib/mailman CONFIGURE_OPTIONS += --with-var-prefix=/var/mailman CONFIGURE_OPTIONS += --with-mail-gid=other CONFIGURE_OPTIONS += --with-cgi-gid=webservd diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/mpfr/Makefile --- a/components/mpfr/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/mpfr/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -76,9 +76,7 @@ '-e "/DEPDIR=/d"' \ '-e "s/^make\[[0-9]\{1,\}\]/make/g"' -CONFIGURE_ENV += CC="$(CC)" CONFIGURE_ENV += CFLAGS="$(CFLAGS)" -CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)" CONFIGURE_ENV += LD="$(CC) $(CFLAGS) $(LDFLAGS)" CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)" CONFIGURE_ENV += CPP="$(CC) $(CPPFLAGS) $(CFLAGS) -E" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/ncftp/Makefile --- a/components/ncftp/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/ncftp/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -23,6 +23,7 @@ # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. # +BITS=64 include ../../make-rules/shared-macros.mk COMPONENT_NAME= ncftp @@ -44,11 +45,8 @@ COMPONENT_PRE_CONFIGURE_ACTION = \ ($(CLONEY) $(SOURCE_DIR) $(@D)) -CONFIGURE_ENV += CC="$(CC)" -CONFIGURE_ENV += CXX="$(CXX)" CONFIGURE_ENV += CFLAGS="$(CFLAGS)" -CONFIGURE_OPTIONS = --prefix=$(CONFIGURE_PREFIX) CONFIGURE_OPTIONS += --srcdir=$(BUILD_DIR_64) ASLR_MODE = $(ASLR_ENABLE) diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/nmap/Makefile --- a/components/nmap/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/nmap/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -53,7 +53,6 @@ CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)" CONFIGURE_OPTIONS += CXX="$(CXX)" CONFIGURE_OPTIONS += CXXFLAGS="$(CXXFLAGS)" -CONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS)" CONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS) -m64" CONFIGURE_OPTIONS += LIBS="-lsocket -lnsl" CONFIGURE_OPTIONS += PYTHON="$(PYTHON.$(PYTHON_VERSION))" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/openexr/Makefile --- a/components/openexr/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/openexr/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -63,7 +63,6 @@ CONFIGURE_ENV += CFLAGS="$(CFLAGS)" CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)" CONFIGURE_ENV += LIBS="$(LIBS)" -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" CONFIGURE_OPTIONS += --disable-static CONFIGURE_OPTIONS += --enable-threading diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/openldap/Makefile --- a/components/openldap/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/openldap/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -71,7 +71,6 @@ CFLAGS += $(CPP_LARGEFILES) $(CC_PIC) $(studio_NORUNPATH) CONFIGURE_ENV += CFLAGS="$(CFLAGS)" -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" CONFIGURE_ENV += "ac_cv_lib_net_main=no" CONFIGURE_ENV += "ac_cv_lib_net_socket==no" CONFIGURE_ENV += "ac_cv_lib_inet_socket==no" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/openssl/openssl-default/Makefile --- a/components/openssl/openssl-default/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/openssl/openssl-default/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -65,6 +65,11 @@ # OpenSSL does not use autoconf but its own configure system. CONFIGURE_SCRIPT = $(SOURCE_DIR)/Configure +# Ignore default CC_FOR_BUILD, CC, and CXX in CONFIGURE_ENV. +CONFIGURE_ENV += CC_FOR_BUILD= +CONFIGURE_ENV += CC= +CONFIGURE_ENV += CXX= + # This is to force OpenSSL's Configure script to use gmake for 'make links'. # Otherwise it fails with: # mksh: Fatal error in reader: Unmatched `(' on line diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/openssl/openssl-fips-140/Makefile --- a/components/openssl/openssl-fips-140/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/openssl/openssl-fips-140/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -75,6 +75,11 @@ FIPS_BUILD_DIR_64 = $(shell echo $(BUILD_DIR_64) | \ sed -e 's/openssl-fips-140/openssl-fips/g' ) +# Ignore default CC_FOR_BUILD, CC, and CXX in CONFIGURE_ENV. +CONFIGURE_ENV += CC_FOR_BUILD= +CONFIGURE_ENV += CC= +CONFIGURE_ENV += CXX= + CONFIGURE_OPTIONS = -DSOLARIS_OPENSSL -DNO_WINDOWS_BRAINDEATH CONFIGURE_OPTIONS += --openssldir=/etc/openssl CONFIGURE_OPTIONS += --prefix=/usr diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/openssl/openssl-fips/Makefile --- a/components/openssl/openssl-fips/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/openssl/openssl-fips/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -97,6 +97,10 @@ COMPONENT_BUILD_TARGETS = COMPONENT_INSTALL_ARGS = COMPONENT_INSTALL_TARGETS = install +# Ignore default CC_FOR_BUILD, CC, and CXX in CONFIGURE_ENV. +CONFIGURE_ENV += CC_FOR_BUILD= +CONFIGURE_ENV += CC= +CONFIGURE_ENV += CXX= CONFIGURE_ENV += FIPS_SITE_LD=$(LD) PATH=$(FIPS_PATH_$(BITS)) # Add COMPONENT_DIR to PATH so cc wrapper can be found. COMPONENT_BUILD_ENV += FIPS_SITE_LD=$(LD) REALCC=$(CC) MYMAKE=$(MAKE) PATH=$(COMPONENT_DIR):$(PATH) diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/pconsole/Makefile --- a/components/pconsole/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/pconsole/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -23,6 +23,7 @@ # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. # +BITS=64 include ../../make-rules/shared-macros.mk COMPONENT_NAME= pconsole @@ -38,6 +39,8 @@ TPNO= 9270 include $(WS_MAKE_RULES)/prep.mk +# DESTDIR doesn't work correctly; omit default directories. +CONFIGURE_DEFAULT_DIRS=no include $(WS_MAKE_RULES)/configure.mk include $(WS_MAKE_RULES)/ips.mk @@ -45,16 +48,11 @@ COMPONENT_PRE_CONFIGURE_ACTION = \ ($(CLONEY) $(SOURCE_DIR) $(@D)) -# -I argument needed to find the generated config.h file. -# CC_BITS needed to ensure -m64 is used for 64-bit compile +# -I argument needed to find the generated config.h file. Also, pconsole +# configure.in forcibly overrides CFLAGS, so we override the compiler to +# specify required flags. CONFIGURE_ENV += "CC=$(CC) -I. $(CC_BITS)" -# If the configure options are not explicitly set, then configure fails with: -# configure: warning: CC=/ws/onnv-tools/SUNWspro/sunstudio12.1/bin/cc: invalid host type -# configure: warning: CXX=/ws/onnv-tools/SUNWspro/sunstudio12.1/bin/CC: invalid host type -# configure: error: can only configure for one host and one target at a time -CONFIGURE_OPTIONS = --prefix=$(CONFIGURE_PREFIX) - ASLR_MODE = $(ASLR_ENABLE) # DESTDIR doesn't work correctly, so we specify some of the paths directly. diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/pcre/Makefile --- a/components/pcre/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/pcre/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -69,10 +69,8 @@ LINTFLAGS+= -I. $(studio_XBITS) $(CPP_LARGEFILES) -CONFIGURE_ENV+= "CC=$(CC)" CONFIGURE_ENV+= "CFLAGS=$(CFLAGS)" CONFIGURE_ENV+= "CPP=$(CC) $(CPPFLAGS) $(CFLAGS) -E" -CONFIGURE_ENV+= "CXX=$(CXX)" CONFIGURE_ENV+= "CXXFLAGS=$(CXXFLAGS)" CONFIGURE_ENV+= "CXXCPP=$(CXX) $(CPPFLAGS) $(CXXFLAGS) -E" CONFIGURE_ENV+= "LDFLAGS=$(LDFLAGS)" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/r/Makefile --- a/components/r/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/r/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -62,12 +62,9 @@ F95 = $(SPRO_VROOT)/bin/f95 -CONFIGURE_ENV += CC="$(CC)" -CONFIGURE_ENV += CXX="$(CXX)" CONFIGURE_ENV += F77="$(F95) $(CC_BITS)" CONFIGURE_ENV += FC="$(F95) $(CC_BITS)" -CONFIGURE_ENV += CPPFLAGS="" CONFIGURE_ENV += CPICFLAGS="$(studio_PIC)" CONFIGURE_ENV += CFLAGS="-xO3 -xc99 -xlibmieee $(CC_BITS)" CONFIGURE_ENV += CXXFLAGS="-xO3 $(CC_BITS)" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/stdcxx/Makefile --- a/components/stdcxx/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/stdcxx/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -172,8 +172,6 @@ # a whitespace. BUILD_NLSPATH = :%N.cat:/usr/lib/locale/%L/%N.cat:/usr/share/locale/%L/%N.cat:$(BUILD_DIR_$(BITS))/lib/rwstderr.cat -CONFIGURE_ENV = CC="$(CC)" -CONFIGURE_ENV += CXX="$(CXX)" CONFIGURE_ENV += CFLAGS="$(CFLAGS)" CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)" CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/subversion/Makefile --- a/components/subversion/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/subversion/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -101,11 +101,8 @@ install-mods-shared \ install-bin install-docs -CONFIGURE_ENV += CC="$(CC)" -CONFIGURE_ENV += CXX="$(CXX)" CONFIGURE_ENV += CFLAGS="$(CFLAGS)" CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)" -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" CONFIGURE_ENV += PYTHON="$(PYTHON.$(BITS))" CONFIGURE_ENV += PYMODS="$(PYMODS)" CONFIGURE_ENV += PYTHONPATH="$(PYTHON_VENDOR_PACKAGES.$(BITS))" @@ -114,8 +111,8 @@ CONFIGURE_ENV += PLMODS="$(PLMODS)" CONFIGURE_ENV += LD_OPTIONS="$(LD_OPTIONS)" -LIBSVNDIR.32 = $(CONFIGURE_PREFIX)/lib/svn -LIBSVNDIR.64 = $(CONFIGURE_PREFIX)/lib/svn/$(MACH64) +CONFIGURE_LIBDIR.32 = $(CONFIGURE_PREFIX)/lib/svn +CONFIGURE_LIBDIR.64 = $(CONFIGURE_PREFIX)/lib/svn/$(MACH64) APR-CONFIG.32 = /usr/apr/$(APR_VERSION)/bin/apr-1-config APR-CONFIG.64 = /usr/apr/$(APR_VERSION)/bin/$(MACH64)/apr-1-config @@ -130,17 +127,11 @@ APACHE_LIBEXECDIR.32 = `$(APXS.32) -q libexecdir` APACHE_LIBEXECDIR.64 = `$(APXS.64) -q libexecdir` -LDFLAGS += -R$(LIBSVNDIR.$(BITS)) -R$(APR-CONFIG-RPATH.$(BITS)) \ +LDFLAGS += -R$(CONFIGURE_LIBDIR.$(BITS)) -R$(APR-CONFIG-RPATH.$(BITS)) \ -R$(APU-CONFIG-RPATH.$(BITS)) CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)" -# Let's make noise just because we have to override --libdir -CONFIGURE_OPTIONS = --prefix=$(CONFIGURE_PREFIX) -CONFIGURE_OPTIONS += --mandir=$(CONFIGURE_MANDIR) -CONFIGURE_OPTIONS += --bindir=$(CONFIGURE_BINDIR.$(BITS)) -CONFIGURE_OPTIONS += --sbindir=$(CONFIGURE_SBINDIR.$(BITS)) -CONFIGURE_OPTIONS += --libdir=$(LIBSVNDIR.$(BITS)) CONFIGURE_OPTIONS += --localstatedir=/var CONFIGURE_OPTIONS += --enable-shared CONFIGURE_OPTIONS += --disable-static diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/sudo/Makefile --- a/components/sudo/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/sudo/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -44,9 +44,7 @@ COMPONENT_PREP_ACTION = ( cd $(@D) ; $(AUTORECONF) -f -I m4 ) -CONFIGURE_ENV += "CC=$(CC)" CONFIGURE_ENV += "CFLAGS=$(CFLAGS)" -CONFIGURE_ENV += "CXX=$(CXX)" CONFIGURE_ENV += "MAKE=$(GMAKE)" CONFIGURE_ENV += "CPPFLAGS=$(CPPFLAGS) -I/usr/include/openldap" CONFIGURE_ENV += "LDFLAGS=$(LDFLAGS) -m64 -lldap_r-2.4" diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/trousers/patches/configure.in.patch --- a/components/trousers/patches/configure.in.patch Mon Nov 16 06:14:40 2015 -0800 +++ b/components/trousers/patches/configure.in.patch Mon Nov 23 15:33:43 2015 -0800 @@ -1,3 +1,19 @@ +Fix pure 64-bit x86 builds on Solaris, change default port, and ensure endian.h +is included when appropriate. No change is necessary for SPARC. +--- configure.in 2015-10-28 16:05:06.799975827 -0700 ++++ configure.in 2015-10-28 16:04:45.893833006 -0700 +@@ -38,6 +38,11 @@ + *ppc64* | *powerpc64* | *x86_64*) + CFLAGS="$CFLAGS -m64" + ;; ++ *) ++ ;; ++esac ++ ++case $target in + *solaris*) + CFLAGS="$CFLAGS -DSOLARIS" + ;; --- configure.in 2010-07-08 13:35:18.000000000 -0700 +++ configure.in 2012-04-10 17:37:23.820532000 -0700 @@ -143,7 +143,9 @@ diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/unixodbc/Makefile --- a/components/unixodbc/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/unixodbc/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -62,9 +62,6 @@ X11LIB.32 = $(CONFIGURE_PREFIX)/lib X11LIB.64 = $(CONFIGURE_PREFIX)/lib/$(MACH64) -PKG_CONFIG_PATH_32 = /usr/lib/pkgconfig -PKG_CONFIG_PATH_64 = /usr/lib/$(MACH64)/pkgconfig - LD_OPTIONS += -lsocket -lresolv -lnsl -lgen CONFIGURE_OPTIONS += --includedir=$(CONFIGURE_PREFIX)/include/odbc @@ -94,12 +91,10 @@ CONFIGURE_OPTIONS += --disable-ltdl-install CONFIGURE_OPTIONS += --with-pic -CONFIGURE_ENV += CC="$(CC)" CONFIGURE_ENV += LD="$(CC) $(CFLAGS) $(LDFLAGS)" CONFIGURE_ENV += CFLAGS="$(CFLAGS)" CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)" CONFIGURE_ENV += INSTALL="$(INSTALL)" -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH_$(BITS))" PROTOPKGCONFIGDIR32 = $(PROTOUSRLIBDIR)/pkgconfig PROTOPKGCONFIGDIR64 = $(PROTOUSRLIBDIR64)/pkgconfig diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/vim/Makefile --- a/components/vim/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/vim/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -75,9 +75,6 @@ # Put all the binaries directly in /usr/bin, not in /usr/bin/64. CONFIGURE_BINDIR.64 = $(CONFIGURE_PREFIX)/bin -# Use the 64-bit versions of pkg-config files (or GTK+ will add -R/usr/lib) -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" - # Necessary to pass 64-bit flags to the compilation stage. CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)" CONFIGURE_OPTIONS += --with-features=huge diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/wireshark/Makefile --- a/components/wireshark/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/wireshark/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -61,9 +61,6 @@ CONFIGURE_OPTIONS += PATH="/usr/perl5/bin:/usr/gnu/bin:$(PATH)" CONFIGURE_OPTIONS += PKG_CONFIG_PATH=/usr/lib/$(MACH64)/pkgconfig/gnutls-3 -# Use the 64-bit versions of pkg-config files -CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" - # We need to avoid RPATH=/usr/lib in Wireshark libraries so that we can # create successfully IPS package of different Wireshark branch than is # installed on build system without dependency errors. diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/wxwidgets/Makefile --- a/components/wxwidgets/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/wxwidgets/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -42,11 +42,6 @@ PKG_PROTO_DIRS += $(COMPONENT_DIR)/man -# We need to compile with /usr/lib/$(MACH64)/glib-2.0 to ensure -# that 64-bit headers will be used, see content of -# /usr/lib/64/pkgconfig/glib-2.0.pc -$(BUILD_64): CONFIGURE_OPTIONS += PKG_CONFIG_PATH=/usr/lib/$(MACH64)/pkgconfig - # get rid of compiler path set in RUNPATH LDFLAGS += $(studio_NORUNPATH) LDFLAGS += $(CC_BITS) diff -r 3a6b9e3809f7 -r 34cc580c62c2 components/zlib/Makefile --- a/components/zlib/Makefile Mon Nov 16 06:14:40 2015 -0800 +++ b/components/zlib/Makefile Mon Nov 23 15:33:43 2015 -0800 @@ -38,6 +38,8 @@ TPNO= 17611 include $(WS_MAKE_RULES)/prep.mk +# Omit directory options that cause zlib's CMake-based build to fail. +CONFIGURE_DEFAULT_DIRS=no include $(WS_MAKE_RULES)/configure.mk include $(WS_MAKE_RULES)/ips.mk include $(WS_MAKE_RULES)/lint-libraries.mk @@ -86,12 +88,9 @@ # We need to reset configure options here because zlib is confused with # CC and CFLAGS definitions as configure parameters. -CONFIGURE_OPTIONS = --shared -CONFIGURE_OPTIONS += --prefix=/usr -CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(BITS)) +CONFIGURE_OPTIONS += --shared CONFIGURE_OPTIONS.64 += --libdir=/usr/lib/$(MACH64) -CONFIGURE_ENV += CC="$(CC)" CONFIGURE_ENV += CFLAGS="$(CFLAGS) -xalias_level=basic -xdepend" CONFIGURE_ENV += LDSHARED="$(CC) $(CFLAGS) -G" diff -r 3a6b9e3809f7 -r 34cc580c62c2 doc/makefile-variables.txt --- a/doc/makefile-variables.txt Mon Nov 16 06:14:40 2015 -0800 +++ b/doc/makefile-variables.txt Mon Nov 23 15:33:43 2015 -0800 @@ -94,7 +94,8 @@ yielding the wrong results. * COMPONENT_BUILD_ENV is for when you just need to override things in the calling environment, like PATH. -* COMPONENT_INSTALL_ARGS is mainly used for altering target directories. +* COMPONENT_INSTALL_ARGS is mainly used for altering target directories; + there are also COMPONENT_INSTALL_ARGS.$(BITS) versions. * COMPONENT_INSTALL_ENV is mainly used for altering target directories. * COMPONENT_PUBLISH_ENV is so far only used to work around Python issues when used by "pkgdepend generate", though the variable may be extended in the @@ -126,13 +127,37 @@ * COMPONENT_PREP_ACTION is used to make alterations to the unpacked and patched source. It should be used with care. +For components that have a configure target, the following macros are used to +control the options and arguments passed: + +* If BITS is set before shared-macros.mk is included, the default directories + used for various configure options as documented below will change. For + example: + + if BITS=64 explicitly: + 32-bit binaries -> $(CONFIGURE_PREFIX)/bin/$(MACH32) + 32-bit libraries -> $(CONFIGURE_PREFIX)/lib + 64-bit binaries -> $(CONFIGURE_PREFIX)/bin + 64-bit libraries -> $(CONFIGURE_PREFIX)/lib/$(MACH64) + + if BITS=32 explicitly or BITS is unspecified: + 32-bit binaries -> $(CONFIGURE_PREFIX)/bin + 32-bit libraries -> $(CONFIGURE_PREFIX)/lib + 64-bit binaries -> $(CONFIGURE_PREFIX)/bin/$(MACH64) + 64-bit libraries -> $(CONFIGURE_PREFIX)/lib/$(MACH64) +* CC_FOR_BUILD is included in CONFIGURE_ENV by default to ensure that 32-bit + and 64-bit host detection works as expected for autoconf-based components by + specifying the exact compiler and relevant $(CC_BITS) for the current build. + It can be set to "" to omit it from CONFIGURE_ENV. +* CONFIGURE_CPPFLAGS contains the default set of CPPFLAGS to be included in + CONFIGURE_ENV. It can be set to "" to omit it from CONFIGURE_ENV. * CONFIGURE_DEFAULT_DIRS should be "yes" or "no". A value of "yes" (the default) will trigger the following being passed to CONFIGURE_OPTIONS as parameters to corresponding options. - * CONFIGURE_BINDIR is the value for the --bindir= option. - * CONFIGURE_LIBDIR is the value for the --libdir= option. - * CONFIGURE_MANDIR is the value for the --mandir= option. - * CONFIGURE_SBINDIR is the value for the --sbindir= option. + * CONFIGURE_BINDIR.$(BITS) is the value for the --bindir= option. + * CONFIGURE_LIBDIR.$(BITS) is the value for the --libdir= option. + * CONFIGURE_MANDIR.$(BITS) is the value for the --mandir= option. + * CONFIGURE_SBINDIR.$(BITS) is the value for the --sbindir= option. * CONFIGURE_ENV is mainly used for passing CFLAGS and other common Makefile variables to configure. When should this be used as opposed to CONFIGURE_OPTIONS and COMPONENT_BUILD_{ARGS,ENV}? In general, you want @@ -151,10 +176,36 @@ * CONFIGURE_SCRIPT should be set if the default "$(SOURCE_DIR)/configure" is unsuitable for whatever reason. +To override or otherwise modify the default compilation flags used for +components, the following macros are provided: + +* CFLAGS by default contains the preferred set of compilation flags for most + components, which usually includes optimization flags, language mode, + alignment flags, and multi-threading flags for the current COMPILER. + CFLAGS.$(COMPILER) and CFLAGS.$(COMPILERS).$(BITS) versions are also + available for specifying additional flags or overriding the default. +* CXXFLAGS by default contains the preferred set of compilation flags for most + C++ components, which usually includes optimization flags, language mode, + alignment flags, and multi-threading flags for the current COMPILER. + CXXFLAGS.$(COMPILER) and CXXFLAGS.$(COMPILERS).$(BITS) versions are also + available for specifying additional flags or overriding the default. +* gcc_OPT has a default value of "-O3". Bugs in the optimizer have been found + which have required altering this to "-O2". * studio_OPT has a default value of "-xO4". Occasional bugs in the optimizer - have been found which have required altering this to "-xO3". There are also - studio_OPT.$(MACH).$(BITS) versions of this available if greater specificity - is needed. + have been found which have required altering this to "-xO3". +* There are also gcc_OPT.$(MACH).$(BITS) and studio_OPT.$(MACH).$(BITS) + versions of the above available if greater specificity is needed. + +For components that use pkg-config, the following macros are provided: + +* PKG_CONFIG_PATH contains the default system paths to use when looking for + pkg-config configuration files. To specify additional paths to be searched, + use PKG_CONFIG_PATHS as follows: + + PKG_CONFIG_PATHS += /path/to/pc/files + +Finally, for control of packaging-related operations and values used during +publication, the following macros are available: * TPNO is the Third Party number (i.e., a numeric value): the License Technology from the Product Lifecycle Suite tool. This should be used diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/cmake.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-rules/cmake.mk Mon Nov 23 15:33:43 2015 -0800 @@ -0,0 +1,86 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# + +# +# This file sets up the default options and base requirements for GNOME +# components. +# +include $(WS_MAKE_RULES)/prep.mk +# Most cmake-based components require intltools. +include $(WS_MAKE_RULES)/intltool.mk +# cmake components don't generally use autoconf. +include $(WS_MAKE_RULES)/justmake.mk + +# Ensure correct version of libraries are linked to. +LDFLAGS += "$(CC_BITS)" + +# This component uses cmake to generate Makefiles and so has no configure +CMAKE = $(shell which cmake) +CMAKE_BUILD_TYPE ?= RelWithDebInfo + +CMAKE_OPTIONS += -DCMAKE_CXX_COMPILER="$(CXX)" +CMAKE_OPTIONS += -DCMAKE_CXX_FLAGS="$(CXXFLAGS)" +CMAKE_OPTIONS += -DCMAKE_C_COMPILER="$(CC)" +CMAKE_OPTIONS += -DCMAKE_C_FLAGS="$(CFLAGS)" +CMAKE_OPTIONS += -DCMAKE_EXE_LINKER_FLAGS="$(LDFLAGS)" + +# Must start install paths with a leading '/' or files will be installed into +# wrong location! +CMAKE_OPTIONS += -DCMAKE_INSTALL_PREFIX="$(USRDIR)" +CMAKE_OPTIONS += -DCMAKE_MODULE_LINKER_FLAGS="$(LDFLAGS)" +CMAKE_OPTIONS += -DCMAKE_SHARED_LINKER_FLAGS="$(LDFLAGS)" +CMAKE_OPTIONS += -DGETTEXT_MSGFMT_EXECUTABLE="$(GNUBIN)/msgfmt" +CMAKE_OPTIONS += -DBIN_INSTALL_DIR="$(USRBIN)" +CMAKE_OPTIONS += -DEXEC_INSTALL_DIR="$(USRBIN)" + +# Some components use LIB_INSTALL_DIR, as-is, others forcibly ignore it and set +# based on CMAKE_INSTALL_PREFIX. Those usually instead offer a LIB_SUFFIX +# variable that we can generally use to accomplish the same result. Setting +# them both shouldn't harm anything. +CMAKE_OPTIONS += -DLIB_INSTALL_DIR="$(USRLIB)" +CMAKE_OPTIONS.64 += -DLIB_SUFFIX="/$(MACH64)" +CMAKE_OPTIONS += -DLIBEXEC_INSTALL_DIR="$(USRLIB)" + +# Required to ensure expected defines are set; also, ensures project's +# optimisation level set appropriately. +CMAKE_OPTIONS += -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) + +CMAKE_OPTIONS += $(CMAKE_OPTIONS.$(BITS)) + +COMPONENT_PRE_BUILD_ACTION += cd $(@D); +COMPONENT_PRE_BUILD_ACTION += echo Running cmake with $(CMAKE_OPTIONS); +COMPONENT_PRE_BUILD_ACTION += $(CMAKE) . $(CMAKE_OPTIONS); + +# Ensure cmake finds the matching 32/64-bit version of dependencies. +COMPONENT_BUILD_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" + +REQUIRED_PACKAGES += developer/build/cmake +REQUIRED_PACKAGES += developer/build/pkg-config +REQUIRED_PACKAGES += developer/gnu-binutils +REQUIRED_PACKAGES += developer/intltool +REQUIRED_PACKAGES += system/library +REQUIRED_PACKAGES += system/linker +# Most cmake-based components expect GNU versions of these. +REQUIRED_PACKAGES += text/gawk +REQUIRED_PACKAGES += text/gnu-grep +REQUIRED_PACKAGES += text/gnu-sed diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/common-32.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-rules/common-32.mk Mon Nov 23 15:33:43 2015 -0800 @@ -0,0 +1,36 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# + +# +# This file sets up the default options and base requirements for components +# that should be built for 32-bit only. +# +include $(WS_MAKE_RULES)/ips.mk + +ASLR_MODE= $(ASLR_ENABLE) + +# common targets +build: $(BUILD_32) +install: $(INSTALL_32) +test: $(TEST_32) +system-test: $(SYSTEM_TEST_32) diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/common-32_and_64.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-rules/common-32_and_64.mk Mon Nov 23 15:33:43 2015 -0800 @@ -0,0 +1,36 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# + +# +# This file sets up the default options and base requirements for components +# that should be built for 32-bit and 64-bit. +# +include $(WS_MAKE_RULES)/ips.mk + +ASLR_MODE= $(ASLR_ENABLE) + +# common targets +build: $(BUILD_32_and_64) +install: $(INSTALL_32_and_64) +test: $(TEST_32_and_64) +system-test: $(SYSTEM_TEST_32_and_64) diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/common-64.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-rules/common-64.mk Mon Nov 23 15:33:43 2015 -0800 @@ -0,0 +1,36 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# + +# +# This file sets up the default options and base requirements for components +# that should be built for 64-bit only. +# +include $(WS_MAKE_RULES)/ips.mk + +ASLR_MODE= $(ASLR_ENABLE) + +# common targets +build: $(BUILD_64) +install: $(INSTALL_64) +test: $(TEST_64) +system-test: $(SYSTEM_TEST_64) diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/common-no_arch.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-rules/common-no_arch.mk Mon Nov 23 15:33:43 2015 -0800 @@ -0,0 +1,36 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# + +# +# This file sets up the default options and base requirements for components +# that are architecture independent. +# +include $(WS_MAKE_RULES)/ips.mk + +ASLR_MODE= $(ASLR_NOT_APPLICABLE) + +# common targets +build: $(BUILD_NO_ARCH) +install: $(INSTALL_NO_ARCH) +test: $(TEST_NO_ARCH) +system-test: $(SYSTEM_TEST_NO_ARCH) diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/configure-32.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-rules/configure-32.mk Mon Nov 23 15:33:43 2015 -0800 @@ -0,0 +1,29 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# + +# +# This file sets up the default options and base requirements for +# autoconf-based components that should be built for 32-bit only. +# +include $(WS_MAKE_RULES)/configure.mk +configure: $(CONFIGURE_32) diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/configure-32_and_64.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-rules/configure-32_and_64.mk Mon Nov 23 15:33:43 2015 -0800 @@ -0,0 +1,29 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# + +# +# This file sets up the default options and base requirements for +# autoconf-based components that should be built for 32-bit and 64-bit. +# +include $(WS_MAKE_RULES)/configure.mk +configure: $(CONFIGURE_32_and_64) diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/configure-64.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-rules/configure-64.mk Mon Nov 23 15:33:43 2015 -0800 @@ -0,0 +1,29 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# + +# +# This file sets up the default options and base requirements for +# autoconf-based components that should be built for 64-bit only. +# +include $(WS_MAKE_RULES)/configure.mk +configure: $(CONFIGURE_64) diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/configure-no_arch.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-rules/configure-no_arch.mk Mon Nov 23 15:33:43 2015 -0800 @@ -0,0 +1,29 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# + +# +# This file sets up the default options and base requirements for +# autoconf-based components that should be built architecture independent. +# +include $(WS_MAKE_RULES)/configure.mk +configure: $(CONFIGURE_NO_ARCH) diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/configure.mk --- a/make-rules/configure.mk Mon Nov 16 06:14:40 2015 -0800 +++ b/make-rules/configure.mk Mon Nov 23 15:33:43 2015 -0800 @@ -72,16 +72,25 @@ CONFIGURE_DEFAULT_DIRS?=yes -CONFIGURE_OPTIONS += CC="$(CC)" -CONFIGURE_OPTIONS += CXX="$(CXX)" +CONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" +CONFIGURE_ENV += CC="$(CC)" +CONFIGURE_ENV += CXX="$(CXX)" + CONFIGURE_OPTIONS += --prefix=$(CONFIGURE_PREFIX) ifeq ($(CONFIGURE_DEFAULT_DIRS),yes) CONFIGURE_OPTIONS += --mandir=$(CONFIGURE_MANDIR) +ifeq ($(INITIAL_BITS),64) +CONFIGURE_OPTIONS += --bindir=$(CONFIGURE_BINDIR.32) +CONFIGURE_OPTIONS += --sbindir=$(CONFIGURE_SBINDIR.32) +else CONFIGURE_OPTIONS += --bindir=$(CONFIGURE_BINDIR.$(BITS)) -CONFIGURE_OPTIONS += --libdir=$(CONFIGURE_LIBDIR.$(BITS)) CONFIGURE_OPTIONS += --sbindir=$(CONFIGURE_SBINDIR.$(BITS)) endif +CONFIGURE_OPTIONS += --libdir=$(CONFIGURE_LIBDIR.$(BITS)) +endif CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(BITS)) +CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(MACH)) +CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(MACH).$(BITS)) COMPONENT_INSTALL_ARGS += DESTDIR=$(PROTO_DIR) @@ -99,6 +108,31 @@ CONFIGURE_ENV += ac_cv_header_stdbool_h=yes endif +# This MUST be set in the build environment so that if pkg-config is executed +# during the build process, the correct header files and libraries will be +# picked up. In the Linux world, a system is generally only 32-bit or 64-bit +# at one time so this isn't an issue that various auto* files account for (they +# don't set PKG_CONFIG_PATH when executing pkg-config even if it was specified +# during ./configure). +COMPONENT_BUILD_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" + +# CC_FOR_BUILD is used by autoconf to set the compiler and required flags for +# generating native executables and is typically used for host detection and +# other tests during the autoconf process. Explicitly specifying the target +# bits ensures that autoconf reliably detects 32-bit and 64-bit builds. +CC_FOR_BUILD ?= "$(CC) $(CC_BITS)" +ifneq ($(strip $(CC_FOR_BUILD)),) +CONFIGURE_ENV += CC_FOR_BUILD=$(CC_FOR_BUILD) +endif + +# Similar idea for CPP as above; there's a common macro found in lib-prefix.m4 +# for autoconf that detects a 64-bit host on Solaris by using CPP. As such, by +# default, we need to explicitly specify the target bits to ensure that +# autoconf reliably detects 32-bit and 64-bit builds. +CONFIGURE_CPPFLAGS ?= $(CC_BITS) +ifneq ($(strip $(CONFIGURE_CPPFLAGS)),) +CONFIGURE_ENV += CPPFLAGS="$(CONFIGURE_CPPFLAGS) $(CPPFLAGS)" +endif # temporarily work around some issues CONFIGURE_ENV += "ac_cv_func_realloc_0_nonnull=yes" @@ -106,7 +140,7 @@ COMPONENT_BUILD_ENV += "ac_cv_func_realloc_0_nonnull=yes" # configure the unpacked source for building 32 and 64 bit version -CONFIGURE_SCRIPT = $(SOURCE_DIR)/configure +CONFIGURE_SCRIPT ?= $(SOURCE_DIR)/configure $(BUILD_DIR)/%/.configured: $(SOURCE_DIR)/.prep ($(RM) -rf $(@D) ; $(MKDIR) $(@D)) $(COMPONENT_PRE_CONFIGURE_ACTION) diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/intltool.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-rules/intltool.mk Mon Nov 23 15:33:43 2015 -0800 @@ -0,0 +1,29 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +# + +# +# This file sets up the necessary overrides for components that use intltool. +# +CONFIGURE_ENV += MSGFMT="/usr/bin/gmsgfmt" +CONFIGURE_ENV += XGETTEXT="/usr/bin/gxgettext" +CONFIGURE_ENV += ac_cv_path_XGETTEXT="/usr/bin/gxgettext" diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/ips.mk --- a/make-rules/ips.mk Mon Nov 16 06:14:40 2015 -0800 +++ b/make-rules/ips.mk Mon Nov 23 15:33:43 2015 -0800 @@ -120,6 +120,7 @@ PKG_MACROS += COMPONENT_HG_URL=$(COMPONENT_HG_URL) PKG_MACROS += COMPONENT_HG_REV=$(COMPONENT_HG_REV) PKG_MACROS += COMPONENT_NAME=$(COMPONENT_NAME) +PKG_MACROS += ARC_CASE=$(ARC_CASE) PKG_MACROS += TPNO=$(TPNO) PKG_MACROS += CONSOLIDATION_CHANGESET=$(CONSOLIDATION_CHANGESET) PKG_MACROS += CONSOLIDATION_REPOSITORY_URL=$(CONSOLIDATION_REPOSITORY_URL) diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/justmake.mk --- a/make-rules/justmake.mk Mon Nov 16 06:14:40 2015 -0800 +++ b/make-rules/justmake.mk Mon Nov 23 15:33:43 2015 -0800 @@ -45,6 +45,7 @@ # COMPONENT_INSTALL_ARGS += DESTDIR=$(PROTO_DIR) +COMPONENT_INSTALL_ARGS += $(COMPONENT_INSTALL_ARGS.$(BITS)) # build the configured source $(BUILD_DIR)/%/.built: $(SOURCE_DIR)/.prep diff -r 3a6b9e3809f7 -r 34cc580c62c2 make-rules/shared-macros.mk --- a/make-rules/shared-macros.mk Mon Nov 16 06:14:40 2015 -0800 +++ b/make-rules/shared-macros.mk Mon Nov 23 15:33:43 2015 -0800 @@ -86,6 +86,12 @@ PUBLISHER ?= nightly PUBLISHER_LOCALIZABLE ?= $(CONSOLIDATION)-localizable +# Defines $(space) as a single blank space, so we can use it to convert +# space-separated paths to colon-separated paths in variables with +# $(subst $(space),:,$(strip $(SPATHS))) +empty := +space := $(empty) $(empty) + ROOT = / # The changset and external source repo used in building the packages. @@ -112,7 +118,13 @@ include $(WS_MAKE_RULES)/ips-buildinfo.mk COMPILER ?= studio -BITS = 32 +BITS ?= 32 + +# The values of BITS changes during the build process for components that +# are built 32-bit and 64-bit. This macro makes it possible to determine +# which components are only built 64-bit and allow other make-rules files +# to adjust accordingly. +INITIAL_BITS= $(BITS) # The default version should go last. PYTHON_VERSION = 2.7 @@ -140,6 +152,7 @@ BINDIR = /bin SBINDIR = /sbin LIBDIR = /lib +VARDIR = /var USRBINDIR = $(USRDIR)/bin USRBINDIR64 = $(USRDIR)/bin/$(MACH64) USRSBINDIR = $(USRDIR)/sbin @@ -149,6 +162,8 @@ USRSHARELOCALEDIR = $(USRSHAREDIR)/locale USRSHAREMANDIR = $(USRSHAREDIR)/man USRSHAREDOCDIR = $(USRSHAREDIR)/doc +USRSHAREFONTSDIR = $(USRSHAREDIR)/fonts +USRSHARETTFONTSDIR = $(USRSHAREFONTSDIR)/TrueType USRSHARELIBDIR = $(USRSHAREDIR)/lib USRSHAREMAN1DIR = $(USRSHAREMANDIR)/man1 USRSHAREMAN1MDIR = $(USRSHAREMANDIR)/man1m @@ -161,16 +176,21 @@ PROTOETCSECDIR = $(PROTO_DIR)/$(ETCDIR)/security PROTOUSRDIR = $(PROTO_DIR)/$(USRDIR) PROTOLIBDIR = $(PROTO_DIR)/$(LIBDIR) +PROTOSVCMANIFESTDIR = $(PROTOLIBDIR)/svc/manifest +PROTOSVCMETHODDIR = $(PROTOLIBDIR)/svc/method PROTOUSRBINDIR = $(PROTO_DIR)/$(USRBINDIR) PROTOUSRBINDIR64 = $(PROTO_DIR)/$(USRBINDIR64) PROTOUSRSBINDIR = $(PROTO_DIR)/$(USRSBINDIR) PROTOUSRLIBDIR = $(PROTO_DIR)/$(USRLIBDIR) PROTOUSRLIBDIR64 = $(PROTO_DIR)/$(USRLIBDIR64) +PROTOPKGCONFIGDIR = $(PROTOUSRLIBDIR)/pkgconfig +PROTOPKGCONFIGDIR64 = $(PROTOUSRLIBDIR64)/pkgconfig PROTOUSRINCDIR = $(PROTO_DIR)/$(USRINCDIR) PROTOUSRSHAREDIR = $(PROTO_DIR)/$(USRSHAREDIR) PROTOUSRSHARELIBDIR = $(PROTO_DIR)/$(USRSHARELIBDIR) +PROTOUSRSHAREDOCDIR = $(PROTO_DIR)/$(USRSHAREDOCDIR) +PROTOUSRSHAREINFODIR = $(PROTOUSRSHAREDIR)/info PROTOUSRSHAREMANDIR = $(PROTO_DIR)/$(USRSHAREMANDIR) -PROTOUSRSHAREDOCDIR = $(PROTO_DIR)/$(USRSHAREDOCDIR) PROTOUSRSHAREMAN1DIR = $(PROTO_DIR)/$(USRSHAREMAN1DIR) PROTOUSRSHAREMAN1MDIR = $(PROTO_DIR)/$(USRSHAREMAN1MDIR) PROTOUSRSHAREMAN3DIR = $(PROTO_DIR)/$(USRSHAREMAN3DIR) @@ -501,6 +521,10 @@ USRBIN.64 = /usr/bin/$(MACH64) USRBIN = $(USRBIN.$(BITS)) +USRLIB.32 = $(USRLIBDIR) +USRLIB.64 = $(USRLIBDIR64) +USRLIB = $(USRLIB.$(BITS)) + PYTHON.2.7.32 = $(USRBIN.32)/python2.7 PYTHON.2.7.64 = $(USRBIN.64)/python2.7 PYTHON.2.7 = $(USRBIN)/python2.7 @@ -607,10 +631,15 @@ INS.dir= $(INSTALL) -d $@ INS.file= $(INSTALL) -m 444 $< $(@D) +# +# To simplify adding directories to PKG_CONFIG_PATH, since += adds spaces, not : +# use PKG_CONFIG_PATHS += ... and the following will convert to the : form +# PKG_CONFIG_PATH.32 = /usr/lib/pkgconfig PKG_CONFIG_PATH.64 = /usr/lib/$(MACH64)/pkgconfig -PKG_CONFIG_PATH = $(PKG_CONFIG_PATH.$(BITS)) - +PKG_CONFIG_DEFAULT = $(PKG_CONFIG_PATH.$(BITS)) +PKG_CONFIG_PATH = $(subst $(space),:,$(strip \ + $(PKG_CONFIG_PATHS) $(PKG_CONFIG_DEFAULT))) # # C preprocessor flag sets to ease feature selection. Add the required @@ -668,13 +697,13 @@ # Turn on recognition of supported C99 language features and enable the 1999 C # standard library semantics of routines that appear in both the 1990 and -# 1999 C standard. To use set studio_C99MODE=$(studio_99_ENABLE) in your +# 1999 C standard. To use set studio_C99MODE=$(studio_C99_ENABLE) in your # component Makefile. studio_C99_ENABLE = -xc99=all # Turn off recognition of C99 language features, and do not enable the 1999 C # standard library semantics of routines that appeared in both the 1990 and -# 1999 C standard. To use set studio_C99MODE=$(studio_99_DISABLE) in your +# 1999 C standard. To use set studio_C99MODE=$(studio_C99_DISABLE) in your # component Makefile. studio_C99_DISABLE = -xc99=none @@ -696,11 +725,11 @@ studio_FEATURES_EXTENSIONS = -features=extensions # Control the Studio optimization level. -studio_OPT.sparc.32 = -xO4 -studio_OPT.sparc.64 = -xO4 -studio_OPT.i386.32 = -xO4 -studio_OPT.i386.64 = -xO4 -studio_OPT = $(studio_OPT.$(MACH).$(BITS)) +studio_OPT.sparc.32 ?= -xO4 +studio_OPT.sparc.64 ?= -xO4 +studio_OPT.i386.32 ?= -xO4 +studio_OPT.i386.64 ?= -xO4 +studio_OPT ?= $(studio_OPT.$(MACH).$(BITS)) # Studio PIC code generation. Use CC_PIC instead to select PIC code generation. studio_PIC = -KPIC -DPIC @@ -758,6 +787,14 @@ $(studio_IROPTS) $(studio_C99MODE) $(studio_ALIGN) \ $(studio_MT) +# Default Studio C++ compiler flags. Add the required feature to your Makefile +# with CXXFLAGS += $(FEATURE_MACRO) and add to the component build with +# CONFIGURE_OPTIONS += CXXFLAGS="$(CXXFLAGS)" or similiar. In most cases, it +# should not be necessary to add CXXFLAGS to any environment other than the +# configure environment. +CXXFLAGS.studio += $(studio_OPT) $(studio_XBITS) $(studio_XREGS) \ + $(studio_IROPTS) $(studio_ALIGN) + # # GNU C compiler flag sets to ease feature selection. Add the required # feature to your Makefile with CFLAGS += $(FEATURE_MACRO) and add to the @@ -765,13 +802,17 @@ # # GCC Compiler optimization flag -gcc_OPT = -O3 +gcc_OPT.sparc.32 ?= -O3 +gcc_OPT.sparc.64 ?= -O3 +gcc_OPT.i386.32 ?= -O3 +gcc_OPT.i386.64 ?= -O3 +gcc_OPT ?= $(gcc_OPT.$(MACH).$(BITS)) # GCC PIC code generation. Use CC_PIC instead to select PIC code generation. gcc_PIC = -fPIC -DPIC # Generic macro for PIC code generation. Use this macro instead of the -# compiler specific variant. +# compiler-specific variant. CC_PIC = $($(COMPILER)_PIC) @@ -785,13 +826,22 @@ CFLAGS.gcc3 += $(gcc_OPT) CFLAGS.gcc3 += $(gcc_XREGS) +# Default GNU C++ compiler flags. Add the required feature to your Makefile +# with CXXFLAGS += $(FEATURE_MACRO) and add to the component build with +# CONFIGURE_OPTIONS += CXXFLAGS="$(CXXFLAGS)" or similiar. In most cases, it +# should not be necessary to add CXXFLAGS to any environment other than the +# configure environment. +CXXFLAGS.gcc += $(gcc_OPT) +CXXFLAGS.gcc += $(gcc_XREGS) +CXXFLAGS.gcc3 += $(gcc_OPT) +CXXFLAGS.gcc3 += $(gcc_XREGS) # Build 32 or 64 bit objects. CFLAGS += $(CC_BITS) -# Add compiler specific 'default' features +# Add compiler-specific 'default' features CFLAGS += $(CFLAGS.$(COMPILER)) - +CFLAGS += $(CFLAGS.$(COMPILER).$(BITS)) # Studio C++ requires -norunpath to avoid adding its location into the RUNPATH # to C++ applications. @@ -822,6 +872,10 @@ # Build 32 or 64 bit objects in C++ as well. CXXFLAGS += $(CC_BITS) +# Add compiler-specific 'default' features +CXXFLAGS += $(CXXFLAGS.$(COMPILER)) +CXXFLAGS += $(CXXFLAGS.$(COMPILER).$(BITS)) + # # Solaris linker flag sets to ease feature selection. Add the required # feature to your Makefile with LDFLAGS += $(FEATURE_MACRO) and add to the diff -r 3a6b9e3809f7 -r 34cc580c62c2 transforms/actuators --- a/transforms/actuators Mon Nov 16 06:14:40 2015 -0800 +++ b/transforms/actuators Mon Nov 23 15:33:43 2015 -0800 @@ -20,10 +20,10 @@ # # -# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. # -# SFW service manifests +# SMF service manifests \ default restart_fmri svc:/system/manifest-import:default> @@ -41,6 +41,22 @@ \ default restart_fmri svc:/application/desktop-cache/desktop-mime-cache:default> +# GNOME/XDG icons + \ + default restart_fmri svc:/application/desktop-cache/icon-cache:default> + +# GNOME/XDG mime-types + \ + default restart_fmri svc:/application/desktop-cache/mime-types-cache:default> + +# GNOME gtk Input Method modules + \ + default restart_fmri svc:/application/desktop-cache/input-method-cache:default> + +# GNOME gdk-pixbuf image loader modules + \ + default restart_fmri svc:/application/desktop-cache/pixbuf-loaders-installer:default> + # RAD add restart_fmri \ svc:/system/rad:local> diff -r 3a6b9e3809f7 -r 34cc580c62c2 transforms/generate-cleanup --- a/transforms/generate-cleanup Mon Nov 16 06:14:40 2015 -0800 +++ b/transforms/generate-cleanup Mon Nov 23 15:33:43 2015 -0800 @@ -41,34 +41,34 @@ # edit value "@[^ \t\n\r\f\v]*" "@$!(IPS_COMPONENT_VERSION),$!(BUILD_VERSION)"> \ - edit path "/(sparcv9|amd64)$" "/$!(MACH64)"> + edit path "/(sparcv9|amd64)$" "/$!(MACH64)"> \ - edit path "/(sparcv9|amd64)/" "/$!(MACH64)/"> + edit path "/(sparcv9|amd64)/" "/$!(MACH64)/"> \ - edit path "/(sparcv7|i86)$" "/$!(MACH32)"> + edit path "/(sparcv7|i86)$" "/$!(MACH32)"> \ - edit path "/(sparcv7|i86)/" "/$!(MACH32)/"> + edit path "/(sparcv7|i86)/" "/$!(MACH32)/"> \ - edit path "/(sparc|i386)$" "/$!(MACH)"> + edit path "/(sparc|i386)$" "/$!(MACH)"> \ - edit path "/(sparc|i386)/" "/$!(MACH)/"> + edit path "/(sparc|i386)/" "/$!(MACH)/"> \ - edit path "/(sparc|i386)-(sun|pc)-solaris\d\.\d+" "/$!(MACH)-$!(PLAT)-solaris$!(SOLARIS_RELEASE)"> + edit path "/(sparc|i386)-(sun|pc)-solaris\d\.\d+" "/$!(MACH)-$!(PLAT)-solaris$!(SOLARIS_RELEASE)"> \ - edit target "/(sparcv9|amd64)$" "/$!(MACH64)"> + edit target "/(sparcv9|amd64)$" "/$!(MACH64)"> \ - edit target "/(sparcv9|amd64)/" "/$!(MACH64)/"> + edit target "/(sparcv9|amd64)/" "/$!(MACH64)/"> \ - edit target "/(sparcv7|i86)$" "/$!(MACH32)"> + edit target "/(sparcv7|i86)$" "/$!(MACH32)"> \ - edit target "/(sparcv7|i86)/" "/$!(MACH32)/"> + edit target "/(sparcv7|i86)/" "/$!(MACH32)/"> \ - edit target "/(sparc|i386)$" "/$!(MACH)"> + edit target "/(sparc|i386)$" "/$!(MACH)"> \ - edit target "/(sparc|i386)/" "/$!(MACH)/"> + edit target "/(sparc|i386)/" "/$!(MACH)/"> \ - edit target "/(sparc|i386)-(sun|pc)-solaris\d\.\d+" "/$!(MACH)-$!(PLAT)-solaris$!(SOLARIS_RELEASE)"> + edit target "/(sparc|i386)-(sun|pc)-solaris\d\.\d+" "/$!(MACH)-$!(PLAT)-solaris$!(SOLARIS_RELEASE)"> # \ # edit path "$(COMPONENT_NAME)" "$!(COMPONENT_NAME)"> @@ -76,35 +76,57 @@ # edit target "$(COMPONENT_NAME)" "$!(COMPONENT_NAME)"> \ - edit path "$(COMPONENT_VERSION)" "$!(COMPONENT_VERSION)"> + edit path "$(COMPONENT_VERSION)" "$!(COMPONENT_VERSION)"> \ - edit target "$(COMPONENT_VERSION)" "$!(COMPONENT_VERSION)"> + edit target "$(COMPONENT_VERSION)" "$!(COMPONENT_VERSION)"> \ - edit path "$(IPS_VERSION)" "$!(IPS_VERSION)"> + edit path "$(IPS_VERSION)" "$!(IPS_VERSION)"> \ - edit target "$(IPS_VERSION)" "$!(IPS_VERSION)"> + edit target "$(IPS_VERSION)" "$!(IPS_VERSION)"> # convert temporary macro names to their real name \ - edit value "\$!\((.*)\)" "$(\1)"> + edit value "\$!\((.*)\)" "$(\1)"> + \ + edit path "\$!\((.*)\)" "$(\1)"> \ - edit path "\$!\((.*)\)" "$(\1)"> + edit target "\$!\((.*)\)" "$(\1)"> + \ + edit path "\$!\((.*)\)" "$(\1)"> + \ + edit target "\$!\((.*)\)" "$(\1)"> \ - edit target "\$!\((.*)\)" "$(\1)"> + edit path "\$!\((.*)\)" "$(\1)"> + \ + edit target "\$!\((.*)\)" "$(\1)"> \ - edit path "\$!\((.*)\)" "$(\1)"> + edit path "\$!\((.*)\)" "$(\1)"> \ - edit target "\$!\((.*)\)" "$(\1)"> + edit target "\$!\((.*)\)" "$(\1)"> + \ + edit path "\$!\((.*)\)" "$(\1)"> \ - edit path "\$!\((.*)\)" "$(\1)"> - \ - edit target "\$!\((.*)\)" "$(\1)"> - \ - edit path "\$!\((.*)\)" "$(\1)"> - \ - edit target "\$!\((.*)\)" "$(\1)"> - \ - edit path "\$!\((.*)\)" "$(\1)"> - \ - edit target "\$!\((.*)\)" "$(\1)"> + edit target "\$!\((.*)\)" "$(\1)"> + +# Omit "standard" directories and files we never want to ship (such as +# libtool files). + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop> + drop>