15558602 TCL_LD_SEARCH_FLAGS is wrongly defined in tclConfig.sh
authorShawn Walker-Salas <shawn.walker@oracle.com>
Wed, 30 Mar 2016 13:33:31 -0700
changeset 5682 94c0ca64c022
parent 5681 b8fe51f35344
child 5683 05b2186d572e
15558602 TCL_LD_SEARCH_FLAGS is wrongly defined in tclConfig.sh 22228656 remove redundant declarations and additions from makefiles 22252545 simplify build rules for components from common upstream 22378457 tclConfig.sh compiler settings are too specific 22727315 httping curses gui missing 22750630 procmail ignores userland cflags and may use private strstr function 22758725 wdiff uses diff from PATH instead of /usr/gnu/bin/diff 22926847 cloog Makefile typo when setting ASLR_MODE 22935090 tk config script has wrong linker flags
components/a2ps/Makefile
components/aalib/Makefile
components/acpidump/Makefile
components/acpidump/acpidump.p5m
components/ant/Makefile
components/antlr/Makefile
components/apache2-modules/mod_dtrace/Makefile
components/apache2-modules/mod_dtrace/src/Makefile
components/apache2-modules/mod_fcgid/Makefile
components/apache2-modules/mod_jk/Makefile
components/apache2-modules/mod_perl/Makefile
components/apache2-modules/mod_security2/Makefile
components/apache2-modules/mod_wsgi/Makefile
components/apache2-modules/modules.mk
components/apache24/Makefile
components/apr-1_5/Makefile
components/apr-util-1_5/Makefile
components/asciidoc/Makefile
components/asciidoc/asciidoc.p5m
components/aspell/Makefile
components/aspell/aspell.p5m
components/augeas/Makefile
components/autoconf/Makefile
components/autogen/Makefile
components/automake/automake-1.10/Makefile
components/automake/automake-1.11.2/Makefile
components/automake/automake-1.15/Makefile
components/avahi/Makefile
components/bash/Makefile
components/bash/bash.p5m
components/bash/patches/solaris-009.configure.patch
components/bcc/Makefile
components/beanshell/Makefile
components/berkeleydb/Makefile
components/berkeleydb/berkeleydb.p5m
components/bind/Makefile
components/binutils/Makefile
components/bison/Makefile
components/bison/bison.p5m
components/bzip2/Makefile
components/bzip2/bzip2.p5m
components/cdrtools/Makefile
components/cdrtools/cdrtools.p5m
components/check/Makefile
components/check/check.p5m
components/cloog/Makefile
components/cloog/cloog.p5m
components/cmake/Makefile
components/common/Makefile
components/conflict/Makefile
components/convmv/Makefile
components/coreutils/Makefile
components/cppunit/Makefile
components/cups/Makefile
components/curl/Makefile
components/curl/curl.p5m
components/cvs/Makefile
components/cvs/cvs.p5m
components/cyrus-sasl/Makefile
components/daq/Makefile
components/dejagnu/Makefile
components/dejagnu/dejagnu.p5m
components/desktop/firefox/Makefile
components/desktop/harfbuzz/Makefile
components/desktop/libgtkspell/Makefile
components/desktop/libotr/Makefile
components/desktop/libspectre/Makefile
components/desktop/pidgin-otr/Makefile
components/desktop/pidgin/Makefile
components/desktop/poppler/Makefile
components/desktop/poppler/poppler.p5m
components/desktop/thunderbird/Makefile
components/desktop/xscreensaver/Makefile
components/diffstat/Makefile
components/diffstat/diffstat.p5m
components/diffutils/Makefile
components/diffutils/diffutils.p5m
components/dnsmasq/Makefile
components/dnsmasq/dnsmasq.p5m
components/doxygen/Makefile
components/ejabberd/Makefile
components/elinks/Makefile
components/elinks/elinks.p5m
components/emacs/Makefile
components/enscript/Makefile
components/enscript/enscript.p5m
components/erlang/Makefile
components/fastcgi/Makefile
components/fetchmail/Makefile
components/fetchmail/fetchmail.p5m
components/findutils/Makefile
components/findutils/findutils.p5m
components/flex/Makefile
components/flex/flex.p5m
components/foomatic/db-engine/Makefile
components/foomatic/db/Makefile
components/foomatic/filters/Makefile
components/foomatic/fppd/Makefile
components/fping/Makefile
components/fping/fping.p5m
components/ftp-proxy/Makefile
components/gamin/Makefile
components/gawk/Makefile
components/gcc3/Makefile
components/gcc45/Makefile
components/gcc47/Makefile
components/gcc48/Makefile
components/gcc49/Makefile
components/gcc53/Makefile
components/gd2/Makefile
components/gd2/gd2.p5m
components/gdb/Makefile
components/gdb/gdb.p5m
components/gdbm/Makefile
components/getopt/Makefile
components/gettext/Makefile
components/ggrep/Makefile
components/ggrep/gnu-grep.p5m
components/ghostscript/Makefile
components/git/Makefile
components/gnome/evince/Makefile
components/gnu-gs-fonts-other/Makefile
components/gnu-gs-fonts-std/Makefile
components/gnump/Makefile
components/gnupg/Makefile
components/gnuplot/Makefile
components/gnuplot/gnuplot.p5m
components/gnupth/Makefile
components/gnupth/gnupth.p5m
components/gnutls-3/Makefile
components/gnutls/Makefile
components/gocr/Makefile
components/gocr/gocr.p5m
components/gparted/Makefile
components/gpatch/Makefile
components/gperf/Makefile
components/gpgme/Makefile
components/gpgme/gpgme.p5m
components/graphviz/Makefile
components/graphviz/graphviz.p5m
components/groff/Makefile
components/gtar/Makefile
components/gtar/gtar.p5m
components/guile/Makefile
components/guile/guile.p5m
components/gutenprint/Makefile
components/gzip/Makefile
components/hal-cups-utils/Makefile
components/help2man/Makefile
components/hexedit/Makefile
components/hexedit/hexedit.p5m
components/hplip/Makefile
components/httping/Makefile
components/hwdata/Makefile
components/iftop/Makefile
components/iftop/iftop.p5m
components/ilmbase/Makefile
components/imagemagick/Makefile
components/imagemagick/imagemagick.p5m
components/indent/Makefile
components/indent/indent.p5m
components/iperf/Makefile
components/iperf/iperf.p5m
components/irssi/Makefile
components/isc-dhcp/Makefile
components/isl/Makefile
components/jansson/Makefile
components/jsl/Makefile
components/junit/Makefile
components/krb5/Makefile
components/ksh93/Makefile
components/lcms/Makefile
components/lcms/lcms.p5m
components/lcms2/Makefile
components/less/Makefile
components/lftp/Makefile
components/lftp/lftp.p5m
components/libarchive/Makefile
components/libassuan/Makefile
components/libassuan/libassuan.p5m
components/libconfuse/Makefile
components/libdaemon/Makefile
components/libdnet/Makefile
components/libdnet/libdnet.p5m
components/libedit/Makefile
components/libee/Makefile
components/libestr/Makefile
components/libevent/Makefile
components/libexpat/Makefile
components/libffi/Makefile
components/libgcrypt/Makefile
components/libgcrypt/libgcrypt.p5m
components/libgpg-error/Makefile
components/libgpg-error/libgpg-error.p5m
components/libgsl/Makefile
components/libgsl/libgsl.p5m
components/libidn/Makefile
components/libksba/Makefile
components/libksba/libksba.p5m
components/liblogging/Makefile
components/libmemcached/Makefile
components/libmicrohttpd/Makefile
components/libmng/Makefile
components/libneon/Makefile
components/libneon/libneon.p5m
components/libnet/Makefile
components/libpcap/Makefile
components/librsync/Makefile
components/librsync/librsync.p5m
components/libsdl/Makefile
components/libsigsegv/Makefile
components/libsndfile/Makefile
components/libsndfile/libsndfile.p5m
components/libssh2/Makefile
components/libtasn1/Makefile
components/libtasn1/libtasn1.p5m
components/libtecla/Makefile
components/libtecla/libtecla.p5m
components/libtool/Makefile
components/libtorrent/Makefile
components/libusb/ugen/Makefile
components/libusb/ugen/src/Makefile
components/libusb/wrapper/Makefile
components/libusb/wrapper/src/Makefile
components/libxml2/Makefile
components/libxml2/libxml2.p5m
components/libxslt/Makefile
components/libxslt/libxslt.p5m
components/lighttpd/Makefile
components/links/Makefile
components/links/links.p5m
components/llvm/Makefile
components/llvm/cxa_finalize/Makefile
components/lua/Makefile
components/lua/lua.p5m
components/lynx/Makefile
components/lynx/lynx.p5m
components/m4/Makefile
components/m4/m4.p5m
components/mailman/Makefile
components/make/Makefile
components/mc/Makefile
components/mc/mc.p5m
components/meld/Makefile
components/memcached-java/Makefile
components/memcached/Makefile
components/memcached/memcached.p5m
components/mercurial/Makefile
components/meta-packages/developer-opensolaris-userland/Makefile
components/meta-packages/group-feature/Makefile
components/meta-packages/history/Makefile
components/mlocate/Makefile
components/mlocate/mlocate.p5m
components/mpc/Makefile
components/mpfr/Makefile
components/mrtg/Makefile
components/mtr/Makefile
components/mutt/Makefile
components/mutt/mutt.p5m
components/mysql-5-5/Makefile
components/mysql-5-6/Makefile
components/mysql-common/Makefile
components/nano/Makefile
components/ncftp/Makefile
components/ncurses/Makefile
components/ncurses/ncurses.p5m
components/net-snmp/Makefile
components/nethack/Makefile
components/nettle/Makefile
components/nettle/nettle.p5m
components/nghttp2/Makefile
components/nicstat/Makefile
components/nmap/Makefile
components/nmap/nmap.p5m
components/novnc/Makefile
components/ntp/Makefile
components/ocaml/Makefile
components/open-fabrics/Makefile
components/open-fabrics/ibutils/Makefile
components/open-fabrics/infiniband-diags/Makefile
components/open-fabrics/libibmad/Makefile
components/open-fabrics/libibumad/Makefile
components/open-fabrics/libibverbs/Makefile
components/open-fabrics/libmlx4/Makefile
components/open-fabrics/librdmacm/Makefile
components/open-fabrics/libsdp/Makefile
components/open-fabrics/libsif/Makefile
components/open-fabrics/ofed-component-macros.mk
components/open-fabrics/ofed-component.mk
components/open-fabrics/ofed.mk
components/open-fabrics/open-fabrics.p5m
components/open-fabrics/opensm/Makefile
components/open-fabrics/perftest/Makefile
components/open-fabrics/qperf/Makefile
components/open-fabrics/rds-tools/Makefile
components/openexr/Makefile
components/openexr/openexr.p5m
components/openjade/Makefile
components/openjade/openjade.p5m
components/openldap/Makefile
components/openldap/openldap.p5m
components/openscap/Makefile
components/opensp/Makefile
components/openssh/Makefile
components/openssl/openssl-default/Makefile
components/openssl/openssl-fips-140/Makefile
components/openssl/openssl-fips/Makefile
components/openstack/common/Makefile
components/openusb/Makefile
components/openvswitch/Makefile
components/p7zip/Makefile
components/pam_pkcs11/Makefile
components/pam_pkcs11/pam_pkcs11.p5m
components/pam_pkcs11/patches/pam_pkcs11.patch
components/parallel/Makefile
components/parallel/parallel.p5m
components/patchutils/Makefile
components/pbzip2/Makefile
components/pconsole/Makefile
components/pconsole/patches/Makefile.in.patch
components/pcre/Makefile
components/pcre/pcre.p5m
components/perl/perl516/Makefile
components/perl/perl520/Makefile
components/perl512/Makefile
components/perl_modules/DBI/Makefile
components/perl_modules/authen-pam/Makefile
components/perl_modules/cssh/Makefile
components/perl_modules/gettext/Makefile
components/perl_modules/perl-tk/Makefile
components/perl_modules/perl-x11-protocol/Makefile
components/perl_modules/xml-libxml/Makefile
components/perl_modules/xml-namespacesupport/Makefile
components/perl_modules/xml-parser/Makefile
components/perl_modules/xml-sax-base/Makefile
components/perl_modules/xml-sax/Makefile
components/perl_modules/xml-simple/Makefile
components/php-common/Makefile
components/php/php56/Makefile
components/php/suhosin-extension/Makefile
components/php/xdebug/Makefile
components/pigz/Makefile
components/pinentry/Makefile
components/pixz/Makefile
components/pkg-config/Makefile
components/pkg-config/pkg-config.p5m
components/pkgbuild/Makefile
components/popt/Makefile
components/postfix/Makefile
components/privoxy/Makefile
components/procmail/Makefile
components/procmail/patches/07-use-libc-strstr.patch
components/proftpd/Makefile
components/psutils/Makefile
components/psutils/psutils.p5m
components/ptp/Makefile
components/pv/Makefile
components/pv/pv.p5m
components/pwgen/Makefile
components/pwgen/pwgen.p5m
components/python/anyjson/Makefile
components/python/astroid/Makefile
components/python/beautifulsoup4/Makefile
components/python/cheetah/Makefile
components/python/cherrypy/Makefile
components/python/cmd2/Makefile
components/python/cov-core/Makefile
components/python/d2to1/Makefile
components/python/django-appconf/Makefile
components/python/filechunkio/Makefile
components/python/formencode/Makefile
components/python/httplib2/Makefile
components/python/iso8601/Makefile
components/python/jsonpatch/Makefile
components/python/jsonpointer/Makefile
components/python/jsonschema/Makefile
components/python/ldtp/Makefile
components/python/lesscpy/Makefile
components/python/librabbitmq/Makefile
components/python/lockfile/Makefile
components/python/markdown/Makefile
components/python/markupsafe/Makefile
components/python/mock/Makefile
components/python/nose-cover3/Makefile
components/python/passlib/Makefile
components/python/paste.deploy/Makefile
components/python/paste/Makefile
components/python/ply/Makefile
components/python/prettytable/Makefile
components/python/pyasn1-modules/Makefile
components/python/pyasn1/Makefile
components/python/pycountry/Makefile
components/python/pydns/Makefile
components/python/pygments/Makefile
components/python/pylint/Makefile
components/python/pyparsing/Makefile
components/python/pyrabbit/Makefile
components/python/pytest-capturelog/Makefile
components/python/pytest-codecheckers/Makefile
components/python/pytest-cov/Makefile
components/python/python-ldap/Makefile
components/python/python27/Makefile
components/python/python34/Makefile
components/python/python35/Makefile
components/python/repoze.lru/Makefile
components/python/routes/Makefile
components/python/setuptools-git/Makefile
components/python/setuptools/Makefile
components/python/sqlalchemy-migrate/Makefile
components/python/suds/Makefile
components/python/tempita/Makefile
components/python/waitress/Makefile
components/python/warlock/Makefile
components/python/webob/Makefile
components/python/webtest/Makefile
components/quagga/Makefile
components/quilt/Makefile
components/quilt/quilt.p5m
components/r/Makefile
components/r/r.p5m
components/rabbitmq/Makefile
components/rdiff-backup/Makefile
components/re2c/Makefile
components/re2c/re2c.p5m
components/readline/Makefile
components/rpm2cpio/Makefile
components/rrdtool/Makefile
components/rrdtool/rrdtool.p5m
components/rsync/Makefile
components/rsyslog/Makefile
components/rtorrent/Makefile
components/rtorrent/rtorrent.p5m
components/ruby/facter/Makefile
components/ruby/hiera/Makefile
components/ruby/mcollective/Makefile
components/ruby/puppet-modules/oracle-solaris_providers/Makefile
components/ruby/puppet-solaris/Makefile
components/ruby/puppet/Makefile
components/ruby/ruby-21/Makefile
components/ruby/ruby-common/Makefile
components/ruby/stomp/Makefile
components/samba/Makefile
components/sane-backends/Makefile
components/sane-backends/patches/backends.patch
components/sane-backends/sane-backends.p5m
components/sane-frontends/Makefile
components/sane-frontends/sane-frontends.p5m
components/scons/Makefile
components/screen/Makefile
components/sed/Makefile
components/sed/sed.p5m
components/sendmail/Makefile
components/sendmail/files/aux/Makefile
components/serf/Makefile
components/sg3_utils/Makefile
components/smp_utils/Makefile
components/smp_utils/smp_utils.p5m
components/snort/Makefile
components/sox/Makefile
components/sox/sox.p5m
components/spawn-fcgi/Makefile
components/spawn-fcgi/spawn-fcgi.p5m
components/sqlite-3/Makefile
components/sqlite-3/sqlite-3.p5m
components/squid/Makefile
components/stdcxx/Makefile
components/stunnel/Makefile
components/stunnel/stunnel.p5m
components/subversion/Makefile
components/subversion/subversion.p5m
components/sudo/Makefile
components/swig/Makefile
components/swig/swig.p5m
components/tcl/expect/Makefile
components/tcl/expect/expect.p5m
components/tcl/tcl/Makefile
components/tcl/tcl/files/tclsed
components/tcl/tcl/files/tclsed.32
components/tcl/tcl/files/tclsed.64
components/tcl/tcl/tcl.p5m
components/tcl/tk/Makefile
components/tcl/tk/files/tksed
components/tcl/tk/files/tksed.32
components/tcl/tk/files/tksed.64
components/tcl/tk/tk.p5m
components/tcpdump/Makefile
components/tcpdump/tcpdump.p5m
components/tcsh/Makefile
components/texinfo/Makefile
components/texinfo/texinfo.p5m
components/text-utilities/Makefile
components/tidy/Makefile
components/tidy/tidy.p5m
components/timezone/Makefile
components/tmux/Makefile
components/tmux/tmux.p5m
components/tomcat-8/Makefile
components/top/Makefile
components/top/top.p5m
components/tree/Makefile
components/trousers/Makefile
components/unixodbc/Makefile
components/unrar/Makefile
components/unzip/Makefile
components/vim/Makefile
components/w3m/Makefile
components/watch/Makefile
components/wdiff/Makefile
components/wdiff/wdiff.p5m
components/webalizer/Makefile
components/webalizer/webalizer.p5m
components/wget/Makefile
components/which/Makefile
components/wireshark/Makefile
components/wxwidgets/Makefile
components/xmlto/Makefile
components/xmlto/xmlto.p5m
components/xorriso/Makefile
components/xz/Makefile
components/yasm/Makefile
components/yasm/yasm.p5m
components/zip/Makefile
components/zlib/Makefile
components/zsh/Makefile
doc/makefile-variables.txt
exception_lists/cddlchk
exception_lists/cdm
make-rules/ant.mk
make-rules/attpackagemake.mk
make-rules/cmake.mk
make-rules/common-32.mk
make-rules/common-32_and_64.mk
make-rules/common-64.mk
make-rules/common-no_arch.mk
make-rules/common.mk
make-rules/configure-32.mk
make-rules/configure-32_and_64.mk
make-rules/configure-64.mk
make-rules/configure-no_arch.mk
make-rules/configure.mk
make-rules/environment.mk
make-rules/gem.mk
make-rules/gnu-component.mk
make-rules/install.rb.mk
make-rules/intltool.mk
make-rules/ips-buildinfo.mk
make-rules/justmake.mk
make-rules/lint-libraries.mk
make-rules/makemaker.mk
make-rules/prep-download.mk
make-rules/prep-git.mk
make-rules/prep-hg.mk
make-rules/prep-patch.mk
make-rules/prep-svn.mk
make-rules/prep-unpack.mk
make-rules/puppetmodule.mk
make-rules/shared-macros.mk
make-rules/shared-targets.mk
make-rules/skip-test.mk
tools/Makefile
tools/bass-o-matic
tools/build-watch.pl
tools/cloney
tools/gen-components
tools/pkglint.sh
tools/pkglintrc
tools/python/pkglint/__init__.py
tools/sunw-history-package
tools/userland-fetch
tools/userland-incorporator
tools/userland-mangler
tools/userland-unpack
transforms/autopyc
transforms/comparison-cleanup
transforms/copyright-template
transforms/generate-cleanup
transforms/license-changes
transforms/print-paths
transforms/print-pkgs
transforms/publish-cleanup
transforms/variant-cleanup
--- a/components/a2ps/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/a2ps/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,34 +22,26 @@
 #
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		a2ps
 COMPONENT_VERSION=	4.14
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/a2ps/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f3ae8d3d4564a41b6e2a21f237d2f2b104f48108591e8b83497500182a3ab3a4
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/a2ps/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/a2ps
 
 TPNO=			4517
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # don't use LD_Z_IGNORE: causes linker problems
 LD_Z_IGNORE=
 
 CONFIGURE_OPTIONS  +=		--enable-shared
 CONFIGURE_OPTIONS  +=		--disable-static
-CONFIGURE_OPTIONS  +=		--sysconfdir=/etc/gnu
+CONFIGURE_OPTIONS  +=		--sysconfdir=$(ETCDIR)/gnu
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--with-medium=letter
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 
 # because viewpathing isn't quite right in this version of a2ps
 COMPONENT_PREP_ACTION = \
@@ -63,24 +55,8 @@
 	     ln -s $$sheet ; \
 	 done)
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += developer/gperf
 REQUIRED_PACKAGES += editor/gnu-emacs
 REQUIRED_PACKAGES += runtime/perl-522
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/aalib/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/aalib/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -23,13 +23,15 @@
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
+# Prefer 32-bit over 64-bit as we have to manually shuffle the resulting
+# binaries around anyway in the package manifest.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		aalib
 COMPONENT_VERSION=	1.4.0
 HUMAN_VERSION=		1.4rc5
 IPS_COMPONENT_VERSION =	1.4.5
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://aa-project.sourceforge.net/aalib/
 COMPONENT_ARCHIVE=	$(COMPONENT_NAME)-$(HUMAN_VERSION).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
@@ -39,15 +41,11 @@
 
 TPNO=			6118
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
 LINT_FLAGS += -I$(SOURCE_DIR)/src
 
-PKG_PROTO_DIRS +=	$(COMPONENT_SRC)
-
 # Ensure ancient autoconf scripts are overwritten with fixed versions that
 # properly detect SunOS 5.x hosts.
 COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fiv)
@@ -60,8 +58,6 @@
 CONFIGURE_OPTIONS	+= --x-includes=$(USRINCDIR)
 CONFIGURE_OPTIONS	+= --x-libraries=$(CONFIGURE_LIBDIR.$(BITS))
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-
 COMPONENT_TEST_DIR =	$(@D)/src
 COMPONENT_TEST_CMD =	perl -E 'say "\n" x 40' | ./aatest
 COMPONENT_TEST_ARGS =	-kbddriver stdin -driver stdout
@@ -76,21 +72,7 @@
 # here, rather than create multiple identical master files.
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-system-test:	$(SYSTEM_TEST_32_and_64)
-
-
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
--- a/components/acpidump/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/acpidump/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,9 +22,9 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER =	gcc
-
+COMPILER= gcc
+BUILD_ARCH= i386
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		acpidump
@@ -32,47 +32,15 @@
 IPS_COMPONENT_VERSION=	0.2007.11.16
 COMPONENT_PROJECT_URL=	http://www.lesswatts.org/projects/acpi/utilities.php
 COMPONENT_SRC_NAME=	pmtools
-COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:91751774976e39f6237efd0326eb35196a9346220b92ad35894a33283e872748
 COMPONENT_ARCHIVE_URL=	http://www.lesswatts.org/patches/linux_acpi/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/acpidump
 
 TPNO=			8848
 
-# we're i386-only
-ifeq ($(MACH), sparc)
-PUBLISH_STAMP= 
-endif
-
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-PKG_PROTO_DIRS += $(BUILD_DIR_64)
-
-CC +=	$(CC_BITS)
-
-COMPONENT_BUILD_ENV +=	CC="$(CC)"
-
-# common targets. we're i386-only so we have to
-# be slightly tricky.
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-build_sparc:
-	@echo "Not available."
-
-ASLR_MODE =	$(ASLR_ENABLE)
-
-build_i386:	$(BUILD_64)
-
-build:		build_$(MACH)
-
-install:	build
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
+COMPONENT_PRE_INSTALL_ACTION += $(MKDIR) $(PROTOUSRBINDIR)
+COMPONENT_INSTALL_ARGS += DESTDIR=$(PROTOUSRBINDIR)
--- a/components/acpidump/acpidump.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/acpidump/acpidump.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,11 +18,8 @@
 #
 # CDDL HEADER END
 #
-
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
-#
-
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommited>
 set name=pkg.fmri \
     value=pkg:/diagnostic/acpidump@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
@@ -36,9 +33,9 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2009/458
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file acpidump/acpidump path=usr/bin/acpidump
-file acpixtract/acpixtract path=usr/bin/acpixtract
-file madt/madt path=usr/bin/madt
+file path=usr/bin/acpidump
+file path=usr/bin/acpixtract
+file path=usr/bin/madt
 file acpidump.1 path=usr/share/man/man1/acpidump.1
 file acpixtract.1 path=usr/share/man/man1/acpixtract.1
 file madt.1 path=usr/share/man/man1/madt.1
--- a/components/ant/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ant/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,40 +22,37 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= NO_ARCH
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		ant
 COMPONENT_VERSION=	1.9.6
 COMPONENT_PROJECT_URL=	http://ant.apache.org/
 COMPONENT_SRC_NAME=	apache-ant
-COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC)-src.tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:2ad98dd3a4805452e546e0f5b682360370ae11692a2157fff8ec6d177c957123
 COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/ant/source/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/ant
 
 TPNO=			25967
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+include $(WS_MAKE_RULES)/common.mk
 
 GMAKE=./build.sh
 
 ANT_ENV+=JAVA_HOME=$(JAVA_HOME)
 
 ANT_DIST_DIRS+=-Ddist.dir=$(PROTO_DIR)
-ANT_DIST_DIRS+=-Ddist.bin=$(PROTO_DIR)/usr/bin
-ANT_DIST_DIRS+=-Ddist.etc=$(PROTO_DIR)/usr/share/lib/ant
-ANT_DIST_DIRS+=-Ddist.docs=$(PROTO_DIR)/usr/share/doc/ant
-ANT_DIST_DIRS+=-Ddist.manual=$(PROTO_DIR)/usr/share/doc/ant/manual
-ANT_DIST_DIRS+=-Ddist.javadocs=$(PROTO_DIR)/usr/share/doc/ant/manual/api
-ANT_DIST_DIRS+=-Ddist.lib=$(PROTO_DIR)/usr/share/lib/ant
+ANT_DIST_DIRS+=-Ddist.bin=$(PROTOUSRBINDIR)
+ANT_DIST_DIRS+=-Ddist.etc=$(PROTOUSRSHARELIBDIR)/ant
+ANT_DIST_DIRS+=-Ddist.docs=$(PROTOUSRSHAREDOCDIR)/ant
+ANT_DIST_DIRS+=-Ddist.manual=$(PROTOUSRSHAREDOCDIR)/ant/manual
+ANT_DIST_DIRS+=-Ddist.javadocs=$(PROTOUSRSHAREDOCDIR)/ant/manual/api
+ANT_DIST_DIRS+=-Ddist.lib=$(PROTOUSRSHARELIBDIR)/ant
 
-OPTIONAL_LIBS+=/usr/share/lib/java/junit.jar
-OPTIONAL_LIBS+=/usr/share/antlr-2.7.7/antlr.jar
+OPTIONAL_LIBS+=$(USRSHARELIBDIR)/java/junit.jar
+OPTIONAL_LIBS+=$(USRSHAREDIR)/antlr-2.7.7/antlr.jar
 
 COMPONENT_PRE_BUILD_ACTION = $(CP) $(OPTIONAL_LIBS) $(@D)/lib/optional
 
@@ -80,17 +77,6 @@
 	'-e "/^Buildfile: /d" ' \
 	'-e "/^Total time: /d" '
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-build:	$(BUILD_32)
-
-install: $(INSTALL_32)
-
-test:  $(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += developer/java/junit
 REQUIRED_PACKAGES += developer/parser/antlr-2
 REQUIRED_PACKAGES += runtime/perl-522
--- a/components/antlr/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/antlr/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		antlr
 COMPONENT_VERSION=	2.7.7
 COMPONENT_PROJECT_URL=	http://www.antlr.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:853aeb021aef7586bda29e74a6b03006bcb565a755c86b66032d8ec31b67dbb9
 COMPONENT_ARCHIVE_URL=	http://www.antlr2.org/download/$(COMPONENT_ARCHIVE)
@@ -38,11 +36,9 @@
 TPNO=			5546
 
 # Use version of Java defined in ../../make-rules/shared-macros.mk
-PATH=$(SPRO_VROOT)/bin:$(JAVA_HOME)/bin:/usr/bin
+PATH=$(SPRO_VROOT)/bin:$(JAVA_HOME)/bin:$(USRBINDIR)
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL =		0
 
@@ -65,24 +61,9 @@
 	'-e "/^ANTLR Parser Generator.*$$/d"' \
 	'-e "/^XXX_JAVA_XXX$$/d" '
 
-# Needed to find the antlr man page.
-PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
-
 COMPONENT_TEST_TARGETS = test
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-# common targets
-configure:	$(CONFIGURE_32)
-
-build:          $(BUILD_32)
-
-install:        $(INSTALL_32)
-
-test:           $(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += shell/ksh93
--- a/components/apache2-modules/mod_dtrace/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apache2-modules/mod_dtrace/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,37 +18,27 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mod_dtrace
 COMPONENT_VERSION=	0.3.1
 COMPONENT_SRC=		src
+COMPONENT_ARCHIVE=
 COMPONENT_PROJECT_URL=	http://prefetch.net/projects/apache_modtrace/
-COMPONENT_BUGDB=	utility/apache
 
 TPNO=			8876
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+MODULES_INSTALL=
 include ../modules.mk
 
 COMPONENT_BUILD_ARGS +=	APXS=$(APXS)
-COMPONENT_BUILD_ARGS +=	DTRACE="/usr/sbin/dtrace -$(BITS)"
+COMPONENT_BUILD_ARGS +=	DTRACE="$(USRSBINDIR)/dtrace -$(BITS)"
 COMPONENT_BUILD_ARGS +=	PATH="$(PATH)"
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-clean::
-	$(RM) $(SOURCE_DIR)/.prep
-
-build: $(MODULES_BUILD)
-
-test: $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
+CLEAN_PATHS += $(SOURCE_DIR)/.prep
--- a/components/apache2-modules/mod_dtrace/src/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apache2-modules/mod_dtrace/src/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/apache2-modules/mod_fcgid/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apache2-modules/mod_fcgid/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,40 +18,25 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mod_fcgid
 COMPONENT_VERSION=	2.3.9
 COMPONENT_PROJECT_URL=	http://httpd.apache.org/mod_fcgid/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:1cbad345e3376b5d7c8f9a62b471edd7fa892695b90b79502f326b4692a679cf
 COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/httpd/mod_fcgid/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/apache
 
 TPNO=			8878
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
 include ../modules.mk
 
 PATCH_LEVEL=0
 
 COMPONENT_PRE_BUILD_ACTION= ( cd $(@D); APXS=$(APXS) ./configure.apxs )
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-build: $(MODULES_BUILD)
-
-install: $(MODULES_INSTALL)
-
-test: $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/apache2-modules/mod_jk/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apache2-modules/mod_jk/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,11 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mod_jk
@@ -27,37 +30,16 @@
 COMPONENT_PROJECT_URL=	http://tomcat.apache.org/connectors-doc/
 COMPONENT_SRC_NAME=	tomcat-connectors
 COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)-src
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f193b02aeec71daab13fc5bbb99f13eca9d916b79a024f8035a65f39559bc7fd
 COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/apache
 
 TPNO=			24206
 
 CONFIGURE_DEFAULT_DIRS=no
-DEFAULT_COMPILER=no
-
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+MODULES_INSTALL=
 include ../modules.mk
 
 PATCH_LEVEL=0
 
 CONFIGURE_SCRIPT = $(SOURCE_DIR)/native/configure
-
-CONFIGURE_OPTIONS += --with-apxs=$(APXS)
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-configure:	$(MODULES_CONFIGURE)
-
-build: $(MODULES_BUILD)
-
-test: $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/apache2-modules/mod_perl/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apache2-modules/mod_perl/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mod_perl
 COMPONENT_VERSION=	2.0.9
 COMPONENT_PROJECT_URL=	http://perl.apache.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:0260f26ab771c1c95fadc67544b3400e420bb30b8a77565d2d02ad05498ef52b
 COMPONENT_ARCHIVE_URL=	http://www.apache.org/dist/perl/$(COMPONENT_ARCHIVE)
@@ -34,11 +35,10 @@
 
 TPNO=			23900
 
-CONFIGURE_DEFAULT_DIRS=no
-
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+CONFIGURE_DEFAULT_DIRS= no
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL=0
 
@@ -67,9 +67,10 @@
 COMPONENT_TEST_TARGETS=	test
 COMPONENT_SYSTEM_TEST_TARGETS=	system_test
 
-PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:/usr/bin
+PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:$(USRBINDIR)
+else
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 endif
 
 COMPONENT_TEST_TRANSFORMS += \
@@ -91,17 +92,8 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-build: $(BUILD_64)
-
-install: $(INSTALL_64)
-
-test: $(TEST_64)
-
-system-test:    $(BUILD_64) $(SYSTEM_TEST_64)
-
 REQUIRED_PACKAGES += library/apr-15
 REQUIRED_PACKAGES += library/apr-util-15
 REQUIRED_PACKAGES += runtime/perl-520
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += web/server/apache-24
--- a/components/apache2-modules/mod_security2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apache2-modules/mod_security2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,11 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mod_security2
@@ -27,46 +30,28 @@
 COMPONENT_PROJECT_URL=	http://www.modsecurity.org/
 COMPONENT_SRC_NAME=	modsecurity-apache
 COMPONENT_SRC=		$(COMPONENT_SRC_NAME)_$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:95de6ec30982e5bde7981929ba89be89488e9f237ee8c4236e064b074bbb6f28
 COMPONENT_ARCHIVE_URL= \
     $(COMPONENT_PROJECT_URL)tarball/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/apache
 
 TPNO=			18233
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+MODULES_INSTALL=
 include ../modules.mk
 
 COMPONENT_POST_UNPACK_ACTION += \
   (cd $(SOURCE_DIR); \
   $(CP) modsecurity.conf-recommended modsecurity-24.conf-recommended)
 
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS += LTFLAGS="--silent --tag=CC"
-CONFIGURE_OPTIONS += --with-apxs=$(APXS)
 CONFIGURE_OPTIONS += --with-apr=`$(APXS) -q APR_CONFIG`
 CONFIGURE_OPTIONS += --with-apu=`$(APXS) -q APU_CONFIG`
 
 COMPONENT_TEST_ARGS += CFLAGS="$(CFLAGS) -DMSC_TEST"
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-configure:	$(MODULES_CONFIGURE)
-
-build: $(MODULES_BUILD)
-
-test: $(MODULES_TEST)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += library/apr-15
 REQUIRED_PACKAGES += library/apr-util-15
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += library/pcre
 REQUIRED_PACKAGES += runtime/lua
-REQUIRED_PACKAGES += system/library
--- a/components/apache2-modules/mod_wsgi/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apache2-modules/mod_wsgi/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,37 +20,30 @@
 #
 
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mod_wsgi
 COMPONENT_VERSION=	4.3.0
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	sha256:89dfcc8564bb8781f36370c80c6fbeef9ec0723dec273231f4f760760d8e813d
 COMPONENT_ARCHIVE_URL=	https://pypi.python.org/packages/source/m/mod_wsgi/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL=  http://code.google.com/p/modwsgi/
-COMPONENT_BUGDB=	utility/apache
 
 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
+VARIANTS_64 = $(BUILD_DIR)/apache24-python27 $(BUILD_DIR)/apache24-python34
 include ../modules.mk
 
-APACHE_USR_PREFIX = /usr/apache2/
+# Fix 64-bit linking via compiler.
+LDFLAGS += $(CC_BITS)
 
-VARIANT_AP_24_PY27 = $(BUILD_DIR)/apache24-python27
-VARIANT_AP_24_PY34 = $(BUILD_DIR)/apache24-python34
-
-VARIANTS_64 = $(VARIANT_AP_24_PY27) $(VARIANT_AP_24_PY34)
-
-$(BUILD_DIR)/apache24-%/$(MACH64)/.configured: APXS=$(APACHE_USR_PREFIX)/2.4/bin/apxs
+$(BUILD_DIR)/apache24-%/$(MACH64)/.configured: APXS=$(APACHE_24_USR_PREFIX)/bin/apxs BITS=64
+$(BUILD_DIR)/apache24-%/$(MACH64)/.built: BITS=64
+$(BUILD_DIR)/apache24-%/$(MACH64)/.tested: BITS=64
 
 $(BUILD_DIR)/apache2%-python27/$(MACH64)/.configured: PYTHON=$(PYTHON.2.7.64)
 $(BUILD_DIR)/apache2%-python34/$(MACH64)/.configured: PYTHON=$(PYTHON.3.4.64)
@@ -59,20 +52,7 @@
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
 CONFIGURE_OPTIONS += --with-python=$(PYTHON)
-CONFIGURE_OPTIONS += --with-apxs=$(APXS)
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-configure:	$(MODULES_CONFIGURE)
-
-build:		$(MODULES_BUILD)
-
-install:	$(MODULES_INSTALL)
-
-system-test:	$(NO_TESTS)
 
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += runtime/python-34
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/apache2-modules/modules.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apache2-modules/modules.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -20,17 +20,22 @@
 #
 # Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
 #
+COMPONENT_BUGDB ?=	utility/apache
 
-MODULES_CONFIGURE = $(CONFIGURE_64)
-MODULES_BUILD = $(BUILD_64)
-MODULES_INSTALL = $(INSTALL_64)
-MODULES_TEST = $(TEST_64)
+COMMON_TARGETS=no
+include $(WS_MAKE_RULES)/common.mk
+
+MODULES_CONFIGURE ?= $(CONFIGURE_64)
+MODULES_BUILD ?= $(BUILD_64)
+MODULES_INSTALL ?= $(INSTALL_64)
+MODULES_TEST ?= $(NO_TESTS)
+MODULES_SYSTEM_TEST ?= $(NO_TESTS)
 
 APACHE_24_USR_PREFIX=/usr/apache2/2.4
 
 VARIANT_APACHE_24 =	$(BUILD_DIR)/apache24
 
-VARIANTS_64 = $(VARIANT_APACHE_22) $(VARIANT_APACHE_24)
+VARIANTS_64 ?= $(VARIANT_APACHE_24)
 
 BUILD_64 = $(VARIANTS_64:%=%/$(MACH64)/.built)
 
@@ -54,16 +59,44 @@
 
 $(BUILD_DIR)/apache24/$(MACH64)/.built: APXS=$(APACHE_USR_PREFIX)/bin/apxs
 
-DEFAULT_COMPILER?=yes
+ASLR_MODE= $(ASLR_NOT_APPLICABLE)
+
+DEFAULT_COMPILER ?= yes
+
+ifeq ($(strip $(BUILD_STYLE)),configure)
+CONFIGURE_OPTIONS += --with-apxs=$(APXS)
+endif
+
+# Attempt to define shared module targets.
+ifeq ($(strip $(MODULES_CONFIGURE)),configure)
+configure:	$(MODULES_CONFIGURE)
+endif
+
+ifneq ($(strip $(MODULES_BUILD)),)
+build:          $(MODULES_BUILD)
+endif
+
+ifneq ($(strip $(MODULES_INSTALL)),)
+install:        $(MODULES_INSTALL)
+endif
+
+ifneq ($(strip $(MODULES_TEST)),)
+test:           $(MODULES_TEST)
+endif
+
+ifneq ($(strip $(MODULES_SYSTEM_TEST)),)
+system-test:    $(MODULES_SYSTEM_TEST)
+endif
 
 ifeq   ($(strip $(DEFAULT_COMPILER)),no)
 CC=
 CXX=
 endif
 
-PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:/usr/bin
+PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:$(USRBINDIR)
+else
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 endif
 
 REQUIRED_PACKAGES += web/server/apache-24
--- a/components/apache24/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apache24/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,17 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		apache2
 COMPONENT_VERSION=	2.4.16
 COMPONENT_PROJECT_URL=	http://httpd.apache.org/
 COMPONENT_SRC_NAME=	httpd
-COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:2fc18017801944cfcfde76a24f16c1276c866c2a6e512ee895f566bef9368fae
 COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/httpd/$(COMPONENT_ARCHIVE)
@@ -36,12 +37,8 @@
 TPNO=	23618
 	
 CONFIGURE_DEFAULT_DIRS=no
-
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-ASLR_MODE = $(ASLR_ENABLE)
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL=0
 
@@ -53,7 +50,7 @@
 COMPONENT_PREP_ACTION +=($(CP) mod_auth_gss/mod_auth_gss.html $(@D)/docs/manual/mod);
 COMPONENT_PREP_ACTION +=(cd $(@D); autoreconf);
 
-CONFIGURE_PREFIX =	/usr/apache2/2.4
+CONFIGURE_PREFIX =	$(USRDIR)/apache2/2.4
 
 CONFIGURE_OPTIONS +=	--enable-layout=Solaris
 CONFIGURE_OPTIONS +=	--enable-mpms-shared=all
@@ -62,28 +59,19 @@
 CONFIGURE_OPTIONS +=	--enable-cgi
 CONFIGURE_OPTIONS +=	--enable-suexec
 CONFIGURE_OPTIONS +=	--with-suexec-caller=webservd
-CONFIGURE_OPTIONS +=	--with-apr=/usr/apr/1.5/bin/$(MACH64)/apr-1-config
-CONFIGURE_OPTIONS +=	--with-apr-util=/usr/apr-util/1.5/bin/$(MACH64)/apu-1-config
+CONFIGURE_OPTIONS +=	--with-apr=$(USRDIR)/apr/1.5/bin/$(MACH64)/apr-1-config
+CONFIGURE_OPTIONS +=	--with-apr-util=$(USRDIR)/apr-util/1.5/bin/$(MACH64)/apu-1-config
 CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	LTFLAGS="--silent --tag=CC"
 
-PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
+else
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 endif
 
 COMPONENT_POST_INSTALL_ACTION += ($(KSH93) Solaris/customization.sh $(PROTO_DIR))
 
-configure:	$(CONFIGURE_64)
-
-build: $(BUILD_64)
-
-install: $(INSTALL_64)
-
-test: $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += library/apr-15
 REQUIRED_PACKAGES += library/apr-util-15
 REQUIRED_PACKAGES += library/apr-util-15/apr-ldap
@@ -99,7 +87,6 @@
 REQUIRED_PACKAGES += runtime/perl-522
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/library/security/gss
 REQUIRED_PACKAGES += system/network
--- a/components/apr-1_5/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apr-1_5/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,18 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+
+# Prefer 32-bit over 64-bit as apr has its own custom package layout.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		apr
 COMPONENT_VERSION=	1.5.1
 COMPONENT_PROJECT_URL=	http://apr.apache.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:94b1c9d9835cc9e902838b95d62ecc9a39b698f23e3e706812ec65a78ba41af7
 COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/apr/$(COMPONENT_ARCHIVE)
@@ -35,10 +38,7 @@
 TPNO=			20711
 
 CONFIGURE_DEFAULT_DIRS=no
-
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # Micro version for easy libraries packaging
 MICRO_VERSION:= $(shell echo $(COMPONENT_VERSION) | awk -F. '{ print $$3 }')
@@ -46,17 +46,13 @@
 
 PATCH_LEVEL=0
 
-# CC will be used via libtool for linking (thus need to be bitness aware).
-CC+=$(CC_BITS)
-
-CONFIGURE_PREFIX=/usr/apr/1.5
+CONFIGURE_PREFIX=$(USRDIR)/apr/1.5
 
 CONFIGURE_OPTIONS +=	--enable-threads
 CONFIGURE_OPTIONS +=	--enable-other-child
 CONFIGURE_OPTIONS +=	--enable-nonportable-atomics
 CONFIGURE_OPTIONS +=	--enable-shared
 CONFIGURE_OPTIONS +=	--disable-static
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	LTFLAGS="--tag=CC --silent"
 CONFIGURE_OPTIONS.32 +=	--enable-layout=Solaris
 CONFIGURE_OPTIONS.64 +=	--enable-layout=Solaris-$(MACH64)
@@ -64,7 +60,7 @@
 COMPONENT_TEST_TARGETS=	test
 
 # Some patches need configure script recreation.
-COMPONENT_PREP_ACTION += (cd $(@D); autoconf);
+COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fi);
 
 # 32 and 64 bits apr.h headers need to be merged to the final one.
 APRH=include/apr.h
@@ -79,19 +75,7 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += database/mysql-55
 REQUIRED_PACKAGES += developer/documentation-tool/doxygen
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/apr-util-1_5/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/apr-util-1_5/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,18 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+
+# Prefer 32-bit over 64-bit as apr-util has its own custom package layout.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		apr-util
 COMPONENT_VERSION=	1.5.4
 COMPONENT_PROJECT_URL=	http://apr.apache.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19
 COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/apr/$(COMPONENT_ARCHIVE)
@@ -35,10 +38,7 @@
 TPNO=			20776
 
 CONFIGURE_DEFAULT_DIRS=no
-
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # Micro version for easy libraries packaging
 MICRO_VERSION:= $(shell echo $(COMPONENT_VERSION) | awk -F. '{ print $$3 }')
@@ -46,24 +46,24 @@
 
 PATCH_LEVEL=0
 
-CONFIGURE_PREFIX=/usr/apr-util/1.5
+CONFIGURE_PREFIX=$(USRDIR)/apr-util/1.5
 
-CONFIGURE_OPTIONS +=	--with-mysql=/usr/mysql/5.5
-CONFIGURE_OPTIONS +=	--with-expat=/usr
-CONFIGURE_OPTIONS +=	--with-sqlite3=/usr
+CONFIGURE_OPTIONS +=	--with-mysql=$(USRDIR)/mysql/5.5
+CONFIGURE_OPTIONS +=	--with-expat=$(USRDIR)
+CONFIGURE_OPTIONS +=	--with-sqlite3=$(USRDIR)
 CONFIGURE_OPTIONS +=	--with-ldap=ldap_r-2.4
-CONFIGURE_OPTIONS +=	--with-ldap-include=/usr/include/openldap
+CONFIGURE_OPTIONS +=	--with-ldap-include=$(USRINCDIR)/openldap
 CONFIGURE_OPTIONS +=	--without-odbc
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS.32 +=	--enable-layout=Solaris
 CONFIGURE_OPTIONS.64 +=	--enable-layout=Solaris-$(MACH64)
-CONFIGURE_OPTIONS.32 +=	--with-apr=/usr/apr/1.5/bin/apr-1-config
-CONFIGURE_OPTIONS.64 +=	--with-apr=/usr/apr/1.5/bin/$(MACH64)/apr-1-config
-CONFIGURE_OPTIONS.32 +=	MYSQL_CONFIG=/usr/mysql/5.5/bin/$(MACH32)/mysql_config
+CONFIGURE_OPTIONS.32 +=	--with-apr=$(USRDIR)/apr/1.5/bin/apr-1-config
+CONFIGURE_OPTIONS.64 +=	--with-apr=$(USRDIR)/apr/1.5/bin/$(MACH64)/apr-1-config
+CONFIGURE_OPTIONS.32 +=	MYSQL_CONFIG=$(USRDIR)/mysql/5.5/bin/$(MACH32)/mysql_config
 
-PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
+else
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 endif
 
 COMPONENT_TEST_TARGETS= test
@@ -74,21 +74,10 @@
           docs/doxygen.conf | doxygen - ;
 
 # Some patches need configure script recreation.
-COMPONENT_PREP_ACTION += (cd $(@D); autoconf);
+COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fi);
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += database/mysql-55
 REQUIRED_PACKAGES += database/mysql-55/library
 REQUIRED_PACKAGES += database/sqlite-3
@@ -97,5 +86,4 @@
 REQUIRED_PACKAGES += library/expat
 REQUIRED_PACKAGES += library/openldap
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/asciidoc/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/asciidoc/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,56 +20,44 @@
 #
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		asciidoc
 COMPONENT_VERSION=	8.6.8
 COMPONENT_PROJECT_URL=	http://www.methods.co.nz/asciidoc/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:ffb67f59dccaf6f15db72fcd04fdf21a2f9b703d31f94fcd0c49a424a9fcfbc4
 COMPONENT_ARCHIVE_URL=	 http://downloads.sourceforge.net/project/$(COMPONENT_NAME)/$(COMPONENT_NAME)/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/asciidoc
 
 TPNO=			14505
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 
 # AsciiDoc configuration and data files belong in /usr/share, not /etc based
 # on discussion from ARC pre-review.
 #
-CONFIGURE_OPTIONS +=    --sysconfdir=/usr/share
+CONFIGURE_OPTIONS +=    --sysconfdir=$(USRSHAREDIR)
 
 # pkgdepend doesn't like the first line of a Python script to be:
 # '#!/usr/bin/env python' so turn it into '#!/usr/bin/python$(PYTHON_VERSION)'
 #
 COMPONENT_POST_INSTALL_ACTION += \
         $(GSED) -i -e 's?env python?python$(PYTHON_VERSION)?' \
-                $(PROTOUSRBINDIR64)/asciidoc.py;
+                $(PROTOUSRBINDIR)/asciidoc.py;
 COMPONENT_POST_INSTALL_ACTION += \
         $(GSED) -i -e 's?env python?python$(PYTHON_VERSION)?' \
-                $(PROTOUSRBINDIR64)/a2x.py;
+                $(PROTOUSRBINDIR)/a2x.py;
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
         ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
 # Tests require image/graphviz to be installed.  Some tests also want to run
 # programs which are not automatically available on Solaris (latex, abc2ly
 # and lilypad), so these tests will output messages of the form:
@@ -116,10 +104,6 @@
 	python$(PYTHON_VERSION) ./testasciidoc.py run
 COMPONENT_SYSTEM_TEST_TARGETS =
 
-test:           $(TEST_64)
-
-system-test:    configure $(SYSTEM_TEST_64)
-
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += library/libxslt
 REQUIRED_PACKAGES += web/browser/lynx
--- a/components/asciidoc/asciidoc.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/asciidoc/asciidoc.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,8 +35,8 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2013/268
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/a2x.py path=usr/bin/a2x
-file usr/bin/$(MACH64)/asciidoc.py path=usr/bin/asciidoc
+file usr/bin/a2x.py path=usr/bin/a2x
+file usr/bin/asciidoc.py path=usr/bin/asciidoc
 file path=usr/share/asciidoc/asciidoc.conf
 file path=usr/share/asciidoc/dblatex/asciidoc-dblatex.sty
 file path=usr/share/asciidoc/dblatex/asciidoc-dblatex.xsl
--- a/components/aspell/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/aspell/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,20 +18,19 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-COMPILER =		gcc
-
+BUILD_BITS= 64_and_32
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		aspell
 COMPONENT_VERSION=	0.60.6.1
 COMPONENT_PROJECT_URL=	http://aspell.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f52583a83a63633701c5f71db3dc40aab87b7f76b29723aeb27941eff42df6e1
-COMPONENT_ARCHIVE_URL=	ftp://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 
 COMPONENT_NAME_1=	aspell6-en
 COMPONENT_VERSION_1=	7.1-0
@@ -42,16 +41,13 @@
 COMPONENT_ARCHIVE_URL_1= ftp://ftp.gnu.org/gnu/$(COMPONENT_NAME)/dict/en/$(COMPONENT_ARCHIVE_1)
 SOURCE_DIR_1=		$(COMPONENT_DIR)/$(COMPONENT_SRC_1)
 
-COMPONENT_BUGDB=	utility/aspell
-
 TPNO=			23575
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-ASPELL_BIN_DIR.32 =	$(PROTOUSRBINDIR)
-ASPELL_BIN_DIR.64 =	$(PROTOUSRBINDIR64)
+ASPELL_BIN_DIR.32 =	$(PROTOUSRBINDIR)/$(MACH32)
+ASPELL_BIN_DIR.64 =	$(PROTOUSRBINDIR)
 ASPELL_BIN_DIR =	$(ASPELL_BIN_DIR.$(BITS))
 
 ASPELL_LIB_DIR.32 =	$(PROTOUSRLIBDIR)
@@ -74,28 +70,14 @@
 		PATH="$(ASPELL_BIN_DIR):$(PATH)" \
 		$(GMAKE) install);
 
-CXX +=			$(CC_BITS)
-CC +=			$(CC_BITS)
-
 CONFIGURE_ENV +=	LD_OPTIONS="$(LD_OPTIONS)"
 
 CLEAN_PATHS +=		$(SOURCE_DIR_1)
 PKG_PROTO_DIRS +=	$(SOURCE_DIR_1)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += $(PERL_PKG)
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/aspell/aspell.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/aspell/aspell.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,10 +35,10 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2015/228
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/aspell path=usr/bin/aspell
-file usr/bin/$(MACH64)/aspell-import path=usr/bin/aspell-import
-file usr/bin/$(MACH64)/run-with-aspell path=usr/bin/run-with-aspell
-file usr/bin/$(MACH64)/word-list-compress path=usr/bin/word-list-compress
+file path=usr/bin/aspell
+file path=usr/bin/aspell-import
+file path=usr/bin/run-with-aspell
+file path=usr/bin/word-list-compress
 file path=usr/include/aspell.h
 file path=usr/include/pspell/pspell.h
 file path=usr/lib/$(MACH64)/aspell-0.60/ccpp.amf
--- a/components/augeas/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/augeas/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,38 +18,30 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER = gcc
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		augeas
 COMPONENT_VERSION=	1.3.0
 COMPONENT_PROJECT_URL=	http://www.augeas.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:80763031af76515a8ea66013ddc3c466742a15d2e907c7c8e2e3b7410262e2af
 COMPONENT_ARCHIVE_URL=	http://download.augeas.net/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/augeas
 
 TPNO=	21660
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
        ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_PREFIX    =	/usr
 CONFIGURE_OPTIONS  +=	--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=	--disable-dependency-tracking
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
 
 COMPONENT_TEST_ARGS = -k
 COMPONENT_TEST_TRANSFORMS += \
@@ -65,11 +57,10 @@
         '-e "/PASS/p" ' \
         '-e "/FAIL/p" '
 
+# XXX why does this coredump without the workaround?
 # Fixes coredump in gnulib-test/test-localename test
 CONFIGURE_OPTIONS  +=           ac_cv_func_newlocale=no
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # Needed for "gmake test" to work.
 # SHELLOPTS is exported via make-rules/shared-macros.mk,
 # causing the braceexpand option to be set.
@@ -79,16 +70,6 @@
 # other than "test." 
 unexport SHELLOPTS
 
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += library/readline
--- a/components/autoconf/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/autoconf/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,45 +22,25 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= NO_ARCH
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		autoconf
 COMPONENT_VERSION=	2.69
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/autoconf/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:64ebcec9f8ac5b2487125a86a7760d2591ac9e1d3dbd59489633f9de62a57684
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/autoconf/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/autoconf
 
 TPNO=			22294
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # with ksh93 as the configure shell, all tests pass
-CONFIG_SHELL=/bin/ksh93
-
-CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=		PERL="$(PERL)"
-CONFIGURE_OPTIONS  +=		M4=/usr/gnu/bin/m4
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+CONFIG_SHELL=$(BINDIR)/ksh93
 
-# common targets
-configure:	$(CONFIGURE_NO_ARCH)
-
-build:		$(BUILD_NO_ARCH)
-
-install:	$(INSTALL_NO_ARCH)
-
-test:		$(TEST_NO_ARCH)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
+CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
+CONFIGURE_OPTIONS += PERL="$(PERL)"
+CONFIGURE_OPTIONS += M4="$(GNUBIN)/m4"
 
 REQUIRED_PACKAGES += developer/macro/gnu-m4
 REQUIRED_PACKAGES += $(PERL_PKG)
--- a/components/autogen/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/autogen/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,35 +18,33 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+# Normally, 64-bit binaries are preferred over 32-bit ones, but we prefer
+# 32-bit for this component to keep the historical defaults used by autogen for
+# 32-bit and 64-bit.
+BUILD_BITS= 32_and_64
 # built in SFW with gcc and builds cleanly now only with gcc
-COMPILER =	gcc
-
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		autogen
 COMPONENT_VERSION=	5.16.2
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/autogen/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:aa51f5adbf49c2cb48a7d6de3dbab15b89e0a04e7152195fe6fb3380e05c4991
 COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/autogen/rel$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/autogen
 
 TPNO=			11805
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# Tests need to be built.
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # build target is incorrect without this 
 COMPONENT_PRE_CONFIGURE_ACTION =        ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-
 # strip the environment or install target fails
 ENV +=	-i
 
@@ -74,29 +72,14 @@
 	'-e "/FAIL/p" ' \
 	'-e "/passed/p" '
 
-COMPONENT_SYSTEM_TEST_ENV +=	CLexe=/usr/bin/columns
-COMPONENT_SYSTEM_TEST_ENV +=	GDexe=/usr/bin/getdefs
-COMPONENT_SYSTEM_TEST_ENV +=	AGexe=/usr/bin/autogen
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-# Tests need to be built.
-system-test:	build $(SYSTEM_TEST_32_and_64)
-
+COMPONENT_SYSTEM_TEST_ENV +=	CLexe=$(USRBINDIR)/columns
+COMPONENT_SYSTEM_TEST_ENV +=	GDexe=$(USRBINDIR)/getdefs
+COMPONENT_SYSTEM_TEST_ENV +=	AGexe=$(USRBINDIR)/autogen
 
 REQUIRED_PACKAGES += library/gmp
 REQUIRED_PACKAGES += library/guile
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += shell/bash
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc-3-runtime
 REQUIRED_PACKAGES += system/library/gcc-45-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
--- a/components/automake/automake-1.10/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/automake/automake-1.10/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,42 +22,20 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= NO_ARCH
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		automake
 COMPONENT_VERSION=	1.10
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/automake/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:d92c77acdc3b132ff6b2de06a1321654a556defa21b7dd3e8d4829434ed64e8e
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/pub/gnu/automake/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/automake
 
 TPNO=			6149
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_OPTIONS  +=	--infodir=/usr/share/$(COMPONENT_NAME)-$(COMPONENT_VERSION)/info
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=		PERL="$(PERL)"
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-# common targets
-configure:	$(CONFIGURE_NO_ARCH)
-
-build:		$(BUILD_NO_ARCH)
-
-install:	$(INSTALL_NO_ARCH)
-
-test:		$(TEST_NO_ARCH)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
+CONFIGURE_OPTIONS  += --infodir=$(USRSHAREDIR)/$(COMPONENT_NAME)-$(COMPONENT_VERSION)/info
+CONFIGURE_OPTIONS  += PERL="$(PERL)"
 
 REQUIRED_PACKAGES += $(PERL_PKG)
 REQUIRED_PACKAGES += shell/ksh93
--- a/components/automake/automake-1.11.2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/automake/automake-1.11.2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,42 +22,21 @@
 #
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= NO_ARCH
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		automake
 COMPONENT_MAJMIN_VERS=	1.11
 COMPONENT_VERSION=	1.11.2
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:c339e3871d6595620760725da61de02cf1c293af8a05b14592d6587ac39ce546
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/pub/gnu/automake/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/automake
 
 TPNO=			7253
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_OPTIONS  +=	--infodir=/usr/share/$(COMPONENT_NAME)-$(COMPONENT_MAJMIN_VERS)/info
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=	PERL="$(PERL)"
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-# common targets
-configure:	$(CONFIGURE_NO_ARCH)
-
-build:		$(BUILD_NO_ARCH)
-
-install:	$(INSTALL_NO_ARCH)
-
-test:		$(TEST_NO_ARCH)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
+CONFIGURE_OPTIONS  += --infodir=$(USRSHAREDIR)/$(COMPONENT_NAME)-$(COMPONENT_MAJMIN_VERS)/info
+CONFIGURE_OPTIONS  += PERL="$(PERL)"
 
 REQUIRED_PACKAGES += $(PERL_PKG)
 REQUIRED_PACKAGES += shell/ksh93
--- a/components/automake/automake-1.15/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/automake/automake-1.15/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,42 +22,22 @@
 #
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= NO_ARCH
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		automake
 COMPONENT_VERSION=	1.15
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:7946e945a96e28152ba5a6beb0625ca715c6e32ac55f2e353ef54def0c8ed924
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/pub/gnu/automake/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/automake
 
 TPNO=			21310
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_OPTIONS  +=	--infodir=/usr/share/$(COMPONENT_NAME)-$(COMPONENT_VERSION)/info
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=	PERL="$(PERL)"
-
-COMPONENT_TEST_ENV +=	-i PATH=$(GCC_ROOT)/bin:/usr/gnu/bin:/usr/bin
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-configure:	$(CONFIGURE_NO_ARCH)
+CONFIGURE_OPTIONS += --infodir=$(USRSHAREDIR)/$(COMPONENT_NAME)-$(COMPONENT_VERSION)/info
+CONFIGURE_OPTIONS += PERL="$(PERL)"
 
-build:		$(BUILD_NO_ARCH)
-
-install:	$(INSTALL_NO_ARCH)
-
-test:		$(TEST_NO_ARCH)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+COMPONENT_TEST_ENV += -i PATH=$(GCC_ROOT)/bin:$(GNUBIN):$(USRBINDIR)
 
 REQUIRED_PACKAGES += $(PERL_PKG)
 REQUIRED_PACKAGES += shell/ksh93
--- a/components/avahi/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/avahi/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,16 +22,14 @@
 #
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 # Override PATH set in shared-macros.mk by setting the GNU PATH as default.
-PATH=/usr/gnu/bin:/usr/bin
+PATH=$(GNUBIN):$(USRBINDIR)
 
 COMPONENT_NAME=		avahi
 COMPONENT_VERSION=	0.6.30
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.avahi.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:f9e4316c2339d0020726edd846d01bee0c39980906db0c247479e5807457ff1f
 COMPONENT_ARCHIVE_URL=	http://www.avahi.org/download/$(COMPONENT_ARCHIVE)
@@ -39,9 +37,6 @@
 
 TPNO=			7879
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-
 # Depends on a Python module from Desktop that is only available 32-bit in S11.
 ifeq ($(BUILD_TYPE), evaluation)
 BUILD_32_and_64=
@@ -49,19 +44,16 @@
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-# Set the pkg... path to search files in ./files/ dir (mainly the SMF manifests are there)
-PKG_PROTO_DIRS += $(COMPONENT_DIR)
-
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
-CONFIGURE_SBINDIR.64 =	$(CONFIGURE_PREFIX)/bin
+CONFIGURE_SBINDIR.64 =	$(CONFIGURE_BINDIR.64)
 CONFIGURE_OPTIONS	+=	--enable-shared
 CONFIGURE_OPTIONS	+=	--disable-static
-CONFIGURE_OPTIONS	+=	--sysconfdir=/etc
+CONFIGURE_OPTIONS	+=	--sysconfdir=$(ETCDIR)
 CONFIGURE_OPTIONS	+=	--with-avahi-user=daemon
 CONFIGURE_OPTIONS	+=	--with-avahi-group=other
-CONFIGURE_OPTIONS	+=	--localstatedir=/var/avahi
+CONFIGURE_OPTIONS	+=	--localstatedir=$(VARDIR)/avahi
 CONFIGURE_OPTIONS	+=	--with-distro=none
 CONFIGURE_OPTIONS	+=	--disable-gtk3
 CONFIGURE_OPTIONS	+=	--disable-pygtk
@@ -78,9 +70,7 @@
 CONFIGURE_OPTIONS.64	+=	--enable-doxygen-man
 CONFIGURE_OPTIONS.32	+=	--disable-doxygen-man
 CONFIGURE_OPTIONS	+=	CPP="$(CC) -E"
-CONFIGURE_OPTIONS	+=	CFLAGS="$(CFLAGS)"
 LDFLAGS	+=	-ldns_sd
-CONFIGURE_OPTIONS	+=	LDFLAGS="$(LDFLAGS)"
 CONFIGURE_OPTIONS	+=	PYTHON=$(PYTHON.$(PYTHON_VERSION))
 CONFIGURE_OPTIONS	+=	am_cv_python_pythondir="$(PYTHON_VENDOR_PACKAGES)"
 CONFIGURE_OPTIONS	+=	am_cv_python_pyexecdir="$(PYTHON_VENDOR_PACKAGES)"
@@ -94,7 +84,7 @@
 COMPONENT_BUILD_ENV += CC="$(CC)"
 COMPONENT_BUILD_ENV += CFLAGS="$(CFLAGS)"
 COMPONENT_BUILD_ENV += LDFLAGS="$(LDFLAGS)"
-$(BUILD_32_and_64): PATH = $(SPRO_VROOT)/bin:/usr/gnu/bin:/usr/bin
+$(BUILD_32_and_64): PATH = $(SPRO_VROOT)/bin:$(GNUBIN):$(USRBINDIR)
 COMPONENT_POST_INSTALL_ACTION += \
  ( $(PYTHON.$(PYTHON_VERSION)) -m compileall $(PROTO_DIR)/$(PYTHON_VENDOR_PACKAGES) )
 
@@ -106,17 +96,6 @@
 $(BUILD_32):	COMPONENT_BUILD_TARGETS		+=	SUBDIRS="$(SUBDIRS)"
 $(INSTALL_32):	COMPONENT_INSTALL_TARGETS	+=	SUBDIRS="$(SUBDIRS)"
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
 REQUIRED_PACKAGES += library/desktop/gtk2
 REQUIRED_PACKAGES += library/expat
 REQUIRED_PACKAGES += library/glib2
@@ -125,6 +104,5 @@
 REQUIRED_PACKAGES += service/network/dns/mdns
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/dbus
 REQUIRED_PACKAGES += system/library/libdbus
--- a/components/bash/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/bash/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,33 +18,33 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		bash
 COMPONENT_VERSION=	4.3
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/bash/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH = \
     sha256:afc687a28e0e24dc21b988fa159ff9dbcf6b7caa92ade8645cc6d5605cd024d4
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/bash/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/bash
 
 TPNO=			21712
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-BASH_PATCHLEVEL=$(shell grep -h "define PATCHLEVEL" $(COMPONENT_DIR)/patches/bash* | nawk '{print $$NF}' | sort -n | tail -1)
+# Avoid running configure again during the build due to patches to
+# configure-related files by running autoconf before we run configure.
+COMPONENT_PREP_ACTION += (cd $(@D); autoconf)
+
+BASH_PATCHLEVEL=$(shell grep -h "define PATCHLEVEL" $(COMPONENT_DIR)/patches/bash* | $(NAWK) '{print $$NF}' | sort -n | tail -1)
 IPS_COMPONENT_VERSION = $(COMPONENT_VERSION).$(BASH_PATCHLEVEL)
 PATCH_LEVEL = 0
 
 PKG_PROTO_DIRS += $(COMPONENT_DIR)/Solaris
 
-# Enable C99 mode + -Xc for it's additional warnings.
+# Enable C99 mode + -Xc for its additional warnings.
 studio_C99MODE = -Xc $(studio_C99_ENABLE)
 
 # Use the maximum number of registers on sparc since we have no libraries
@@ -62,12 +62,15 @@
 
 CFLAGS += $(XPG6MODE)
 CFLAGS += $(CPP_C99_EXTENDED_MATH)
-CFLAGS += -I/usr/include/ncurses
+CFLAGS += -I$(USRINCDIR)/ncurses
 
 # configure checks for some functions, but doesn't seem to want to link in
 # the required libraries for them. We avoid linking with libthread.so.1
 # just because we pass -mt, by explicitly passing -lc.
-LIBS =	-lc -lsocket -lgen
+LIBS =	-lc -lgen
+ifeq ($(OS_VERSION),5.11)
+LIBS +=	-lsocket
+endif
 
 # -z redlocsym -- let's shrink the SHT_SYMTAB as much as we can
 LDFLAGS =	$(LD_Z_REDLOCSYM)
@@ -97,53 +100,68 @@
 # The bash test harness needs the GNU userland utilities
 TEST_PATH = "PATH=$(BUILD_DIR_64):$(GNUBIN):$(USRBINDIR)"
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	LDFLAGS="$(LDFLAGS)"
+# This avoids the need to patch configure or other files for these dependencies.
+ifeq ($(OS_VERSION), 5.11)
+CONFIGURE_ENV += LD_OPTIONS="-lc -lm -lgen -lsocket -lnsl -lresolv $(LD_Z_IGNORE)"
+else
+CONFIGURE_ENV += LD_OPTIONS="-lc -lm -lgen -lresolv $(LD_Z_IGNORE)"
+endif
+
 CONFIGURE_ENV +=	LIBS="$(LIBS)"
 
-CONFIGURE_OPTIONS  +=		--localstatedir=/var
-CONFIGURE_OPTIONS  += 		--enable-alias
-CONFIGURE_OPTIONS  += 		--enable-arith-for-command
-CONFIGURE_OPTIONS  += 		--enable-array-variables
-CONFIGURE_OPTIONS  += 		--enable-bang-history
-CONFIGURE_OPTIONS  += 		--enable-brace-expansion
-CONFIGURE_OPTIONS  += 		--enable-casemod-attributes
-CONFIGURE_OPTIONS  += 		--enable-casemod-expansions
-CONFIGURE_OPTIONS  += 		--enable-command-timing
-CONFIGURE_OPTIONS  += 		--enable-cond-command
-CONFIGURE_OPTIONS  += 		--enable-cond-regexp
-CONFIGURE_OPTIONS  += 		--enable-coprocesses
-CONFIGURE_OPTIONS  += 		--enable-debugger
-CONFIGURE_OPTIONS  += 		--enable-directory-stack
-CONFIGURE_OPTIONS  += 		--enable-disabled-builtins
-CONFIGURE_OPTIONS  += 		--enable-dparen-arithmetic
-CONFIGURE_OPTIONS  += 		--enable-extended-glob
-CONFIGURE_OPTIONS  += 		--enable-help-builtin
-CONFIGURE_OPTIONS  += 		--enable-history
-CONFIGURE_OPTIONS  += 		--enable-job-control
-CONFIGURE_OPTIONS  += 		--enable-multibyte
-CONFIGURE_OPTIONS  += 		--enable-net-redirections
-CONFIGURE_OPTIONS  += 		--enable-process-substitution
-CONFIGURE_OPTIONS  += 		--enable-progcomp
-CONFIGURE_OPTIONS  += 		--enable-prompt-string-decoding
-CONFIGURE_OPTIONS  += 		--enable-readline
-CONFIGURE_OPTIONS  += 		--enable-restricted
-CONFIGURE_OPTIONS  += 		--enable-select
-CONFIGURE_OPTIONS  += 		--enable-separate-helpfiles
-CONFIGURE_OPTIONS  += 		--enable-single-help-strings
-CONFIGURE_OPTIONS  += 		--disable-strict-posix-default
-CONFIGURE_OPTIONS  += 		--enable-usg-echo-default=yes
-CONFIGURE_OPTIONS  += 		--enable-xpg-echo-default=yes
-CONFIGURE_OPTIONS  += 		--enable-mem-scramble
-CONFIGURE_OPTIONS  += 		--disable-profiling
-CONFIGURE_OPTIONS  += 		--enable-static-link
-CONFIGURE_OPTIONS  += 		--enable-largefile
-CONFIGURE_OPTIONS  += 		--enable-nls
-CONFIGURE_OPTIONS  += 		--with-bash-malloc=yes
-CONFIGURE_OPTIONS  += 		--with-curses
-CONFIGURE_OPTIONS  += 		--with-installed-readline=no
-CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
+# Ignore tgetent() checks in configure and use libncurses on Solaris.
+CONFIGURE_ENV += ac_cv_func_tgetent=yes
+CONFIGURE_ENV += ac_cv_lib_termcap_tgetent=no
+CONFIGURE_ENV += ac_cv_lib_curses_tgetent=no
+CONFIGURE_ENV += ac_cv_lib_ncurses_tgetent=yes
+CONFIGURE_ENV += bash_cv_termcap_lib=libncurses
+
+# bash will trigger an autoconf during the build; so apply above again
+# XXX just apply configure_env?
+# COMPONENT_BUILD_ENV += $(CONFIGURE_ENV)
 
+CONFIGURE_OPTIONS += --disable-profiling
+CONFIGURE_OPTIONS += --disable-strict-posix-default
+CONFIGURE_OPTIONS += --enable-alias
+CONFIGURE_OPTIONS += --enable-arith-for-command
+CONFIGURE_OPTIONS += --enable-array-variables
+CONFIGURE_OPTIONS += --enable-bang-history
+CONFIGURE_OPTIONS += --enable-brace-expansion
+CONFIGURE_OPTIONS += --enable-casemod-attributes
+CONFIGURE_OPTIONS += --enable-casemod-expansions
+CONFIGURE_OPTIONS += --enable-command-timing
+CONFIGURE_OPTIONS += --enable-cond-command
+CONFIGURE_OPTIONS += --enable-cond-regexp
+CONFIGURE_OPTIONS += --enable-coprocesses
+CONFIGURE_OPTIONS += --enable-debugger
+CONFIGURE_OPTIONS += --enable-directory-stack
+CONFIGURE_OPTIONS += --enable-disabled-builtins
+CONFIGURE_OPTIONS += --enable-dparen-arithmetic
+CONFIGURE_OPTIONS += --enable-extended-glob
+CONFIGURE_OPTIONS += --enable-help-builtin
+CONFIGURE_OPTIONS += --enable-history
+CONFIGURE_OPTIONS += --enable-job-control
+CONFIGURE_OPTIONS += --enable-largefile
+CONFIGURE_OPTIONS += --enable-mem-scramble
+CONFIGURE_OPTIONS += --enable-multibyte
+CONFIGURE_OPTIONS += --enable-net-redirections
+CONFIGURE_OPTIONS += --enable-nls
+CONFIGURE_OPTIONS += --enable-process-substitution
+CONFIGURE_OPTIONS += --enable-progcomp
+CONFIGURE_OPTIONS += --enable-prompt-string-decoding
+CONFIGURE_OPTIONS += --enable-readline
+CONFIGURE_OPTIONS += --enable-restricted
+CONFIGURE_OPTIONS += --enable-select
+CONFIGURE_OPTIONS += --enable-separate-helpfiles
+CONFIGURE_OPTIONS += --enable-single-help-strings
+CONFIGURE_OPTIONS += --enable-static-link
+CONFIGURE_OPTIONS += --enable-usg-echo-default=yes
+CONFIGURE_OPTIONS += --enable-xpg-echo-default=yes
+CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)
+CONFIGURE_OPTIONS += --with-bash-malloc=yes
+CONFIGURE_OPTIONS += --with-curses
+CONFIGURE_OPTIONS += --with-installed-readline=no
 COMPONENT_TEST_DIR =		$(BUILD_DIR_64)
 COMPONENT_TEST_ENV =		- $(TEST_PATH)
 
@@ -152,23 +170,12 @@
 # avoid permission issues for other users running these tests
 COMPONENT_POST_TEST_ACTION =	rm -f /tmp/xx
 
-ASLR_MODE=$(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build: $(BUILD_64)
-
-install: $(INSTALL_64)
+COMPONENT_POST_INSTALL_ACTION += \
 	( cd $(PROTOUSRSHAREDIR)/locale ; \
 	    cp -Rp "en@boldquot" en ; \
 	    cp -Rp "en@boldquot" en_CA ; \
 	    cp -Rp "en@boldquot" en_GB )
 
-test:	$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 
--- a/components/bash/bash.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/bash/bash.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -38,8 +38,8 @@
 file etc.bash.bashrc path=etc/bash/bashrc.example
 file etc.bash.inputrc path=etc/bash/inputrc.example
 file etc.skel.bashrc path=etc/skel/.bashrc
-file usr/bin/$(MACH64)/bash path=usr/bin/bash
-file usr/bin/$(MACH64)/bashbug path=usr/bin/bashbug
+file path=usr/bin/bash
+file path=usr/bin/bashbug
 #
 link path=usr/bin/rbash target=./bash
 link path=usr/gnu/bin/sh target=../../bin/bash
--- a/components/bash/patches/solaris-009.configure.patch	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,270 +0,0 @@
-# Solaris-specific ./configure stuff.
-# 1. We need to link bash with -lget.
-# 2. It's a release build, therefore we really don't want debugging
-# 3. We really want to use ncurses because bash is very compatible
-# with it.
---- configure	2014-02-11 07:38:00.000000000 -0800
-+++ configure	2015-04-02 10:48:06.744812618 -0700
-@@ -1,4 +1,4 @@
--#! /bin/sh
-+#!/bin/bash
- # From configure.ac for Bash 4.3, version 4.063.
- # Guess values for system-dependent variables and create Makefiles.
- # Generated by GNU Autoconf 2.69 for bash 4.3-release.
-@@ -15,6 +15,8 @@
- ## M4sh Initialization. ##
- ## -------------------- ##
- 
-+export LD_OPTIONS="-lc -lm -lgen -lsocket -lnsl -lresolv -lncurses -z ignore"
-+
- # Be more Bourne compatible
- DUALCASE=1; export DUALCASE # for MKS sh
- if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-@@ -277,7 +279,7 @@
- fi
- fi
- fi
--SHELL=${CONFIG_SHELL-/bin/sh}
-+SHELL=${CONFIG_SHELL-/bin/bash}
- export SHELL
- # Unset more variables known to interfere with behavior of common tools.
- CLICOLOR_FORCE= GREP_OPTIONS=
-@@ -4015,7 +4017,7 @@
-   ac_save_c_werror_flag=$ac_c_werror_flag
-    ac_c_werror_flag=yes
-    ac_cv_prog_cc_g=no
--   CFLAGS="-g"
-+   CFLAGS=""
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- 
-@@ -4046,7 +4048,7 @@
- 
- else
-   ac_c_werror_flag=$ac_save_c_werror_flag
--	 CFLAGS="-g"
-+	 CFLAGS=""
- 	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- 
-@@ -4074,13 +4076,13 @@
-   CFLAGS=$ac_save_CFLAGS
- elif test $ac_cv_prog_cc_g = yes; then
-   if test "$GCC" = yes; then
--    CFLAGS="-g -O2"
-+    CFLAGS=""
-   else
--    CFLAGS="-g"
-+    CFLAGS=""
-   fi
- else
-   if test "$GCC" = yes; then
--    CFLAGS="-O2"
-+    CFLAGS=""
-   else
-     CFLAGS=
-   fi
-@@ -4922,8 +4924,8 @@
- 
- 
- if test -z "$CFLAGS"; then
--	AUTO_CFLAGS="-g ${GCC+-O2}"
--	AUTO_LDFLAGS="-g ${GCC+-O2}"
-+	AUTO_CFLAGS=""
-+	AUTO_LDFLAGS=""
- else
- 	AUTO_CFLAGS= AUTO_LDFLAGS=
- fi
-@@ -4951,7 +4953,7 @@
- 		STATIC_LD="-static"
- 		case "$host_os" in
- 		solaris2*)	;;
--		*)		LDFLAGS="$LDFLAGS -static" ;;	# XXX experimental
-+		*)		LDFLAGS="$LDFLAGS" ;;	# XXX experimental
- 		esac
- 	fi
- fi
-@@ -4970,7 +4972,7 @@
- 	CC_FOR_BUILD=${CC_FOR_BUILD-"gcc"}
- 	CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
- 	LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
--	CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD="-g"}
-+	CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD=""}
- 	LIBS_FOR_BUILD=${LIBS_FOR_BUILD-""}
- fi
- 
-@@ -5148,9 +5150,14 @@
- int
- main ()
- {
-+  #if defined(sun) || defined(__sun) || defined(__sun__)
-+  #error "we want to use libcurses."
-+  return 255;
-+  #else
- return tgetent ();
-   ;
-   return 0;
-+  #endif
- }
- _ACEOF
- if ac_fn_c_try_link "$LINENO"; then :
-@@ -5187,9 +5194,14 @@
- int
- main ()
- {
-+    #if defined(sun) || defined(__sun) || defined(__sun__)
-+    #error "we want to use libcurses."
-+    return 255;
-+    #else
- return tgetent ();
-   ;
-   return 0;
-+#endif
- }
- _ACEOF
- if ac_fn_c_try_link "$LINENO"; then :
-@@ -5815,7 +5827,7 @@
-   $as_echo_n "(cached) " >&6
- else
-   cat >conftest.make <<\_ACEOF
--SHELL = /bin/sh
-+SHELL = /bin/bash
- all:
- 	@echo '@@@%%%=$(MAKE)=@@@%%%'
- _ACEOF
-@@ -5846,8 +5858,8 @@
- esac
- 
- case "$host_os" in
--opennt*|interix*)	MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
--*)			MAKE_SHELL=/bin/sh ;;
-+opennt*|interix*)	MAKE_SHELL="$INTERIX_ROOT/bin/bash" ;;
-+*)			MAKE_SHELL=/bin/bash ;;
- esac
- 
- 
-@@ -6509,7 +6521,7 @@
- # Prepare PATH_SEPARATOR.
- # The user is always right.
- if test "${PATH_SEPARATOR+set}" != set; then
--  echo "#! /bin/sh" >conf$$.sh
-+  echo "#! /bin/bash" >conf$$.sh
-   echo  "exit 0"   >>conf$$.sh
-   chmod +x conf$$.sh
-   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-@@ -6523,7 +6535,7 @@
- # Find out how to test for executable files. Don't use a zero-byte file,
- # as systems may use methods other than mode bits to determine executability.
- cat >conf$$.file <<_ASEOF
--#! /bin/sh
-+#! /bin/bash
- exit 0
- _ASEOF
- chmod +x conf$$.file
-@@ -6620,7 +6632,7 @@
- # Prepare PATH_SEPARATOR.
- # The user is always right.
- if test "${PATH_SEPARATOR+set}" != set; then
--  echo "#! /bin/sh" >conf$$.sh
-+  echo "#! /bin/bash" >conf$$.sh
-   echo  "exit 0"   >>conf$$.sh
-   chmod +x conf$$.sh
-   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-@@ -6634,7 +6646,7 @@
- # Find out how to test for executable files. Don't use a zero-byte file,
- # as systems may use methods other than mode bits to determine executability.
- cat >conf$$.file <<_ASEOF
--#! /bin/sh
-+#! /bin/bash
- exit 0
- _ASEOF
- chmod +x conf$$.file
-@@ -6691,7 +6703,7 @@
- # Prepare PATH_SEPARATOR.
- # The user is always right.
- if test "${PATH_SEPARATOR+set}" != set; then
--  echo "#! /bin/sh" >conf$$.sh
-+  echo "#! /bin/bash" >conf$$.sh
-   echo  "exit 0"   >>conf$$.sh
-   chmod +x conf$$.sh
-   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-@@ -6705,7 +6717,7 @@
- # Find out how to test for executable files. Don't use a zero-byte file,
- # as systems may use methods other than mode bits to determine executability.
- cat >conf$$.file <<_ASEOF
--#! /bin/sh
-+#! /bin/bash
- exit 0
- _ASEOF
- chmod +x conf$$.file
-@@ -7538,7 +7550,7 @@
- # Prepare PATH_SEPARATOR.
- # The user is always right.
- if test "${PATH_SEPARATOR+set}" != set; then
--  echo "#! /bin/sh" >conf$$.sh
-+  echo "#! /bin/bash" >conf$$.sh
-   echo  "exit 0"   >>conf$$.sh
-   chmod +x conf$$.sh
-   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-@@ -7646,7 +7658,7 @@
- else
- 
-     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
--    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-+    ${CONFIG_SHELL-/bin/bash} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-     . ./conftest.sh
-     rm -f ./conftest.sh
-     acl_cv_rpath=done
-@@ -12590,7 +12602,7 @@
- exit 69
- ' >conftest
- chmod u+x conftest
--(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1)
-+(SHELL=/bin/bash; export SHELL; ./conftest >/dev/null 2>&1)
- if test $? -ne 69; then
-    ac_cv_sys_interpreter=yes
- else
-@@ -15728,9 +15740,14 @@
- int
- main ()
- {
-+#if defined(sun) || defined(__sun) || defined(__sun__)
-+#error "we want to use libcurses."
-+return 255;
-+#else
- return tgetent ();
-   ;
-   return 0;
-+#endif
- }
- _ACEOF
- if ac_fn_c_try_link "$LINENO"; then :
-@@ -15783,7 +15800,7 @@
- TERMCAP_LIB=
- TERMCAP_DEP=
- else
--TERMCAP_LIB=-lcurses
-+TERMCAP_LIB=/usr/lib/64/libcurses.so.1
- TERMCAP_DEP=
- fi
- 
-@@ -15918,7 +15935,9 @@
- solaris2.5*)	LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
- solaris2.8*)	LOCAL_CFLAGS=-DSOLARIS  ;;
- solaris2.9*)	LOCAL_CFLAGS=-DSOLARIS  ;;
--solaris2.10*)	LOCAL_CFLAGS=-DSOLARIS  ;;
-+solaris2.10*)	LOCAL_CFLAGS="-DSOLARIS -lsocket -lnsl -lgen" ;;
-+solaris2.11*)	LOCAL_CFLAGS="-DSOLARIS -lsocket -lnsl -lgen -lncurses" ;;
-+solaris2.12*)	LOCAL_CFLAGS="-DSOLARIS -lsocket -lnsl -lgen -lncurses" ;;
- solaris2*)	LOCAL_CFLAGS=-DSOLARIS ;;
- lynxos*)	LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
- linux*)		LOCAL_LDFLAGS=-rdynamic		 # allow dynamic loading
-@@ -15970,7 +15989,7 @@
- then
- 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking shared object configuration for loadable builtins" >&5
- $as_echo_n "checking shared object configuration for loadable builtins... " >&6; }
--	eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
-+	eval `${CONFIG_SHELL-/bin/bash} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
- 
- 
- 
--- a/components/bcc/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/bcc/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,9 +22,8 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER =	gcc
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		bcc
@@ -35,16 +34,18 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:52ed4980c0e4b68d2624aadb0ceb0339cb3fd8dd7c2175419d4f77a451846cbe
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/bcc
 
 TPNO=			8334
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+INSTALL_TARGET= build
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
+
+# Fix 64-bit linking via compiler.
+LDFLAGS += "$(CC_BITS)"
 
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
-CC += $(CC_BITS)
 
 # Create the Makefile before we build
 COMPONENT_PRE_BUILD_ACTION = (cd $(@D) ; CC="$(CC)" $(GMAKE) make.fil)
@@ -55,15 +56,6 @@
 COMPONENT_BUILD_ARGS += VERSION="$(COMPONENT_VERSION)"
 COMPONENT_BUILD_ARGS += TOPDIR="$(@D)"
 COMPONENT_BUILD_ARGS += CC="$(CC)"
+COMPONENT_BUILD_ARGS += CFLAGS="$(CFLAGS)"
+COMPONENT_BUILD_ARGS += LDFLAGS="$(LDFLAGS)"
 COMPONENT_BUILD_TARGETS = bcc86 as86 ld86 ar86
-
-
-# common targets
-install build:		$(BUILD_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/beanshell/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/beanshell/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		beanshell
 COMPONENT_VERSION=	2.0b4
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.beanshell.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:a6f02b46796ed6b6a212cfc2d17e4797212db3206e21a3f4959adb60bddfff5f
 # This should come from http://www.beanshell.org/ however they do not
@@ -36,15 +37,12 @@
 # more attention at the google code repository of late.
 COMPONENT_ARCHIVE_URL=	$(EXTERNAL_ARCHIVE_MIRROR)/$(SOURCE_ARCHIVE)
 
-COMPONENT_BUGDB=	utility/beanshell
-
 IPS_COMPONENT_VERSION=	2.0
 
 TPNO=			6200
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ant.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= ant
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_BUILD_ARGS +=	-Ddist-dir=${PROTO_DIR}
 COMPONENT_BUILD_ARGS +=	-Djavadoc-dir=${PROTO_DIR}
@@ -56,19 +54,6 @@
 # associated beanshell.p5m file.
 PUBLISH_TRANSFORMS += solaris-transform
 # Needed to pick up scripts/bsh and bshcommands-bshdoc.xml
-PKG_PROTO_DIRS += $(COMPONENT_DIR) 
 PKG_PROTO_DIRS += $(BUILD_DIR_32)
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-build:		$(BUILD_32)
-
-install:	build
-
-test:	$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += shell/ksh93
--- a/components/berkeleydb/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/berkeleydb/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,7 +22,7 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 PATH=$(SPRO_VROOT)/bin:/usr/bin
@@ -31,17 +31,12 @@
 COMPONENT_VERSION=	5.3.21
 COMPONENT_PROJECT_URL=	http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html
 COMPONENT_SRC_NAME=	db
-COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:ddd92a930317df92021054c03992392db9ea5cddba43bef8920d392a82114fb8
 COMPONENT_ARCHIVE_URL=	http://download.oracle.com/berkeley-db/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	database/berkeley
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
         ($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -67,27 +62,23 @@
 CONFIGURE_SCRIPT = dist/configure
 
 # adding to the C++ compiler because libtool appears to strip it from CXXFLAGS
-CXX +=	$(studio_NORUNPATH)
+CXX +=	$($(COMPILER)_NORUNPATH)
 
 # we need to enable large file support and build PIC for our shared libraries
 CFLAGS += $(CPP_LARGEFILES) $(CC_PIC)
 CXXFLAGS += $(CPP_LARGEFILES)
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)"
-
 # BerkeleyDB < 6 does not support Java 8. Java 7 is EOL & removed.
 CONFIGURE_OPTIONS += --disable-java
-CONFIGURE_OPTIONS += --disable-jdbc 
-
-CONFIGURE_OPTIONS += --includedir=/usr/include
+CONFIGURE_OPTIONS += --disable-jdbc
+CONFIGURE_OPTIONS += --includedir=$(USRINCDIR)
 CONFIGURE_OPTIONS += --enable-shared
 CONFIGURE_OPTIONS += --disable-static
 CONFIGURE_OPTIONS += --enable-cxx
 CONFIGURE_OPTIONS += --enable-sql
 CONFIGURE_OPTIONS += --enable-sql_codegen
 CONFIGURE_OPTIONS += --enable-tcl
-CONFIGURE_OPTIONS += --with-tcl=/usr/lib
+CONFIGURE_OPTIONS += --with-tcl=$(USRLIBDIR)
 CONFIGURE_OPTIONS += --enable-dbm
 CONFIGURE_OPTIONS += $(configure_test)
 
@@ -95,30 +86,17 @@
 
 $(SKIP_TEST_AT_TOP_LEVEL)
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
 $(BUILD_DIR)/%/.tested: configure_test= --enable-test
 
 # Do not apply the standard licence transforms for this component.
 LICENSE_TRANSFORMS =
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-		$(CP) berkeleydb.license $(PROTOUSRDIR)/docs/LICENSE
-
-test:		$(TEST_32_and_64) 
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+COMPONENT_POST_INSTALL_ACTION += \
+	$(CP) berkeleydb.license $(PROTOUSRDIR)/docs/LICENSE
 
 # By default "gmake test" runs standard tests, takes ~2 days per $(BITS).
 RUN=run_std
 
 
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
--- a/components/berkeleydb/berkeleydb.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/berkeleydb/berkeleydb.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,36 +36,36 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2010/300
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/db_archive path=usr/bin/$(MACH32)/db_archive
-file usr/bin/db_checkpoint path=usr/bin/$(MACH32)/db_checkpoint
-file usr/bin/db_deadlock path=usr/bin/$(MACH32)/db_deadlock
-file usr/bin/db_dump path=usr/bin/$(MACH32)/db_dump
-file usr/bin/db_hotbackup path=usr/bin/$(MACH32)/db_hotbackup
-file usr/bin/db_load path=usr/bin/$(MACH32)/db_load
-file usr/bin/db_log_verify path=usr/bin/$(MACH32)/db_log_verify
-file usr/bin/db_printlog path=usr/bin/$(MACH32)/db_printlog
-file usr/bin/db_recover path=usr/bin/$(MACH32)/db_recover
-file usr/bin/db_replicate path=usr/bin/$(MACH32)/db_replicate
-file usr/bin/db_sql_codegen path=usr/bin/$(MACH32)/db_sql_codegen
-file usr/bin/db_stat path=usr/bin/$(MACH32)/db_stat
-file usr/bin/db_upgrade path=usr/bin/$(MACH32)/db_upgrade
-file usr/bin/db_verify path=usr/bin/$(MACH32)/db_verify
-file usr/bin/dbsql path=usr/bin/$(MACH32)/dbsql
-file usr/bin/$(MACH64)/db_archive path=usr/bin/db_archive
-file usr/bin/$(MACH64)/db_checkpoint path=usr/bin/db_checkpoint
-file usr/bin/$(MACH64)/db_deadlock path=usr/bin/db_deadlock
-file usr/bin/$(MACH64)/db_dump path=usr/bin/db_dump
-file usr/bin/$(MACH64)/db_hotbackup path=usr/bin/db_hotbackup
-file usr/bin/$(MACH64)/db_load path=usr/bin/db_load
-file usr/bin/$(MACH64)/db_log_verify path=usr/bin/db_log_verify
-file usr/bin/$(MACH64)/db_printlog path=usr/bin/db_printlog
-file usr/bin/$(MACH64)/db_recover path=usr/bin/db_recover
-file usr/bin/$(MACH64)/db_replicate path=usr/bin/db_replicate
-file usr/bin/$(MACH64)/db_sql_codegen path=usr/bin/db_sql_codegen
-file usr/bin/$(MACH64)/db_stat path=usr/bin/db_stat
-file usr/bin/$(MACH64)/db_upgrade path=usr/bin/db_upgrade
-file usr/bin/$(MACH64)/db_verify path=usr/bin/db_verify
-file usr/bin/$(MACH64)/dbsql path=usr/bin/dbsql
+file path=usr/bin/$(MACH32)/db_archive
+file path=usr/bin/$(MACH32)/db_checkpoint
+file path=usr/bin/$(MACH32)/db_deadlock
+file path=usr/bin/$(MACH32)/db_dump
+file path=usr/bin/$(MACH32)/db_hotbackup
+file path=usr/bin/$(MACH32)/db_load
+file path=usr/bin/$(MACH32)/db_log_verify
+file path=usr/bin/$(MACH32)/db_printlog
+file path=usr/bin/$(MACH32)/db_recover
+file path=usr/bin/$(MACH32)/db_replicate
+file path=usr/bin/$(MACH32)/db_sql_codegen
+file path=usr/bin/$(MACH32)/db_stat
+file path=usr/bin/$(MACH32)/db_upgrade
+file path=usr/bin/$(MACH32)/db_verify
+file path=usr/bin/$(MACH32)/dbsql
+file path=usr/bin/db_archive
+file path=usr/bin/db_checkpoint
+file path=usr/bin/db_deadlock
+file path=usr/bin/db_dump
+file path=usr/bin/db_hotbackup
+file path=usr/bin/db_load
+file path=usr/bin/db_log_verify
+file path=usr/bin/db_printlog
+file path=usr/bin/db_recover
+file path=usr/bin/db_replicate
+file path=usr/bin/db_sql_codegen
+file path=usr/bin/db_stat
+file path=usr/bin/db_upgrade
+file path=usr/bin/db_verify
+file path=usr/bin/dbsql
 file path=usr/include/db.h
 file path=usr/include/db_cxx.h
 file path=usr/include/dbsql.h
--- a/components/bind/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/bind/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,17 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		bind
 COMPONENT_VERSION=	9.6-ESV-R11
 HUMAN_VERSION=		$(COMPONENT_VERSION)-P6
 IPS_COMPONENT_VERSION=	9.6.3.11.6
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_PROJECT_URL=	http://www.isc.org/software/bind/
 
 # hash from: sha256sum $(COMPONENT_ARCHIVE) | sed 's/\(.[^ ]*\).*/sha256:\1/'
@@ -39,9 +40,7 @@
 
 TPNO=			25905
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # Specify "configure" options and features.
 # FYI, The configure options are displayed by 'named -V'.
@@ -53,9 +52,9 @@
 CONFIGURE_OPTIONS +=	--disable-openssl-version-check
 CONFIGURE_OPTIONS +=	--with-pkcs11
 # - Use xml2-config found uder /usr without checking its version.
-CONFIGURE_OPTIONS +=	--with-libxml2=/usr
-CONFIGURE_OPTIONS +=	--enable-threads=yes
-CONFIGURE_OPTIONS +=	--enable-devpoll=yes
+CONFIGURE_OPTIONS +=	--with-libxml2=$(USRDIR)
+CONFIGURE_OPTIONS +=	--enable-threads
+CONFIGURE_OPTIONS +=	--enable-devpoll
 # - Enabled fixed [order] resource-record sets for backward compatibility.
 # - Requires more memory to store the sets so is not the default.
 CONFIGURE_OPTIONS +=	--enable-fixed-rrset
@@ -68,18 +67,14 @@
 CONFIGURE_BINDIR.32 =	$(CONFIGURE_SBINDIR.32)
 CONFIGURE_BINDIR.64 =	$(CONFIGURE_SBINDIR.32)
 CONFIGURE_SBINDIR.64 =	$(CONFIGURE_SBINDIR.32)
-CONFIGURE_OPTIONS +=	--sysconfdir=/etc
-CONFIGURE_OPTIONS +=	--localstatedir=/var
+CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)
+CONFIGURE_OPTIONS +=	--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS +=	--with-randomdev=/dev/random
-CONFIGURE_OPTIONS +=	--with-gssapi=/usr
+CONFIGURE_OPTIONS +=	--with-gssapi=$(USRDIR)
 
 # Compiler and compiler options:
 # - configure will add "-mt" to CC which is already set in CFLAGS, so override.
 CONFIGURE_OPTIONS +=	CC="$(CC)"
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
 
 # Test configuration / helper targets:
 COMPONENT_TEST_MASTER = \
@@ -167,16 +162,6 @@
 # Common Command line targets
 .PHONY: configure build install test system-test
 
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 # Package dependencies
 # Created by 'gmake REQUIRED_PACKAGES', manually verified.
 REQUIRED_PACKAGES += library/libxml2
@@ -186,5 +171,4 @@
 REQUIRED_PACKAGES += service/security/kerberos-5
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/gss
--- a/components/binutils/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/binutils/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,28 +18,27 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER=gcc
-
+# At the moment, we build both 32-bit and 64-bit versions of binutils, but only
+# deliver the 32-bit binaries and libraries.
+BUILD_BITS= 32_and_64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		binutils
 COMPONENT_VERSION=	2.25.1
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/binutils/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:b5b14added7d78a8d1ca70b5cb75fef57ce2197264f4f5835326b0df22ac9f22
 COMPONENT_BUGDB=	utility/gnu-binutils
 
 TPNO=			23923
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(TEST_32)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 PATCH_LEVEL := 0
 
@@ -60,12 +59,8 @@
 CXXFLAGS += -D_REENTRANT $(CPP_LARGEFILES) $(CPP_POSIX)
 CPPFLAGS += -D_REENTRANT $(CPP_LARGEFILES) $(CPP_POSIX)
 
-CONFIGURE_PREFIX =	/usr/gnu
+CONFIGURE_PREFIX =	$(USRDIR)/gnu
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_ENV +=	LDFLAGS="$(LDFLAGS)"
 CONFIGURE_ENV +=	LD_OPTIONS="$(LD_OPTIONS)"
 CONFIGURE_ENV +=	CCLD="$(CC) $(CFLAGS) $(LDFLAGS)"
 CONFIGURE_ENV +=	LIBS="$(LIBS)"
@@ -73,37 +68,15 @@
 
 CONFIGURE_OPTIONS +=	--mandir=$(CONFIGURE_MANDIR)
 CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS +=	--enable-64-bit-bfd=yes
-CONFIGURE_OPTIONS +=    --enable-gold=no
-CONFIGURE_OPTIONS +=    --enable-plugins=yes
-CONFIGURE_OPTIONS +=    --enable-nls=yes
-CONFIGURE_OPTIONS +=    --enable-host-shared=yes
-CONFIGURE_OPTIONS +=    --enable-deterministic-archives=yes
+CONFIGURE_OPTIONS +=    --disable-gold
 CONFIGURE_OPTIONS +=    --disable-libtool-lock
-CONFIGURE_OPTIONS +=    --enable-largefile=yes
-
-
-CONFIGURE_OPTIONS +=	CC="$(CC)"
-CONFIGURE_OPTIONS +=	CXX="$(CXX)"
-CONFIGURE_OPTIONS +=    CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=    CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS +=    CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_OPTIONS +=    LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS +=    LD_OPTIONS="$(LD_OPTIONS)"
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test: $(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
+CONFIGURE_OPTIONS +=	--enable-64-bit-bfd
+CONFIGURE_OPTIONS +=    --enable-deterministic-archives
+CONFIGURE_OPTIONS +=    --enable-host-shared
+CONFIGURE_OPTIONS +=    --enable-largefile
+CONFIGURE_OPTIONS +=    --enable-nls
+CONFIGURE_OPTIONS +=    --enable-plugins
 
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/library/flex-runtime
--- a/components/bison/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/bison/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,27 +22,23 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 # for the tests
-COMPILER=gcc
-
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		bison
 COMPONENT_VERSION=	3.0.4
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/bison/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:a72428c7917bdf9fa93cb8181c971b6e22834125848cf1d03ce10b1bb0716fe1
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/pub/gnu/bison/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/bison
 
 TPNO=			24440
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(TEST_64)
+# we need to first generate the test suite
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 CONFIGURE_LIBDIR.32 =   $(GNULIB)
 CONFIGURE_LIBDIR.64 =   $(GNULIB)/$(MACH64)
@@ -50,8 +46,6 @@
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS  +=		M4="/usr/gnu/bin/m4"
 CONFIGURE_OPTIONS  += 		--disable-silent-rules
 
@@ -63,6 +57,8 @@
 # with, so they are 32-bit otherwise.
 CONFIGURE_OPTIONS  +=		WARN_CXXFLAGS_TEST="$(CFLAGS)"
 
+CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
+
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 
 # the test suite actually generates a script
@@ -103,23 +99,4 @@
     '-e "s|^rm:.*directory renamed.*$$|XXX_CC_XXX|g" ' \
     '-e "/^XXX_CC_XXX$$/d" '
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-$(INSTALL_32):	$(INSTALL_64)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_64)
-
-# we need to first generate the test suite,
-system-test:    build $(SYSTEM_TEST_64)
-
-
 REQUIRED_PACKAGES += developer/macro/gnu-m4
-REQUIRED_PACKAGES += system/library
--- a/components/bison/bison.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/bison/bison.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -37,7 +37,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2007/289 value=PSARC/2015/549
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/bison path=usr/bin/bison
+file path=usr/bin/bison
 link path=usr/sfw/bin/bison target=../../bin/bison
 file path=usr/share/aclocal/bison-i18n.m4
 file path=usr/share/bison/README
--- a/components/bzip2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/bzip2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		bzip2
 COMPONENT_VERSION=	1.0.6
 COMPONENT_PROJECT_URL=	http://www.bzip.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
@@ -37,13 +35,10 @@
 
 TPNO=			5547
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
-
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
+BUILD_STYLE= justmake
+# build does this always
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
 LINT_FLAGS +=	-I.
 
@@ -55,7 +50,7 @@
 COMPONENT_BUILD_ARGS += CFLAGS="$(CFLAGS)"
 COMPONENT_INSTALL_ARGS += PREFIX=$(PROTOUSRDIR)
 
-COMPONENT_PRE_BUILD_ACTION= \
+COMPONENT_PRE_BUILD_ACTION += \
 	(cd $(@D) ; \
 	    cp ../../oldapi.c . )
 
@@ -73,23 +68,14 @@
     '-e "/^XXX_CC_XXX$$/d" '
 
 # common targets
-build:		$(BUILD_32_and_64)
-
-# override the 64 bit install and have it make a directory for the lint lib
-COMPONENT_POST_INSTALL_ACTION = $(MKDIR) $(PROTOUSRLIBDIR64)
+COMPONENT_POST_INSTALL_ACTION.32 += \
+	($(INSTALL) $(BUILD_DIR_32)/libbz2.so.1 $(PROTOUSRLIBDIR); \
+	cd $(PROTOUSRLIBDIR); rm -f libbz2.so; ln -s libbz2.so.1 libbz2.so);
 
-install:	build $(INSTALL_32_and_64)
-	$(INSTALL) $(BUILD_DIR_32)/libbz2.so.1 $(PROTOUSRLIBDIR)
-	cd $(PROTOUSRLIBDIR); rm -f libbz2.so; ln -s libbz2.so.1 libbz2.so
-	$(INSTALL) $(BUILD_DIR_64)/libbz2.so.1 $(PROTOUSRLIBDIR64)
-	cd $(PROTOUSRLIBDIR64); rm -f libbz2.so; ln -s libbz2.so.1 libbz2.so
-	$(INSTALL) $(BUILD_DIR_64)/llib-lbz2.ln $(PROTOUSRLIBDIR64)
+COMPONENT_PRE_INSTALL_ACTION.64 += $(MKDIR) $(PROTOUSRLIBDIR64);
 
-# build does this always
-test:		$(TEST_32_and_64)
-
-system-test:	$(SYSTEM_TEST_32_and_64)
-
+COMPONENT_POST_INSTALL_ACTION.64 += \
+	($(INSTALL) $(BUILD_DIR_64)/libbz2.so.1 $(PROTOUSRLIBDIR64); \
+	cd $(PROTOUSRLIBDIR64); rm -f libbz2.so; ln -s libbz2.so.1 libbz2.so;);
 
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/bzip2/bzip2.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/bzip2/bzip2.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -38,15 +38,15 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/1999/555
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file build/$(MACH64)/bzip2 path=usr/bin/bunzip2
-file build/$(MACH64)/bzip2 path=usr/bin/bzcat
+hardlink path=usr/bin/bunzip2 target=./bzip2
+hardlink path=usr/bin/bzcat target=./bzip2
 link path=usr/bin/bzcmp target=./bzdiff
 file path=usr/bin/bzdiff
 link path=usr/bin/bzegrep target=./bzgrep
 link path=usr/bin/bzfgrep target=./bzgrep
 file path=usr/bin/bzgrep
-file build/$(MACH64)/bzip2 path=usr/bin/bzip2
-file build/$(MACH64)/bzip2recover path=usr/bin/bzip2recover
+file path=usr/bin/bzip2
+file path=usr/bin/bzip2recover
 link path=usr/bin/bzless target=./bzmore
 file path=usr/bin/bzmore
 file path=usr/include/bzlib.h
--- a/components/cdrtools/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/cdrtools/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,34 +18,36 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         cdrtools
 COMPONENT_VERSION=      3.01
 # Zero not allowed in front of number
 IPS_COMPONENT_VERSION=  3.1
+HUMAN_VERSION=          $(COMPONENT_VERSION)
 COMPONENT_SUBVERSION=   a22
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL= 	http://cdrecord.berlios.de/private/cdrecord.html 
 COMPONENT_ARCHIVE=      $(COMPONENT_SRC)$(COMPONENT_SUBVERSION).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:facd40dc66f1499dfe936e647b694bee7a12cd63afd901a35bec855d9e3600a5
 COMPONENT_ARCHIVE_URL=  ftp://ftp.berlios.de/pub/cdrecord/alpha/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/cdrtools
 
 TPNO=			6305
 
-PATH=			$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:/usr/bin
+PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:$(USRBINDIR)
+else
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 endif
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_INSTALL_ARGS +=  GMAKE_NOWARN=true
 COMPONENT_INSTALL_ARGS +=  CCOM=cc64
@@ -58,17 +60,4 @@
 # cdrtools doesn't work with gmake for sparc 64-bit compile.
 GMAKE = $(CCSMAKE)
 
-# Enable ASLR for this component
-ASLR_MODE =    $(ASLR_ENABLE)
-
-build:          $(BUILD_64)
-
-install:        $(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/cdrtools/cdrtools.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/cdrtools/cdrtools.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -25,6 +25,7 @@
 set name=pkg.fmri \
     value=pkg:/media/cdrtools@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="CD/DVD/BluRay command line recording software"
+set name=pkg.human-version value=$(HUMAN_VERSION)
 set name=com.oracle.info.description \
     value="the cdrtools CD/DVD/BluRay recording software"
 set name=com.oracle.info.tpno value=$(TPNO)
--- a/components/check/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/check/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,32 +20,26 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		check
 COMPONENT_VERSION=	0.9.14
 COMPONENT_PROJECT_URL=	http://check.sourceforge.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:c272624645b1b738cf57fd5d81a3e4d9b722b99d6133ee3f3c4007d4d279840a
 COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/project/$(COMPONENT_NAME)/$(COMPONENT_NAME)/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/check
 
 TPNO=			19836
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
 # Several tests fail when the Studio compiler is used.
 COMPILER =      gcc
 
-CC +=		$(CC_BITS)
-
 # Override tests in m4/acx_pthread.m4 that try to set obsolete/incompatible
 # flags for linking threaded code on Solaris.
 PTHREAD_CFLAGS = -D__EXTENSIONS__
@@ -73,20 +67,9 @@
 	'-e "/PASS/p" ' \
         '-e "/FAIL/p" '
 
-COMPONENT_SYSTEM_TEST_ENV =	CHECKMK_SCRIPT=/usr/bin/checkmk
+COMPONENT_SYSTEM_TEST_ENV =	CHECKMK_SCRIPT=$(USRBINDIR)/checkmk
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    configure $(SYSTEM_TEST_32_and_64)
-
-REQUIRED_PACKAGES +=	system/library
 REQUIRED_PACKAGES +=	system/library/math
 REQUIRED_PACKAGES +=	text/gawk
--- a/components/check/check.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/check/check.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -34,7 +34,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2014/373
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/checkmk path=usr/bin/checkmk
+file path=usr/bin/checkmk
 file path=usr/include/check.h
 file path=usr/include/check_stdint.h
 link path=usr/lib/$(MACH64)/libcheck.so target=libcheck.so.0.0.0
--- a/components/cloog/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/cloog/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,18 +18,17 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER=gcc
-
+BUILD_BITS= 64_and_32
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		cloog
 COMPONENT_VERSION=	0.18.3
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.cloog.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:460c6c740acb8cdfbfbb387156b627cf731b3837605f2ec0001d079d89c69734
 COMPONENT_ARCHIVE_URL=	http://www.bastoul.net/cloog/pages/download/$(COMPONENT_ARCHIVE)
@@ -37,13 +36,11 @@
 
 TPNO=			23800
 
-include ../../make-rules/prep.mk
-include ../../make-rules/configure.mk
-include ../../make-rules/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL := 0
 PKG_PROTO_DIRS += $(COMPONENT_DIR)/Solaris
-PATH="/usr/gnu/bin:/usr/perl5/bin:/usr/bin:/usr/sbin"
+PATH="$(GNUBIN):$(USRDIR)/perl5/bin:$(USRBINDIR):$(USRSBINDIR)"
 
 # Don't use SSE3 or SSSE3 on Intel, because it's not completely portable.
 # Do not tell GCC to assume strictly correct pointer aliasing. CLooG
@@ -79,10 +76,6 @@
 CPPFLAGS += `pkg-config --cflags libmpfr`
 CPPFLAGS += `pkg-config --cflags isl`
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_ENV +=	LDFLAGS="$(LDFLAGS)"
 CONFIGURE_ENV +=	LD_OPTIONS="$(LD_OPTIONS)"
 CONFIGURE_ENV +=	CCLD="$(CC) $(CFLAGS) $(LDFLAGS)"
 CONFIGURE_ENV +=	LIBS="$(LIBS)"
@@ -90,7 +83,7 @@
 
 COMPONENT_BUILD_ENV += LD_OPTIONS="$(LD_OPTIONS)"
 
-CONFIGURE_OPTIONS  +=		--localstatedir=/var
+CONFIGURE_OPTIONS  +=		--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--enable-shared
 CONFIGURE_OPTIONS  +=		--disable-silent-rules
@@ -119,8 +112,6 @@
 COMPONENT_TEST_ENV +=	$(TEST_PATH)
 COMPONENT_TEST_ENV +=	$(TARGET_ENV)
 
-ASLR_MDOE=$(ASLR_NOT_APPLICABLE)
-
 COMPONENT_TEST_MASTER = \
         $(COMPONENT_TEST_RESULTS_DIR)/results-cloog.master
 
@@ -153,16 +144,6 @@
      '-e "s/copied $$/copied/g"'  \
      '-e "s/copied [0-9]\{1,\}\./copied/g"'
 
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(TEST_32_and_64)
-
-system-test:	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/gmp
 REQUIRED_PACKAGES += library/mpfr
 REQUIRED_PACKAGES += library/isl
-REQUIRED_PACKAGES += system/library
-
--- a/components/cloog/cloog.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/cloog/cloog.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -38,7 +38,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2015/405
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/cloog path=usr/bin/cloog
+file path=usr/bin/cloog
 file path=usr/include/cloog/block.h
 file path=usr/include/cloog/clast.h
 file path=usr/include/cloog/cloog.h
--- a/components/cmake/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/cmake/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -17,57 +17,49 @@
 # information: Portions Copyright [yyyy] [name of copyright owner]
 #
 # CDDL HEADER END
+#
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
+# Currently only builds with gcc
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		cmake
 COMPONENT_VERSION=	3.3.2
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:e75a178d6ebf182b048ebfe6e0657c49f0dc109779170bad7ffcb17463f2fc22
 COMPONENT_ARCHIVE_URL=	http://www.cmake.org/files/v3.3/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL=  http://www.cmake.org/
-COMPONENT_BUGDB=	utility/cmake
 
 TPNO=			25030
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# configure in cmake does not accept many of the options set in
+# configure.mk (CC=, CXX=, --bindir, --libdir, --sbindir).
+CONFIGURE_DEFAULT_DIRS= no
+
+# expected failure for test: CTestTestUpload
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 # Remove undesriable /opt/csw lines from the Modules/*.cmake files.
 COMPONENT_PREP_ACTION += \
 	cd $(COMPONENT_SRC)/Modules; $(GNU_GREP) -l '/opt/csw' *.cmake | /usr/bin/xargs -I \{\} $(GSED) -i -e '/^[ ]*\/opt\/csw/d' \{\}
-# Currently only builds with gcc, and since it's C++, we'll just force it to
-# build as C++11 for ABI compatibility.
-COMPILER=gcc
+# Since it's C++, force it to build as C++11 for ABI compatibility.
 CXXFLAGS += -std=c++11
 
 # Need to remove this option from LD_OPTIONS (only affects sparc build);
 # it causes a SegFault failure in kwsys/testSystemInformation
 # when testing on sparc
-LD_MAP_NOEXBSS=
+LD_MAP_NOEXBSS.sparc=
 
 LDFLAGS +=	$($(COMPILER)_NORUNPATH)
 
 # We need these in the environment, although they are already passed
 # as CONFIGURE_OPTIONS; otherwise the correct compilers are not used
-CONFIGURE_ENV +=	LDFLAGS="$(LDFLAGS)"	
 CONFIGURE_ENV +=	MAKE="$(GMAKE)"	
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	CXXFLAGS="$(CXXFLAGS)"
-
-# configure in cmake does not accept many of the options set in
-# configure.mk (CC=, CXX=, --bindir, --libdir, --sbindir). Clear those
-# out and just include the default options it does accept.
-CONFIGURE_OPTIONS =
-CONFIGURE_OPTIONS +=	--prefix=$(CONFIGURE_PREFIX)
-CONFIGURE_OPTIONS +=	--mandir=$(CONFIGURE_MANDIR)
 
 # Use system-installed third-party libraries, rather than the private
 # copies in the cmake source.
@@ -85,8 +77,6 @@
 COMPONENT_BUILD_ENV +=	CXXFLAGS="$(CXXFLAGS)"
 COMPONENT_BUILD_TARGETS =	all
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # Need C and C++ compiler locations for cmake tests
 COMPONENT_TEST_ENV += CC="$(CC)"
 COMPONENT_TEST_ENV += CXX="$(CXX)"
@@ -108,35 +98,20 @@
 COMPONENT_PRE_SYSTEM_TEST_ACTION += \
 	$(MV) $(BUILD_DIR_64)/bin $(BUILD_DIR_64)/bin-save; \
 	$(MKDIR) $(BUILD_DIR_64)/bin; cd $(BUILD_DIR_64)/bin; \
-	$(LN) -s /usr/bin/cmake; $(LN) -s /usr/bin/ctest; \
-	$(LN) -s /usr/bin/ccmake; $(LN) -s /usr/bin/cpack
+	$(LN) -s $(USRBINDIR)/cmake; $(LN) -s /usr/bin/ctest; \
+	$(LN) -s $(USRBINDIR)/ccmake; $(LN) -s /usr/bin/cpack
 
 # Restore the built binaries after system-test is done
 COMPONENT_POST_SYSTEM_TEST_ACTION += \
 	$(RM) -r $(BUILD_DIR_64)/bin; \
 	$(MV) $(BUILD_DIR_64)/bin-save $(BUILD_DIR_64)/bin
 
-
-# common targets
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-# expected failure: CTestTestUpload
-test:		$(TEST_64)
-
-system-test:    $(BUILD_64) $(SYSTEM_TEST_64)
-
 REQUIRED_PACKAGES += compress/bzip2
 REQUIRED_PACKAGES += compress/xz
 REQUIRED_PACKAGES += library/expat
 REQUIRED_PACKAGES += library/libarchive
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/common/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/common/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -29,6 +29,8 @@
 COMPONENT_NAME=		gnu-common
 COMPONENT_VERSION=	0.5.11
 COMPONENT_BUGDB=	gate-stuff/userland
+COMPONENT_SRC=
+COMPONENT_ARCHIVE=
 
 include $(WS_MAKE_RULES)/prep.mk
 
--- a/components/conflict/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/conflict/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,31 +22,29 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-BITS=64
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		conflict
 COMPONENT_VERSION=	20150705
 IPS_COMPONENT_VERSION=	0.2015.7.5
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_PROJECT_URL=	http://invisible-island.net/conflict/conflict.html
 COMPONENT_ARCHIVE_HASH=	\
     sha256:30e14808768a938df139a1b76f8f7397e1b3bf46a18ceabcc8b1b1a70d5ea8a9
 COMPONENT_ARCHIVE_URL=	ftp://invisible-island.net/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/conflict
 
 TPNO=			27130
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# We really do need to build conflict so that it can use the files in the
+# build directory. We are using the installed conflict binary to do this
+# though when we run the system tests.
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 # Required to configure correctly.
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
 
 COMPONENT_TEST_DIR =	$(BUILD_DIR_64)
 COMPONENT_TEST_CMD =	./run_test.sh
@@ -64,21 +62,3 @@
 COMPONENT_SYSTEM_TEST_ENV =	CONFLICT_BIN=/usr/bin/conflict
 COMPONENT_SYSTEM_TEST_CMD =	./run_test.sh
 COMPONENT_SYSTEM_TEST_TARGETS =
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-# We really do need to build conflict so that it can use the files in the
-# build directory. We are using the installed conflict binary to do this
-# though when we run the system tests.
-system-test:    build $(SYSTEM_TEST_64)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/convmv/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/convmv/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,24 +22,20 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		convmv
 COMPONENT_VERSION=	2.0
 COMPONENT_PROJECT_URL=	http://www.j3e.de/linux/convmv/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:170cf675be1fca77868ff472e9340ca828b1463865a63d4f4b7b3bf4053db93f
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/convmv
 
 TPNO=			27095
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL=0
 
@@ -49,7 +45,7 @@
 
 COMPONENT_TEST_TARGETS=		test
 COMPONENT_SYSTEM_TEST_TARGETS=	test
-COMPONENT_SYSTEM_TEST_ENV=	CONVMV=/usr/bin/convmv
+COMPONENT_SYSTEM_TEST_ENV=	CONVMV=$(USRBINDIR)/convmv
 
 # Adjust the '#!/usr/bin/perl' at the beginning of the convmv script to use
 # '#!/usr/perl5/$(PERL_VERSION)/bin/perl'
@@ -59,12 +55,6 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
 system-test:    $(SYSTEM_TEST_64)
 
 REQUIRED_PACKAGES += $(PERL_PKG)
--- a/components/coreutils/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/coreutils/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,37 +18,34 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		coreutils
 COMPONENT_VERSION=	8.25
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/coreutils/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:31e67c057a5b32a582f26408c789e11c2e8d676593324849dcf5779296cdce87
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/coreutils/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gnu-coreutils
 
 TPNO=			27001
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= install $(TEST_64)
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # We need the GNU grep command to configure/build.
-PATH=/usr/gnu/bin:/usr/bin
+PATH=$(GNUBIN):$(USRBINDIR)
 
 PATCH_LEVEL=		0
 
-CONFIGURE_PREFIX	 =	/usr/gnu
-CONFIGURE_OPTIONS	+=	--bindir=/usr/gnu/bin
-CONFIGURE_OPTIONS	+=	--libdir=/usr/lib
+CPPFLAGS += -I$(USRINCDIR)/gmp
+CONFIGURE_PREFIX	 =	$(USRGNUDIR)
 CONFIGURE_OPTIONS	+=	--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS	+=	CPPFLAGS=-I/usr/include/gmp
-CONFIGURE_OPTIONS	+=	CFLAGS="$(CFLAGS)"
 
 # Recreate configure and Makefile to pick up changes in .../src/local.mk
 COMPONENT_PREP_ACTION = (cd $(@D) ; autoreconf -f && automake)
@@ -59,14 +56,6 @@
 # Always show the build and link lines for easier debugging.
 COMPONENT_BUILD_ARGS +=		V=1
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
 # Needed for "gmake test" to work successfully.
 # If SHELLOPTS is exported (as it is by the userland makefiles),
 # then all shell options get exported to child invocations of bash,
@@ -99,9 +88,4 @@
 COMPONENT_SYSTEM_TEST_ENV +=	PATH=/usr/gnu/bin:/usr/bin
 COMPONENT_SYSTEM_TEST_DIR =	$(@D)/tests
 
-test:		install $(TEST_64)
-
-system-test:    configure $(SYSTEM_TEST_64)
-
 REQUIRED_PACKAGES += library/gmp
-REQUIRED_PACKAGES += system/library
--- a/components/cppunit/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/cppunit/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,48 +18,33 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-COMPILER=gcc
-
+COMPILER= gcc
+# Prefer 32-bit as only "binary" delivered is a script with embedded paths.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		cppunit
 COMPONENT_VERSION=	1.13.2
 COMPONENT_PROJECT_URL=	http://freedesktop.org/wiki/Software/cppunit/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:3f47d246e3346f2ba4d7c9e882db3ad9ebd3fcbd2e8b732f946e0e3eeb9f429f
 COMPONENT_ARCHIVE_URL=	http://dev-www.libreoffice.org/src/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/cppunit
 
 TPNO=			20676
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 
-export PATH=$(GCC_ROOT)/bin:/usr/gnu/bin:/usr/bin
+export PATH=$(GCC_ROOT)/bin:$(GNUBIN):$(USRBINDIR)
 
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=	CXXFLAGS="$(CXXFLAGS)"
 CONFIGURE_OPTIONS  +=	--disable-static
 
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
--- a/components/cups/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/cups/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,44 +20,45 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		cups
 COMPONENT_VERSION=	1.4.5
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.cups.org/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC)-source.tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:0450d6d8e6e8af225d2a3319c848737d76473a6c7579cf97c52086d0371c0efe
 COMPONENT_ARCHIVE_URL=	http://ftp.easysw.com/pub/cups/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/cups
 
 TPNO=			17705
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CXX +=	$(studio_NORUNPATH)
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # don't use LD_Z_IGNORE: causes linker problems
 LD_Z_IGNORE=
 
 # 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=
+# libraries in a single build; avoid confusing it by stripping $(CC_BITS) from
+# all related flag variables.
+CONFIGURE_CPPFLAGS.stripped := $(patsubst -m32,,$(CONFIGURE_CPPFLAGS))
+CONFIGURE_CPPFLAGS= $(CONFIGURE_CPPFLAGS.stripped)
+CFLAGS.stripped := $(patsubst -m32,,$(CFLAGS))
+CFLAGS= $(CFLAGS.stripped)
+CXXFLAGS.stripped := $(patsubst -m32,,$(CXXFLAGS))
+CXXFLAGS= $(CXXFLAGS.stripped)
 
 CONFIGURE_OPTIONS +=	--localedir=$(USRSHARELOCALEDIR)
 CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)
-CONFIGURE_OPTIONS +=	--localstatedir=/var
+CONFIGURE_OPTIONS +=	--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS +=	--with-fontpath=/usr/openwin/lib
-CONFIGURE_OPTIONS +=	--with-logdir=/var/log/cups
-CONFIGURE_OPTIONS +=	--with-domainsocket=/var/run/cups-socket
-CONFIGURE_OPTIONS +=	--with-smfmanifestdir=/lib/svc/manifest/application
-CONFIGURE_OPTIONS +=	--with-printcap=/etc/printers.conf
+CONFIGURE_OPTIONS +=	--with-logdir=$(VARDIR)/log/cups
+CONFIGURE_OPTIONS +=	--with-domainsocket=$(VARDIR)/run/cups-socket
+CONFIGURE_OPTIONS +=	--with-smfmanifestdir=$(LIBDIR)/svc/manifest/application
+CONFIGURE_OPTIONS +=	--with-printcap=$(ETCDIR)/printers.conf
 CONFIGURE_OPTIONS +=	--with-cups-user=lp
 CONFIGURE_OPTIONS +=	--with-cups-group=lp
 CONFIGURE_OPTIONS +=	--disable-static
@@ -90,18 +91,6 @@
 	$(TOUCH) $(PROTOETCDIR)/cups/command.types ; \
 	$(MV) $(PROTOUSRLIBDIR)/64 $(PROTOUSRLIBDIR)/$(MACH64)
 
-# common targets
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += driver/parallel/ecpp
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += image/library/libpng
@@ -114,7 +103,6 @@
 REQUIRED_PACKAGES += service/security/kerberos-5
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/libdbus
 REQUIRED_PACKAGES += system/library/math
--- a/components/curl/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/curl/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME =        curl
 COMPONENT_VERSION=      7.45.0
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  http://curl.haxx.se/
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:02c78c8060d587422e2826f622c729189b56084bba365140f13af3d402b6cb6b
 COMPONENT_ARCHIVE_URL=  $(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
@@ -34,24 +35,16 @@
 
 TPNO=			25724
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 
-GSSAPI_LIBDIR_32 = /usr/lib
-GSSAPI_LIBDIR_64 = /usr/lib/$(MACH64)
-
 CFLAGS += $(CPP_LARGEFILES)
 CFLAGS += `pkg-config --cflags libidn`
 CPPFLAGS += `pkg-config --cflags libidn`
+CPPFLAGS += "-I/usr/include/openldap"
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS) -I/usr/include/openldap"
-
-CONFIGURE_OPTIONS += --localstatedir=/var --enable-shared --disable-static
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR) --enable-shared --disable-static
 CONFIGURE_OPTIONS += --enable-http --enable-ftp
 CONFIGURE_OPTIONS += --enable-file --enable-dict
 CONFIGURE_OPTIONS += --enable-manual --disable-libgcc
@@ -66,11 +59,11 @@
 CONFIGURE_OPTIONS += --enable-ldap --with-random=/dev/urandom
 CONFIGURE_OPTIONS += --with-ssl --with-ldap-lib=ldap_r-2.4
 CONFIGURE_OPTIONS += --with-lber-lib=lber-2.4
-CONFIGURE_OPTIONS += --with-gssapi-includes=/usr/include/gssapi
-CONFIGURE_OPTIONS += --with-gssapi-libs=$(GSSAPI_LIBDIR_$(BITS))
-CONFIGURE_OPTIONS += --with-gssapi=/usr --without-ca-bundle
-CONFIGURE_OPTIONS += --with-ca-path=/etc/openssl/certs
-CONFIGURE_OPTIONS += --with-zlib=/usr --with-libidn=/usr
+CONFIGURE_OPTIONS += --with-gssapi-includes=$(USRINCDIR)/gssapi
+CONFIGURE_OPTIONS += --with-gssapi-libs=$(USRLIB)
+CONFIGURE_OPTIONS += --with-gssapi=$(USRDIR) --without-ca-bundle
+CONFIGURE_OPTIONS += --with-ca-path=$(ETCDIR)/openssl/certs
+CONFIGURE_OPTIONS += --with-zlib=$(USRDIR) --with-libidn=$(USRDIR)
 CONFIGURE_OPTIONS += --with-pic
 CONFIGURE_OPTIONS += --with-libssh2
 CONFIGURE_OPTIONS += --without-nghttp2
@@ -104,22 +97,10 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += library/libidn
 REQUIRED_PACKAGES += library/libssh2
 REQUIRED_PACKAGES += library/openldap
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/gss
--- a/components/curl/curl.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/curl/curl.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
 <transform file path=usr/share/doc/curl/html/(.+)$ -> \
@@ -39,10 +41,10 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2007/165 value=PSARC/2012/252 \
     value=PSARC/2013/303 value=PSARC/2014/332
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file path=usr/bin/$(MACH64)/curl
-file path=usr/bin/$(MACH64)/curl-config
-file usr/bin/$(MACH64)/curl path=usr/bin/curl
-file path=usr/bin/curl-config
+# curl-config contains embedded paths, so swap these around.
+file usr/bin/curl-config path=usr/bin/$(MACH64)/curl-config
+file path=usr/bin/curl
+file usr/bin/$(MACH32)/curl-config path=usr/bin/curl-config
 file path=usr/include/curl/curl.h
 file path=usr/include/curl/curlbuild.h
 file path=usr/include/curl/curlrules.h
--- a/components/cvs/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/cvs/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,33 +18,28 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		cvs
 COMPONENT_VERSION=	1.12.13
 COMPONENT_PROJECT_URL=	http://www.nongnu.org/cvs/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:78853613b9a6873a30e1cc2417f738c330e75f887afdaf7b3d0800cb19ca515e
 COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/non-gnu/cvs/source/feature/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/cvs
 
 TPNO=			6323
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 CFLAGS += -D__ATTRIBUTE_DISABLED
 CONFIGURE_OPTIONS  +=	--with-external-zlib
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
 
 # need gnu grep
 COMPONENT_TEST_ENV += PATH=$(GNUBIN):$(PATH)
@@ -55,7 +50,7 @@
 COMPONENT_SYSTEM_TEST_DIR = $(SOURCE_DIR)/src
 COMPONENT_SYSTEM_TEST_ENV += PATH=$(GNUBIN):$(PATH)
 COMPONENT_SYSTEM_TEST_CMD = ./sanity.sh
-COMPONENT_SYSTEM_TEST_ARGS = /usr/bin/cvs
+COMPONENT_SYSTEM_TEST_ARGS = $(USRBINDIR)/cvs
 COMPONENT_SYSTEM_TEST_TARGETS =
 
 # extract just the final results
@@ -66,16 +61,4 @@
 	'-e "/^[mM]ake/d" ' \
 	'-e "/^cp.*/d" '
 
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:	$(SYSTEM_TEST_64)
-
-
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
--- a/components/cvs/cvs.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/cvs/cvs.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability committed>
@@ -33,7 +35,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/128
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/cvs path=usr/bin/cvs
+file path=usr/bin/cvs
 file path=usr/share/man/man1/cvs.1
 file path=usr/share/man/man5/cvs.5
 license cvs.license license=GPLv2
--- a/components/cyrus-sasl/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/cyrus-sasl/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,26 +22,22 @@
 #
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
-PATH=/usr/gnu/bin:$(SPRO_VROOT)/bin:/usr/bin
-
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-PATH=$(PARFAIT_TOOLS):/usr/gnu/bin:$(SPRO_VROOT)/bin:/usr/bin
+PATH=$(PARFAIT_TOOLS):$(GNUBIN):$(SPRO_VROOT)/bin:$(USRBINDIR)
+else
+PATH=$(GNUBIN):$(SPRO_VROOT)/bin:$(USRBINDIR)
 endif
 
 COMPONENT_NAME=		cyrus-sasl
-
-
 #
 # If you update the COMPONENT_VERSION, you should make a corresponding change
 # in the dependency at the bottom of the openldap/openldap.p5m file.
 #
 COMPONENT_VERSION=	2.1.26
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL= ftp://ftp.cyrusimap.org/cyrus-sasl
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_PROJECT_URL=	ftp://ftp.cyrusimap.org/cyrus-sasl
 COMPONENT_ARCHIVE_HASH=	\
     sha256:8fbc5136512b59bb793657f36fadda6359cae3b08f01fd16b3d406f1345b7bc3
 COMPONENT_ARCHIVE_URL= $(COMPONENT_PROJECT_URL)/$(COMPONENT_ARCHIVE)
@@ -53,43 +49,39 @@
 
 TPNO=			21351
 
-CC += $(CC_BITS)
-
 SASL2.32 = $(USRLIBDIR)/sasl2
 SASL2.64 = $(USRLIBDIR)/sasl2/$(MACH64)
-SASL_CONFDIR = /etc/sasl
+SASL_CONFDIR = $(ETCDIR)/sasl
 PROTO_CONFDIR = $(PROTO_DIR)$(SASL_CONFDIR)
 
-include $(WS_TOP)/make-rules/prep.mk
-CONFIGURE_DEFAULT_DIRS=no
-include $(WS_TOP)/make-rules/configure.mk
-
 # Migrated from ON in S12, including stuff from system/header, so this
 # cannot be installed on an S11 box.
 ifeq ($(BUILD_TYPE), evaluation)
 PUBLISH_STAMP=
 endif
 
-include $(WS_TOP)/make-rules/ips.mk
-include $(WS_TOP)/make-rules/lint-libraries.mk
+INSTALL_TARGET=
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_ENV +=  "CPPFLAGS=$(CPPFLAGS) -I/usr/include/openldap"
-CONFIGURE_OPTIONS += --with-cflags="$(CFLAGS)"
-CONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS) -lbsm -lscf -lresolv"
-CONFIGURE_OPTIONS += --libdir=$(CONFIGURE_LIBDIR.$(BITS))
+# This causes the default compilation argument to be wrong and isn't necessary.
+studio_MT=
+
+CPPFLAGS += -I$(USRINCDIR)/openldap
+LDFLAGS += -lbsm -lscf -lresolv $(CC_BITS)
 CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)
-CONFIGURE_OPTIONS += --enable-auth-sasldb=yes
+CONFIGURE_OPTIONS += --enable-auth-sasldb
 CONFIGURE_OPTIONS += --with-dblib=berkeley
 CONFIGURE_OPTIONS += --with-saslauthd=$(USRSBINDIR)/saslauthd
 CONFIGURE_OPTIONS += --with-gss_impl=seam
-CONFIGURE_OPTIONS += --with-gnu-ld=no
+CONFIGURE_OPTIONS += --without-gnu-ld
 CONFIGURE_OPTIONS.32 += --with-plugindir=$(SASL2.32)
 CONFIGURE_OPTIONS.64 += --with-plugindir=$(SASL2.64)
 CONFIGURE_OPTIONS.32 += --with-sasldir=$(SASL2.32)
 CONFIGURE_OPTIONS.64 += --with-sasldir=$(SASL2.64)
 CONFIGURE_OPTIONS += --with-ipctype=doors
 CONFIGURE_OPTIONS += --with-ldap=$(USRDIR)
-CONFIGURE_OPTIONS += --enable-sample=yes
+CONFIGURE_OPTIONS += --enable-sample
 CONFIGURE_OPTIONS += --with-configdir=$(ETCDIR)/sasl
 
 PKG_PROTO_DIRS += $(SOURCE_DIR)/doc $(COMPONENT_DIR)/Solaris
@@ -120,7 +112,7 @@
 COMPONENT_PREP_ACTION = ( cd $(@D) &&  \
 		( cd config && ln -s $(CFG_COMPILE)/compile . ) ; \
 		( cd saslauthd/config && ln -s $(CFG_COMPILE)/compile . ); \
-		$(AUTORECONF) -d -m --force -v \
+		$(AUTORECONF) -m --force -v \
 		-I $(COMPONENT_DIR)/m4   \
 		-I $(SOURCE_DIR)/cmulocal \
 		-I $(SOURCE_DIR)/config ; \
@@ -140,23 +132,17 @@
 INSTALL_32 +=	$(PROTOUSRLIBDIR)/libsasl.so.1
 INSTALL_64 +=	$(PROTOUSRLIBDIR64)/libsasl.so.1
 
-
 # common targets
-build:		$(BUILD_32_and_64)
-configure:      $(BUILD_DIR_32)/.configured $(BUILD_DIR_64)/.configured
 install:	build $(INSTALL_32_and_64)
-publish:	install
-test:		$(NO_TESTS)
-system-test:	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
 
 $(BUILD_32):  	COMPONENT_POST_BUILD_ACTION = \
     $(LD) -F libsasl2.so.3 -o $(BUILD_DIR)/$(MACH32)/lib/.libs/libsasl.so.1 \
-    -G -hlibsasl.so.1 -Bdirect -z defs -M$(COMPONENT_DIR)/mapfile 
+    -G -hlibsasl.so.1 $(LD_B_DIRECT) $(LD_Z_DEFS) -M$(COMPONENT_DIR)/mapfile 
 
 $(BUILD_64):	COMPONENT_POST_BUILD_ACTION = \
      $(LD) -F libsasl2.so.3 -64 -G \
     -o $(BUILD_DIR)/$(MACH64)/lib/.libs/libsasl.so.1 \
-    -hlibsasl.so.1 -Bdirect -Wl,-zdefs -Wl,-M$(COMPONENT_DIR)/mapfile
+    -hlibsasl.so.1 $(LD_B_DIRECT) -Wl,$(LD_Z_DEFS) -Wl,-M$(COMPONENT_DIR)/mapfile
 
 $(PROTOUSRLIBDIR)/libsasl.so.1:	$(BUILD_DIR)/$(MACH32)/lib/.libs/libsasl.so.1	
 	$(CP) $< $@
@@ -165,11 +151,9 @@
 	$(CP) $< $@
 
 ASLR_MODE = $(ASLR_ENABLE)
-BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
 
 REQUIRED_PACKAGES += database/berkeleydb-5
 REQUIRED_PACKAGES += developer/build/automake-115
 REQUIRED_PACKAGES += library/openldap
 REQUIRED_PACKAGES += library/security/openssl
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/gss
--- a/components/daq/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/daq/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,17 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+# Prefer 32-bit as only "binary" delivered is a script with embedded paths.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		daq
 COMPONENT_VERSION=	2.0.2
 COMPONENT_PROJECT_URL=	http://www.snort.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:d65d1e67c4994e02c3142c49a648642e780b7e3d942b4a51f605309beac269a8
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/snort/files/snort/$(COMPONENT_ARCHIVE)/download
@@ -34,38 +36,18 @@
 
 TPNO=			19384
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Solaris should really define these. See CR #15431883 and 15537286.
 CFLAGS +=	-Du_int8_t=uint8_t
 CFLAGS +=	-Du_int16_t=uint16_t
 CFLAGS +=	-Du_int32_t=uint32_t
 
-# Set -m32 or -m64 correctly for 32 and 64 bit versions.
-CC +=		$(CC_BITS)
-
 CONFIGURE_OPTIONS +=	--disable-ipfw-module
 CONFIGURE_OPTIONS +=    --enable-static=no
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 
 REQUIRED_PACKAGES += developer/lexer/flex
 REQUIRED_PACKAGES += developer/parser/bison
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/libpcap
--- a/components/dejagnu/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/dejagnu/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,26 +20,20 @@
 #
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		dejagnu
 COMPONENT_VERSION=	1.5.3
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/dejagnu/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:099b8e364ca1d6248f8e1d32168c4b12677abff4253bbbb4a8ac8cdd321e3f19
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/dejagnu
 
 TPNO=			22219
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 COMPONENT_TEST_ENV +=	PATH="$(GNUBIN):$(PATH)"
 
@@ -53,16 +47,5 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    configure $(SYSTEM_TEST_64)
-
 REQUIRED_PACKAGES += shell/expect
 REQUIRED_PACKAGES += shell/ksh93
-
--- a/components/dejagnu/dejagnu.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/dejagnu/dejagnu.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
@@ -32,7 +34,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2013/018
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/runtest path=usr/bin/runtest
+file path=usr/bin/runtest
 file path=usr/include/dejagnu.h
 file path=usr/share/dejagnu/baseboards/README
 file path=usr/share/dejagnu/baseboards/am33_2.0-libremote.exp
--- a/components/desktop/firefox/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/firefox/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -121,7 +121,7 @@
 CONFIGURE_ENV +=        CXXFLAGS='-xlibmil -xlibmopt -lCrun -lCstd -features=tmplrefstatic,no%except -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ -template=no%extdef'
 # -L.../dist/lib needs to be set otherwise it will report missing libnss3.so, 
 # libssl3.so, etc, while linking.
-CONFIGURE_ENV +=        LDFLAGS="-z ignore -z interpose -B nodirect -L$(BUILD_DIR_32)/dist/lib"
+CONFIGURE_ENV +=        LDFLAGS="$(LD_Z_IGNORE) -z interpose -B nodirect -L$(BUILD_DIR_32)/dist/lib"
 
 
 CONFIGURE_ENV +=	MOZCONFIG=$(MOZCONFIG)
--- a/components/desktop/harfbuzz/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/harfbuzz/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,13 +22,15 @@
 #
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+# Prefer 32-bit over 64-bit for now.
+BUILD_BITS=32_and_64
+# For now, all things built for C++11 require gcc.
+COMPILER= gcc
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		harfbuzz
 COMPONENT_VERSION=	1.0.6
 COMPONENT_PROJECT_URL=	http://www.freedesktop.org/wiki/Software/HarfBuzz/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f616a7fbdc78a627043f9029000bf08c0c71df59cde4143fc92a014f6a993b26
@@ -37,9 +39,6 @@
 
 TPNO=			25623
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure-32_and_64.mk
-
 # Requires newer version of gobject-introspection from Desktop, available in
 # S12 but not 11.3, so do not publish.
 ifeq ($(BUILD_TYPE), evaluation)
@@ -48,19 +47,14 @@
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/common-32_and_64.mk
+include $(WS_MAKE_RULES)/common.mk
 
-# For now, all things built for C++11 require gcc.
-COMPILER = gcc
 CXXFLAGS += -std=c++11
 
 # For components using gobject-introspection, don't cache results in $HOME
 COMPONENT_BUILD_ENV += GI_SCANNER_DISABLE_CACHE=yes
 
 CONFIGURE_ENV += CC="$(CC) $(CC_BITS)"
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)"
 # Required by other components.
 CONFIGURE_OPTIONS += --enable-introspection
 # Required by other components.
@@ -72,8 +66,6 @@
 # build the API documentation
 CONFIGURE_OPTIONS += --enable-gtk-doc
 
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_PREFIX)/bin
-
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 COMPONENT_TEST_ARGS =   -k -i
 COMPONENT_TEST_TRANSFORMS += \
@@ -86,16 +78,6 @@
         '-e "/XERROR:/p" ' \
         '-e "/ERROR:/p" '
 
-configure:      $(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += developer/build/autoconf
 REQUIRED_PACKAGES += developer/build/automake
 REQUIRED_PACKAGES += developer/build/gnu-make
@@ -105,7 +87,6 @@
 REQUIRED_PACKAGES += library/desktop/cairo
 REQUIRED_PACKAGES += library/glib2
 REQUIRED_PACKAGES += library/icu
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/freetype-2
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
--- a/components/desktop/libgtkspell/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/libgtkspell/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,16 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gtkspell
 COMPONENT_VERSION=	2.0.16
 COMPONENT_PROJECT_URL=	http://gtkspell.sourceforge.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:8fc7dc560167b2cb7193e76aca625a152dc19b0ebf49816b78539cbb90d80d02
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)/download/$(COMPONENT_ARCHIVE)
@@ -35,9 +35,6 @@
 
 TPNO=			11953
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-
 # Was not version-lock'd in Desktop, so cannot be upgraded to.
 ifeq ($(BUILD_TYPE), evaluation)
 BUILD_32_and_64=
@@ -45,10 +42,11 @@
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Needed to pick up the GNU version of xgettext.
-PATH =		/usr/gnu/bin:/usr/bin
+PATH =		$(GNUBIN):$(USRBINDIR)
 
 COMPONENT_PREP_ACTION = \
 	(cd $(@D) ; \
@@ -59,21 +57,8 @@
 	automake -a -c -f ; \
 	autoconf )
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-
 ASLR_MODE =	$(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
 REQUIRED_PACKAGES += library/desktop/gtk2
 REQUIRED_PACKAGES += library/glib2
 REQUIRED_PACKAGES += library/spell-checking/enchant
-REQUIRED_PACKAGES += system/library
--- a/components/desktop/libotr/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/libotr/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,16 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libotr
 COMPONENT_VERSION=	4.1.0
 COMPONENT_PROJECT_URL=	http://www.cypherpunks.ca/otr/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:4fdb891940ec89d300190a98f69a9138248dcb8c8d337633fb981b8d0a9cd930
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
@@ -35,9 +35,6 @@
 
 TPNO=			21688
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-
 # Pidgin is on the do-not-publish list (depends on S12-only changes in ON &
 # Desktop), so no point publishing this without that.
 ifeq ($(BUILD_TYPE), evaluation)
@@ -46,7 +43,8 @@
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 CFLAGS +=	-I $(SOURCE_DIR)/src
 
@@ -59,21 +57,6 @@
 	automake -a -c -f ; \
 	autoconf )
 
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_PREFIX)/bin
-
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/libgcrypt
--- a/components/desktop/libspectre/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/libspectre/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,14 +22,12 @@
 #
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libspectre
 COMPONENT_VERSION=	0.2.6
 COMPONENT_PROJECT_URL=	http://libspectre.freedesktop.org
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
 	sha256:2f637c62322c8040514284c00f63a5c310a28801e7dcfbe2ba2791be4fac0dd3
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)/releases/$(COMPONENT_ARCHIVE)
@@ -37,9 +35,8 @@
 
 TPNO=			7684
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION = \
 	(cd $(@D) ; \
@@ -49,8 +46,6 @@
 	automake -a -c -f ; \
 	autoconf )
 
-
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	--disable-static
 CONFIGURE_OPTIONS +=	--enable-shared
 CONFIGURE_OPTIONS +=	--with-pic
@@ -60,15 +55,4 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
 REQUIRED_PACKAGES += print/filter/ghostscript
-REQUIRED_PACKAGES += system/library
--- a/components/desktop/pidgin-otr/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/pidgin-otr/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,16 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pidgin-otr
 COMPONENT_VERSION=	4.0.2
 COMPONENT_PROJECT_URL=	http://www.cypherpunks.ca/otr/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:f4b59eef4a94b1d29dbe0c106dd00cdc630e47f18619fc754e5afbf5724ebac4
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
@@ -35,39 +35,22 @@
 
 TPNO=			27403
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-
 # Pidgin is on the do-not-publish list (depends on S12-only changes in ON &
 # Desktop), so no point publishing this without that.
 ifeq ($(BUILD_TYPE), evaluation)
-BUILD_32_and_64=
-INSTALL_32_and_64=
+BUILD_64=
+INSTALL_64=
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Need to pick up the GNU version of xgettext.
-PATH=/usr/gnu/bin:/usr/bin
+PATH=$(GNUBIN):$(USRBINDIR)
 
 CFLAGS +=		-DG_IMPLEMENT_INLINES -DG_HAVE_ISO_VARARGS
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
 REQUIRED_PACKAGES += communication/im/libotr
 REQUIRED_PACKAGES += communication/im/pidgin
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/libgcrypt
--- a/components/desktop/pidgin/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/pidgin/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,26 +18,23 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pidgin
 COMPONENT_VERSION=	2.10.11
 COMPONENT_PROJECT_URL=	http://www.pidgin.im
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH= \
     sha256:f2ae211341fc77efb9945d40e9932aa535cdf3a6c8993fe7919fca8cc1c04007
 COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/pidgin
 
 TPNO=			21690
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-
 # Cyrus SASL is S12-only (at least for evaluation builds).
 ifeq ($(BUILD_TYPE), evaluation)
 BUILD_64=
@@ -45,11 +42,12 @@
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Need to pick up the Studio compiler as some Makefiles just use "cc".
 # Need to pick up the GNU version of xgettext.
-PATH=$(dir $(CC)):$(SPRO_VROOT)/bin:/usr/gnu/bin:/usr/bin
+PATH=$(dir $(CC)):$(SPRO_VROOT)/bin:$(GNUBIN):$(USRBINDIR)
 
 CFLAGS +=		-DG_IMPLEMENT_INLINES -DG_HAVE_ISO_VARARGS
 
@@ -66,21 +64,18 @@
 # Needed to get libpurple to link properly.
 LIBS += -lresolv
 CONFIGURE_ENV +=	LIBS="$(LIBS)"
-CONFIGURE_ENV +=	PKG_CONFIG_PATH=/usr/lib/64/pkgconfig/gnutls-3
+CONFIGURE_ENV +=	PKG_CONFIG_PATH=$(PKG_CONFIG_PATH.64)/gnutls-3
 
 # Version of Perl to use.
 PERL_VERSION =  5.20
 
-CONFIGURE_ENV += "ac_cv_path_perlpath=/usr/perl5/$(PERL_VERSION)/bin/perl"
+CONFIGURE_ENV += "ac_cv_path_perlpath=$(USRDIR)/perl5/$(PERL_VERSION)/bin/perl"
 
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
-
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	--enable-cyrus-sasl
 CONFIGURE_OPTIONS +=	--disable-nss
 CONFIGURE_OPTIONS +=	--enable-gnutls
-CONFIGURE_OPTIONS +=	--with-gnutls-includes=/usr/include/gnutls-3
-CONFIGURE_OPTIONS +=	--with-gnutls-libs=/usr/lib/64/gnutls-3
+CONFIGURE_OPTIONS +=	--with-gnutls-includes=$(USRINCDIR)/gnutls-3
+CONFIGURE_OPTIONS +=	--with-gnutls-libs=$(USRLIBDIR64)/gnutls-3
 CONFIGURE_OPTIONS +=	--enable-gnome-keyring
 CONFIGURE_OPTIONS +=	--disable-gevolution
 CONFIGURE_OPTIONS +=	--enable-cap
@@ -92,18 +87,6 @@
 # Always show the build and link lines for easier debugging.
 COMPONENT_BUILD_ARGS +=	V=1
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:          $(BUILD_64)
-
-install:        $(INSTALL_64)
-
-test:           $(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
 REQUIRED_PACKAGES += database/sqlite-3
 REQUIRED_PACKAGES += library/audio/gstreamer
 REQUIRED_PACKAGES += library/desktop/atk
@@ -123,7 +106,6 @@
 REQUIRED_PACKAGES += runtime/tcl-8
 REQUIRED_PACKAGES += runtime/tk-8
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/libdbus
 REQUIRED_PACKAGES += system/library/libdbus-glib
 REQUIRED_PACKAGES += system/library/math
--- a/components/desktop/poppler/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/poppler/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,14 +22,12 @@
 #
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		poppler
 COMPONENT_VERSION=	0.14.4
 COMPONENT_PROJECT_URL=	http://poppler.freedesktop.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:97c394144802e733eaec2682e06bddc4939c71ede58df045127aa94bd244c713
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
@@ -45,9 +43,8 @@
 COMPONENT_ARCHIVE_URL_1= $(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE_1)
 TPNO_POPPLER_DATA=	7744
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION = \
 	(cd $(@D) ; \
@@ -59,10 +56,6 @@
 
 CXX +=			$(studio_NORUNPATH)
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS +=    LDFLAGS="$(LDFLAGS)"
-
 # Reduce build time dependencies since we don't ship this and can't run as an
 # automated test.
 CONFIGURE_OPTIONS +=	--disable-gtk-test
@@ -83,16 +76,6 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += image/library/libpng
 REQUIRED_PACKAGES += library/desktop/cairo
@@ -102,7 +85,6 @@
 REQUIRED_PACKAGES += library/lcms
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/fontconfig
 REQUIRED_PACKAGES += system/library/freetype-2
--- a/components/desktop/poppler/poppler.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/poppler/poppler.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -39,13 +39,13 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2012/051 value=PSARC/2016/025
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/pdffonts path=usr/bin/pdffonts
-file usr/bin/$(MACH64)/pdfimages path=usr/bin/pdfimages
-file usr/bin/$(MACH64)/pdfinfo path=usr/bin/pdfinfo
-file usr/bin/$(MACH64)/pdftohtml path=usr/bin/pdftohtml
-file usr/bin/$(MACH64)/pdftoppm path=usr/bin/pdftoppm
-file usr/bin/$(MACH64)/pdftops path=usr/bin/pdftops
-file usr/bin/$(MACH64)/pdftotext path=usr/bin/pdftotext
+file path=usr/bin/pdffonts
+file path=usr/bin/pdfimages
+file path=usr/bin/pdfinfo
+file path=usr/bin/pdftohtml
+file path=usr/bin/pdftoppm
+file path=usr/bin/pdftops
+file path=usr/bin/pdftotext
 file path=usr/include/poppler/Annot.h
 file path=usr/include/poppler/Array.h
 file path=usr/include/poppler/BuiltinFont.h
--- a/components/desktop/thunderbird/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/thunderbird/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -138,7 +138,7 @@
 CONFIGURE_ENV +=	OS_DEFINES="-D__USE_LEGACY_PROTOTYPES__"
 # -L.../dist/bin needs to be set otherwise it will report missing libnss3.so, 
 # libssl3.so, etc, while linking.
-CONFIGURE_ENV +=	LDFLAGS="-z ignore -z interpose -B nodirect -L$(BUILD_DIR_32)/dist/lib"
+CONFIGURE_ENV +=	LDFLAGS="$(LD_Z_IGNORE) -z interpose -B nodirect -L$(BUILD_DIR_32)/dist/lib"
 
 CONFIGURE_ENV +=	MOZCONFIG=$(MOZCONFIG)
 CONFIGURE_ENV +=	"CC=$(CC)"
--- a/components/desktop/xscreensaver/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/desktop/xscreensaver/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,14 +22,16 @@
 #
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS=64
+# While the tree currently builds with Studio, we need to make sure it also
+# builds with gcc when submitting patches upstream, and having both sets of
+# options in the CFLAGS below makes it easy to switch when needed.
+# COMPILER=gcc
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		xscreensaver
 COMPONENT_VERSION=	5.34
 COMPONENT_PROJECT_URL=	https://www.jwz.org/xscreensaver/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:6fff7ec4be743e5c042647ea9687dd0cdf48d1dd5e8e15098e5018bbd02e5e27
 COMPONENT_ARCHIVE_URL=	https://www.jwz.org/xscreensaver/$(COMPONENT_ARCHIVE)
@@ -37,15 +39,8 @@
 
 TPNO=			26341
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure-64.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-# While the tree currently builds with Studio, we need to make sure it also
-# builds with gcc when submitting patches upstream, and having both sets of
-# options in the CFLAGS below makes it easy to switch when needed.
-# COMPILER=gcc
-CC += $(CC_BITS)
+TEST_TARGET = $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Enable additional warnings, since we've modified this code a lot
 CFLAGS.studio += -v
@@ -57,11 +52,19 @@
 CFLAGS.studio += -fsimple=2 -nofstore -xlibmil -xprefetch
 CFLAGS.gcc    += -funsafe-math-optimizations
 
-# Regenerate configure after patches modify configure.in
-COMPONENT_PREP_ACTION += ( cd $(@D); autoreconf -fiv);
+# Fix 64-bit linking; compiler is used for the linking.
+LDFLAGS += $(CC_BITS)
+
+# Regenerate configure after patches modify configure.in; the automake -af
+# forces the update of the standard automake files that autoreconf will not
+# update because Makefile.am does not exist.  This is needed to ensure we have
+# a recent version of config.guess, etc. used for configure; the | true is
+# because automake will exit with an error because Makefile.am does not exist,
+# but it will update the required files.
+COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fiv; automake -af | true)
 
 # Need to pick up the GNU version of xgettext.
-PATH=$(GNUBIN):/usr/bin
+PATH=$(GNUBIN):$(USRBINDIR)
 
 # Libraries & programs to depend on
 CONFIGURE_OPTIONS += --with-gl=$(USRDIR)
@@ -95,7 +98,6 @@
 # Paths to install to
 APP_DEFAULTS_DIR  = $(CONFIGURE_PREFIX)/share/X11/app-defaults
 XSS_LIBDIR 	  = $(CONFIGURE_PREFIX)/lib/xscreensaver
-CONFIGURE_OPTIONS += --bindir=$(CONFIGURE_BINDIR.32)
 CONFIGURE_OPTIONS += --libexecdir=$(XSS_LIBDIR)/bin
 CONFIGURE_OPTIONS += --with-hackdir=$(XSS_LIBDIR)/hacks
 CONFIGURE_OPTIONS += --with-configdir=$(XSS_LIBDIR)/config/control-center-2.0
@@ -135,15 +137,6 @@
 rm -f $(PROTO_DIR)$(XSS_LIBDIR)/hacks/webcollage-helper );
 
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:      $(CONFIGURE_64)
-build:          $(BUILD_64)
-install:        $(INSTALL_64)
-test:           $(NO_TESTS)
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += gnome/accessibility/gnome-a11y-libs
 REQUIRED_PACKAGES += gnome/config/gconf
 REQUIRED_PACKAGES += image/library/libjpeg
@@ -157,7 +150,6 @@
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += library/perl-5/xml-parser
 REQUIRED_PACKAGES += runtime/perl-512
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
 REQUIRED_PACKAGES += x11/library/libxext
--- a/components/diffstat/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/diffstat/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,14 +18,16 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		diffstat
 COMPONENT_VERSION=	1.61
 COMPONENT_PROJECT_URL=	http://invisible-island.net/diffstat/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:25359e0c27183f997b36c9202583b5dc2df390c20e22a92606af4bf7856a55ee
@@ -34,11 +36,11 @@
 
 TPNO=			27077
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
-CC += $(CC_BITS)
+# Fix 64-bit linking done via compiler.
+LDFLAGS += $(CC_BITS)
 
 COMPONENT_TEST_TRANSFORMS += \
 	'-e "/^Checking/d" '
@@ -50,21 +52,7 @@
 COMPONENT_TEST_TARGETS =
 
 COMPONENT_SYSTEM_TEST_DIR =	$(SOURCE_DIR)
-COMPONENT_SYSTEM_TEST_ENV =	PATH=/usr/bin:$(SOURCE_DIR):$(PATH)
+COMPONENT_SYSTEM_TEST_ENV =	PATH=$(USRBINDIR):$(SOURCE_DIR):$(PATH)
 COMPONENT_SYSTEM_TEST_CMD =	./testing/run_test.sh
 COMPONENT_SYSTEM_TEST_ARGS =	./testing/case*.pat
 COMPONENT_SYSTEM_TEST_TARGETS =
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TEST_64)
-
-REQUIRED_PACKAGES += system/library
--- a/components/diffstat/diffstat.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/diffstat/diffstat.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -38,6 +38,6 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/114
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/diffstat path=usr/bin/diffstat
+file path=usr/bin/diffstat
 file path=usr/share/man/man1/diffstat.1
 license diffstat.license license=MIT
--- a/components/diffutils/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/diffutils/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,31 +22,27 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER=		gcc
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		diffutils
 COMPONENT_VERSION=	3.3
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/diffutils/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:a25e89a8ab65fded1731e4186be1bb25cda967834b6df973599cdcd5abdfc19c
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/diffutils/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gnu-diffutils
 
 TPNO=			21995
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 COMPONENT_PREP_ACTION =		(cd $(@D) ; autoreconf -f)
 
+CONFIGURE_PREFIX= $(USRGNUDIR)
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
+CONFIGURE_OPTIONS  +=		--localedir=$(USRSHARELOCALEDIR)
 
 # Needed for "gmake test" to work successfully.
 # If SHELLOPTS is exported (as it is by the userland makefiles),
@@ -68,18 +64,5 @@
 COMPONENT_SYSTEM_TEST_DIR =	$(@D)/tests
 COMPONENT_SYSTEM_TEST_ENV +=	PATH="$(GNUBIN):$(PATH)"
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    configure $(SYSTEM_TEST_64)
-
-
 REQUIRED_PACKAGES += library/libsigsegv
 REQUIRED_PACKAGES += system/library
--- a/components/diffutils/diffutils.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/diffutils/diffutils.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -40,14 +40,14 @@
 link path=usr/bin/gdiff target=../gnu/bin/diff facet.compat.gnulinks=true
 link path=usr/bin/gdiff3 target=../gnu/bin/diff3 facet.compat.gnulinks=true
 link path=usr/bin/gsdiff target=../gnu/bin/sdiff facet.compat.gnulinks=true
-file usr/bin/$(MACH64)/cmp path=usr/gnu/bin/cmp
-file usr/bin/$(MACH64)/diff path=usr/gnu/bin/diff
-file usr/bin/$(MACH64)/diff3 path=usr/gnu/bin/diff3
-file usr/bin/$(MACH64)/sdiff path=usr/gnu/bin/sdiff
-file usr/share/man/man1/cmp.1 path=usr/gnu/share/man/man1/cmp.1
-file usr/share/man/man1/diff.1 path=usr/gnu/share/man/man1/diff.1
-file usr/share/man/man1/diff3.1 path=usr/gnu/share/man/man1/diff3.1
-file usr/share/man/man1/sdiff.1 path=usr/gnu/share/man/man1/sdiff.1
+file path=usr/gnu/bin/cmp
+file path=usr/gnu/bin/diff
+file path=usr/gnu/bin/diff3
+file path=usr/gnu/bin/sdiff
+file path=usr/gnu/share/man/man1/cmp.1
+file path=usr/gnu/share/man/man1/diff.1
+file path=usr/gnu/share/man/man1/diff3.1
+file path=usr/gnu/share/man/man1/sdiff.1
 file path=usr/share/info/diffutils.info
 file path=usr/share/locale/ca/LC_MESSAGES/diffutils.mo
 file path=usr/share/locale/cs/LC_MESSAGES/diffutils.mo
--- a/components/dnsmasq/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/dnsmasq/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,13 +20,13 @@
 #
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 # i18n component requires GNU xgettext
-PATH=/usr/gnu/bin:/usr/bin:/usr/sbin
+PATH=$(GNUBIN):$(USRBINDIR):$(USRSBINDIR)
 
 COMPONENT_NAME=		dnsmasq
 COMPONENT_VERSION=	2.68
@@ -40,33 +40,19 @@
 
 TPNO=			16307
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_BUILD_ENV += CC="$(CC)"
 COMPONENT_BUILD_ARGS += CC="$(CC)"
 COMPONENT_BUILD_ARGS += CFLAGS="$(CFLAGS)"
-COMPONENT_BUILD_ARGS += PREFIX="/usr"
-COMPONENT_BUILD_ARGS += LOCALEDIR="/usr/share/locale"
-COMPONENT_BUILD_ARGS += LDFLAGS="$(LDFLAGS) -m64"
+COMPONENT_BUILD_ARGS += LOCALEDIR="$(USRSHARELOCALEDIR)"
+COMPONENT_BUILD_ARGS += LDFLAGS="$(LDFLAGS) $(CC_BITS)"
 COMPONENT_BUILD_TARGETS = "all-i18n"
-COMPONENT_INSTALL_ARGS += PREFIX="/usr"
+COMPONENT_INSTALL_ARGS += PREFIX="$(USRDIR)"
+COMPONENT_INSTALL_ARGS += BINDIR="$(USRLIBDIR)/inet"
 COMPONENT_INSTALL_TARGETS = "install-i18n"
 
-# common targets
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += library/libidn
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
--- a/components/dnsmasq/dnsmasq.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/dnsmasq/dnsmasq.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -43,7 +43,7 @@
     path=etc/security/prof_attr.d/service:network:dnsmasq group=sys
 file files/dnsmasq.xml path=lib/svc/manifest/network/dnsmasq.xml
 file path=usr/lib/inet/dhcp_release
-file usr/sbin/dnsmasq path=usr/lib/inet/dnsmasq
+file path=usr/lib/inet/dnsmasq
 file path=usr/share/locale/de/LC_MESSAGES/dnsmasq.mo
 file path=usr/share/locale/es/LC_MESSAGES/dnsmasq.mo
 file path=usr/share/locale/fi/LC_MESSAGES/dnsmasq.mo
--- a/components/doxygen/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/doxygen/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,20 +18,21 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-BITS=64
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		doxygen
 COMPONENT_VERSION=	1.8.11
 COMPONENT_PROJECT_URL=	http://www.stack.nl/~dimitri/doxygen/index.html
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).src.tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:65d08b46e48bd97186aef562dc366681045b119e00f83c5b61d05d37ea154049
 COMPONENT_ARCHIVE_URL=	http://ftp.stack.nl/pub/users/dimitri/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/doxygen
 
 # Download the manual so that we don't have to keep updating it in the gate.
 COMPONENT_ARCHIVE_1 =	$(COMPONENT_NAME)_manual-$(COMPONENT_VERSION).pdf.zip
@@ -41,16 +42,15 @@
 
 TPNO=			27457
 
-include $(WS_MAKE_RULES)/cmake.mk
-include $(WS_MAKE_RULES)/common-64.mk
-
-# Necessary to find the right gcc during build
-PATH=$(GCC_ROOT)/bin:/usr/bin
-
-COMPILER =		gcc
+BUILD_STYLE= cmake
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-PATH=$(PARFAIT_TOOLS):$(GCC_ROOT)/bin:/usr/bin
+PATH=$(PARFAIT_TOOLS):$(GCC_ROOT)/bin:$(USRBINDIR)
+else
+# Necessary to find the right gcc during build
+PATH=$(GCC_ROOT)/bin:$(USRBINDIR)
 endif
 
 
@@ -90,15 +90,11 @@
 COMPONENT_SYSTEM_TEST_ARGS =	runtests.pl --doxygen /usr/bin/doxygen
 COMPONENT_SYSTEM_TEST_TARGETS =
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-install:	$(INSTALL_64)
+COMPONENT_POST_INSTALL_ACTION += \
 	cd $(PROTO_DIR) ; $(UNPACK) ../../../$(COMPONENT_ARCHIVE_1)
 
-
 REQUIRED_PACKAGES += developer/lexer/flex
 REQUIRED_PACKAGES += developer/parser/bison
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/ejabberd/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ejabberd/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,18 +20,17 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 # for ginstall and tail -n
-PATH=/usr/gnu/bin:/usr/bin
+PATH=$(GNUBIN):$(USRBINDIR)
 
 COMPONENT_NAME=		ejabberd
 COMPONENT_VERSION=	2.1.13
 COMPONENT_PROJECT_URL=	http://www.ejabberd.im/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:a80d1c72e435da31758261cb0c04fe750ac71fc3e33a3b606123efd3b3abc86d
@@ -39,51 +38,29 @@
 COMPONENT_BUGDB=	service/ejabberd
 TPNO=                   21408
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_DIR_64= $(BUILD_DIR)/$(MACH64)/src
+CONFIGURE_SCRIPT= $(SOURCE_DIR)/src/configure
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION = \
 	(cd $(@D)/src ; PATH=$(PATH) $(AUTORECONF) -fiv)
 
-CONFIGURE_SCRIPT = $(SOURCE_DIR)/src/configure
-BUILD_DIR_64 =	$(BUILD_DIR)/$(MACH64)/src
-$(BUILD_DIR_64)/.configured:	BITS=64
-$(BUILD_DIR_64)/.built:		BITS=64
-$(BUILD_DIR_64)/.installed:	BITS=64
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(BUILD_DIR)/$(MACH64))
 
-CONFIGURE_BINDIR.64 = $(CONFIGURE_BINDIR.32)
-CONFIGURE_SBINDIR.64 = $(CONFIGURE_SBINDIR.32)
-
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	LDFLAGS="$(LDFLAGS)"
 CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)
 CONFIGURE_OPTIONS +=	--with-erlang=$(USRBINDIR)
-CONFIGURE_OPTIONS +=	--localstatedir=/var
+CONFIGURE_OPTIONS +=	--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS +=	--enable-odbc
 
 COMPONENT_BUILD_TARGETS = all
 
-
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_64)
-
-build:	$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += library/expat
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/network
--- a/components/elinks/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/elinks/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,29 +18,27 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
 # Because the Studio compiler generates thousands of lines of warnings.
-COMPILER=gcc
-
+COMPILER= gcc
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		elinks
 COMPONENT_VERSION=	0.11.7
 COMPONENT_PROJECT_URL=	http://elinks.or.cz/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:456db6f704c591b1298b0cd80105f459ff8a1fc07a0ec1156a36c4da6f898979
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/elinks
 
 TPNO=			8340
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 # Always show the build and link lines for easier debugging.
 COMPONENT_BUILD_ARGS +=		V=1
@@ -53,7 +51,6 @@
 CONFIGURE_OPTIONS  +=		--enable-bittorrent
 CONFIGURE_OPTIONS  +=		--enable-html-highlight
 CONFIGURE_OPTIONS  +=		--enable-256-colors
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 
 # Use the HTML and CSS styling external test suite as referenced at
 # http://www.w3.org/2005/MWI/Tests/
@@ -74,23 +71,8 @@
 	http://www.cameronmoll.com/mobile/mkp/pg4.html
 COMPONENT_SYSTEM_TEST_TARGETS =
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TEST_64)
-
-
 REQUIRED_PACKAGES += compress/bzip2
 REQUIRED_PACKAGES += library/expat
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += x11/library/libx11
--- a/components/elinks/elinks.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/elinks/elinks.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 <transform file path=usr/share/doc/elinks/(.+$) -> set action.hash doc/%<1> >
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
@@ -36,7 +38,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=LSARC/2009/028
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/elinks path=usr/bin/elinks
+file path=usr/bin/elinks
 file path=usr/share/doc/elinks/bittorrent.txt
 file path=usr/share/doc/elinks/bookmarks.txt
 file path=usr/share/doc/elinks/color-model.txt
--- a/components/emacs/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/emacs/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,29 +18,27 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
 # As Solaris always has a 64-bit kernel, and 64-bit emacs can handle larger
 # files, we only build and deliver 64-bit binaries. 
-BITS=64
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		emacs
 COMPONENT_VERSION=	24.5
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/emacs/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:2737a6622fb2d9982e9c47fb6f2fb297bda42674e09db40fc9bcc0db4297c3b6
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/emacs/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/emacs
 
 TPNO=			23457
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+INSTALL_TARGET=
+# The upstream emacs distribution does not have tests to be run
+# from this target.
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # We patch the configure.ac file. Get the new configure generated during prep.
 COMPONENT_PREP_ACTION = (cd $(@D) ; aclocal -I m4; autoconf )
@@ -72,12 +70,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
+CONFIGURE_ENV +=	PKG_CONFIG_PATH=$(PKG_CONFIG_PATH.64)/gnutls-3
 
 # Never use xmkmf to find X11 libraries from autoconf. They are all available
 # from standard system locations, and we don't want the ld -L option that
@@ -215,18 +210,8 @@
 	$(PROTO_DIR)/usr/share/man/man1/*.gz ;
 
 # common targets
-configure:	$(CONFIGURE_64)
-
-build:          $(BUILD_64)
-
 install:	$(BUILD_64) $(BUILD_DIR)/$(MACH64)-x/.installed 
 
-# The upstream emacs distribution does not have tests to be run
-# from this target.
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 # Desktop packages differ slightly between S11 & S12: list union to allow
 # for BUILD_TYPE=evaluation and normal builds.
 REQUIRED_PACKAGES += editor/gnu-emacs
@@ -251,7 +236,6 @@
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/perl-520
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/fontconfig
 REQUIRED_PACKAGES += system/library/freetype-2
 REQUIRED_PACKAGES += system/library/math
--- a/components/enscript/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/enscript/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,20 +20,15 @@
 #
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		enscript
 COMPONENT_VERSION=	1.6.4
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/enscript
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:45299a4db47c9c08c3649d4f62b211ae79ef5143360c264a40371a728f6ad99b
-COMPONENT_ARCHIVE_URL=  http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/enscript
 
 # Ruby enscript support
 COMPONENT_ARCHIVE_1=    ruby-enscript.tar.gz
@@ -49,11 +44,7 @@
 
 TPNO=			4380
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-PATCH_LEVEL = 1
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # Get just the ruby enscript support file out of the downloaded tarball, and
 # move ruby.st and php.st into the correct directory for "gmake install".
@@ -68,30 +59,16 @@
 				   autoreconf -fiv);
 
 # Needed so that enscript can find the enscript.cfg file.
-CONFIGURE_OPTIONS +=    --sysconfdir=/etc
+CONFIGURE_OPTIONS +=    --sysconfdir=$(ETCDIR)
 
 CONFIGURE_OPTIONS +=	--with-media=Letter
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	LDFLAGS="$(LDFLAGS)"
 
 COMPONENT_POST_INSTALL_ACTION = \
-	$(LN) $(PROTOUSRBINDIR)/$(MACH64)/enscript \
-		$(PROTOUSRBINDIR)/$(MACH64)/nenscript
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:          $(BUILD_64)
-
-install:        $(INSTALL_64)
-
-test:           $(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+	$(LN) $(PROTOUSRBINDIR)/enscript \
+		$(PROTOUSRBINDIR)/nenscript
 
 
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/perl-520
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/enscript/enscript.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/enscript/enscript.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,13 +36,13 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2010/337
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 file path=etc/enscript.cfg
-file usr/bin/$(MACH64)/diffpp path=usr/bin/diffpp
-file usr/bin/$(MACH64)/enscript path=usr/bin/enscript
-file usr/bin/$(MACH64)/mkafmmap path=usr/bin/mkafmmap
-file usr/bin/$(MACH64)/nenscript path=usr/bin/nenscript
-file usr/bin/$(MACH64)/over path=usr/bin/over
-file usr/bin/$(MACH64)/sliceprint path=usr/bin/sliceprint
-file usr/bin/$(MACH64)/states path=usr/bin/states
+file path=usr/bin/diffpp
+file path=usr/bin/enscript
+file path=usr/bin/mkafmmap
+file path=usr/bin/nenscript
+file path=usr/bin/over
+file path=usr/bin/sliceprint
+file path=usr/bin/states
 file docs/FAQ.html path=usr/share/doc/enscript/docs/FAQ.html facet.doc.html=true
 file path=usr/share/enscript/88591.enc
 file path=usr/share/enscript/885910.enc
--- a/components/erlang/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/erlang/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,24 +22,21 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
 # Built in SFW with gcc and builds cleanly now only with gcc
-COMPILER =	gcc
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
-PATH=$(JAVA_HOME)/bin:/usr/bin
+PATH=$(JAVA_HOME)/bin:$(USRBINDIR)
 
 COMPONENT_NAME=			erlang
 COMPONENT_VERSION=		17.5
 COMPONENT_PROJECT_URL=	http://www.erlang.org/
 COMPONENT_SRC_NAME=	otp_src
 COMPONENT_SRC=		$(COMPONENT_SRC_NAME)_$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:3c28820c981b30c50df8ac2a4a238e5813454fa3ed2ad530bc7948a282846474
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/erlang
 
 # manpages
 COMPONENT_NAME_1=	otp_doc_man
@@ -63,12 +60,13 @@
 
 TPNO=			18548
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS) -I/usr/include/gd2"
+# Fix 64-bit linking.
+LDFLAGS += $(CC_BITS)
+
+CPPFLAGS += "-I/usr/include/gd2"
 CONFIGURE_OPTIONS += --enable-smp-support
 CONFIGURE_OPTIONS += --enable-threads
 # The HiPE portion is a bit sensitive, and only seems to work 64-bit on
@@ -78,11 +76,6 @@
 CONFIGURE_OPTIONS += --with-ssl
 CONFIGURE_OPTIONS += --enable-dynamic-ssl-lib
 
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_PREFIX)/bin
-
-CONFIGURE_OPTIONS.64 += LDFLAGS="$(LDFLAGS) -m64"
-CONFIGURE_OPTIONS.64 += LIBS="-m64"
-
 # Use cp(1) instead of cloney because erlang's 'install' target uses 'tar'
 # to copy files and our tar doesn't handle long links by default.  Between
 # the use of 'tar' and 'ld', a path adjustment wasn't an option due to the
@@ -105,29 +98,18 @@
 	'-e "s|/ldisk/tests|XXX_UID_XXX|g" ' \
 	'-e "/XXX_UID_XXX/d" '
 
-COMPONENT_SYSTEM_TEST_ENV +=		ERL_TOP=$(BUILD_DIR_64)
+COMPONENT_SYSTEM_TEST_ENV +=	ERL_TOP=$(BUILD_DIR_64)
 COMPONENT_SYSTEM_TEST_TARGETS =	tests
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:	$(BUILD_64)
-
-install:	$(INSTALL_64)
-	# remove INSTALL_PREFIX from path
+# remove INSTALL_PREFIX from path
+COMPONENT_POST_INSTALL_ACTION += \
 	$(PERL) -pi -e "s|$(PROTO_DIR)||g" \
-		$(PROTO_DIR)/usr/lib/$(MACH64)/erlang/bin/erl \
-		$(PROTO_DIR)/usr/lib/$(MACH64)/erlang/releases/RELEASES
-
-test:	$(TEST_64)
-
-system-test:	configure $(SYSTEM_TEST_64)
+		$(PROTOUSRLIBDIR64)/erlang/bin/erl \
+		$(PROTOUSRLIBDIR64)/erlang/releases/RELEASES
 
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/fastcgi/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/fastcgi/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,15 +22,14 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+# Prefer 32-bit as default fastcgi target matters.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		fastcgi
 COMPONENT_VERSION=	2.4.0
 COMPONENT_PROJECT_URL=	http://www.fastcgi.com/
 COMPONENT_SRC_NAME=	fcgi
-COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:66fc45c6b36a21bf2fbbb68e90f780cc21a9da1fffbae75e76d2b4402d3f05b9
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)dist/$(COMPONENT_ARCHIVE)
@@ -38,33 +37,14 @@
 
 TPNO=			8415
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS += --bindir=/usr/bin
+CONFIGURE_OPTIONS += --bindir=$(USRBINDIR)
 CONFIGURE_OPTIONS += --disable-static
 CONFIGURE_OPTIONS += --with-pic
 CONFIGURE_OPTIONS += --includedir=$(CONFIGURE_INCLUDEDIR)/fastcgi
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS += CXXFLAGS="$(CFLAGS) $(studio_XREGS)"
-
-CXX += $(studio_NORUNPATH)
 
 COMPONENT_PREP_ACTION = (cd $(@D) ; touch NEWS AUTHORS ChangeLog ; autoreconf -if)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:     $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
--- a/components/fetchmail/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/fetchmail/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,35 +20,28 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		fetchmail
 COMPONENT_VERSION=	6.3.22
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:09093168552119e962617f86f2713564cf6e3fe7fd32d6799aa0b87df28f1e89
 COMPONENT_ARCHIVE_URL=	http://download.berlios.de/fetchmail/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL=	http://fetchmail.berlios.de/
-COMPONENT_BUGDB=	utility/fetchmail
 
 TPNO=			8416
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS  +=		PYTHON="$(PYTHON.2.7.32)"
 CONFIGURE_OPTIONS  +=		--with-kerberos5
 CONFIGURE_OPTIONS  +=		--with-ssl
 CONFIGURE_OPTIONS  +=		--enable-NTLM
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # Change the shebang line to use Python 2.7 explicitly, and drop the
 # fixed file into /usr/bin, where our package manifest expects it.
 COMPONENT_POST_INSTALL_ACTION = \
@@ -60,19 +53,8 @@
 	'-e "s|^.*$(CC).*$$|XXX_CC_XXX|"' \
 	'-e "/^XXX_CC_XXX$$/d"'
 
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/python/tkinter-27
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += service/security/kerberos-5
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/fetchmail/fetchmail.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/fetchmail/fetchmail.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,7 +36,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/135
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/fetchmail path=usr/bin/fetchmail
+file path=usr/bin/fetchmail
 file path=usr/bin/fetchmailconf
 file path=usr/share/locale/ca/LC_MESSAGES/fetchmail.mo
 file path=usr/share/locale/cs/LC_MESSAGES/fetchmail.mo
--- a/components/findutils/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/findutils/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,14 +22,11 @@
 #
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		findutils
 COMPONENT_VERSION=	4.6.0
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/findutils/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:ded4c9f73731cd48fec3b6bdaccce896473b6d8e337e9612e16cf1431bb1169d
 COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
@@ -37,13 +34,9 @@
 
 TPNO=			27155
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-CONFIGURE_PREFIX =	/usr/gnu
-
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
+CONFIGURE_PREFIX =	$(USRGNUDIR)
 
 # Fixes coredump in the tests/test-localename test.
 CONFIGURE_OPTIONS  +=	ac_cv_func_newlocale=no
@@ -63,27 +56,14 @@
 	'-e "s|\(Test Run By\).*|\1|" ' \
 	'-e "s|\(Native configuration is\).*|\1|" '
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:          $(BUILD_64)
-
-install:        $(INSTALL_64)
-
 # Needed for "gmake test" to work successfully.
 # Otherwise we see errors such as:
 # FAIL: exec-nogaps.old-O3, sh: SHELLOPTS: readonly variable
 unexport SHELLOPTS
 
-test:           $(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 
 # test dependencies:
 REQUIRED_PACKAGES += developer/versioning/cvs
 REQUIRED_PACKAGES += developer/versioning/git
 
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/findutils/findutils.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/findutils/findutils.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -41,8 +41,8 @@
 link path=usr/bin/gxargs target=../gnu/bin/xargs facet.compat.gnulinks=true
 # locate and updatedb are not being delivered, in favor of an external
 # solution to the problem.
-file usr/gnu/bin/$(MACH64)/find path=usr/gnu/bin/find
-file usr/gnu/bin/$(MACH64)/xargs path=usr/gnu/bin/xargs
+file path=usr/gnu/bin/find
+file path=usr/gnu/bin/xargs
 file path=usr/gnu/libexec/bigram
 file path=usr/gnu/libexec/code
 file path=usr/gnu/libexec/frcode
--- a/components/flex/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/flex/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,57 +20,36 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		flex
 COMPONENT_VERSION=	2.5.35
 COMPONENT_PROJECT_URL=	http://flex.sourceforge.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:0becbd4b2b36b99c67f8c22ab98f7f80c9860aec70f0350a0018f29a88704e7b
 COMPONENT_ARCHIVE_URL=	http://softlayer.dl.sourceforge.net/project/flex/flex/flex-2.5.35/flex-2.5.35.tar.bz2
-COMPONENT_BUGDB=	utility/flex
 
 TPNO=			14883
 
 SONAME=libfl.so.1
-LDFLAGS = $(CC_BITS)
+LDFLAGS += $(CC_BITS)
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=		CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS  +=		LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS  +=		M4="/usr/gnu/bin/m4"
+CONFIGURE_OPTIONS  +=		M4="$(GNUBIN)/m4"
 
 COMPONENT_BUILD_ENV +=		SONAME="$(SONAME)"
 COMPONENT_INSTALL_ENV +=	SONAME="$(SONAME)"
 
-COMPONENT_TEST_ENV +=		PATH=/usr/gnu/bin:/usr/bin
+COMPONENT_TEST_ENV +=		PATH=$(GNUBIN):$(USRBINDIR)
 
 COMPONENT_BUILD_TARGETS += $(SONAME)
 COMPONENT_INSTALL_TARGETS += $(SONAME)
 
-ASLR_MODE=$(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64) 
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += developer/macro/gnu-m4
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/flex/flex.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/flex/flex.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -32,7 +32,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2007/289
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/flex path=usr/bin/flex
+file path=usr/bin/flex
 file path=usr/include/FlexLexer.h
 link path=usr/sfw/bin/flex target=../../bin/flex
 file path=usr/share/info/flex.info
--- a/components/foomatic/db-engine/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/foomatic/db-engine/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,14 +18,15 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		foomatic-db-engine
 COMPONENT_VERSION=	3.0-20080903
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:668f2020eb136359523090cc17151e6aad0c56bce0e4ae91217a9eba19eec917
 COMPONENT_ARCHIVE_URL=	$(EXTERNAL_ARCHIVE_MIRROR)/$(COMPONENT_ARCHIVE)
@@ -34,13 +35,11 @@
 
 TPNO=			6399
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)" 
 CONFIGURE_OPTIONS +=	PERL=$(PERL)
-CONFIGURE_OPTIONS +=	FILEUTIL=/bin/true
+CONFIGURE_OPTIONS +=	FILEUTIL=$(BINDIR)/true
 CONFIGURE_OPTIONS +=    --sysconfdir=$(ETCDIR)/gnu
 
 # the build system does not support building outside of the source tree
@@ -62,20 +61,6 @@
      >> $(PROTO_DIR)/$(PACKLIST).fixed ; \
  $(MV) $(PROTO_DIR)/$(PACKLIST).fixed $(PROTO_DIR)/$(PACKLIST)
 
-
-# common targets
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += $(PERL_PKG)
 REQUIRED_PACKAGES += shell/bash
-REQUIRED_PACKAGES += system/library
--- a/components/foomatic/db/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/foomatic/db/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,14 +18,15 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		foomatic-db
 COMPONENT_VERSION=	20080903
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:a404d1243a313259490a6a29238498c438b6e8638dafeb980ab98de347957414
 COMPONENT_ARCHIVE_URL=	$(EXTERNAL_ARCHIVE_MIRROR)/$(COMPONENT_ARCHIVE)
@@ -34,9 +35,8 @@
 
 TPNO=			6398
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = $(CLONEY) $(SOURCE_DIR) $(@D)
 
@@ -46,15 +46,3 @@
   > $(PROTO_DIR)/usr/share/foomatic/db/source/PPD/Oce/Others/IM8530_1.ppd.gz
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
--- a/components/foomatic/filters/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/foomatic/filters/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,14 +18,15 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		foomatic-filters
 COMPONENT_VERSION=	4.0.15
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f5b7b67aacedec4c0294d242cbffbe0d7d3cd0fdd2b410c055e818f25ed3bc79
 COMPONENT_ARCHIVE_URL=	http://www.openprinting.org/download/foomatic/$(COMPONENT_ARCHIVE)
@@ -34,35 +35,21 @@
 
 TPNO=			8420
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
+
+CONFIGURE_BINDIR.32= $(USRLIBDIR)/lp/bin
 
 CONFIGURE_OPTIONS +=	--prefix=$(USRLIBDIR)/lp
 CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)/gnu
-CONFIGURE_OPTIONS +=	--bindir=$(USRLIBDIR)/lp/bin
 CONFIGURE_OPTIONS +=	--with-echo=wecho
 CONFIGURE_OPTIONS +=	--with-file-converter="a2ps -1 -q -c -B @@--medium=@@PAGESIZE@@ -o -"
 CONFIGURE_OPTIONS +=	--with-execpath=$(USRLIBDIR)/lp/bin:$(USRBINDIR):$(BINDIR)
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	PERL=$(PERL)
 CONFIGURE_OPTIONS +=	A2PS=$(USRBINDIR)/a2ps
 
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-# common targets
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += print/filter/a2ps
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/libdbus
 REQUIRED_PACKAGES += system/library/math
--- a/components/foomatic/fppd/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/foomatic/fppd/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/fping/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/fping/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,45 +20,27 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		fping
 COMPONENT_VERSION=	2.4b2_to
 IPS_COMPONENT_VERSION=	2.4.2
 COMPONENT_PROJECT_URL=	http://fping.sourceforge.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_NAME).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:9f3b3ed7c9fffccefefa9af432eee7244a65592118851f75b5897814cb79b86f
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/fping
 
 TPNO=			5500
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# Deliver 'sbin' binaries to 'bin'.
+CONFIGURE_SBINDIR.64= $(CONFIGURE_BINDIR.64)
+
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION =  \
         ($(CLONEY) $(SOURCE_DIR) $(@D))
-
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/fping/fping.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/fping/fping.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -37,6 +37,6 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2008/160
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 file exec_attr path=etc/security/exec_attr.d/fping
-file usr/sbin/$(MACH64)/fping path=usr/bin/fping
+file path=usr/bin/fping
 file fping.1m path=usr/share/man/man1m/fping.1m
 license fping.license license=MIT
--- a/components/ftp-proxy/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ftp-proxy/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,6 +20,7 @@
 #
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		ftp-proxy
@@ -28,22 +29,12 @@
 COMPONENT_PROJECT_URL=	http://www.openbsd.org
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
+COMPONENT_ARCHIVE_SRC=	cache
 COMPONENT_ARCHIVE_HASH= sha256:372dbe0ca8c6b090842a9f0fbdd13b320dc37883137d3dc674d588448aa2d5e9
-CLEAN_PATHS +=		$(COMPONENT_SRC)
-CLOBBER_PATHS +=	$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	service/ftp-proxy
 
 TPNO=	24255
 
-#
-# Don't overwrite CFLAGS here, just add our options there.
-#
-COMPONENT_BUILD_ENV += CFLAGS="$(CFLAGS) -D_SOLARIS_ -DOBSD_COMP -lscf"
-COMPONENT_BUILD_ARGS +=	CC="$(CC)"
-
-include ../../make-rules/prep.mk
-include ../../make-rules/justmake.mk
-
 # Depends on S12-only changes in ON.
 ifeq ($(BUILD_TYPE), evaluation)
 BUILD_64=
@@ -51,20 +42,18 @@
 PUBLISH_STAMP=
 endif
 
-include ../../make-rules/ips.mk
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
+
+#
+# Don't overwrite CFLAGS here, just add our options there.
+#
+COMPONENT_BUILD_ENV += CFLAGS="$(CFLAGS) -D_SOLARIS_ -DOBSD_COMP -lscf"
 
 COMPONENT_INSTALL_ARGS +=	PREFIX=$(PROTOUSRDIR)
 COMPONENT_INSTALL_ARGS +=	MANDIR=$(PROTOUSRSHAREMANDIR)
-COMPONENT_INSTALL_ARGS +=	INSTALL=/usr/gnu/bin/install
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
+COMPONENT_INSTALL_ARGS +=	INSTALL=$(INSTALL)
 
 # Here we just download the cached source archive. In order to update
 # the cache, we have to get the sources via CVS manually and ask gatekeepers
@@ -80,4 +69,3 @@
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
 REQUIRED_PACKAGES += system/header
-REQUIRED_PACKAGES += system/library
--- a/components/gamin/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gamin/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME         = gamin
 COMPONENT_VERSION      = 0.1.10
 COMPONENT_PROJECT_URL  = http://www.gnome.org/~veillard/gamin/
-COMPONENT_SRC          = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE      = $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH = \
     sha256:28085f0ae8be10eab582ff186af4fb0be92cc6c62b5cc19cd09b295c7c2899a1
 COMPONENT_ARCHIVE_URL  = https://people.gnome.org/~veillard/gamin/sources/gamin-0.1.10.tar.gz
@@ -37,11 +35,7 @@
 
 TPNO                   = 9483
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-ASLR_MODE = $(ASLR_ENABLE)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION = (cd $(@D) ; autoreconf -if; bzip2 NEWS; bzip2 ChangeLog; bzip2 COPYING)
 
@@ -71,9 +65,6 @@
 # Where the gam_server will be located
 CONFIGURE_OPTIONS    +=      --libexecdir="$(USRLIBDIR)"
 
-# Needed for 64 bit build - adds -m64
-CONFIGURE_OPTIONS    +=      CFLAGS="$(CFLAGS)"
-
 # Direct the python packages to vendor-packages dir instead of site-packages
 COMPONENT_BUILD_ARGS +=      PYTHON_SITE_PACKAGES=$(PYTHON_VENDOR_PACKAGES)
 
@@ -91,14 +82,5 @@
 	cp _gamin.so 64 \
 )
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(TEST_32_and_64)
-
 REQUIRED_PACKAGES += library/glib2
 REQUIRED_PACKAGES += runtime/python-27
-REQUIRED_PACKAGES += system/library
--- a/components/gawk/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gawk/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,19 +18,18 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gawk
 COMPONENT_VERSION=	4.1.3
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/gawk/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:e3cf55e91e31ea2845f8338bedd91e40671fc30e4d82ea147d220e687abda625
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/gawk/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/gawk
 
 # The additional gawk specific set of transforms to be applied to the
 # test results to try to normalize them.
@@ -39,35 +38,19 @@
 
 TPNO=			26217	
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# must build tests before using
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_PREFIX)/bin
+# Utility executables are intentionally delivered to the 32-bit lib directory.
 CONFIGURE_LIBDIR.64 =   $(CONFIGURE_PREFIX)/lib
 
 CONFIGURE_OPTIONS	+=	--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS	+=	--libexecdir=$(CONFIGURE_LIBDIR.$(BITS))
-CONFIGURE_OPTIONS	+=	CFLAGS="$(CFLAGS)"
 
-COMPONENT_SYSTEM_TEST_ARGS = AWKPROG=/usr/bin/gawk
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-# must build tests before using
-system-test:    build $(SYSTEM_TEST_64)
+COMPONENT_SYSTEM_TEST_ARGS = AWKPROG=$(USRBINDIR)/gawk
 
 REQUIRED_PACKAGES += library/libsigsegv
 REQUIRED_PACKAGES += library/readline
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/gcc3/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gcc3/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,18 +18,18 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 32
+# Build gcc with gcc
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
-# Build gcc with gcc
-COMPILER =	gcc
-
 COMPONENT_NAME=		gcc
 COMPONENT_VERSION=	3.4.3
 COMPONENT_PROJECT_URL=	http://gcc.gnu.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 # unfortunately we have our own "special" tarball and not the community version, so use that.
 COMPONENT_ARCHIVE_HASH=	\
     sha256:3ab488fe2df01bf54a57acd70e745266e19232edacf77512f77655296748e7a0
@@ -38,9 +38,8 @@
 
 TPNO=			17028
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+INSTALL_TARGET=
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 PARCH =		$(MACH:i386=i386-pc)
 GNU_ARCH =	$(PARCH:sparc=sparc-sun)-solaris$(SOLARIS_VERSION)
@@ -58,16 +57,15 @@
 LD_B_DIRECT=
 
 CONFIGURE_PREFIX =	/usr/gcc/3.4
+CONFIGURE_INFODIR =	$(CONFIGURE_PREFIX)/share/info
 
-CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_PREFIX)/share/info
-CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=/usr/bin/ld
+CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
+CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=$(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_ENV +=	CFLAGS="$(CFLAGS)"
+CONFIGURE_OPTIONS.sparc +=	--without-gnu-as --with-as=$(USRBINDIR)/as
+CONFIGURE_OPTIONS.i386 +=	--with-gnu-as --with-as=$(GNUBIN)/as
 
 COMPONENT_BUILD_ENV += STAGE1_CFLAGS="$(CFLAGS)"
 COMPONENT_BUILD_ENV += CFLAGS_FOR_TARGET="$(CFLAGS)"
@@ -75,10 +73,6 @@
 COMPONENT_BUILD_TARGETS = bootstrap
 
 # common targets
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
 $(PROTO_DIR)/.sedded:	$(INSTALL_32)
 	(cd $(@D) ; for file in libstdc++.la libsupc++.la ; do \
 		$(MV) usr/gcc/3.4/lib/$$file usr/gcc/3.4/lib/$$file.orig ; \
@@ -90,16 +84,11 @@
 
 install:	$(PROTO_DIR)/.sedded
 
-test: $(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 
 REQUIRED_PACKAGES += developer/assembler
 REQUIRED_PACKAGES += developer/gnu-binutils
 REQUIRED_PACKAGES += developer/lexer/flex
 REQUIRED_PACKAGES += developer/parser/bison
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc-3-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/gcc45/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gcc45/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gcc
 COMPONENT_VERSION=	4.5.2
 COMPONENT_PROJECT_URL=	http://gcc.gnu.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:07b880faf29f3f9d9c0953717002ac29f5d061427797d2487a7c9c169e6395b3
 COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/gcc/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
@@ -39,11 +40,9 @@
 
 TPNO=			4456
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-PATH=/usr/bin:/usr/gnu/bin:/usr/perl5/bin
+PATH=$(USRBINDIR):$(GNUBIN):/usr/perl5/bin
 
 PARCH =         $(MACH:i386=i386-pc)
 GNU_ARCH =      $(PARCH:sparc=sparc-sun)-solaris$(SOLARIS_VERSION)
@@ -53,6 +52,7 @@
 # This product bootstraps itself.  The gcc flags are not the same
 # as Studio flags. -O2 means different things for the two compilers
 CFLAGS=-g -O2 
+CXXFLAGS=$(CFLAGS)
 CFLAGS_FOR_BUILD=$(CFLAGS)
 
 # CC_BITS may get in the way
@@ -60,26 +60,24 @@
 
 CONFIG_SHELL = /bin/sh
 
-CONFIGURE_PREFIX = /usr/gcc/4.5
+CONFIGURE_PREFIX =	/usr/gcc/4.5
+CONFIGURE_INFODIR =	$(CONFIGURE_PREFIX)/share/info
 
-CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_PREFIX)/share/info
+CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS +=	--libexecdir=$(CONFIGURE_PREFIX)/lib
 CONFIGURE_OPTIONS +=	--enable-languages="c,c++,fortran,objc"
 CONFIGURE_OPTIONS +=	--enable-shared
-CONFIGURE_OPTIONS +=	--with-gmp-include=/usr/include/gmp
-CONFIGURE_OPTIONS +=	--with-mpfr-include=/usr/include/mpfr
-CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=/usr/bin/ld
+CONFIGURE_OPTIONS +=	--with-gmp-include=$(USRINCDIR)/gmp
+CONFIGURE_OPTIONS +=	--with-mpfr-include=$(USRINCDIR)/mpfr
+CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=$(LD)
 
 COMPONENT_POST_UNPACK_ACTION = \
     ( cd $(COMPONENT_DIR) ; \
 	tar xf testsuite-$(COMPONENT_VERSION).tar.gz )
 
 # 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_OPTIONS +=	CFLAGS="$(CFLAGS)"
+CONFIGURE_OPTIONS.sparc +=	--without-gnu-as --with-as=$(USRBINDIR)/as
+CONFIGURE_OPTIONS.i386 +=	--with-gnu-as --with-as=$(GNUBIN)/as
 
 # Keep ASLR disabled (the default) for gcc 4.5; build often core dumps with ASLR
 ASLR_MODE = $(ASLR_DISABLE)
@@ -98,16 +96,6 @@
 COMPONENT_TEST_CMD =	ulimit -Ss 16384 ; $(GMAKE)
 COMPONENT_TEST_ARGS =	-k -i
 
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32) 
-
-test:		$(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 
 REQUIRED_PACKAGES += developer/assembler
 REQUIRED_PACKAGES += developer/gnu-binutils
@@ -115,7 +103,6 @@
 REQUIRED_PACKAGES += library/mpc
 REQUIRED_PACKAGES += library/mpfr
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc-45-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/gcc47/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gcc47/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gcc
 COMPONENT_VERSION=	4.7.3
 COMPONENT_PROJECT_URL=	http://gcc.gnu.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:34a273937eb63ee710784b65bcf9fb3cfcd79d02848f80c75f8254abd14c79c8
 COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/gcc/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
@@ -34,12 +35,10 @@
 
 TPNO=			14467
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # The GNU compiler wants the GNU utilities.
-PATH=/usr/gnu/bin:/usr/bin:/usr/perl5/bin
+PATH=$(GNUBIN):$(USRBINDIR):/usr/perl5/bin
 
 PARCH =         $(MACH:i386=i386-pc)
 GNU_ARCH =      $(PARCH:sparc=sparc-sun)-solaris$(SOLARIS_VERSION)
@@ -68,9 +67,7 @@
 LD_MAP_NOEXDATA.i386=
 
 # /usr/lib/ld/map.noexbss  destroys SPARC
-ifeq ($(MACH),sparc)
-LD_MAP_NOEXBSS=
-endif
+LD_MAP_NOEXBSS.sparc=
 
 # for some reason the fixincludes target fails with bash on Solaris.
 CONFIG_SHELL = /bin/sh
@@ -78,27 +75,24 @@
 COMPONENT_BUILD_ENV += SHELL=$(CONFIG_SHELL)
 COMPONENT_BUILD_ENV += MAKESHELL=$(MAKESHELL)
 
-CONFIGURE_PREFIX = /usr/gcc/4.7
+CONFIGURE_PREFIX =	/usr/gcc/4.7
+CONFIGURE_INFODIR =	$(CONFIGURE_PREFIX)/share/info
 
-CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_PREFIX)/share/info
+CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS +=	--libexecdir=$(CONFIGURE_PREFIX)/lib
 CONFIGURE_OPTIONS +=	--enable-languages="c,c++,fortran,objc"
 CONFIGURE_OPTIONS +=	--enable-shared
-CONFIGURE_OPTIONS +=	--with-gmp-include=/usr/include/gmp
-CONFIGURE_OPTIONS +=	--with-mpfr-include=/usr/include/mpfr
-CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=/usr/bin/ld
+CONFIGURE_OPTIONS +=	--with-gmp-include=$(USRINCDIR)/gmp
+CONFIGURE_OPTIONS +=	--with-mpfr-include=$(USRINCDIR)/mpfr
+CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=$(LD)
 CONFIGURE_OPTIONS +=	--with-isl=no
 CONFIGURE_OPTIONS +=	--with-cloog=no
 
 CONFIGURE_ENV     += PYTHON="$(PYTHON)"
 
 # 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_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	CXXFLAGS="$(CXXFLAGS)"
+CONFIGURE_OPTIONS.sparc +=	--without-gnu-as --with-as=$(USRBINDIR)/as
+CONFIGURE_OPTIONS.i386 +=	--with-gnu-as --with-as=$(GNUBIN)/as
 
 COMPONENT_BUILD_TARGETS=bootstrap
 
@@ -115,12 +109,6 @@
 # Disable ASLR for now.
 ASLR_MODE=$(ASLR_DISABLE)
 
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
 # To ensure that all tests that are expected to pass actually
 # pass, we have to increase the stacksize limit to at least
 # 16MB. Otherwise we'll get spurious failures in the test
@@ -131,14 +119,9 @@
 COMPONENT_TEST_ARGS = -k -i
 COMPONENT_TEST_TARGETS = check check-target
 
-test:	$(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 
 REQUIRED_PACKAGES += library/gmp
 REQUIRED_PACKAGES += library/mpc
 REQUIRED_PACKAGES += library/mpfr
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/gcc48/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gcc48/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,19 +18,18 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 32
+COMPILER= gcc
 export PARFAIT_BUILD=no
-
-COMPILER=gcc
-
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gcc
 COMPONENT_VERSION=	4.8.2
 COMPONENT_PROJECT_URL=	http://gcc.gnu.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:2ea77114344a06c45dd5791275311e91d306545aa5ec9db31d24174f6965e880
 COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/gcc/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
@@ -38,12 +37,10 @@
 
 TPNO=			15448
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # The GNU compiler wants the GNU utilities.
-PATH=/usr/gnu/bin:/usr/bin:/usr/perl5/bin
+PATH=$(GNUBIN):$(USRBINDIR):/usr/perl5/bin
 
 PARCH =         $(MACH:i386=i386-pc)
 GNU_ARCH =      $(PARCH:sparc=sparc-sun)-solaris$(SOLARIS_VERSION)
@@ -74,9 +71,7 @@
 LD_MAP_NOEXDATA.i386=
 
 # /usr/lib/ld/map.noexbss  destroys SPARC
-ifeq ($(MACH),sparc)
-LD_MAP_NOEXBSS=
-endif
+LD_MAP_NOEXBSS.sparc=
 
 
 # for some reason the fixincludes target fails with bash on Solaris.
@@ -85,28 +80,25 @@
 COMPONENT_BUILD_ENV += SHELL=$(CONFIG_SHELL)
 COMPONENT_BUILD_ENV += MAKESHELL=$(MAKESHELL)
 
-CONFIGURE_PREFIX = /usr/gcc/4.8
+CONFIGURE_PREFIX =	/usr/gcc/4.8
+CONFIGURE_INFODIR =	$(CONFIGURE_PREFIX)/share/info
 
-CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_PREFIX)/share/info
+CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS +=	--libexecdir=$(CONFIGURE_PREFIX)/lib
 CONFIGURE_OPTIONS +=	--enable-languages="c,c++,fortran,objc"
 CONFIGURE_OPTIONS +=	--enable-shared
 CONFIGURE_OPTIONS +=	--with-build-config=no
-CONFIGURE_OPTIONS +=	--with-gmp-include=/usr/include/gmp
-CONFIGURE_OPTIONS +=	--with-mpfr-include=/usr/include/mpfr
-CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=/usr/bin/ld
+CONFIGURE_OPTIONS +=	--with-gmp-include=$(USRINCDIR)/gmp
+CONFIGURE_OPTIONS +=	--with-mpfr-include=$(USRINCDIR)/mpfr
+CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=$(LD)
 CONFIGURE_OPTIONS +=   --with-isl=no
 CONFIGURE_OPTIONS +=   --with-cloog=no
 
 CONFIGURE_ENV     += PYTHON="$(PYTHON)"
 
 # 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_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	CXXFLAGS="$(CXXFLAGS)"
+CONFIGURE_OPTIONS.sparc +=	--without-gnu-as --with-as=$(USRBINDIR)/as
+CONFIGURE_OPTIONS.i386 +=	--with-gnu-as --with-as=$(GNUBIN)/as
 
 COMPONENT_BUILD_TARGETS=bootstrap
 
@@ -123,12 +115,6 @@
 # Disable ASLR for now.
 ASLR_MODE=$(ASLR_DISABLE)
 
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
 # To ensure that all tests that are expected to pass actually
 # pass, we have to increase the stacksize limit to at least
 # 16MB. Otherwise we'll get spurious failures in the test
@@ -150,16 +136,11 @@
 COMPONENT_TEST_MASTER = \
 	$(COMPONENT_TEST_RESULTS_DIR)/results-$(MACH)-$(BITS).master
 
-test:	$(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 
 REQUIRED_PACKAGES += library/gmp
 REQUIRED_PACKAGES += library/mpc
 REQUIRED_PACKAGES += library/mpfr
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/gcc49/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gcc49/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,19 +18,18 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 export PARFAIT_BUILD=no
-
-COMPILER=gcc
-
+BUILD_BITS= 32
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gcc
 COMPONENT_VERSION=	4.9.3
 COMPONENT_PROJECT_URL=	http://gcc.gnu.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:e6c63b40877bc756cc7cfe6ca98013eb15f02ec6c8c2cf68e24533ad1203aaba
 COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/gcc/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
@@ -38,19 +37,18 @@
 
 TPNO=			24017
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # The GNU compiler wants the GNU utilities.
-PATH=/usr/gnu/bin:/usr/bin:/usr/perl5/bin
+PATH=$(GNUBIN):$(USRBINDIR):$(USRDIR)/perl5/bin
 
 PATCH_LEVEL := 0
 ENABLE_CLOOG := 1
 
-ENABLE_CXA_ATEXIT=yes
 ifeq ($(OS_VERSION), 5.11)
   ENABLE_CXA_ATEXIT=no
+else
+  ENABLE_CXA_ATEXIT=yes
 endif
 
 PARCH =         $(MACH:i386=i386-pc)
@@ -122,42 +120,43 @@
 COMPONENT_BUILD_ENV += MAKESHELL=$(MAKESHELL)
 COMPONENT_BUILD_ENV += LD_OPTIONS="$(LD_OPTIONS)"
 
-CONFIGURE_PREFIX = /usr/gcc/$(GCC_VERSION)
+CONFIGURE_PREFIX =	/usr/gcc/$(GCC_VERSION)
+CONFIGURE_INFODIR =	$(CONFIGURE_PREFIX)/share/info
 
-CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_PREFIX)/share/info
+CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS +=	--libexecdir=$(CONFIGURE_PREFIX)/lib
 CONFIGURE_OPTIONS +=	--enable-languages="c,c++,fortran,objc,lto"
 CONFIGURE_OPTIONS +=	--enable-shared
-CONFIGURE_OPTIONS +=	--enable-ssp=yes
-CONFIGURE_OPTIONS +=	--enable-nls=yes
+CONFIGURE_OPTIONS +=	--enable-ssp
+CONFIGURE_OPTIONS +=	--enable-nls
 
 # --enable-largefile=yes gets canceled or reset several times by
 #  several different ./configure's. We have to re-enable it via
 #  several different patches.
-CONFIGURE_OPTIONS +=	--enable-largefile=yes
-CONFIGURE_OPTIONS +=	--with-gmp-include=/usr/include/gmp
-CONFIGURE_OPTIONS +=	--with-mpfr-include=/usr/include/mpfr
-CONFIGURE_OPTIONS +=	--with-gnu-as --with-as=/usr/gnu/bin/as
-CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=/usr/bin/ld
-CONFIGURE_OPTIONS +=    --enable-multilib=yes
+CONFIGURE_OPTIONS +=	--enable-largefile
+CONFIGURE_OPTIONS +=	--with-gmp-include=$(USRINCDIR)/gmp
+CONFIGURE_OPTIONS +=	--with-mpfr-include=$(USRINCDIR)/mpfr
+CONFIGURE_OPTIONS +=	--with-gnu-as --with-as=$(GNUBIN)/as
+CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=$(USRBINDIR)/ld
+CONFIGURE_OPTIONS +=    --enable-multilib
 CONFIGURE_OPTIONS +=    --enable-threads=posix
-CONFIGURE_OPTIONS +=    --enable-tls=yes
-CONFIGURE_OPTIONS +=    --enable-libstdcxx-threads=yes
-CONFIGURE_OPTIONS +=    --enable-libstdcxx-pch=no
-CONFIGURE_OPTIONS +=    --enable-libstdcxx-visibility=no
+CONFIGURE_OPTIONS +=    --enable-tls
+CONFIGURE_OPTIONS +=    --enable-libstdcxx-threads
+CONFIGURE_OPTIONS +=    --disable-libstdcxx-pch
+CONFIGURE_OPTIONS +=    --disable-libstdcxx-visibility
 
 # This needs additional linker support.
-CONFIGURE_OPTIONS +=    --enable-initfini-array=yes
+CONFIGURE_OPTIONS +=    --enable-initfini-array
 
 # VTable verification needs additional linker support.
-CONFIGURE_OPTIONS +=    --enable-vtable-verify=no
-CONFIGURE_OPTIONS +=    --enable-comdat=yes
+CONFIGURE_OPTIONS +=    --disable-vtable-verify
+CONFIGURE_OPTIONS +=    --enable-comdat
 CONFIGURE_OPTIONS +=    --enable-__cxa_atexit=$(ENABLE_CXA_ATEXIT)
-CONFIGURE_OPTIONS +=    --enable-libstdcxx-debug=yes
-CONFIGURE_OPTIONS +=    --enable-libstdcxx-threads=yes
-CONFIGURE_OPTIONS +=    --enable-c99=yes
-CONFIGURE_OPTIONS +=    --enable-long-long=yes
-CONFIGURE_OPTIONS +=    --enable-wchar_t=yes
+CONFIGURE_OPTIONS +=    --enable-libstdcxx-debug
+CONFIGURE_OPTIONS +=    --enable-libstdcxx-threads
+CONFIGURE_OPTIONS +=    --enable-c99
+CONFIGURE_OPTIONS +=    --enable-long-long
+CONFIGURE_OPTIONS +=    --enable-wchar_t
 CONFIGURE_OPTIONS +=    --with-system-zlib
 
 # We'll enable ISL and CLooG as soon as CLooG integrates and is
@@ -172,15 +171,12 @@
   CONFIGURE_OPTIONS +=    --with-cloog-include=$(CLOOGINCLUDE)
   CONFIGURE_OPTIONS +=    --with-cloog-lib=$(CLOOGLIB)
 else
-  CONFIGURE_OPTIONS +=    --with-isl=no
-  CONFIGURE_OPTIONS +=    --with-cloog=no
+  CONFIGURE_OPTIONS +=    --without-isl
+  CONFIGURE_OPTIONS +=    --without-cloog
 endif
 
-CONFIGURE_OPTIONS +=    --with-build-time-tools=/usr/gnu/bin
+CONFIGURE_OPTIONS +=    --with-build-time-tools=$(GNUBIN)
 CONFIGURE_OPTIONS +=    --with-build-config=bootstrap-O2
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS +=    CPPFLAGS="$(CPPFLAGS)"
 
 CONFIGURE_ENV     += PYTHON="$(PYTHON)"
 
@@ -200,12 +196,6 @@
 # Disable ASLR for now.
 ASLR_MODE=$(ASLR_DISABLE)
 
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
 # To ensure that all tests that are expected to pass actually
 # pass, we have to increase the stacksize limit to at least
 # 16MB. Otherwise we'll get spurious failures in the test
@@ -216,17 +206,13 @@
 COMPONENT_TEST_ARGS = -k -i
 COMPONENT_TEST_TARGETS = check check-target
 
-COMPONENT_TEST_ENV += TCL_LIBRARY="/usr/lib/tcl8.5"
+COMPONENT_TEST_ENV += TCL_LIBRARY="$(USRLIBDIR)/tcl8.5"
 
 # We don't have DejaGNU in S11.
 ifeq ($(OS_VERSION), 5.12)
-  COMPONENT_TEST_ENV += DEJAGNULIBS="/usr/share/dejagnu"
+  COMPONENT_TEST_ENV += DEJAGNULIBS="$(USRSHAREDIR)/dejagnu"
 endif
 
-test:	$(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 ifeq ($(ENABLE_CLOOG), 1)
   REQUIRED_PACKAGES += library/isl
   REQUIRED_PACKAGES += library/cloog
@@ -238,8 +224,6 @@
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/linker
-
--- a/components/gcc53/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gcc53/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,19 +18,18 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 export PARFAIT_BUILD=no
-
-COMPILER=gcc
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gcc
 COMPONENT_VERSION=	5.3.0
 COMPONENT_PROJECT_URL=	http://gcc.gnu.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:b7f5f56bd7db6f4fcaa95511dbf69fc596115b976b5352c06531c2fc95ece2f4
 COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/gcc/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
@@ -38,12 +37,15 @@
 
 TPNO=			26089
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# Use gcc's default flags instead of userland's.
+CFLAGS=
+CPPFLAGS=
+CXXFLAGS=
+
+include $(WS_MAKE_RULES)/common.mk
 
 # The GNU compiler wants the GNU utilities.
-PATH=/usr/gnu/bin:/usr/bin:/usr/perl5/bin
+PATH=$(GNUBIN):$(USRBINDIR):$(USRDIR)/perl5/bin
 
 PARCH =         $(MACH64:amd64=x86_64-pc)
 GNU_ARCH =      $(PARCH:sparc=sparcv9-sun)-solaris$(SOLARIS_VERSION)
@@ -62,11 +64,8 @@
 # /usr/lib/ld/map.noexdata destroys Intel
 LD_MAP_NOEXDATA.i386=
 
-# /usr/lib/ld/map.noexbss  destroys SPARC
-ifeq ($(MACH),sparc)
-LD_MAP_NOEXBSS=
-endif
-
+# /usr/lib/ld/map.noexbss destroys SPARC
+LD_MAP_NOEXBSS.sparc=
 
 # for some reason the fixincludes target fails with bash on Solaris.
 CONFIG_SHELL = /bin/sh
@@ -74,7 +73,8 @@
 COMPONENT_BUILD_ENV += SHELL=$(CONFIG_SHELL)
 COMPONENT_BUILD_ENV += MAKESHELL=$(MAKESHELL)
 
-CONFIGURE_PREFIX = /usr/gcc/5.3
+CONFIGURE_PREFIX =	/usr/gcc/$(GCC_VERSION)
+CONFIGURE_INFODIR =	$(CONFIGURE_PREFIX)/share/info
 
 # We are going to build the 64-bit version of the compiler and tools, but we
 # want it to install in the normal .../{bin|lib}/... locations.  GCC will
@@ -83,7 +83,7 @@
 CONFIGURE_BINDIR.64 = $(CONFIGURE_PREFIX)/bin
 CONFIGURE_LIBDIR.64 = $(CONFIGURE_PREFIX)/lib
 
-CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_PREFIX)/share/info
+CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS +=	--libexecdir=$(CONFIGURE_PREFIX)/lib
 CONFIGURE_OPTIONS +=	--enable-languages="c,c++,fortran,objc"
 CONFIGURE_OPTIONS +=	--enable-shared
@@ -91,10 +91,10 @@
 CONFIGURE_OPTIONS +=	--disable-rpath
 CONFIGURE_OPTIONS +=	--with-system-zlib
 CONFIGURE_OPTIONS +=	--with-build-config=no
-CONFIGURE_OPTIONS +=	--with-gmp-include=/usr/include/gmp
-CONFIGURE_OPTIONS +=	--with-mpfr-include=/usr/include/mpfr
-CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=/usr/bin/ld
-CONFIGURE_OPTIONS +=	--with-gnu-as --with-as=/usr/gnu/bin/as
+CONFIGURE_OPTIONS +=	--with-gmp-include=$(USRINCDIR)/gmp
+CONFIGURE_OPTIONS +=	--with-mpfr-include=$(USRINCDIR)/mpfr
+CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=$(USRBINDIR)/ld
+CONFIGURE_OPTIONS +=	--with-gnu-as --with-as=$(GNUBIN)/as
 
 # If the compiler used to build matches the compiler being built, there is no
 # need for a 3 stage build.
@@ -112,22 +112,12 @@
 
 CONFIGURE_ENV     += PYTHON="$(PYTHON)"
 
-CONFIGURE_ENV +=	CXX_FOR_BUILD="$(CXX) $(CC_BITS)"
-
 # compile python modules
 COMPONENT_POST_INSTALL_ACTION = \
 	( gfind $(PROTO_DIR)$(CONFIGURE_PREFIX) -name '*.py' | \
 	  xargs -n 1 dirname | sort -u | \
 	  xargs $(PYTHON) -m compileall )
 
-ASLR_MODE=$(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
 # To ensure that all tests that are expected to pass actually
 # pass, we have to increase the stacksize limit to at least
 # 16MB. Otherwise we'll get spurious failures in the test
@@ -138,11 +128,11 @@
 COMPONENT_TEST_ARGS = -k -i
 COMPONENT_TEST_TARGETS = check check-target
 
-COMPONENT_TEST_ENV += TCL_LIBRARY="/usr/lib/tcl8.5"
+COMPONENT_TEST_ENV += TCL_LIBRARY="$(USRLIBDIR)/tcl8.5"
 
 # We don't have DejaGNU in S11.
 ifeq ($(OS_VERSION), 5.12)
-  COMPONENT_TEST_ENV += DEJAGNULIBS="/usr/share/dejagnu"
+  COMPONENT_TEST_ENV += DEJAGNULIBS="$(USRSHAREDIR)/dejagnu"
 endif
 
 COMPONENT_TEST_TRANSFORMS += \
@@ -156,11 +146,6 @@
 COMPONENT_TEST_MASTER = \
 	$(COMPONENT_TEST_RESULTS_DIR)/results-$(MACH)-$(BITS).master
 
-test:	$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += developer/test/dejagnu
 REQUIRED_PACKAGES += library/gmp
 REQUIRED_PACKAGES += library/isl
@@ -170,5 +155,4 @@
 REQUIRED_PACKAGES += runtime/tcl-8
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/gd2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gd2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,17 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gd2
 COMPONENT_VERSION=      2.0.35
 COMPONENT_SRC_NAME=	gd
-COMPONENT_SRC=          $(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  http://www.libgd.org/
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 # this is the hash of the payload because it appears to be re-compressed
 # periodically causing it to have a new hash value.
 COMPONENT_ARCHIVE_HASH= \
@@ -37,10 +38,7 @@
 
 TPNO=			8786
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 
@@ -51,9 +49,6 @@
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)"
-
 CONFIGURE_OPTIONS  +=           --includedir=$(CONFIGURE_INCLUDEDIR)/gd2
 CONFIGURE_OPTIONS  +=           --disable-static
 CONFIGURE_OPTIONS  +=           --disable-rpath
@@ -62,6 +57,11 @@
 
 COMPONENT_PREP_ACTION = (cd $(@D) ; autoreconf -if)
 
+# We only deliver 64-bit binaries and in /usr/bin.
+COMPONENT_POST_INSTALL_ACTION.32 += \
+	$(GSED) -i -e 's|$(USRBINDIR)/$(MACH32)|$(USRBINDIR)|' \
+		$(PROTOUSRBINDIR)/$(MACH32)/gdlib-config;
+
 COMPONENT_TEST_CMD = \
 	cmake -DBUILD_TEST=1 .; \
 	(cd $(@D)/tests; gmake); \
@@ -78,23 +78,10 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test:	$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += image/library/libpng
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/fontconfig
 REQUIRED_PACKAGES += system/library/freetype-2
 REQUIRED_PACKAGES += system/library/math
--- a/components/gd2/gd2.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gd2/gd2.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -37,21 +37,23 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2007/166
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+# gdlib-config contains embedded paths, so swap these around.
+file usr/bin/gdlib-config path=usr/bin/$(MACH64)/gdlib-config
 #
 #
-file usr/bin/$(MACH64)/annotate path=usr/bin/annotate
-file usr/bin/$(MACH64)/gd2copypal path=usr/bin/gd2copypal
-file usr/bin/$(MACH64)/gd2time path=usr/bin/gd2time
-file usr/bin/$(MACH64)/gd2togif path=usr/bin/gd2togif
-file usr/bin/$(MACH64)/gd2topng path=usr/bin/gd2topng
-file usr/bin/$(MACH64)/gdcmpgif path=usr/bin/gdcmpgif
-file usr/bin/$(MACH64)/gdlib-config path=usr/bin/gdlib-config
-file usr/bin/$(MACH64)/gdparttopng path=usr/bin/gdparttopng
-file usr/bin/$(MACH64)/gdtopng path=usr/bin/gdtopng
-file usr/bin/$(MACH64)/giftogd2 path=usr/bin/giftogd2
-file usr/bin/$(MACH64)/pngtogd path=usr/bin/pngtogd
-file usr/bin/$(MACH64)/pngtogd2 path=usr/bin/pngtogd2
-file usr/bin/$(MACH64)/webpng path=usr/bin/webpng
+file path=usr/bin/annotate
+file path=usr/bin/gd2copypal
+file path=usr/bin/gd2time
+file path=usr/bin/gd2togif
+file path=usr/bin/gd2topng
+file path=usr/bin/gdcmpgif
+file usr/bin/$(MACH32)/gdlib-config path=usr/bin/gdlib-config
+file path=usr/bin/gdparttopng
+file path=usr/bin/gdtopng
+file path=usr/bin/giftogd2
+file path=usr/bin/pngtogd
+file path=usr/bin/pngtogd2
+file path=usr/bin/webpng
 file path=usr/include/gd2/entities.h
 file path=usr/include/gd2/gd.h
 file path=usr/include/gd2/gd_io.h
--- a/components/gdb/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gdb/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,33 +20,26 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 # There are a large number of macros in the GCB code written
 # specifically for GCC's preprocessor. Studio does not expand
 # these macros the same way GCC does, and the resulting gdb is
 # not usable. Building gdb with a GCC >= 4.7.2 produces very
 # good results, even on SPARC.
-COMPILER=gcc
-
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gdb
 COMPONENT_VERSION=	7.6
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/gdb/$(COMPONENT_ARCHIVE)
-COMPONENT_PROJECT_URL =	http://www.gnu.org/software/gdb/
-COMPONENT_BUGDB=	utility/gdb
 
 TPNO=			17258
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 
 # GDB wants the GNU utilities
@@ -60,16 +53,7 @@
 
 CFLAGS = $(CC_BITS) $(CFLAGS_EXTRA) $(CFLAGS_$(MACH))
 CXXFLAGS = $(CC_BITS) $(CFLAGS_EXTRA) $(CFLAGS_$(MACH))
-CPPFLAGS = -D_REENTRANT -I/usr/include/ncurses
-
-# `echo $(CFLAGS)` and `echo $(LDFLAGS)` used to
-# work around problem with extra blank characters
-# inserted into configrue option strings during
-# nested configure invocations within the gdb build.
-
-CONFIGURE_ENV += CFLAGS="`echo $(CFLAGS)`"
-CONFIGURE_ENV += CPPFLAGS="`echo $(CPPFLAGS)`"
-CONFIGURE_ENV += LDFLAGS="`echo $(LDFLAGS)`"
+CPPFLAGS = -D_REENTRANT -I$(USRINCDIR)/ncurses
 
 CONFIGURE_OPTIONS += --with-x=no
 CONFIGURE_OPTIONS += --with-curses
@@ -78,7 +62,7 @@
 CONFIGURE_OPTIONS += --enable-tui
 CONFIGURE_OPTIONS += --without-auto-load-safe-path
 CONFIGURE_OPTIONS += --with-python=yes
-CONFIGURE_OPTIONS += --with-libexpat-prefix=/usr/lib
+CONFIGURE_OPTIONS += --with-libexpat-prefix=$(USRLIBDIR)
 CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
 
 # Generate the newly added Solaris instruction and
@@ -94,7 +78,7 @@
       $(PYTHON) -m compileall . ; \
     cd  $(PROTOUSRDIR)/share/gdb/python/gdb/function ; \
       $(PYTHON) -m compileall . ; \
-    cd  $(PROTOUSRBINDIR64)/ ; \
+    cd  $(PROTOUSRBINDIR)/ ; \
       /usr/bin/strip -x gdb ; \
     cd  $(COMPONENT_DIR) ; \
       $(INSTALL) -m 0755 $(COMPONENT_DIR)/Solaris/gdbtui \
@@ -130,24 +114,11 @@
 # altering the results of the debugging experiment.
 ASLR_MODE=$(ASLR_DISABLE)
 
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += compress/xz
 REQUIRED_PACKAGES += library/expat
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += library/readline
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += text/texinfo
--- a/components/gdb/gdb.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gdb/gdb.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,7 +35,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=LSARC/2009/492
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/gdb path=usr/bin/gdb
+file path=usr/bin/gdb
 file path=usr/bin/gdbtui mode=0555
 file path=usr/include/gdb/jit-reader.h
 file path=usr/share/gdb/python/gdb/__init__.py
--- a/components/gdbm/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gdbm/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,50 +18,32 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gdbm
 COMPONENT_VERSION=	1.8.3
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/gdbm/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:cc340338a2e28b40058ab9eb5354a21d53f88a1582ea21ba0bb185c37a281dc9
-COMPONENT_ARCHIVE_URL=	ftp://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/libgdbm
 
 TPNO=			8440
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 CONFIGURE_OPTIONS +=	--disable-static
 CONFIGURE_OPTIONS +=	--enable-shared
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 
 COMPONENT_INSTALL_ENV +=	INSTALL_ROOT="$(PROTO_DIR)"
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
 $(SKIP_TEST_AT_TOP_LEVEL)
 
 # common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
 # The tests build but they are not run automatically.  You have to
 # manually run the tests (testdbm, testgdbm, etc) by hand and verify
 # the DB operations. (No master test files).
 COMPONENT_TEST_TARGETS =	progs
-test:	$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/getopt/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/getopt/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,13 @@
 #
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		getopt
 COMPONENT_VERSION=	1.1.6
 COMPONENT_PROJECT_URL=	http://frodo.looijaard.name/project/getopt/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:d0bf1dc642a993e7388a1cddfb9409bed375c21d5278056ccca3a0acd09dc5fe
 COMPONENT_ARCHIVE_URL=	http://frodo.looijaard.name/system/files/software/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
@@ -37,20 +34,21 @@
 
 TPNO=			21550
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 # getopt doesn't use configure, override the hard-wired values in the Makefile.
-CC += "$(CC_BITS)"
 COMPONENT_BUILD_ARGS+=	CC="$(CC)"
 COMPONENT_BUILD_ARGS+=	CFLAGS="$(CFLAGS)"
+COMPONENT_BUILD_ARGS+=	LDFLAGS="$(LDFLAGS)"
 COMPONENT_BUILD_ARGS+=	LIBCGETOPT=0
 
-COMPONENT_INSTALL_ARGS+=	prefix=/usr/gnu
-COMPONENT_INSTALL_ARGS+=	mandir=/usr/gnu/share/man
+COMPONENT_INSTALL_ARGS+=	prefix="$(USRGNUDIR)"
+COMPONENT_INSTALL_ARGS+=	mandir="$(GNUSHAREMAN)"
 COMPONENT_INSTALL_ARGS+=	CC="$(CC)"
 COMPONENT_INSTALL_ARGS+=	CFLAGS="$(CFLAGS)"
+COMPONENT_INSTALL_ARGS+=	LDFLAGS="$(LDFLAGS)"
 
 # Stupid source tarball distribution contains two .o files.
 COMPONENT_POST_UNPACK_ACTION= \
@@ -65,23 +63,10 @@
 	'-e "s|^make\[1\].*$$|XXX_CC_XXX|g" ' \
 	'-e "/^XXX_CC_XXX$$/d" '
 
-COMPONENT_TEST_ENV +=		PATH=$(BUILD_DIR_$(BITS)):$(GNUBIN):/usr/bin
+COMPONENT_TEST_ENV +=		PATH=$(BUILD_DIR_$(BITS)):$(GNUBIN):$(USRBINDIR)
 COMPONENT_TEST_TARGETS =	test
 
-COMPONENT_SYSTEM_TEST_ENV +=	PATH=$(GNUBIN):/usr/bin/
+COMPONENT_SYSTEM_TEST_ENV +=	PATH=$(GNUBIN):$(USRBINDIR)
 COMPONENT_SYSTEM_TEST_CMD =	./run-tests
-COMPONENT_SYSTEM_TEST_ARGS =	/usr/gnu/bin/getopt
+COMPONENT_SYSTEM_TEST_ARGS =	$(GNUBIN)/getopt
 COMPONENT_SYSTEM_TEST_TARGETS =
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TEST_64)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/gettext/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gettext/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,27 +20,22 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gettext
 COMPONENT_VERSION=	0.19.3
 IPS_PKG_NAME=		text/gnu-gettext
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/gettext/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f6fdb29c9ee8ce85c7e574f60ff64fa91cf0f4f018437dfe800227d15595db46
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/pub/gnu/gettext/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gnu-gettext
 
 TPNO=			20141
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 CONFIGURE_OPTIONS  +=		--disable-java
 CONFIGURE_OPTIONS  +=		--disable-libasprintf
@@ -48,14 +43,10 @@
 CONFIGURE_OPTIONS  +=		--disable-openmp
 CONFIGURE_OPTIONS  +=		--disable-static
 CONFIGURE_OPTIONS  +=		--disable-shared
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 
 # Fixes coredump in gnulib-test/test-localename test
 CONFIGURE_OPTIONS  +=		ac_cv_func_newlocale=no
 
-# Commands go under /usr/bin so set bindir correctly.
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
-
 # Tests should run in a clean environment
 COMPONENT_TEST_ENV =	-i
 COMPONENT_TEST_ENV +=	PATH=${PATH}:$(SPRO_VROOT)/bin
@@ -67,20 +58,6 @@
     '-e "s|^.*DEPDIR=.deps.*$$|XXX_CC_XXX|g" ' \
     '-e "/^XXX_CC_XXX$$/d" '
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += developer/icu
 REQUIRED_PACKAGES += developer/vala
 REQUIRED_PACKAGES += library/expat
@@ -90,6 +67,5 @@
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += source/locale/localedef
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/locale/extra
--- a/components/ggrep/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ggrep/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,40 +18,31 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-BITS=64
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		grep
 COMPONENT_VERSION=	2.22
-COMPONENT_PROJECT_URL=	http://gnu.org/software/grep/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
-
 COMPONENT_ARCHIVE_HASH=	\
     sha256:ca91d22f017bfcb503d4bc3b44295491c89a33a3df0c3d8b8614f2d3831836eb
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/grep/$(COMPONENT_ARCHIVE)
-
 COMPONENT_BUGDB=	utility/ggrep
 
 TPNO=			26437
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= $(SOURCE_DIR)/.system-test-patched configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # We need to be able to return from void functions
-CFLAGS	+=			$(studio_FEATURES_EXTENSIONS)
+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)"
-
-# Enable aslr for this component
-ASLR_MODE = $(ASLR_ENABLE)
+CONFIGURE_PREFIX   = $(USRGNUDIR)
+CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
+CONFIGURE_OPTIONS += --localedir=$(USRSHARELOCALEDIR)
 
 # Needed for "gmake test" to work.
 # SHELLOPTS is exported via make-rules/shared-macros.mk,
@@ -88,24 +79,11 @@
 
 # if we previously patched the source for the system-test target,
 # ensure we rebuild without that patch
-test-check:
+COMPONENT_PRE_TEST_ACTION += \
 	if [ -e $(SOURCE_DIR)/.system-test-patched ]; then \
 	   cd $(COMPONENT_DIR); \
 	   $(GMAKE) clean build; \
 	fi
 
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		test-check $(TEST_64)
-
-system-test:    $(SOURCE_DIR)/.system-test-patched configure $(SYSTEM_TEST_64)
-
-
 REQUIRED_PACKAGES += library/pcre
 REQUIRED_PACKAGES += shell/bash
-REQUIRED_PACKAGES += system/library
--- a/components/ggrep/gnu-grep.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ggrep/gnu-grep.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -43,9 +43,9 @@
 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
+file path=usr/gnu/share/man/man1/egrep.1
+file path=usr/gnu/share/man/man1/fgrep.1
+file path=usr/gnu/share/man/man1/grep.1
 link path=usr/sfw/bin/gegrep target=../../gnu/bin/egrep
 link path=usr/sfw/bin/gfgrep target=../../gnu/bin/fgrep
 link path=usr/sfw/bin/ggrep target=../../gnu/bin/grep
--- a/components/ghostscript/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ghostscript/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -19,29 +19,28 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+# Prefer 32-bit due to ghostcript's hybrid build system.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 
 COMPONENT_NAME=         ghostscript
 COMPONENT_VERSION=      9.00
 COMPONENT_PROJECT_URL=	http://ghostscript.com/
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:9e754c315d68d91a65ef208b9a8bda1fb57e45a7be18aa9397acfcc5ff59de16
 COMPONENT_ARCHIVE_URL=  $(COMPONENT_PROJECT_URL)releases/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/ghostscript
 
 TPNO=			3796
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/configure.mk
+COMMON_TARGETS= no
+include $(WS_MAKE_RULES)/common.mk
 
-PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 
 # ghostscript uses a non-standard hybrid-build to build both 32 and 64-bit;
 # override these to prevent build failure.
@@ -66,7 +65,7 @@
 
 # config env
 CONFIGURE_ENV += LDFLAGS_SO="-G"
-CONFIGURE_ENV += CUPSCONFIG=/usr/bin/cups-config
+CONFIGURE_ENV += CUPSCONFIG=$(USRBINDIR)/cups-config
 
 GS_VARIANT = $(BUILD_DIR)/$(MACH32)
 GS_VARIANT_64 = $(BUILD_DIR)/$(MACH64)
@@ -103,6 +102,9 @@
 
 CONFIGURE_SCRIPT = ./configure
 
+# ASLR disabled until sufficient testing can be performed.
+ASLR_MODE= $(ASLR_DISABLE)
+
 # configure gs and ijs
 configure: $(VARIANTS:%=%/.configured)
 
@@ -126,7 +128,6 @@
 REQUIRED_PACKAGES += print/cups
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/fontconfig
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
--- a/components/git/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/git/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -28,12 +28,10 @@
 COMPONENT_NAME=		git
 COMPONENT_VERSION=	2.7.4
 COMPONENT_PROJECT_URL=	http://git-scm.com/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:dee574defbe05ec7356a0842ddbda51315926f2fa7e39c2539f2c3dcc52e457b
 COMPONENT_ARCHIVE_URL=	https://www.kernel.org/pub/software/scm/git/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/git
 
 TPNO=			27482
 
@@ -48,9 +46,7 @@
 UNPACK_ARGS_1 =		-r $(COMPONENT_SRC_1)
 PKG_PROTO_DIRS +=	$(COMPONENT_SRC_1)
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 PKG_HARDLINKS +=	usr/lib/git-core/git
 PKG_HARDLINKS +=	usr/lib/git-core/git-cvsserver
@@ -61,18 +57,15 @@
 
 PKG_MACROS +=		PYVER=$(PYTHON_VERSION)
 
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
 CONFIGURE_LIBDIR.64 =	$(CONFIGURE_PREFIX)/lib
-
 CONFIGURE_SCRIPT    =	$(@D)/configure
-CONFIGURE_PREFIX    =	/usr
-CONFIGURE_OPTIONS  +=	--sysconfdir=/etc
-CONFIGURE_OPTIONS  +=	--libexecdir=/usr/lib
+CPPFLAGS += "-I/usr/include/pcre"
+
+CONFIGURE_OPTIONS  +=	--sysconfdir=$(ETCDIR)
+CONFIGURE_OPTIONS  +=	--libexecdir=$(USRLIBDIR)
 CONFIGURE_OPTIONS  +=	--with-libpcre
 CONFIGURE_OPTIONS  +=	--with-perl=$(PERL)
 CONFIGURE_OPTIONS  +=	--with-python=$(PYTHON.$(PYTHON_VERSION))
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=	CPPFLAGS="-I/usr/include/pcre"
 
 # Build fails if environment variable PROFILE is set.
 COMPONENT_BUILD_ENV+=	PROFILE=
@@ -117,17 +110,6 @@
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 COMPONENT_PRE_CONFIGURE_ACTION += ; (cd $(@D); $(GMAKE) configure)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
 
 REQUIRED_PACKAGES += crypto/gnupg
 REQUIRED_PACKAGES += library/expat
@@ -138,6 +120,5 @@
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += web/curl
 REQUIRED_PACKAGES += web/server/apache-24
--- a/components/gnome/evince/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnome/evince/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,68 +22,49 @@
 #
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		evince
 COMPONENT_VERSION=	2.30.3
 COMPONENT_PROJECT_URL=	https://wiki.gnome.org/Apps/Evince
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
 	sha256:1ac6fb056c50a6298b31f696e196b5b940098c46f35dec85e69ea0c5d5b015de
 COMPONENT_ARCHIVE_URL=	http://ftp.gnome.org/pub/GNOME/sources/$(COMPONENT_NAME)/2.30/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	gnome/evince
 TPNO=			8693
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Need to pick up the GNU version of xgettext.
-PATH=/usr/gnu/bin:/usr/bin
+PATH=$(GNUBIN):$(USRBINDIR)
 
 COMPONENT_PREP_ACTION = \
 	(cd $(@D) ; \
-	libtoolize --force ; \
+	libtoolize --force --copy ; \
 	intltoolize --force --copy --automake ; \
 	aclocal -I . ; \
 	autoheader ; \
 	automake -a -c -f ; \
 	autoconf )
 
-CFLAGS +=	"-I/usr/include/libxml2"
+CFLAGS +=	"-I$(USRINCDIR)/libxml2"
 LDFLAGS +=	$(CC_BITS) -lgmodule-2.0 -lm
-CXX +=		$(studio_NORUNPATH)
 
-CONFIGURE_OPTIONS +=	CXX="$(CXX)"
-CONFIGURE_OPTIONS +=    CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=    LDFLAGS="$(LDFLAGS)"
 CONFIGURE_OPTIONS +=	--libexecdir="$(USRLIB)"
 CONFIGURE_OPTIONS +=	--sysconfdir="$(ETCDIR)"
-CONFIGURE_OPTIONS +=   --disable-comics
-CONFIGURE_OPTIONS +=   --enable-thumbnailer
+CONFIGURE_OPTIONS +=	--disable-comics
+CONFIGURE_OPTIONS +=	--enable-thumbnailer
 
 # Assumes GNU msgfmt is in PATH.
 COMPONENT_BUILD_ENV += PATH="$(PATH)"
 
-COMPONENT_BUILD_ENV += LDFLAGS="$(studio_NORUNPATH)"
+COMPONENT_BUILD_ENV += LDFLAGS="$(LDFLAGS) $(studio_NORUNPATH)"
 
 # Always show the build and link lines for easier debugging.
 COMPONENT_BUILD_ARGS += V=1
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
 REQUIRED_PACKAGES += gnome/config/gconf
 REQUIRED_PACKAGES += gnome/file-manager/nautilus
 REQUIRED_PACKAGES += image/library/libtiff
@@ -95,7 +76,6 @@
 REQUIRED_PACKAGES += library/glib2
 REQUIRED_PACKAGES += library/gnome/gnome-keyring
 REQUIRED_PACKAGES += library/libxml2
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/libdbus-glib
 REQUIRED_PACKAGES += system/library/math
--- a/components/gnu-gs-fonts-other/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnu-gs-fonts-other/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -19,15 +19,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= NO_ARCH
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         gnu-gs-fonts-other
 COMPONENT_VERSION=      6.0
 COMPONENT_PROJECT_URL=	http://sourceforge.net/projects/gs-fonts/
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:8146cccc4699fe9dab841446bdd17039f4769c903eceb54409188b920754aab3
 COMPONENT_ARCHIVE_URL=  http://softlayer.dl.sourceforge.net/sourceforge/gs-fonts/$(COMPONENT_ARCHIVE)
@@ -40,10 +41,8 @@
 
 PROTOGSSHAREDIR=$(PROTOUSRSHAREDIR)/ghostscript
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+BUILD_STYLE= archive
+include $(WS_MAKE_RULES)/common.mk
 
 # untar the tar ball and apply the patches
 build:		$(SOURCE_DIR)/.prep
@@ -57,6 +56,3 @@
 
 system-test:    $(NO_TESTS)
 
-clean::
-	$(RM) -r $(BUILD_DIR)
-
--- a/components/gnu-gs-fonts-std/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnu-gs-fonts-std/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -19,15 +19,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= NO_ARCH
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         gnu-gs-fonts-std
 COMPONENT_VERSION=      6.0
 COMPONENT_PROJECT_URL=	http://sourceforge.net/projects/gs-fonts/
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:4cef38d05aa958dfee4dabb8d1599b8ad2b2347413b7895c94d8882c8a0fb9d3
 COMPONENT_ARCHIVE_URL=  http://softlayer.dl.sourceforge.net/sourceforge/gs-fonts/$(COMPONENT_ARCHIVE)
@@ -40,10 +41,8 @@
 
 PROTOGSSHAREDIR=$(PROTOUSRSHAREDIR)/ghostscript
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+BUILD_STYLE= archive
+include $(WS_MAKE_RULES)/common.mk
 
 # untar the tar ball and apply the patches
 build:  $(SOURCE_DIR)/.prep
@@ -57,6 +56,3 @@
 
 system-test:    $(NO_TESTS)
 
-clean::
-	$(RM) -r $(BUILD_DIR)
-
--- a/components/gnump/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnump/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -21,17 +21,15 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
-PATH=$(dir $(CC)):/usr/bin:/usr/gnu/bin
+PATH=$(dir $(CC)):$(USRBINDIR):$(GNUBIN)
 
 COMPONENT_NAME=		gnump
 COMPONENT_VERSION=      4.3.2
 COMPONENT_PROJECT_URL=	http://gmplib.org/
 COMPONENT_SRC_NAME=	gmp
-COMPONENT_SRC=          $(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:7be3ad1641b99b17f6a8be6a976f1f954e997c41e919ad7e0c418fe848c13c97
 COMPONENT_ARCHIVE_URL=  http://ftp.gnu.org/gnu/gmp/$(COMPONENT_ARCHIVE)
@@ -39,14 +37,6 @@
 
 TPNO=			16955
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
-
-MCS = mcs
-STRIP = strip
-
 # We need to build an extra static version of this library for
 # GRUB/Wanboot support.
 
@@ -62,6 +52,14 @@
 
 endif
 
+CONFIGURE_TARGET=
+BUILD_TARGET=
+INSTALL_TARGET=
+include $(WS_MAKE_RULES)/gnu-component.mk
+
+MCS = mcs
+STRIP = strip
+
 PATCH_LEVEL = 0
 
 CLEAN_PATHS += libgmp.pc libgmpxx.pc
@@ -121,15 +119,8 @@
 MPN_32 = $(MPN32_$(MACH))
 MPN_64 = $(MPN64_$(MACH))
 GM4 = /usr/bin/gm4
-GSED = /usr/bin/gsed
-# libgmpxx.so.4 always gets built with unnecessary paths in RUNPATH/RPATH
-ELFEDIT = /usr/bin/elfedit
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_ENV += CXXFLAGS="$(CC_BITS) $(CXXFLAGS)"
 CONFIGURE_ENV += LD="$(CC) $(CFLAGS) $(LDFLAGS)"
-CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)"
 CONFIGURE_ENV += CXXLD="$(CXX) $(CC_BITS) $(CXXFLAGS) $(LDFLAGS)"
 CONFIGURE_ENV += CPP="$(CC) $(CPPFLAGS) $(CFLAGS) -E"
 CONFIGURE_ENV += CPP_FOR_BUILD="$(CC) $(CPPFLAGS) $(CFLAGS) -E"
@@ -141,8 +132,8 @@
 CONFIGURE_ENV += ABI="$(BITS)"
 CONFIGURE_ENV += "MPN_PATH=$(MPN_$(BITS))"
 
-CONFIGURE_OPTIONS += --includedir=/usr/include/gmp
-CONFIGURE_OPTIONS += --localstatedir=/var
+CONFIGURE_OPTIONS += --includedir=$(USRINCDIR)/gmp
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS.shared += --enable-shared
 CONFIGURE_OPTIONS.shared += --disable-static
 CONFIGURE_OPTIONS += --disable-libtool-lock
@@ -166,13 +157,9 @@
 CONFIGURE_OPTIONS.wanboot += --without-readline
 CONFIGURE_OPTIONS.wanboot += --without-pic
 
-PROTOUSRSHAREINFODIR = $(PROTOUSRSHAREDIR)/info
 PROTOUSRSHAREHTMLDIR = $(PROTOUSRSHAREDIR)/doc/gmp/html
-PROTOUSRSHAREMAN3DIR = $(PROTOUSRSHAREDIR)/man/man3
-PROTOUSRINCLUDEDIR = $(PROTOUSRDIR)/include
-PROTOPKGCONFIGDIR = $(PROTOUSRLIBDIR)/pkgconfig
-PROTOPKGCONFIGDIR64 = $(PROTOUSRLIBDIR64)/pkgconfig
 
+# libgmpxx.so.4 always gets built with unnecessary paths in RUNPATH/RPATH
 COMPONENT_POST_INSTALL_ACTION.shared = \
     ( $(MKDIR) $(PROTOUSRSHAREHTMLDIR) ; \
       $(MKDIR) $(PROTOUSRSHAREMAN3DIR) ; \
@@ -191,8 +178,8 @@
       $(GSED) -e "s/MACH64/$(MACH64)/g" \
 	$(COMPONENT_DIR)/Solaris/libgmpxx-64.pc > \
 	    $(COMPONENT_DIR)/libgmpxx.pc ; \
-      $(MV) $(PROTOUSRINCLUDEDIR)/gmp.h $(PROTOUSRINCLUDEDIR)/gmp/ ; \
-      $(MV) $(PROTOUSRINCLUDEDIR)/mp.h $(PROTOUSRINCLUDEDIR)/gmp/ ; \
+      $(MV) $(PROTOUSRINCDIR)/gmp.h $(PROTOUSRINCDIR)/gmp/ ; \
+      $(MV) $(PROTOUSRINCDIR)/mp.h $(PROTOUSRINCDIR)/gmp/ ; \
       $(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/index.html \
 	$(PROTOUSRSHAREHTMLDIR)/ ; \
       $(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/libgmp.pc \
@@ -207,15 +194,13 @@
 	$(PROTOUSRSHAREMAN3DIR)/ )
 
 COMPONENT_POST_INSTALL_ACTION.wanboot = \
-      ( $(MKDIR) $(PROTO_DIR)/usr/lib/grub/wanboot; \
-	$(MV) $(PROTO_DIR)/usr/lib/amd64/libgmp.a $(PROTO_DIR)/usr/lib/grub/wanboot/libgmp.a; \
-	$(STRIP) -x $(PROTO_DIR)/usr/lib/grub/wanboot/libgmp.a; \
-	$(MCS) -d $(PROTO_DIR)/usr/lib/grub/wanboot/libgmp.a; \
-	$(AR) ts $(PROTO_DIR)/usr/lib/grub/wanboot/libgmp.a )
+      ( $(MKDIR) $(PROTOUSRLIBDIR)/grub/wanboot; \
+	$(MV) $(PROTOUSRLIBDIR64)/libgmp.a $(PROTO_DIR)/usr/lib/grub/wanboot/libgmp.a; \
+	$(STRIP) -x $(PROTOUSRLIBDIR)/grub/wanboot/libgmp.a; \
+	$(MCS) -d $(PROTOUSRLIBDIR)/grub/wanboot/libgmp.a; \
+	$(AR) ts $(PROTOUSRLIBDIR)/grub/wanboot/libgmp.a )
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-#Skipping this during automated tests since it hangs sometimes
+# Skipping this during automated tests since it hangs sometimes
 $(SKIP_TEST_AT_TOP_LEVEL)
 
 # common targets
@@ -244,9 +229,4 @@
 $(BUILD_DIR)/$(MACH64)/.installed: COMPONENT_POST_INSTALL_ACTION = $(COMPONENT_POST_INSTALL_ACTION.shared)
 $(BUILD_DIR)/wanboot-amd64/.installed: COMPONENT_POST_INSTALL_ACTION = $(COMPONENT_POST_INSTALL_ACTION.wanboot)
 
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
--- a/components/gnupg/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnupg/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,26 +18,24 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-BITS=64
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gnupg
 COMPONENT_VERSION=	2.0.27
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.gnupg.org/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:57646d3e4b919fa1e5c8f1c0cf5fe1215333041c493a5ebc4b8f2978dbe930f2
 COMPONENT_ARCHIVE_URL=	ftp://ftp.gnupg.org/gcrypt/gnupg/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/gnupg
 
 TPNO=			22246
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # Enable C99 mode + -Xc for its additional warnings.
 studio_C99MODE = -Xc $(studio_C99_ENABLE)
@@ -57,8 +55,8 @@
 # If we pass -lc, -mt won't link with -lthread
 # (which is what it does by default, and we don't
 # want that, because we use POSIX threads).
-LDFLAGS += -lc -z defs
-LD_OPTIONS += -z defs
+LDFLAGS += -lc $(LD_Z_DEFS)
+LD_OPTIONS += $(LD_Z_DEFS)
 
 COMPONENT_TEST_TRANSFORMS += \
      '-e "/libtool/d"' \
@@ -93,18 +91,16 @@
      '-e "s/copied $$/copied/g"'  \
      '-e "s/copied [0-9]\{1,\}\./copied/g"'
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	LDFLAGS="$(LDFLAGS)"
 CONFIGURE_ENV +=	INSTALL="$(INSTALL)"
 
 # Without this GnuPG's ./configure will complain that we're not using
 # GNU make. But we are.
 CONFIGURE_ENV +=	MAKE="$(GMAKE)"
 
-CONFIGURE_OPTIONS  +=		--localstatedir=/var
+CONFIGURE_OPTIONS  +=		--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  +=		--libexecdir=$(USRBINDIR)
 CONFIGURE_OPTIONS  +=		--datadir=$(CONFIGURE_PREFIX)/share
-CONFIGURE_OPTIONS  +=		--sysconfdir=/etc
+CONFIGURE_OPTIONS  +=		--sysconfdir=$(ETCDIR)
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--enable-nls
 CONFIGURE_OPTIONS  +=		--enable-largefile
@@ -140,22 +136,10 @@
 
 MAN8LIST = addgnupghome applygnupgdefaults
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build: $(BUILD_64)
-
-install: $(INSTALL_64)
+COMPONENT_POST_INSTALL_ACTION += \
 	( cd $(PROTOUSRSHARELOCALEDIR) ; \
 	    $(CP) -R 'en@boldquot' en )
 
-test: $(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
-
 REQUIRED_PACKAGES += compress/bzip2
 REQUIRED_PACKAGES += library/desktop/gtk2
 REQUIRED_PACKAGES += library/desktop/pango
@@ -168,7 +152,6 @@
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += security/pinentry
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/libgcrypt
 REQUIRED_PACKAGES += system/library/usb/libusb
 REQUIRED_PACKAGES += web/curl
--- a/components/gnuplot/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnuplot/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,9 +20,9 @@
 #
 
 #
-# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 #libreadline.so needs libcurses.so, but -z ignore will not leave a dependency.
 LD_Z_IGNORE=
@@ -41,32 +41,13 @@
 
 COMPONENT_BUILD_TARGETS = all info
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 CONFIGURE_OPTIONS  += --libexecdir=$(CONFIGURE_LIBDIR.$(BITS))
-CONFIGURE_OPTIONS  += --sysconfdir=/etc/gnu
+CONFIGURE_OPTIONS  += --sysconfdir=$(ETCDIR)/gnu
 CONFIGURE_OPTIONS  += --infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  += --x-libraries=$(CONFIGURE_LIBDIR.$(BITS))
-CONFIGURE_OPTIONS  += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  += CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS  += LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS  += WX_CONFIG="/usr/bin/$(MACH64)/wx-config"
-
-# Enable aslr for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+CONFIGURE_OPTIONS  += WX_CONFIG="$(USRBINDIR64)/wx-config"
 
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += image/library/libpng
@@ -86,7 +67,6 @@
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/font/truetype/liberation
 REQUIRED_PACKAGES += system/font/xorg/xorg-core
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/fontconfig
 REQUIRED_PACKAGES += system/library/freetype-2
--- a/components/gnuplot/gnuplot.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnuplot/gnuplot.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 <transform file path=usr/demo/gnuplot/(.+[.-].+)$ -> set action.hash demo/%<1> >
 set name=pkg.fmri \
@@ -36,7 +38,7 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 
 
-file usr/bin/$(MACH64)/gnuplot path=usr/bin/gnuplot mode=555
+file path=usr/bin/gnuplot mode=555
 file path=usr/demo/gnuplot/1.dat
 file path=usr/demo/gnuplot/2.dat
 file path=usr/demo/gnuplot/3.dat
--- a/components/gnupth/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnupth/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,25 +18,23 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+# gnupth only delivers scripts that embed paths, so prefer 32-bit.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pth
 COMPONENT_VERSION=	2.0.7
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/pth/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:72353660c5a2caafd601b20e12e75d865fd88f6cf1a088b306a3963f0bc77232
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/pth/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/pth
 
 TPNO=			8899
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 PATCH_LEVEL = 0
 
@@ -58,32 +56,15 @@
 
 LDFLAGS =	-lpthread -lposix4 -lrt
 
-CONFIGURE_OPTIONS  +=	--localstatedir=/var
+CONFIGURE_OPTIONS  +=	--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  +=	--with-pic
 
-CONFIGURE_ENV  +=   LD="$(CC) $(CFLAGS) $(LDFLAGS)"
-CONFIGURE_ENV  +=   CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV  +=   CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_ENV  +=   CPP="$(CC) $(CPPFLAGS) $(CFLAGS) -E"
-CONFIGURE_ENV  +=   LDFLAGS="$(LDFLAGS)"
-CONFIGURE_ENV +=    INSTALL="$(INSTALL)"
+CONFIGURE_ENV += LD="$(CC) $(CFLAGS) $(LDFLAGS)"
+CONFIGURE_ENV += CPP="$(CC) $(CPPFLAGS) $(CFLAGS) -E"
+CONFIGURE_ENV += INSTALL="$(INSTALL)"
 
 COMPONENT_TEST_MASTER =	$(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 COMPONENT_TEST_TRANSFORMS += \
 	'-e "s|\(^Pth:\).*|\1|" '
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/gnupth/gnupth.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnupth/gnupth.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
 set name=pkg.fmri \
@@ -34,6 +34,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2009/397
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+file path=usr/bin/$(MACH64)/pth-config
 #
 #
 file path=usr/bin/pth-config
--- a/components/gnutls-3/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnutls-3/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,12 +22,11 @@
 #
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gnutls
 COMPONENT_VERSION=	3.4.6
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  ftp://ftp.gnutls.org/gcrypt/gnutls/v3.4
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH= \
@@ -39,10 +38,6 @@
 
 COMPONENT_BUILD_TARGETS = all info
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
 # The GnuTLS API and ABI have incompatible changes between versions 2.8.6
 # and 3.4.1; but the basic symlink name 'libgnutls.so' and pkg-config file
 # name 'gnutls.pc' are unchanged.  As a result, it's not possible to have
@@ -53,9 +48,6 @@
 # programs to 3.4.1; after all usage of 2.8.6  excised, move 3.4.1 to the
 # default location.
 
-MCS = mcs
-STRIP = strip
-
 # We need to build an extra static version of this library for
 # GRUB/Wanboot support.
 
@@ -71,6 +63,18 @@
 
 endif
 
+include $(WS_MAKE_RULES)/common.mk
+
+CFLAGS += -I$(USRINCDIR)/gmp
+CFLAGS += -I$(USRINCDIR)/idn
+
+# Force libtool to pass this flag through using -Wc.
+# https://www.gnu.org/software/libtool/manual/html_node/Stripped-link-flags.html
+CXXFLAGS.studio += -Wc,$(studio_NORUNPATH)
+
+MCS = mcs
+STRIP = strip
+
 # Set the wanboot CFLAGS as needed for the wanboot compilation
 
 CFLAGS.wanboot += -D_BOOT
@@ -248,59 +252,49 @@
 CONFIGURE_OPTIONS.wanboot += ac_cv_libpthread=no
 CONFIGURE_OPTIONS.wanboot += ac_cv_librt=no
 
-CONFIGURE_OPTIONS += --sysconfdir=/etc 
+CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)
 CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS += --mandir=/usr/share/$(COMPONENT_NAME)-3/man
-CONFIGURE_OPTIONS += --includedir=/usr/include/$(COMPONENT_NAME)-3/
-CONFIGURE_OPTIONS.32 += --libdir=/usr/lib/$(COMPONENT_NAME)-3/
-CONFIGURE_OPTIONS.64 += --libdir=/usr/lib/$(MACH64)/$(COMPONENT_NAME)-3/
-CONFIGURE_OPTIONS.32 += --libexecdir=/usr/lib/pkgconfig/$(COMPONENT_NAME)-3/
-CONFIGURE_OPTIONS.64 += --libexecdir=/usr/lib/$(MACH64)/pkgconfig/$(COMPONENT_NAME)-3/
-CONFIGURE_OPTIONS += --localedir=/usr/share/locale/$(COMPONENT_NAME)-3/
-CONFIGURE_OPTIONS += --localstatedir=/var 
+CONFIGURE_OPTIONS += --mandir=$(USRSHAREDIR)/$(COMPONENT_NAME)-3/man
+CONFIGURE_OPTIONS += --includedir=$(USRINCDIR)/$(COMPONENT_NAME)-3/
+CONFIGURE_OPTIONS.32 += --libdir=$(USRLIBDIR)/$(COMPONENT_NAME)-3/
+CONFIGURE_OPTIONS.64 += --libdir=$(USRLIBDIR64)/$(COMPONENT_NAME)-3/
+CONFIGURE_OPTIONS.32 += --libexecdir=$(USRLIBDIR)/pkgconfig/$(COMPONENT_NAME)-3/
+CONFIGURE_OPTIONS.64 += --libexecdir=$(USRLIBDIR64)/pkgconfig/$(COMPONENT_NAME)-3/
+CONFIGURE_OPTIONS += --localedir=$(USRSHARELOCALEDIR)/$(COMPONENT_NAME)-3/
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS += --enable-guile=no
 CONFIGURE_OPTIONS += --with-included-libtasn1
 CONFIGURE_OPTIONS += --without-p11-kit
 CONFIGURE_OPTIONS += --disable-ecdhe
 CONFIGURE_OPTIONS += --disable-openssl-compatibility
 CONFIGURE_OPTIONS += --disable-tests
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS) -I/usr/include/gmp -I/usr/include/idn $(CC_BITS)"
-CONFIGURE_OPTIONS += CXX="$(CXX) -norunpath $(CC_BITS)"
-
-CONFIGURE_ENV += LDFLAGS="$(LDFLAGS) $(CC_BITS)" 
 
 ASLR_MODE = $(ASLR_ENABLE)
 
 include ../../make-rules/shared-targets.mk
 
-configure:      $(CONFIGURE_32_and_64)
-
 $(BUILD_DIR)/wanboot-amd64/.configured: BITS=64
 $(BUILD_DIR)/wanboot-amd64/.configured: COMPILER=gcc
 $(BUILD_DIR)/wanboot-amd64/.configured: CFLAGS += $(CFLAGS.wanboot)
 $(BUILD_DIR)/wanboot-amd64/.configured: \
 	CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.wanboot)
 
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
 $(BUILD_DIR)/wanboot-amd64/.installed: \
 	COMPONENT_POST_INSTALL_ACTION += \
-	$(MKDIR) $(PROTO_DIR)/usr/lib/grub/wanboot;
+	$(MKDIR) $(PROTOUSRLIBDIR)/grub/wanboot;
 $(BUILD_DIR)/wanboot-amd64/.installed: \
 	COMPONENT_POST_INSTALL_ACTION += \
-	$(MV) $(PROTO_DIR)/usr/lib/amd64/$(COMPONENT_NAME)-3/libgnutls.a \
-	$(PROTO_DIR)/usr/lib/grub/wanboot/libgnutls.a;
+	$(MV) $(PROTOUSRLIBDIR64)/$(COMPONENT_NAME)-3/libgnutls.a \
+	$(PROTOUSRLIBDIR)/grub/wanboot/libgnutls.a;
 $(BUILD_DIR)/wanboot-amd64/.installed: \
 	COMPONENT_POST_INSTALL_ACTION += \
-	$(STRIP) -x  $(PROTO_DIR)/usr/lib/grub/wanboot/libgnutls.a;
+	$(STRIP) -x  $(PROTOUSRLIBDIR)/grub/wanboot/libgnutls.a;
 $(BUILD_DIR)/wanboot-amd64/.installed: \
 	COMPONENT_POST_INSTALL_ACTION += \
-	$(MCS) -d $(PROTO_DIR)/usr/lib/grub/wanboot/libgnutls.a;
+	$(MCS) -d $(PROTOUSRLIBDIR)/grub/wanboot/libgnutls.a;
 $(BUILD_DIR)/wanboot-amd64/.installed: \
 	COMPONENT_POST_INSTALL_ACTION += \
-	$(AR) ts $(PROTO_DIR)/usr/lib/grub/wanboot/libgnutls.a;
+	$(AR) ts $(PROTOUSRLIBDIR)/grub/wanboot/libgnutls.a;
 
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 
@@ -311,15 +305,10 @@
 	'-e "/TOTAL/p" ' \
 	'-e "/ERROR/p" '
 
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/gmp
 REQUIRED_PACKAGES += library/libidn
 REQUIRED_PACKAGES += library/libtasn1
 REQUIRED_PACKAGES += library/security/nettle
 REQUIRED_PACKAGES += library/security/trousers
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
--- a/components/gnutls/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gnutls/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,51 +20,36 @@
 #
 
 #
-# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gnutls
 COMPONENT_VERSION=	2.8.6
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=  https://ftp.gnu.org/gnu/gnutls/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH= \
     sha256:d6f846a7064af3ee2c9aebd65dcee76953b767170cbcd719e990ed6b9688a356
-COMPONENT_ARCHIVE_URL=  https://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/gnutls
 
 TPNO=			9291
 
 COMPONENT_BUILD_TARGETS = all info
 
-include ../../make-rules/prep.mk
-include ../../make-rules/configure.mk
-include ../../make-rules/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-PATH=$(dir $(CC)):/usr/lib:/usr/bin:/usr/sbin:/usr/gnu/bin
+PATH=$(dir $(CC)):$(USRLIBDIR):$(USRBINDIR):$(USRSBINDIR):$(GNUBIN)
 
-CC += $(CC_BITS)
-CXX += $(CC_BITS)
-
-CONFIGURE_OPTIONS  += --sysconfdir=/etc 
-CONFIGURE_OPTIONS  += --infodir=/usr/share/info 
-CONFIGURE_OPTIONS  += --localstatedir=/var 
+CONFIGURE_OPTIONS  += --sysconfdir=$(ETCDIR)
+CONFIGURE_OPTIONS  += --infodir=$(CONFIGURE_INFODIR)
+CONFIGURE_OPTIONS  += --localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  += --enable-guile=no 
 CONFIGURE_OPTIONS  += --disable-camellia
-CONFIGURE_OPTIONS  +=   CXX="$(CXX) -norunpath" 
 
 ASLR_MODE = $(ASLR_ENABLE)
 
 include ../../make-rules/shared-targets.mk
 
-configure:      $(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
 COMPONENT_TEST_TRANSFORMS += \
 	'-n -e "/: x509self/d" ' \
 	'-e "/: x509signself/d" ' \
@@ -74,14 +59,9 @@
 	'-e "/PASS/p" ' \
 	'-e "/FAIL/p" '
 
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/libtasn1
 REQUIRED_PACKAGES += library/security/libgpg-error
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/libgcrypt
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += library/ncurses
--- a/components/gocr/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gocr/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,50 +20,28 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gocr
 COMPONENT_VERSION=	0.50
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://jocr.sourceforge.net/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:bc261244f887419cba6d962ec1ad58eefd77176885093c4a43061e7fd565f5b5
 COMPONENT_ARCHIVE_URL=	http://www-e.uni-magdeburg.de/jschulen/ocr/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/gocr
 
 TPNO=			21551
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-PKG_PROTO_DIRS +=	$(COMPONENT_SRC)
+# Fix 64-bit linking done via compiler.
+LDFLAGS += $(CC_BITS)
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-
-# Needed to successfully link the 64-bit version.
-CC +=              $(CC_BITS)
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/gocr/gocr.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gocr/gocr.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
@@ -37,12 +39,12 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=LSARC/2008/746 value=PSARC/2013/054
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/gocr path=usr/bin/gocr
+file path=usr/bin/gocr
 file README path=usr/share/gocr/doc/README
 file doc/examples.txt path=usr/share/gocr/doc/examples.txt
 file doc/gocr.html path=usr/share/gocr/doc/gocr.html
 file examples/handwrt1.jpg path=usr/share/gocr/examples/handwrt1.jpg
 file examples/handwrt1.readme path=usr/share/gocr/examples/handwrt1.readme
-file usr/bin/$(MACH64)/gocr.tcl path=usr/share/gocr/gocr.tcl mode=0555
+file usr/bin/gocr.tcl path=usr/share/gocr/gocr.tcl mode=0555
 file path=usr/share/man/man1/gocr.1
 license gocr.license license=GPLv2
--- a/components/gparted/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gparted/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,59 +22,26 @@
 #
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_ARCH= i386
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gparted
 COMPONENT_VERSION=	0.25.0
 COMPONENT_PROJECT_URL=	http://gparted.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:2d996d5f4921d49eae850a1824acb8ab1299b1ea9bbb9c607248cd6c8cdc94ae
 COMPONENT_ARCHIVE_URL=	http://prdownloads.sourceforge.net/gparted/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/gparted
 
 TPNO=			27500
 
-# we're i386-only
-ifeq ($(MACH), sparc)
-PUBLISH_STAMP=
-INSTALL_32=
-endif
-
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fiv)
 
-CC += $(CC_BITS)
-CXX += $(CC_BITS)
-
 # needed to find xgettext
-PATH=/usr/gnu/bin:/usr/bin
-CONFIGURE_OPTIONS +=    CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	CXX="$(CXX) -norunpath"
-
-ASLR_MODE =	$(ASLR_ENABLE)
-
-# common targets, we're i386-only
-
-build_sparc:
-	@echo "Not available."
-
-configure:	$(CONFIGURE_32)
-
-build_i386:	$(BUILD_32)
-
-build:		build_$(MACH)
-
-install:	$(INSTALL_32)
-
-test:           $(NO_TESTS)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+PATH=$(GNUBIN):$(USRBINDIR)
 
 REQUIRED_PACKAGES += developer/gnome/gnome-doc-utils
 REQUIRED_PACKAGES += library/c++/glibmm
@@ -85,7 +52,6 @@
 REQUIRED_PACKAGES += library/desktop/gtk2
 REQUIRED_PACKAGES += library/glib2
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
 ifneq ($(MACH), sparc)
--- a/components/gpatch/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gpatch/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,28 +18,28 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		patch
 COMPONENT_VERSION=	2.7.5
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/patch/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:7436f5a19f93c3ca83153ce9c5cbe4847e97c5d956e57a220121e741f6e7968f
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/patch/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gpatch
 
 TPNO=			22293
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
+# Although system-test doesn't run against the built bits, the tests
+# require the bits are built.  Using build as a pre-requisite
+# to system-test separates the compilation output from the
+# test output, so the master test results will be consistent between
+# test and system-test targets.
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # Needed for "gmake test" to work successfully.
 # If SHELLOPTS is exported (as it is by the userland makefiles),
@@ -50,25 +50,4 @@
 
 COMPONENT_INSTALL_ARGS += bindir=$(USRBINDIR)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 COMPONENT_SYSTEM_TEST_ENV += PATCH=$(GPATCH)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-# Although system-test doesn't run against the built bits, the tests
-# require the bits are built.  Using BUILD_64 as a pre-requisite
-# to system-test separates the compilation output from the
-# test output, so the master test results will be consistent between
-# test and system-test targets.
-system-test:    $(BUILD_64) $(SYSTEM_TEST_64)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/gperf/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gperf/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,34 +18,26 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gperf
 COMPONENT_VERSION=	3.0.3
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/gperf/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:63287527c8d9e27e801cf0804436f3494bd569db05d49dcdd2a942ae72fa9055
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/pub/gnu/gperf/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/gperf
 
 TPNO=			8589
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
+# must build tests before use
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 CONFIGURE_OPTIONS  +=	--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=	--docdir=/usr/share/doc/gperf
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=	CXXFLAGS="$(CXXFLAGS)"
-
-ASLR_MODE = $(ASLR_ENABLE)
+CONFIGURE_OPTIONS  +=	--docdir=$(USRSHAREDOCDIR)/gperf
 
 # test/system-test is tricky.
 #    Reason being is this component bundles! test results
@@ -65,7 +57,7 @@
 	($(GSED) -i -e "s|../src/gperf|/usr/bin/gperf|" \
 		$(SOURCE_DIR)/tests/*.exp)
 
-COMPONENT_SYSTEM_TEST_ARGS = GPERF=/usr/bin/gperf
+COMPONENT_SYSTEM_TEST_ARGS = GPERF=$(USRBINDIR)/gperf
 
 # normalize the name of gperf
 # remove compilation lines
@@ -75,19 +67,5 @@
 	'-e "s|^.*$(CC).*$$|XXX_CC_XXX|g" ' \
 	'-e "/^XXX_CC_XXX$$/d" '
 
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-# must build tests before use
-system-test:    build $(SYSTEM_TEST_64)
-
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/gpgme/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gpgme/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,11 +18,14 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
-PATH = /usr/gnu/bin:/usr/bin
+PATH= $(GNUBIN):$(USRBINDIR)
 
 COMPONENT_NAME=		gpgme
 COMPONENT_VERSION=	1.5.3
@@ -36,9 +39,14 @@
 
 TPNO=			21167
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# Although building and running the GpgME tests is enabled, GpgME's
+# Test Harness is not suitable for running in an automated test
+# environment. The GpgME tests require interactive, manual input
+# from the tty as well as system configuration changes.
+# The GpgME Test Harness can only be run manually, and interactively
+# from a terminal.
+TEST_TARGET= $(SKIP_TEST)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 
@@ -57,10 +65,9 @@
 CFLAGS += $(CPP_C99_EXTENDED_MATH)
 CFLAGS += $(studio_PIC)
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_ENV +=	INSTALL="$(INSTALL)"
 
-CONFIGURE_OPTIONS  +=		--localstatedir=/var
+CONFIGURE_OPTIONS  +=		--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--enable-shared
 CONFIGURE_OPTIONS  +=		--disable-static
@@ -74,25 +81,6 @@
 CONFIGURE_OPTIONS  +=		--with-libassuan-prefix=$(CONFIGURE_PREFIX)
 CONFIGURE_OPTIONS  +=		--with-pic
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-# Although building and running the GpgME tests is enabled, GpgME's
-# Test Harness is not suitable for running in an automated test
-# environment. The GpgME tests require interactive, manual input
-# from the tty as well as system configuration changes.
-# The GpgME Test Harness can only be run manually, and interactively
-# from a terminal.
-test: $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += library/security/libgpg-error
 REQUIRED_PACKAGES += library/security/libassuan
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/gpgme/gpgme.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gpgme/gpgme.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -33,9 +33,10 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2009/397
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-#
-file path=usr/bin/gpgme-config
-file usr/bin/$(MACH64)/gpgme-tool path=usr/bin/gpgme-tool
+file usr/bin/gpgme-config path=usr/bin/$(MACH64)/gpgme-config
+# gpgme-config contains embedded paths, so swap these around.
+file usr/bin/$(MACH32)/gpgme-config path=usr/bin/gpgme-config
+file path=usr/bin/gpgme-tool
 file path=usr/include/gpgme.h
 #
 link path=usr/lib/$(MACH64)/libgpgme-pthread.so \
--- a/components/graphviz/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/graphviz/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,26 +22,25 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		graphviz
 COMPONENT_VERSION=	2.28.0
 COMPONENT_PROJECT_URL=	http://www.graphviz.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:d3aa7973c578cae4cc26d9d6498c57ed06680cab9a4e940d0357a3c6527afc76
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)pub/graphviz/stable/SOURCES/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/graphviz
 
 TPNO=			17707
 
 PERL_VERSIONS = $(PERL_VERSION)
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# There are tests, but they fail consistently because the test samples are out
+# of date and not generated with a known configuration.  See
+# http://graphviz.org/bugs/b2063.html
+TEST_TARGET= $(SKIP_TEST)
+include $(WS_MAKE_RULES)/common.mk
 
 PATH =		/usr/php/5.6/bin:/usr/bin:/usr/gnu/bin
 
@@ -54,9 +53,6 @@
 CPPFLAGS +=	$(shell PATH=$(PATH) php-config --includes)
 CXX +=		$(studio_NORUNPATH)
 
-CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	CXXFLAGS="$(CXXFLAGS)"
 # Make sure to use the right python, depending on the 32/64-bit build.
 CONFIGURE_ENV +=	PYTHON27=$(PYTHON.2.7)
 CONFIGURE_OPTIONS +=	--without-included-ltdl
@@ -64,7 +60,7 @@
 CONFIGURE_OPTIONS +=	--enable-python27=yes
 CONFIGURE_OPTIONS +=	--x-libraries=$(CONFIGURE_LIBDIR.$(BITS))
 
-COMPONENT_BUILD_ARGS += 	GREP=/usr/bin/ggrep
+COMPONENT_BUILD_ARGS += 	GREP=$(USRBINDIR)/ggrep
 
 # perl, ruby, php ship 64-bit only.
 $(CONFIGURE_32): CONFIGURE_OPTIONS +=	--enable-perl=no
@@ -77,37 +73,25 @@
 # is no place to stick 64-bit modules, so skip it.  On the other hand, make
 # sure to find the right tcl bits when building 32-bit.
 $(CONFIGURE_64): CONFIGURE_OPTIONS +=	--enable-tcl=no
-$(CONFIGURE_32): CONFIGURE_OPTIONS +=	--with-tclsh=/usr/bin/$(MACH32)/tclsh
-$(CONFIGURE_32): CONFIGURE_ENV += 	TCLCONFIG=/usr/lib/tclConfig.sh
+$(CONFIGURE_32): CONFIGURE_OPTIONS +=	--with-tclsh=$(USRBINDIR)/$(MACH32)/tclsh
+$(CONFIGURE_32): CONFIGURE_ENV += 	TCLCONFIG=$(USRLIBDIR)/tclConfig.sh
 # Put the 64-bit lua module in a 64-bit directory.
-$(INSTALL_32): COMPONENT_INSTALL_ARGS += LUA_INSTALL_DIR=/usr/lib/lua/5.2
-$(INSTALL_64): COMPONENT_INSTALL_ARGS += LUA_INSTALL_DIR=/usr/lib/lua/5.2/64
+$(INSTALL_32): COMPONENT_INSTALL_ARGS += LUA_INSTALL_DIR=$(USRLIBDIR)/lua/5.2
+$(INSTALL_64): COMPONENT_INSTALL_ARGS += LUA_INSTALL_DIR=$(USRLIBDIR)/lua/5.2/64
 # Use GNU ln, which supports the -r (--relative) option.
 COMPONENT_INSTALL_ARGS += LN_S="gln -s"
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # We build 32 and 64 bit because we build libraries, and we build modules for
 # runtimes which provide 64 or 32 (or both) bit environments.
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-	env LD_LIBRARY_PATH=$(PROTO_DIR)/usr/lib GVBINDIR=$(PROTO_DIR)/usr/lib/graphviz $(PROTO_DIR)/usr/bin/dot -c
+COMPONENT_POST_INSTALL_ACTION += \
+	env LD_LIBRARY_PATH=$(PROTOUSRLIBDIR) GVBINDIR=$(PROTOUSRLIBDIR)/graphviz \
+		$(PROTOUSRBINDIR)/dot -c; \
 	$(PYTHON.2.7.32) -m compileall $(PROTO_DIR)/$(PYTHON.2.7.VENDOR_PACKAGES)
 
 # The test infrastructure doesn't run in a VPATHed environment.
 COMPONENT_PRE_TEST_ACTION = \
 	(cd $(@D)/rtest; ln -s $(SOURCE_DIR)/rtest/* .)
 
-# There are tests, but they fail consistently because the test samples are out
-# of date and not generated with a known configuration.  See
-# http://graphviz.org/bugs/b2063.html
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += image/graphviz
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += image/library/libpng
@@ -129,7 +113,6 @@
 REQUIRED_PACKAGES += runtime/ruby-21
 REQUIRED_PACKAGES += runtime/tk-8
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/fontconfig
 REQUIRED_PACKAGES += system/library/freetype-2
--- a/components/graphviz/graphviz.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/graphviz/graphviz.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -22,7 +22,6 @@
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
-<transform file path=usr/bin/(.+) -> set action.hash usr/bin/$(MACH64)/%<1>>
 set name=pkg.fmri \
     value=pkg:/image/graphviz@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="Graph visualization software"
--- a/components/groff/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/groff/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,32 +20,26 @@
 #
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		groff
 COMPONENT_VERSION=	1.22.2
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/groff/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:380864dac4772e0c0d7b1282d25d0c5fd7f63baf45c87c4657afed22a13d2076
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/groff
 
 TPNO=			8829
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
+TEST_TARGET= $(NO_TESTS)
 
 # Complex dependencies on ON only available in S12.
 ifeq ($(BUILD_TYPE), evaluation)
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # The grog.sh script needs GNU awk not the Solaris one.
 COMPONENT_PRE_CONFIGURE_ACTION = \
@@ -64,17 +58,12 @@
 		-e 's/_GL_INLINE_HEADER_END//' \
 		$(SOURCE_DIR)/src/libs/gnulib/lib/wctype.in.h
 
-# Everything is under /usr/bin and /usr/lib so set bindir and libdir correctly.
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
-CONFIGURE_LIBDIR.64 =	$(CONFIGURE_PREFIX)/lib
+# Deliver scripts from 64-bit build to the 32-bit location.
+CONFIGURE_LIBDIR.64 =	$(CONFIGURE_LIBDIR.32)
 
 CONFIGURE_OPTIONS += \
     --with-appresdir=$(CONFIGURE_PREFIX)/X11/lib/X11/app-defaults
 
-CONFIGURE_OPTIONS +=	CXX="$(CXX)"
-CONFIGURE_OPTIONS +=	CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-
 # Don't generate tmac wrappers for the Solaris troff macro packages.
 # Some man pages (such as groff.1) use long macro name definitions
 # which fail in compatibility mode. See:
@@ -88,25 +77,10 @@
 COMPONENT_PRE_INSTALL_ACTION = \
 	($(MKDIR) $(PROTOUSRBINDIR) )
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/perl-520
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += text/doctools
--- a/components/gtar/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gtar/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,44 +18,40 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 # parfait fails to compile us (21334808)
 export PARFAIT_BUILD=no
-
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		tar
 COMPONENT_VERSION=	1.28
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/tar/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:60e4bfe0602fef34cd908d91cf638e17eeb09394d7b98c2487217dc4d3147562
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/tar/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gtar
 
 TPNO=			23088
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 PATCH_LEVEL=0
 
 # tests (ttyemu.c) requires c99
 studio_C99MODE = $(studio_C99_ENABLE)
 
-# Enforce tar binary to standard path
-CONFIGURE_BINDIR.64 = $(CONFIGURE_PREFIX)/bin
-
 # Use ssh (rather than rsh) for remote commands.
 CONFIGURE_ENV += "RSH=/usr/bin/ssh"
 
-CONFIGURE_OPTIONS +=	--with-rmt=/usr/sbin/rmt
-CONFIGURE_OPTIONS +=	--libexecdir=/usr/sbin
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)" 
+CONFIGURE_BINDIR.64=	$(GNUBIN)
+CONFIGURE_MANDIR=	$(GNUSHAREMAN)
+
+CONFIGURE_OPTIONS +=	--with-rmt=$(USRSBINDIR)/rmt
+CONFIGURE_OPTIONS +=	--libexecdir=$(USRSBINDIR)
 
 COMPONENT_SYSTEM_TEST_DIR = $(BUILD_DIR_64)/tests
 COMPONENT_SYSTEM_TEST_TARGETS =  installcheck-local
@@ -65,22 +61,8 @@
 	'-e "/^\#\# ----/,/tests were skipped\./p" ' \
 	'-e "/.*/d" '
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(BUILD_64) $(SYSTEM_TEST_64)
-
-
 REQUIRED_PACKAGES += compress/bzip2
 REQUIRED_PACKAGES += compress/gzip
 REQUIRED_PACKAGES += network/ssh
 REQUIRED_PACKAGES += network/openssh
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
--- a/components/gtar/gtar.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gtar/gtar.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,9 +18,8 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
 <transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
 set name=pkg.fmri \
     value=pkg:/archiver/gnu-tar@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
@@ -35,8 +34,8 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2000/488
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 link path=usr/bin/gtar target=../gnu/bin/tar facet.compat.gnulinks=true
-file usr/bin/tar path=usr/gnu/bin/tar
-file usr/share/man/man1/tar.1 path=usr/gnu/share/man/man1/tar.1
+file path=usr/gnu/bin/tar
+file path=usr/gnu/share/man/man1/tar.1
 link path=usr/sfw/bin/gtar target=../../gnu/bin/tar
 file path=usr/share/info/tar.info
 file path=usr/share/info/tar.info-1
--- a/components/guile/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/guile/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,35 +18,28 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 # Built in SFW with gcc and builds cleanly now only with gcc
-COMPILER =	gcc
-
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		guile
 COMPONENT_VERSION=	1.8.6
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/guile/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:69a2f9491480ff756d1cc4c8ea2bdc13d40ea8ddc8f93f26957bade8219a1d86
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/pub/gnu/guile/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/guile
 
 TPNO=			8939
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-CONFIGURE_OPTIONS +=	CPPFLAGS="-I/usr/include/gmp -D__USE_LEGACY_PROTOTYPES__"
+CONFIGURE_ENV +=	CPPFLAGS="-I/usr/include/gmp -D__USE_LEGACY_PROTOTYPES__"
 CONFIGURE_OPTIONS +=	--disable-static 
 CONFIGURE_OPTIONS +=	--disable-error-on-warning
 CONFIGURE_OPTIONS +=	ac_cv_type_complex_double=no
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 
 # Remove the GNU specific "-pthreads" Cflags option from the guile config
 # files. In case we need to back-port this to earlier versions of Solaris,
@@ -54,12 +47,17 @@
 # interfaces behave as specified in the POSIX standard (even though it does
 # nothing for Solaris 12).
 
-PROTOPKGCONFIGDIR.32 = $(PROTOUSRLIBDIR)/pkgconfig
-PROTOPKGCONFIGDIR.64 = $(PROTOUSRLIBDIR64)/pkgconfig
+PROTOPKGCONFIGDIR.32 = $(PROTOPKGCONFIGDIR)
+PROTOPKGCONFIGDIR.64 = $(PROTOPKGCONFIGDIR64)
 
 COMPONENT_POST_INSTALL_ACTION += \
 	$(GSED) -i -e 's/-pthreads/-D_POSIX_PTHREAD_SEMANTICS/' \
-		$(PROTOPKGCONFIGDIR.$(BITS))/guile-1.8.pc
+		$(PROTOPKGCONFIGDIR.$(BITS))/guile-1.8.pc;
+
+# We only deliver 64-bit binaries and in /usr/bin.
+COMPONENT_POST_INSTALL_ACTION.32 += \
+	$(GSED) -i -e 's|$(USRBINDIR)/$(MACH32)|$(USRBINDIR)|' \
+		$(PROTOUSRBINDIR)/$(MACH32)/guile-config;
 
 # Master test results are the same for 32-bit and 64-bit, so override
 # here, rather than create multiple identical master files.
@@ -72,25 +70,11 @@
 	'-e "/^XXX_GCC_ROOT_XXX$$/d" ' \
 	'-e "/^WARNING:/d" '
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/gmp
 REQUIRED_PACKAGES += library/libtool/libltdl
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += library/readline
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc-3-runtime
 REQUIRED_PACKAGES += system/library/gcc-45-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
--- a/components/guile/guile.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/guile/guile.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,8 +36,10 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/315
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/guile path=usr/bin/guile
-file path=usr/bin/guile-config
+file usr/bin/guile-config path=usr/bin/$(MACH64)/guile-config
+file path=usr/bin/guile
+# Need to swap guile-config around since it embeds library paths.
+file usr/bin/$(MACH32)/guile-config path=usr/bin/guile-config
 file path=usr/bin/guile-snarf
 file path=usr/bin/guile-tools
 file path=usr/include/guile/gh.h
--- a/components/gutenprint/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gutenprint/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,27 +18,25 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gutenprint
 COMPONENT_VERSION=	5.2.7
 COMPONENT_PROJECT_URL=	http://www.gutenprint.org/software/gutenprint/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:114c899227e3ebb0753c1db503e6a5c1afaa4b1f1235fdfe02fb6bbd533beed1
 COMPONENT_ARCHIVE_URL=	http://voxel.dl.sourceforge.net/project/gimp-print/gutenprint-5.2/5.2.7/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/gutenprint
 
 TPNO=			8943
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	 --infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS +=    --enable-escputil
 CONFIGURE_OPTIONS +=    --without-gimp2
@@ -55,18 +53,7 @@
 
 $(SKIP_TEST_AT_TOP_LEVEL)
 
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
 # the tests mostly pass, but it can't find several drivers for ppd files
-test:		$(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 
 REQUIRED_PACKAGES += library/desktop/gtk2
 REQUIRED_PACKAGES += library/glib2
@@ -76,7 +63,6 @@
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/perl-520
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
 REQUIRED_PACKAGES += x11/library/libxcursor
--- a/components/gzip/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/gzip/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,33 +18,27 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gzip
 COMPONENT_VERSION=	1.6
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/gzip/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:97eb83b763d9e5ad35f351fe5517e6b71521d7aac7acf3e3cacdb6b1496d8f7e
-COMPONENT_ARCHIVE_URL=	ftp://ftp.gnu.org/gnu/gzip/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/gzip
 
 TPNO=			27439
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+INSTALL_TARGET=
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-# To get correct @bindir@ substitution in the various gz<whatever> scripts.
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_PREFIX)/bin
-
-# Prevent gzip compilation using assembly code, which segv's with Studio 12.3.
+# Prevent gzip assembly code usage; which segv's with Studio 12.3 and 12.4.
 CONFIGURE_OPTIONS +=	gzip_cv_assembler=no
 CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)" 
 
 # Needed for "gmake test" to work successfully.
 # If SHELLOPTS is exported (as it is by the userland makefiles),
@@ -83,30 +77,18 @@
 	$(RM) $@; echo ".so man1/gzgrep.1" > $@
 
 # Get the binaries to test from the component build area.
-COMPONENT_TEST_ENV +=	PATH=$(BUILD_DIR_$(BITS)):/usr/xpg4/bin:/usr/bin
+COMPONENT_TEST_ENV +=	PATH=$(BUILD_DIR_$(BITS)):/usr/xpg4/bin:$(USRBINDIR)
 
 # Use the installed gzip binary from /usr/bin.
-COMPONENT_SYSTEM_TEST_ENV +=	PATH=/usr/xpg4/bin:/usr/bin
+COMPONENT_SYSTEM_TEST_ENV +=	PATH=/usr/xpg4/bin:$(USRBINDIR)
 
 COMPONENT_TEST_TRANSFORMS += \
 	'-n ' \
 	'-e "/PASS/p" ' \
 	'-e "/FAIL/p" '
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64) $(GZGREP_MAN_VARIANTS)
-
-test:		$(TEST_64)
-
-system-test:    configure $(SYSTEM_TEST_64)
-
+install:      $(INSTALL_64) $(GZGREP_MAN_VARIANTS)
 
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += shell/bash
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/xopen/xcu4
--- a/components/hal-cups-utils/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/hal-cups-utils/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -17,18 +17,17 @@
 # information: Portions Copyright [yyyy] [name of copyright owner]
 #
 # CDDL HEADER END
+#
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		hal-cups-utils
 COMPONENT_VERSION=	0.6.19
 COMPONENT_PROJECT_URL=	http://fedorahosted.org/hal-cups-utils/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f40a7ebd1453d471a8a6bfd8c635708dd739a6160bb661813f936d936ba85618
 COMPONENT_ARCHIVE_URL=	http://fedorahosted.org/releases/h/a/hal-cups-utils/$(COMPONENT_ARCHIVE)
@@ -36,9 +35,8 @@
 
 TPNO=			8957
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 USED_PYTHON=$(PYTHON.2.6.32)
@@ -58,19 +56,10 @@
 	$(PERL) -pi -e 's,^\#!.*?python,\#!$(USED_PYTHON), if $$.==1' systemv/hal_lpadmin ; \
 ) 
 
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+# ASLR disabled until sufficient testing can be performed.
+ASLR_MODE= $(ASLR_DISABLE)
 
 REQUIRED_PACKAGES += library/print/cups-libs
 REQUIRED_PACKAGES += print/cups
 REQUIRED_PACKAGES += system/hal
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/libdbus
--- a/components/help2man/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/help2man/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,48 +18,31 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		help2man
 COMPONENT_VERSION=	1.47.3
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/help2man/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:c232af6475ef65bee02770862a362f4c4c2e6c9967d39e987eb94cadcfc13856
 COMPONENT_ARCHIVE_URL=	http://mirror.team-cymru.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/help2man
 
 TPNO=			27415
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 CONFIGURE_ENV +=	PERL=$(PERL.5.22)
 
 # Needed to successfully create the message files.
 COMPONENT_PRE_CONFIGURE_ACTION += ($(CLONEY) $(SOURCE_DIR) $(@D));
 
-CC += $(CC_BITS)
-
-CONFIGURE_OPTIONS += --bindir=$(USRBINDIR)
-
 # Needed to get all the localized files.
-COMPONENT_INSTALL_TARGETS = install install_l10n
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
+COMPONENT_INSTALL_TARGETS += install_l10n
 
 REQUIRED_PACKAGES += runtime/perl-522
--- a/components/hexedit/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/hexedit/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,9 +20,9 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		hexedit
@@ -33,40 +33,22 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:6a126da30a77f5c0b08038aa7a881d910e3b65d13767fb54c58c983963b88dd7
 COMPONENT_ARCHIVE_URL=	http://rigaux.org/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/hexedit
 
 TPNO=			18059
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
+
+# Fix 64-bit linking done via compiler.
+LDFLAGS += $(CC_BITS)
 
 COMPONENT_PRE_CONFIGURE_ACTION =  \
         ($(CLONEY) $(SOURCE_DIR) $(@D))
 
 # Without this, initscr32 and w32attrset are undefined at link time.
 # The usual Solaris curses.h vs ncurses/curses.h mess.
-CFLAGS +=			-I/usr/include/ncurses
+CFLAGS += -I/usr/include/ncurses
 
 CFLAGS += "-Dinline"
 
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=		LDFLAGS="$(LDFLAGS) $(CC_BITS)"
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-TPNO=			9060
-
 REQUIRED_PACKAGES += library/ncurses
-REQUIRED_PACKAGES += system/library
--- a/components/hexedit/hexedit.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/hexedit/hexedit.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,7 +36,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=LSARC/2008/629
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/hexedit path=usr/bin/hexedit
+file path=usr/bin/hexedit
 file path=usr/share/man/man1/hexedit.1
 #
 license hexedit.license license=GPLv2
--- a/components/hplip/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/hplip/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -19,34 +19,31 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         hplip
 COMPONENT_VERSION=      3.15.7
 TPNO=			24589
 COMPONENT_ARCHIVE_HASH= sha256:d310903048f3600f93422e5a8c39ddd682511e0849cd9abc5e943f9a10bdd49d
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_URL=	http://prdownloads.sourceforge.net/hplip/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL=	http://hplipopensource.com/hplip-web/index.html
-COMPONENT_BUGDB=	utility/hplip
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+COMMON_TARGETS= no
+include $(WS_MAKE_RULES)/common.mk
 
 PKG_OPTIONS += -I $(COMPONENT_DIR)
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
+# We need to be able to return from void functions
+CFLAGS.studio += $(studio_FEATURES_EXTENSIONS)
+CXXFLAGS.studio += $(studio_FEATURES_EXTENSIONS) 
+CXXFLAGS.studio += $(studio_CXXLIB_CSTD) 
 
-# We need to be able to return from void functions
-CC += $(studio_FEATURES_EXTENSIONS)
-CXX += $(studio_FEATURES_EXTENSIONS) $(studio_NORUNPATH) $(studio_CXXLIB_CSTD) 
-
-ROOTPPDCACHE =  $(PROTO_DIR)/usr/lib/lp/caches/SUNWhpijs.cache
+ROOTPPDCACHE =  $(PROTOUSRLIBDIR)/lp/caches/SUNWhpijs.cache
 
 # common configure options
 CONFIGURE_OPTIONS +=	--localedir=$(CONFIGURE_LOCALEDIR)
@@ -56,7 +53,9 @@
 CONFIGURE_OPTIONS +=	am_cv_python_pythondir="$(PYTHON_VENDOR_PACKAGES)"
 CONFIGURE_OPTIONS +=	am_cv_python_pyexecdir="$(PYTHON_VENDOR_PACKAGES)"
 
-CONFIGURE_ENV +=	LDFLAGS=" -lnsl"
+ifeq ($(OS_VERSION),5.11)
+LDFLAGS += -lnsl
+endif
 
 HPLIP_VARIANT = $(BUILD_DIR)/$(MACH32)-hplip
 HPIJS_VARIANT = $(BUILD_DIR)/$(MACH32)-hpijs
@@ -67,7 +66,7 @@
 # and for the HPIJS only support
 
 # use these options for the CUPS/SANE support
-$(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --with-hpppddir=/usr/share/cups/model/SUNWhplip
+$(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --with-hpppddir=$(USRSHAREDIR)/cups/model/SUNWhplip
 $(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-libusb01_build
 $(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-fax-build
 $(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-hpcups-install
@@ -76,7 +75,7 @@
 
 # use these options for the HPIJS only support
 $(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-foomatic-ppd-install
-$(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --with-hpppddir=/usr/share/ppd/SUNWhpijs/HP
+$(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --with-hpppddir=$(USRSHAREDIR)/ppd/SUNWhpijs/HP
 $(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --disable-cups-drv-install
 $(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --disable-hpcups-install
 $(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --disable-doc-build
@@ -92,8 +91,6 @@
 $(HPLIP_VARIANT)/.built: COMPONENT_PREP_ACTION = \
 		(cd $(@D) ; autoconf )
 
-BUILD_PKG_DEPENDENCIES =        $(BUILD_TOOLS)
-
 $(BUILD_DIR)/.allvariantsinstalled: $(VARIANTS:%=%/.installed)
 	$(RM) $(ROOTPPDCACHE)
 	$(MKDIR) $(PROTO_DIR)/usr/lib/lp/caches
@@ -142,7 +139,6 @@
 REQUIRED_PACKAGES += image/scanner/xsane/sane-backends
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/python-27
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/libdbus
 REQUIRED_PACKAGES += system/library/math
--- a/components/httping/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/httping/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,50 +18,47 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		httping
 COMPONENT_VERSION=	2.4
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.vanheusden.com/httping/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:dab59f02b08bfbbc978c005bb16d2db6fe21e1fc841fde96af3d497ddfc82084
 COMPONENT_ARCHIVE_URL=	http://www.vanheusden.com/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/httping
 
 TPNO=			21552
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-COMPILER =	gcc
-
-CC +=		$(CC_BITS)
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 ifeq ($(OS_VERSION),5.11)
 EXTRA_LIBRARIES =	-lsocket -lnsl
 endif
-EXTRA_LIBRARIES +=	-lfftw3 -lssl -lcrypto -lresolv -lm
-COMPONENT_BUILD_ARGS +=	LDFLAGS="$(LDFLAGS) $(EXTRA_LIBRARIES)"
-COMPONENT_BUILD_ENV += CC="$(CC)"
+EXTRA_LIBRARIES +=	-lncurses -lfftw3 -lssl -lcrypto -lresolv -lm
 
-ASLR_MODE = $(ASLR_ENABLE)
+# The usual Solaris curses.h vs ncurses/curses.h mess.
+CFLAGS += -I$(USRINCDIR)/ncurses
 
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
+# Make 64-bit linking work.
+LDFLAGS += $(CC_BITS)
 
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+# force enable ncurses support
+COMPONENT_BUILD_ARGS += NC=yes
+COMPONENT_BUILD_ARGS += CC="$(CC)"
+COMPONENT_BUILD_ARGS += OFLAGS="$(CFLAGS)"
+COMPONENT_BUILD_ARGS += LDFLAGS="$(LDFLAGS) $(EXTRA_LIBRARIES)"
 
 REQUIRED_PACKAGES += library/fftw-3
+REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/security/openssl/openssl-fips-140
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/hwdata/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/hwdata/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,18 +18,22 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= NO_ARCH
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         hwdata
 COMPONENT_VERSION=      0.5.11
+COMPONENT_SRC=
 
 TPNO_PCI=	21782
 TPNO_USB=	21783
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= archive
+include $(WS_MAKE_RULES)/common.mk
 
 # Since upstream only offers the latest snapshot for download, without
 # any way to retrieve a specific version, we just keep the currently
@@ -52,8 +56,6 @@
 COMPONENT_ARCHIVE_URL_usb.ids =	http://www.linux-usb.org/usb.ids
 COMPONENT_ARCHIVE_URLS = $(foreach i,$(ID_FILES),$(COMPONENT_ARCHIVE_URL_$(i)))
 
-COMPONENT_BUGDB=	utility/hwdata
-
 # Retrieve version from ids file
 ID_VERSION_EXTRACT_COMMAND=$(GSED) -n -e '/Version:/ { s/^.*: //p' -e ' q }'
 
@@ -72,8 +74,6 @@
 LICENSES = $(ID_FILES:%=%.license)
 BUILT_LICENSES = $(LICENSES:%=$(BUILD_DIR)/%)
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
 # Extract the header up to the first blank line
 $(BUILD_DIR)/%.header: %
 	$(MKDIR) $(@D)
@@ -103,6 +103,3 @@
 
 system-test: $(SYSTEM_TESTS_NOT_IMPLEMENTED)
 
-clobber clean::
-	$(RM) -r $(BUILD_DIR)
-
--- a/components/iftop/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/iftop/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,26 +20,22 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		iftop
 COMPONENT_VERSION=	0.17
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.ex-parrot.com/~pdw/iftop/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:d032547c708307159ff5fd0df23ebd3cfa7799c31536fa0aea1820318a8e0eac
 COMPONENT_ARCHIVE_URL=	http://www.ex-parrot.com/~pdw/iftop/download/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/iftop
 
 TPNO=			9256
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
     ($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -51,28 +47,10 @@
 # "happily", as this is simpler)
 studio_ALIGN.sparc.64=	-xmemalign=1i
 
-
-IFTOP_LIBDIR=	/usr/gnu/lib
+IFTOP_LIBDIR=	$(USRGNUDIR)/lib
 LDFLAGS +=	-L$(IFTOP_LIBDIR) -R$(IFTOP_LIBDIR)
-CPPFLAGS +=	-I/usr/gnu/include -I/usr/include/ncurses
-CONFIGURE_OPTIONS  +=	LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS  +=	CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+CPPFLAGS +=	-I$(USRGNUDIR)/include -I$(USRINCDIR)/ncurses
 
 REQUIRED_PACKAGES += library/ncurses
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/libpcap
 REQUIRED_PACKAGES += system/library/math
--- a/components/iftop/iftop.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/iftop/iftop.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,7 +35,7 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2009/018
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 #
-file usr/sbin/$(MACH64)/iftop path=usr/sbin/iftop
+file path=usr/sbin/iftop
 file path=usr/share/man/man8/iftop.8
 #
 license iftop.license license=GPLv2
--- a/components/ilmbase/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ilmbase/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         ilmbase
 COMPONENT_VERSION=      1.0.1
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  http://www.openexr.com/
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:4f14fc7b26a37a391ec5f979697148e6774bc36bc052de26e40ffabe401e397d
 COMPONENT_ARCHIVE_URL=  http://download.savannah.nongnu.org/releases/openexr/$(COMPONENT_ARCHIVE)
@@ -34,9 +35,7 @@
 
 TPNO=			5574
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 
@@ -50,8 +49,6 @@
 # the '-library=Cstd,Crun' we are passing to it.
 LIBS += -lc -lm -lCstd -lCrun
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)"
 CONFIGURE_ENV += LIBS="$(LIBS)"
 
 CONFIGURE_OPTIONS  +=           --disable-static
@@ -71,19 +68,5 @@
 	'-e "s|^make.*: Entering directory.*$$|XXX_CC_XXX|g" ' \
 	'-e "/^XXX_CC_XXX$$/d" '
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test:	 $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/imagemagick/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/imagemagick/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,7 +22,7 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=			ImageMagick
@@ -30,7 +30,6 @@
 COMPONENT_SUBVERSION=		5
 HUMAN_VERSION=			$(COMPONENT_VERSION)-$(COMPONENT_SUBVERSION)
 COMPONENT_PROJECT_URL=		http://www.imagemagick.org/
-COMPONENT_SRC=			$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=		$(COMPONENT_SRC)-$(COMPONENT_SUBVERSION).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:daead80170bc6d44cf6a54b4817446cbb7211b8ee445532b64033af190265fe3
@@ -39,11 +38,9 @@
 
 TPNO=			17708
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
-PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 
 # IPS_COMPONENT_VERSION is by default set to $(COMPONENT_VERSION) but in
 # this case we need to replace the '-' by '.'.
@@ -54,7 +51,7 @@
 
 # To get the Perl modules built it is necessary to copy the PerlMagick
 # directory to the build directory
-COMPONENT_PRE_CONFIGURE_ACTION= ($(CP) -R $(SOURCE_DIR)/PerlMagick $(@D))
+COMPONENT_PRE_CONFIGURE_ACTION += ($(CP) -R $(SOURCE_DIR)/PerlMagick $(@D))
 
 ifeq ($(OS_VERSION),5.11)
 LIBS += -lsocket -lnsl
@@ -62,21 +59,22 @@
 endif
 
 # Show name of "error tag" as part of the warning
-CFLAGS += -errtags=yes
+CFLAGS.studio += -errtags=yes
+
+studio_C99MODE= $(studio_C99_ENABLE)
+
 # To remove the compiler complaints about __restrict keyword,
 # -D_magickcore_restrict should be used.
-CFLAGS += -xc99=%all -D_magickcore_restrict=
+CFLAGS += -D_magickcore_restrict=
 
 # Needed to generate a decent RUNPATH for Magick.so
 #
 COMPONENT_BUILD_ARGS += LD="$(CC)"
 COMPONENT_BUILD_ARGS += LD_RUN_PATH="$(CONFIGURE_LIBDIR.$(BITS))"
 
-CONFIGURE_OPTIONS+= CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS+= CXXFLAGS="$(CXXFLAGS)"
 CONFIGURE_OPTIONS+= --with-modules
-CONFIGURE_OPTIONS+= --enable-shared=yes
-CONFIGURE_OPTIONS+= --enable-static=no
+CONFIGURE_OPTIONS+= --enable-shared
+CONFIGURE_OPTIONS+= --disable-static
 CONFIGURE_OPTIONS+= --without-gvc
 CONFIGURE_OPTIONS+= --disable-openmp
 # Using option 'with-fontconfig=no' so that the fonts/fonts path specified in
@@ -100,8 +98,6 @@
 # Tests hang waiting for input unless stdin is redirected.
 COMPONENT_TEST_TARGETS = check < /dev/null
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # Master test transforms
 COMPONENT_TEST_TRANSFORMS += \
 	'-n '\
@@ -111,33 +107,27 @@
 	'-e "/FAIL/p" ' \
 	'-e "/ERROR/p" ' 
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
 # Remove build machine runpath from libMagick++-6.Q16.so.1.0.0 and
 # libMagickCore-6.Q16.so.1.0.0
-install:	$(INSTALL_32_and_64)
-	/usr/bin/elfedit -e 'dyn:delete RUNPATH' \
-	    $(PROTO_DIR)/usr/lib/libMagick++-6.Q16.so.1.0.0; \
-	/usr/bin/elfedit -e 'dyn:delete RUNPATH' \
-	    $(PROTO_DIR)/usr/lib/$(MACH64)/libMagick++-6.Q16.so.1.0.0; \
-	/usr/bin/elfedit -e 'dyn:delete RPATH' \
-	    $(PROTO_DIR)/usr/lib/libMagick++-6.Q16.so.1.0.0; \
-	/usr/bin/elfedit -e 'dyn:delete RPATH' \
-	    $(PROTO_DIR)/usr/lib/$(MACH64)/libMagick++-6.Q16.so.1.0.0
-	/usr/bin/elfedit -e 'dyn:delete RUNPATH' \
-	    $(PROTO_DIR)/usr/lib/libMagickCore-6.Q16.so.1.0.0; \
-	/usr/bin/elfedit -e 'dyn:delete RUNPATH' \
-	    $(PROTO_DIR)/usr/lib/$(MACH64)/libMagickCore-6.Q16.so.1.0.0; \
-	/usr/bin/elfedit -e 'dyn:delete RPATH' \
-	    $(PROTO_DIR)/usr/lib/libMagickCore-6.Q16.so.1.0.0; \
-	/usr/bin/elfedit -e 'dyn:delete RPATH' \
-	    $(PROTO_DIR)/usr/lib/$(MACH64)/libMagickCore-6.Q16.so.1.0.0
+COMPONENT_POST_INSTALL_ACTION.32 += \
+	$(ELFEDIT) -e 'dyn:delete RUNPATH' \
+	    $(PROTOUSRLIBDIR)/libMagick++-6.Q16.so.1.0.0; \
+	$(ELFEDIT) -e 'dyn:delete RPATH' \
+	    $(PROTOUSRLIBDIR)/libMagick++-6.Q16.so.1.0.0; \
+	$(ELFEDIT) -e 'dyn:delete RUNPATH' \
+	    $(PROTOUSRLIBDIR)/libMagickCore-6.Q16.so.1.0.0; \
+	$(ELFEDIT) -e 'dyn:delete RPATH' \
+	    $(PROTOUSRLIBDIR)/libMagickCore-6.Q16.so.1.0.0
 
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+COMPONENT_POST_INSTALL_ACTION.64 += \
+	$(ELFEDIT) -e 'dyn:delete RUNPATH' \
+	    $(PROTOUSRLIBDIR64)/libMagick++-6.Q16.so.1.0.0; \
+	$(ELFEDIT) -e 'dyn:delete RPATH' \
+	    $(PROTOUSRLIBDIR64)/libMagick++-6.Q16.so.1.0.0; \
+	$(ELFEDIT) -e 'dyn:delete RUNPATH' \
+	    $(PROTOUSRLIBDIR64)/libMagickCore-6.Q16.so.1.0.0; \
+	$(ELFEDIT) -e 'dyn:delete RPATH' \
+	    $(PROTOUSRLIBDIR64)/libMagickCore-6.Q16.so.1.0.0
 
 REQUIRED_PACKAGES += compress/bzip2
 REQUIRED_PACKAGES += compress/xz
@@ -153,7 +143,6 @@
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/fontconfig
 REQUIRED_PACKAGES += system/library/freetype-2
--- a/components/imagemagick/imagemagick.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/imagemagick/imagemagick.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -43,17 +43,17 @@
 file path=usr/bin/MagickCore-config
 file path=usr/bin/MagickWand-config
 file path=usr/bin/Wand-config
-file usr/bin/$(MACH64)/animate path=usr/bin/animate
-file usr/bin/$(MACH64)/compare path=usr/bin/compare
-file usr/bin/$(MACH64)/composite path=usr/bin/composite
-file usr/bin/$(MACH64)/conjure path=usr/bin/conjure
-file usr/bin/$(MACH64)/convert path=usr/bin/convert
-file usr/bin/$(MACH64)/display path=usr/bin/display
-file usr/bin/$(MACH64)/identify path=usr/bin/identify
-file usr/bin/$(MACH64)/import path=usr/bin/import
-file usr/bin/$(MACH64)/mogrify path=usr/bin/mogrify
-file usr/bin/$(MACH64)/montage path=usr/bin/montage
-file usr/bin/$(MACH64)/stream path=usr/bin/stream
+file path=usr/bin/animate
+file path=usr/bin/compare
+file path=usr/bin/composite
+file path=usr/bin/conjure
+file path=usr/bin/convert
+file path=usr/bin/display
+file path=usr/bin/identify
+file path=usr/bin/import
+file path=usr/bin/mogrify
+file path=usr/bin/montage
+file path=usr/bin/stream
 file path=usr/include/ImageMagick-6/Magick++.h
 file path=usr/include/ImageMagick-6/Magick++/Blob.h
 file path=usr/include/ImageMagick-6/Magick++/CoderInfo.h
--- a/components/indent/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/indent/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -17,33 +17,29 @@
 # information: Portions Copyright [yyyy] [name of copyright owner]
 #
 # CDDL HEADER END
+#
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		indent
 COMPONENT_VERSION=	2.2.9
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
-COMPONENT_PROJECT_URL=  https://www.gnu.org/software/indent/
 COMPONENT_ARCHIVE_HASH=	\
     sha256:0b9387bda5639ed54cf91bd607ab055624a07414f7f6882a75be97fd776ce466
-COMPONENT_ARCHIVE_URL=	ftp://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gnu-indent
 
 TPNO=			12225
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= install $(TEST_64)
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # Needed to get "gmake test" working.
 COMPONENT_PRE_CONFIGURE_ACTION =	($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
 
 COMPONENT_TEST_TRANSFORMS += \
@@ -54,26 +50,12 @@
 COMPONENT_TEST_DIR =		$(@D)/regression
 # Need to put /usr/gnu/bin at the front of $PATH for GNU diff.
 COMPONENT_TEST_CMD =		./TEST
-COMPONENT_TEST_ENV +=		PATH=$(GNUBIN):/usr/bin
+COMPONENT_TEST_ENV +=		PATH=$(GNUBIN):$(USRBINDIR)
 COMPONENT_TEST_TARGETS =
 
 COMPONENT_SYSTEM_TEST_DIR =	$(@D)/regression
 COMPONENT_SYSTEM_TEST_CMD =	./TEST
 # Need to put /usr/gnu/bin at the front of $PATH for GNU diff.
-COMPONENT_SYSTEM_TEST_ENV +=	PATH=$(GNUBIN):/usr/bin
-COMPONENT_SYSTEM_TEST_ENV +=	INDENT_BIN=/usr/bin/indent
+COMPONENT_SYSTEM_TEST_ENV +=	PATH=$(GNUBIN):$(USRBINDIR)
+COMPONENT_SYSTEM_TEST_ENV +=	INDENT_BIN=$(USRBINDIR)/indent
 COMPONENT_SYSTEM_TEST_TARGETS =
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		install $(TEST_64)
-
-system-test:	configure $(SYSTEM_TEST_64)
-
-REQUIRED_PACKAGES += system/library
--- a/components/indent/indent.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/indent/indent.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
@@ -35,7 +37,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2013/004
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/indent path=usr/bin/indent
+file path=usr/bin/indent
 file usr/doc/indent/indent.html path=usr/share/doc/indent/indent.html
 file path=usr/share/info/indent.info
 file path=usr/share/locale/ca/LC_MESSAGES/indent.mo
--- a/components/iperf/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/iperf/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,53 +20,32 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		iperf
 COMPONENT_VERSION=	2.0.5
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://sourceforge.net/projects/iperf/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:636b4eff0431cea80667ea85a67ce4c68698760a9837e1e9d13096d20362265b
 COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/iperf/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/iperf
 
 TPNO=			5730
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
 CONFIGURE_OPTIONS  +=	PTHREAD_CFLAGS=-pthreads
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=	CXXFLAGS="$(CXXFLAGS)"
 
 # these default to unnecessary gcc options, which
 # are all that prevents us from using studio. so null them.
 COMPONENT_BUILD_ARGS  +=	AM_CXXFLAGS=""
 COMPONENT_BUILD_ARGS  +=	AM_CFLAGS=""
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/iperf/iperf.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/iperf/iperf.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
@@ -34,6 +36,6 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2009/109
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/iperf path=usr/bin/iperf
+file path=usr/bin/iperf
 file path=usr/share/man/man1/iperf.1
 license iperf.license license=BSD-like
--- a/components/irssi/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/irssi/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,52 +22,33 @@
 #
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         irssi
 COMPONENT_VERSION=	0.8.15
 COMPONENT_PROJECT_URL=	https://irssi.org/
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=\
 	sha256:c12d16fb605103d7c256ddce44012dc396af57f3771e086d0387c195a052a0a6
 COMPONENT_ARCHIVE_URL=	https://github.com/irssi-import/irssi/releases/download/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/irssi
 
 TPNO=		7900
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-ASLR_MODE = $(ASLR_ENABLE)
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Part of the build just runs "cc" (not the path that configure finds).
 COMPONENT_BUILD_ENV +=  PATH=$(dir $(CC)):$(PATH)
 
 CONFIGURE_ENV += "ac_cv_path_perlpath=$(PERL)"
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-
-CONFIGURE_OPTIONS +=	--bindir=/usr/bin
-CONFIGURE_OPTIONS +=    --sysconfdir=/etc
-CONFIGURE_OPTIONS +=    --with-perl=yes
+CONFIGURE_OPTIONS +=    --sysconfdir=$(ETCDIR)
+CONFIGURE_OPTIONS +=    --with-perl
 CONFIGURE_OPTIONS +=    --with-proxy
-CONFIGURE_OPTIONS +=    --with-perl-lib=/usr/perl5/vendor_perl/$(PERL_VERSION)
-
-configure:	$(CONFIGURE_64)
-
-build:          $(BUILD_64)
-
-install:        $(INSTALL_64)
-
-test:           $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
+CONFIGURE_OPTIONS +=    --with-perl-lib=$(USRDIR)/perl5/vendor_perl/$(PERL_VERSION)
 
 REQUIRED_PACKAGES += library/glib2
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += $(PERL_PKG)
-REQUIRED_PACKAGES += system/library
--- a/components/isc-dhcp/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/isc-dhcp/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,11 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		isc-dhcp
@@ -27,8 +30,6 @@
 HUMAN_VERSION=		$(COMPONENT_VERSION)-P1
 IPS_COMPONENT_VERSION=	4.1.0.7.1
 COMPONENT_SRC_NAME=	dhcp
-COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_PROJECT_URL=	http://www.isc.org/software/dhcp/
 COMPONENT_ARCHIVE_URL=  \
     http://ftp.isc.org/isc/dhcp/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
@@ -38,10 +39,8 @@
 
 TPNO=			10383
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+INSTALL_TARGET=
+include $(WS_MAKE_RULES)/common.mk
 
 LINT_FLAGS +=   -I$(BUILD_DIR_32)/includes \
 	-I$(BUILD_DIR_64)/includes -I$(SOURCE_DIR)/includes -I.
@@ -62,28 +61,17 @@
 
 # Disable message in omapip/errwarn.c.
 CPPFLAGS  +=	        -DNOMINUM
-CONFIGURE_OPTIONS  +=   CPPFLAGS="$(CPPFLAGS)"
 
 CFLAGS += -g -fPIC
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
 
 COMPONENT_TEST_DIR =	$(@D)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
 install:	build $(INSTALL_32_and_64) $(PROTO_DIR)/dhcpd.leases
 
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 $(PROTO_DIR)/dhcpd.leases:	$(INSTALL_32_and_64)
 	$(TOUCH) $@
 
 
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/network
--- a/components/isl/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/isl/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,13 +18,15 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         isl
 COMPONENT_VERSION=      0.12.2
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  http://freecode.com/projects/isl
 COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH= \
@@ -34,9 +36,7 @@
 
 TPNO=			23799
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # For the DEBUG_BUILD macro please see RFE/Bug 22185118:
 # https://bug.oraclecorp.com/pls/bug/webbug_edit.edit_info_top?rptno=22185118
@@ -50,7 +50,7 @@
 
 PATCH_LEVEL = 0
 DEBUG_BUILD := 0
-PATH="/usr/gnu/bin:/usr/perl5/bin:/usr/bin:/usr/sbin"
+PATH="$(GNUBIN):/usr/perl5/bin:$(USRBINDIR):$(USRSBINDIR)"
 
 ISL_GCC_ARCH_i386 = -mtune=opteron -march=opteron
 ISL_GCC_ARCH_i386 += -fno-strict-aliasing -fno-omit-frame-pointer
@@ -82,16 +82,12 @@
 CPPFLAGS += `pkg-config --cflags libgmp`
 CPPFLAGS += `pkg-config --cflags libmpfr`
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_ENV +=	LDFLAGS="$(LDFLAGS)"
 CONFIGURE_ENV +=	LD_OPTIONS="$(LD_OPTIONS)"
 CONFIGURE_ENV +=	CCLD="$(CC) $(CFLAGS) $(LDFLAGS)"
 CONFIGURE_ENV +=	LIBS="$(LIBS)"
 CONFIGURE_ENV +=	PATH="$(PATH)"
 
-CONFIGURE_OPTIONS  +=		--localstatedir=/var
+CONFIGURE_OPTIONS  +=		--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--disable-option-checking
 CONFIGURE_OPTIONS  +=		--disable-silent-rules
@@ -158,16 +154,4 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/gmp
-REQUIRED_PACKAGES += system/library
-
--- a/components/jansson/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/jansson/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		jansson
 COMPONENT_VERSION=	2.7
 COMPONENT_PROJECT_URL=	http://www.digip.org/jansson
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:7905e6590fb316c0ff943df3dc6a21cd81a59cff7a6d12514054c359d04d78d7
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)/releases/$(COMPONENT_ARCHIVE)
@@ -34,31 +35,13 @@
 
 TPNO=	19403
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+include $(WS_MAKE_RULES)/common.mk
 
 LINT_FLAGS += -I$(PROTOUSRINCDIR)
 
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS += --includedir=$(USRINCDIR)/jansson
 
 # The test/suites/api/check-exports uses nm and expects it to be the GNU kind.
-COMPONENT_TEST_ENV += PATH=/usr/gnu/bin:$(PATH)
+COMPONENT_TEST_ENV += PATH=$(GNUBIN):$(PATH)
 
 ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/jsl/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/jsl/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,31 +18,30 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 # Preferred compiler set to gcc and not Studio as on Sparc architecture
 # some assembler code is required for locking which fails to compile on
 # solaris, when using gcc this is inlined (see jslock.c)
 COMPILER =	gcc
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		jsl
 COMPONENT_VERSION=	0.3.0
 COMPONENT_PROJECT_URL=	http://www.javascriptlint.com
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC)-src.tar.gz
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:86f16792d71fc59b96f65eca65b1b7466dc046efe6d5ac04c6632f1315e83cfa
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)/download/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/jsl
 
 TPNO=			10774
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_BUILD_ARGS += -f src/Makefile
 COMPONENT_BUILD_ARGS += CC="$(CC)"
@@ -59,17 +58,8 @@
 COMPONENT_TEST_CMD =            $(PERL) ./run_tests.pl
 COMPONENT_TEST_TARGETS =        $(PROTOUSRBINDIR64)/jsl
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
 test:		install $(TEST_64)
 
 # Add install dependency as above when system test targets are implemented.
-system-test:	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
 
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/junit/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/junit/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,11 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		junit
@@ -30,13 +33,21 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:3048cb3f2b07fada9d85b2c042bbedb93892ef70c1dcfe0594124850418f9ffb
 COMPONENT_ARCHIVE_URL=  $(COMPONENT_PROJECT_URL)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/junit
 
 TPNO=                   9070
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ant.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= ant
+
+# Another test is:
+# To test after you have installed the resulting package do:
+# $ java -cp /usr/share/lib/java/junit.jar:/usr/share/doc/junit/samples/org \
+#       junit/samples/money/MoneyTest
+# ......................
+# Time: 0.003
+#
+# OK (22 tests)
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_32)
+include $(WS_MAKE_RULES)/common.mk
 
 # These ARGS override what is set in build.xml
 COMPONENT_BUILD_ARGS 	+= -Ddist=${PROTO_DIR}
@@ -56,7 +67,7 @@
 COMPONENT_TEST_ENV	+= "_JAVA_OPTIONS=-Djava.io.tmpdir=$(BUILD_DIR_32)/tmp"
 COMPONENT_TEST_TARGETS	 = test-build
 
-COMPONENT_SYSTEM_TEST_ARGS	+= -Dsystem-binjar=/usr/share/lib/java/$(COMPONENT_NAME).jar
+COMPONENT_SYSTEM_TEST_ARGS	+= -Dsystem-binjar=$(USRSHARELIBDIR)/java/$(COMPONENT_NAME).jar
 COMPONENT_SYSTEM_TEST_ENV	+= "_JAVA_OPTIONS=-Djava.io.tmpdir=$(BUILD_DIR_32)/tmp"
 COMPONENT_SYSTEM_TEST_TARGETS	 = test
 
@@ -67,23 +78,4 @@
 	'-e "1,/^test/d"' \
 	'-e "s/.*[Tt]ime.*$$//"'
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-build:		$(BUILD_32)
-
-install:	build
-
-# Another test is:
-# To test after you have installed the resulting package do:
-# $ java -cp /usr/share/lib/java/junit.jar:/usr/share/doc/junit/samples/org \
-#       junit/samples/money/MoneyTest
-# ......................
-# Time: 0.003
-#
-# OK (22 tests)
-
-test:		$(TEST_32)
-
-system-test:    build $(SYSTEM_TEST_32)
-
 REQUIRED_PACKAGES += runtime/java/jre-8
--- a/components/krb5/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/krb5/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -65,7 +65,7 @@
 # depends on implicit binding of libc.  Here we explicitly link with libc to
 # satisfy this dependency.
 # If you make changes to LDFLAGS, check krb5-config and 052-krb5-config.patch.
-LDFLAGS += -lc -z defs
+LDFLAGS += -lc $(LD_Z_DEFS)
 
 CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)"
 CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
@@ -134,7 +134,7 @@
 	$(CP) $(SRCLIB)/rpc/dyntest.c $(SRCLIB)/kadm5/srv/; \
 
 # Common flags used to create the filter libs below
-FILTLIBFLAGS = -G -Bdirect -z defs -z text
+FILTLIBFLAGS = -G $(LD_B_DIRECT) $(LD_Z_DEFS) $(LD_Z_TEXT)
 
 $(BUILD_32): COMPONENT_POST_BUILD_ACTION= \
 	$(CC) -o $(BUILD_DIR)/$(MACH32)/lib/libgss.so.1 \
--- a/components/ksh93/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ksh93/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,13 +18,13 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
-COMPONENT_BUGDB=    utility/ksh93
-
 COMPONENT_PROJECT_URL= http://www2.research.att.com/sw/download/
 
 # These are required if retrieving packages from the AT&T website.
@@ -150,30 +150,17 @@
 BUILD_32_and_64=
 INSTALL_32_and_64=
 PUBLISH_STAMP=
-endif
 
-# common targets
-build:		$(BUILD_32_and_64)
-	
-install:	$(INSTALL_32_and_64)	
-ifneq ($(BUILD_TYPE), evaluation)
+COMPONENT_POST_INSTALL_ACTION += \
 	(for binary in msgcvt msgcpp msgget msggen ksh shcomp alias; do \
 		/usr/bin/elfedit -e 'dyn:delete RPATH' -e 'dyn:delete RUNPATH' \
 		    "$(PROTO_DIR)/$(MACH64)/bin/$$binary" ; \
 	done )
 endif
 
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-PKG_PROTO_DIRS +=   $(COMPONENT_DIR)/files
-
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/attpackagemake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= attpackagemake
+include $(WS_MAKE_RULES)/common.mk
 
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/library/security/crypto
--- a/components/lcms/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/lcms/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,26 +18,23 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME =        lcms
 COMPONENT_VERSION=      1.19
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  http://www.littlecms.com/
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:80ae32cb9f568af4dc7ee4d3c05a4c31fc513fc3e31730fed0ce7378237273a9
 COMPONENT_ARCHIVE_URL=  http://sourceforge.net/projects/lcms/files/lcms/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/lcms
 
 TPNO=			9072
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 
@@ -61,12 +58,10 @@
 CXXFLAGS += -features=extensions,nestedaccess,tmplrefstatic
 CXXFLAGS += -template=geninlinefuncs
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)"
 CONFIGURE_ENV += PYTHON="$(PYTHON)"
 CONFIGURE_ENV += PYTHONMODULEDIR="$(PYTHON_VENDOR_PACKAGES)"
 
-CONFIGURE_OPTIONS  +=           --includedir=/usr/include/lcms
+CONFIGURE_OPTIONS  +=           --includedir=$(USRINCDIR)/lcms
 CONFIGURE_OPTIONS  +=           --enable-shared
 CONFIGURE_OPTIONS  +=           --disable-static
 CONFIGURE_OPTIONS  +=           --with-jpeg
@@ -75,8 +70,6 @@
 CONFIGURE_OPTIONS  +=           --with-python
 CONFIGURE_OPTIONS  +=           --with-pic
 
-PKG_PROTO_DIRS +=	$(COMPONENT_SRC)
-
 # in order to run the tests, we need to use cloney
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
 
@@ -88,22 +81,12 @@
 
 LINT_FLAGS += -I$(COMPONENT_DIR)/$(COMPONENT_SRC)/include
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-	$(PYTHON.2.7.32) -m compileall $(PROTO_DIR)/usr/lib/python2.7/vendor-packages
-
-
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+COMPONENT_POST_INSTALL_ACTION += \
+	$(PYTHON.2.7.32) -m compileall $(PROTOUSRLIBDIR)/python2.7/vendor-packages
 
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += image/library/libtiff
 REQUIRED_PACKAGES += library/lcms
 REQUIRED_PACKAGES += runtime/python-27
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/lcms/lcms.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/lcms/lcms.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,13 +36,13 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 #
 #
-file usr/bin/$(MACH64)/icc2ps path=usr/bin/icc2ps
-file usr/bin/$(MACH64)/icclink path=usr/bin/icclink
-file usr/bin/$(MACH64)/icctrans path=usr/bin/icctrans
-file usr/bin/$(MACH64)/jpegicc path=usr/bin/jpegicc
-file usr/bin/$(MACH64)/tiffdiff path=usr/bin/tiffdiff
-file usr/bin/$(MACH64)/tifficc path=usr/bin/tifficc
-file usr/bin/$(MACH64)/wtpt path=usr/bin/wtpt
+file path=usr/bin/icc2ps
+file path=usr/bin/icclink
+file path=usr/bin/icctrans
+file path=usr/bin/jpegicc
+file path=usr/bin/tiffdiff
+file path=usr/bin/tifficc
+file path=usr/bin/wtpt
 file path=usr/include/lcms/icc34.h
 file path=usr/include/lcms/lcms.h
 #
--- a/components/lcms2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/lcms2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME =        lcms2
 COMPONENT_VERSION=      2.7
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  http://www.littlecms.com/
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:4524234ae7de185e6b6da5d31d6875085b2198bc63b1211f7dde6e2d197d6a53
 COMPONENT_ARCHIVE_URL=  http://sourceforge.net/projects/lcms/files/lcms/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
@@ -34,10 +35,7 @@
 
 TPNO=			25712
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # In order to run the tests, we need to use cloney
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -45,12 +43,7 @@
 # Seems that we have no other way to designate that we want large file support.
 CFLAGS += $(CPP_LARGEFILES)
 
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
-
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)"
-
-CONFIGURE_OPTIONS +=	--includedir=/usr/include/lcms
+CONFIGURE_OPTIONS +=	--includedir=$(USRINCDIR)/lcms
 CONFIGURE_OPTIONS +=	--enable-shared
 CONFIGURE_OPTIONS +=	--disable-static
 CONFIGURE_OPTIONS +=	--with-jpeg
@@ -82,19 +75,6 @@
 	'-e "s|^make.*: Entering directory.*$$|XXX_REMOVE_XXX|g" ' \
 	'-e "/^XXX_REMOVE_XXX$$/d" '
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += image/library/libtiff
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/less/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/less/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,46 +20,24 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		less
 COMPONENT_VERSION=	481
 COMPONENT_PROJECT_URL=	http://www.greenwoodsoftware.com/less/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:3fa38f2cf5e9e040bb44fffaa6c76a84506e379e47f5a04686ab78102090dda5	
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/less
 
 TPNO=			25171
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CC += $(CC_BITS)
-
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_PREFIX)/bin
-
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-
-ASLR_MODE = $(ASLR_ENABLE)
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+# Fix 64-bit linking done via compiler.
+LDFLAGS += $(CC_BITS)
 
 REQUIRED_PACKAGES += library/ncurses
-REQUIRED_PACKAGES += system/library
--- a/components/lftp/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/lftp/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,47 +20,28 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		lftp
 COMPONENT_VERSION=	4.6.4
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://lftp.yar.ru/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:762ad076124e605112feabbc5ae3df44e91bc3e01d5cd9b96afcdba14d6b407e
 COMPONENT_ARCHIVE_URL= $(COMPONENT_PROJECT_URL)/ftp/$(COMPONENT_ARCHIVE)	
-COMPONENT_BUGDB=	utility/lftp
 
 TPNO=			25164
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL =   0
 
-CONFIGURE_ENV	+=	PKG_CONFIG_PATH=/usr/lib/$(MACH64)/pkgconfig/gnutls-3
+CONFIGURE_ENV	+=	PKG_CONFIG_PATH=$(PKG_CONFIG_PATH.64)/gnutls-3
 CONFIGURE_OPTIONS  +=		--localedir=$(CONFIGURE_LOCALEDIR)
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=		CXXFLAGS="$(CXXFLAGS)"
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 
 REQUIRED_PACKAGES += library/expat
 REQUIRED_PACKAGES += library/gnutls-3
@@ -69,6 +50,5 @@
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/perl-520
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/lftp/lftp.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/lftp/lftp.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,8 +35,8 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 file path=etc/lftp.conf mode=0644 original_name=SUNWlftp:etc/lftp.conf \
     preserve=renamenew
-file usr/bin/$(MACH64)/lftp path=usr/bin/lftp
-file usr/bin/$(MACH64)/lftpget path=usr/bin/lftpget
+file path=usr/bin/lftp
+file path=usr/bin/lftpget
 file path=usr/share/lftp/convert-mozilla-cookies mode=0555
 file path=usr/share/lftp/import-ncftp mode=0555
 file path=usr/share/lftp/import-netscape mode=0555
--- a/components/libarchive/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libarchive/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libarchive
 COMPONENT_VERSION=	3.1.2
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.libarchive.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:eb87eacd8fe49e8d90c8fdc189813023ccc319c5e752b01fb6ad0cc7b2c53d5e
 COMPONENT_ARCHIVE_URL=	\
@@ -35,9 +36,7 @@
 
 TPNO=			24584
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # Userland default includes -mt which links with libthread which we don't need.
 studio_MT =
@@ -64,18 +63,16 @@
 # We then convert BSD-style section numbers in the libarchive man pages to
 # Solaris-style section numbers.
 COMPONENT_PREP_ACTION = \
-	cd $(@D)/doc/man ; rm *.[135] ; env PATH=/usr/gnu/bin:$$PATH gmake all ; \
+	cd $(@D)/doc/man ; rm *.[135] ; env PATH=$(GNUBIN):$$PATH gmake all ; \
 	cd $(@D)/libarchive ; \
-	find . -name "*\.[35]" | xargs /usr/bin/gsed -i 's/\(Xr.*\|Dt.*\)3/\13ARCHIVE/' ; \
-	find . -name "*\.[35]" | xargs /usr/bin/gsed -i \
+	find . -name "*\.[35]" | xargs $(GSED) -i 's/\(Xr.*\|Dt.*\)3/\13ARCHIVE/' ; \
+	find . -name "*\.[35]" | xargs $(GSED) -i \
 	-e 's/Xr \(malloc\|getpwuid\|getgrgud\|strerror\|printf\|getpwnam\|getgrnam\) 3ARCHIVE/Xr \13C/' \
 	-e 's/\(Dt.*LIBARCHIVE.*\)3ARCHIVE/\13LIB/' \
 	-e 's/Xr \(libarchive\|archive\) 3ARCHIVE/Xr libarchive 3LIB/';
 
 PKG_PROTO_DIRS += $(COMPONENT_SRC)/doc/man
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 COMPONENT_TEST_TRANSFORMS += \
 	'-e "s|$(COMPONENT_TEST_BUILD_DIR).*$$|build/test|g"' \
@@ -90,16 +87,8 @@
 	'-e "s|^make.*\*\*\*.*Error.*$$|XXX_CC_XXX|g" ' \
 	'-e "/^XXX_CC_XXX$$/d"'
 
-configure:	$(CONFIGURE_32_and_64)
-build:		$(BUILD_32_and_64)
-install:	$(INSTALL_32_and_64)
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += compress/bzip2
 REQUIRED_PACKAGES += compress/xz
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
--- a/components/libassuan/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libassuan/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,13 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+# Prefer 32-bit as only "binary" delivered is a script with embedded paths.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libassuan
 COMPONENT_VERSION=	2.2.0
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.gnupg.org/related_software/libassuan/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
@@ -34,9 +37,7 @@
 
 TPNO=			22290
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # Enable C99 mode + -Xc for its additional warnings.
 studio_C99MODE = -Xc $(studio_C99_ENABLE)
@@ -64,7 +65,7 @@
 CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_ENV +=	INSTALL="$(INSTALL)"
 
-CONFIGURE_OPTIONS  +=		--localstatedir=/var
+CONFIGURE_OPTIONS  +=		--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--enable-shared
 CONFIGURE_OPTIONS  +=		--disable-static
@@ -74,18 +75,5 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
-
 REQUIRED_PACKAGES += library/security/libgpg-error
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/libassuan/libassuan.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libassuan/libassuan.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -34,6 +34,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2009/397
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+file path=usr/bin/$(MACH64)/libassuan-config
 #
 file path=usr/bin/libassuan-config
 file path=usr/include/assuan.h
@@ -50,4 +51,3 @@
 file path=usr/share/info/assuan.info
 #
 license libassuan.license license="GPLv3, LGPLv2"
-
--- a/components/libconfuse/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libconfuse/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,17 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libconfuse
 COMPONENT_VERSION=	2.6
 COMPONENT_SRC_NAME=	confuse
-COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.nongnu.org/confuse/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:e8d653159b152f3850a7224b3eb604955795dbd3fd6603816ee46411ea53e84a
 COMPONENT_ARCHIVE_URL=	http://bzero.se/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
@@ -35,13 +36,12 @@
 
 TPNO=			6306
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= install $(TEST_32_and_64)
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
 CONFIGURE_OPTIONS +=	--disable-static
 CONFIGURE_OPTIONS +=	--enable-shared
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 
 # This is really only needed to get the test target to pass.
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -71,15 +71,3 @@
 COMPONENT_TEST_ENV +=   LD_LIBRARY_PATH=$(TEST_LIBPATH.$(BITS))
 
 ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		install $(TEST_32_and_64)
-
-system-test:    configure $(SYSTEM_TEST_32_and_64)
-
-REQUIRED_PACKAGES += system/library
--- a/components/libdaemon/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libdaemon/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME         = libdaemon
 COMPONENT_VERSION      = 0.14
 COMPONENT_PROJECT_URL  = http://0pointer.de/lennart/projects/libdaemon/
-COMPONENT_SRC          = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE      = $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH = \
 	 sha256:fd23eb5f6f986dcc7e708307355ba3289abe03cc381fc47a80bca4a50aa6b834
 COMPONENT_ARCHIVE_URL  = http://0pointer.de/lennart/projects/libdaemon/$(COMPONENT_ARCHIVE)
@@ -37,24 +35,8 @@
 
 TPNO                   = 9316
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION = (cd $(@D) ; autoreconf -if)
 
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
-
-CONFIGURE_ENV         += "CFLAGS=$(CFLAGS)"
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(TEST_32_and_64)
-
-system-test:	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
--- a/components/libdnet/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libdnet/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,18 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
-PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 
 COMPONENT_NAME=		libdnet
 COMPONENT_VERSION=	1.12
 COMPONENT_PROJECT_URL=	http://code.google.com/p/libdnet/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:83b33039787cf99990e977cef7f18a5d5e7aaffc4505548a83d31bd3515eb026
@@ -36,9 +38,13 @@
 
 TPNO=			9402
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= install $(TEST_32_and_64)
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
+
+# Fix 64-bit linking done via compiler.
+LDFLAGS += $(CC_BITS)
+COMPONENT_BUILD_ENV += CFLAGS="$(CFLAGS)"
 
 # Needed to generate libraries with a .so extension.
 COMPONENT_PREP_ACTION = \
@@ -48,10 +54,6 @@
 		automake --add-missing --copy ; \
 		autoconf)
 
-# Set -m32 or -m64 correctly for 32 and 64 bit versions.
-CC +=	$(CC_BITS)
-LDFLAGS += $(CC_BITS)
-
 # Remove Linux specific functionality.
 CONFIGURE_OPTIONS += ac_cv_dnet_linux_pf_packet=no
 
@@ -60,9 +62,6 @@
 # Currently only support for Python 2.7.
 CONFIGURE_OPTIONS +=	--with-python
 
-COMPONENT_BUILD_ARGS +=	CC="$(CC)"
-COMPONENT_BUILD_ARGS +=	LDFLAGS="$(LDFLAGS)"
-
 PKG_MACROS +=		MACHINE=$(shell uname -m)
 
 # Needed for "gmake test" to work successfully.
@@ -98,17 +97,6 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		install $(TEST_32_and_64)
-
-system-test:    configure $(SYSTEM_TEST_32_and_64)
-
 REQUIRED_PACKAGES += developer/test/check
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/libdnet/libdnet.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libdnet/libdnet.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -34,8 +34,9 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2012/202
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file path=usr/bin/$(MACH64)/dnet-config
-file path=usr/bin/dnet-config
+# dnet-config contains embedded paths, so swap these around.
+file usr/bin/dnet-config path=usr/bin/$(MACH64)/dnet-config
+file usr/bin/$(MACH32)/dnet-config path=usr/bin/dnet-config
 file path=usr/include/dnet.h
 file path=usr/include/dnet/addr.h
 file path=usr/include/dnet/arp.h
@@ -64,7 +65,7 @@
     path=usr/lib/python2.7/vendor-packages/dnet-$(COMPONENT_VERSION)-py2.7.egg-info
 file $(MACH32)/python/build/lib.solaris-$(SOLARIS_VERSION)-$(MACHINE).32bit-2.7/dnet.so \
     path=usr/lib/python2.7/vendor-packages/dnet.so
-file usr/sbin/$(MACH64)/dnet path=usr/sbin/dnet
+file path=usr/sbin/dnet
 file path=usr/share/man/man3/dnet.3
 file path=usr/share/man/man8/dnet.8
 license libdnet.license license="libdnet license"
--- a/components/libedit/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libedit/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,17 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libedit
 COMPONENT_VERSION=	20150325-3.1
 IPS_COMPONENT_VERSION=  3.1
 COMPONENT_PROJECT_URL=	http://www.thrysoee.dk/editline/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:c88a5e4af83c5f40dda8455886ac98923a9c33125699742603a88a0253fcc8c5
 COMPONENT_ARCHIVE_URL=	http://www.thrysoee.dk/editline/$(COMPONENT_ARCHIVE)
@@ -35,27 +36,8 @@
 
 TPNO=			22295
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS +=    CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=   --enable-shared
 CONFIGURE_OPTIONS +=   --disable-static
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/libee/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libee/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,44 +18,29 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libee
 COMPONENT_VERSION=	0.4.1
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.libee.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	sha256:c0dac01938593deee06c3d161e4eda4ecc0fd7317e1321bd96e301aceb7fb027
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)files/download/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	service/rsyslog
 TPNO=			20532
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# Tests are currently broken
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Userland default includes -mt which links with libthread which we don't need.
 studio_MT =
 
-# This is needed for the 64-bit library to be built correctly.
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-# Tests are currently broken
-test:		$(NO_TESTS)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/libestr
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/libestr/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libestr/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,43 +18,26 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libestr
 COMPONENT_VERSION=	0.1.9
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://libestr.adiscon.com/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	sha256:822c6e2d01eaca1e72201f403a2ca01f3e86410b880e508e5204e3c2694d751a
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)files/download/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	service/rsyslog
 TPNO=			20531
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# No longer seems to have tests
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Userland default includes -mt which links with libthread which we don't need.
 studio_MT =
 
-# This is needed for the 64-bit library to be built correctly.
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-# No longer seems to have tests
-test:		$(NO_TESTS)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
--- a/components/libevent/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libevent/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,9 +20,9 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libevent
@@ -30,7 +30,6 @@
 IPS_COMPONENT_VERSION=	1.4.14.2
 COMPONENT_PROJECT_URL=	http://monkey.org/~provos/libevent/
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)-stable
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:afa61b476a222ba43fc7cca2d24849ab0bbd940124400cb699915d3c60e46301
 COMPONENT_ARCHIVE_URL=	http://cloud.github.com/downloads/libevent/libevent/$(COMPONENT_ARCHIVE)
@@ -38,26 +37,20 @@
 
 TPNO=			5581
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION =  \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
-#The original manpage is in a format that the Solaris man command does
-#not understand. Hence it has been manually converted.
-#
-#List of files from the original package that are not being delivered
+# The original manpage is in a format that the Solaris man command does not
+# understand. Hence it has been manually converted.
 #
-#/usr/bin/event_rpcgen.py
+# List of files from the original package that are not being delivered
+#
+# /usr/bin/event_rpcgen.py
 
-CONFIGURE_OPTIONS	+= CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS	+= --disable-static
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
 COMPONENT_TEST_TARGETS =	verify
 
 # \x24 represents the character '$'
@@ -67,16 +60,3 @@
 # Master test results are the same for 32-bit and 64-bit, so override
 # here, rather than create multiple identical master files.
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/libexpat/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libexpat/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,17 +20,15 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libexpat
 COMPONENT_VERSION=	2.1.0
 COMPONENT_PROJECT_URL=	http://expat.sourceforge.net/
 COMPONENT_SRC_NAME=	expat
-COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:823705472f816df21c8f6aa026dd162b280806838bb55b3432b0fb1fcca7eb86
 COMPONENT_ARCHIVE_URL= \
@@ -39,25 +37,6 @@
 
 TPNO=			5498
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS) $(CPP_LARGEFILES)"
-CONFIGURE_OPTIONS += CXXFLAGS="$(CXXFLAGS)"
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+include $(WS_MAKE_RULES)/common.mk
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-REQUIRED_PACKAGES += system/library
+CFLAGS += $(CPP_LARGEFILES)
--- a/components/libffi/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libffi/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,18 +18,17 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER =	gcc
-
+BUILD_BITS= 64_and_32
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libffi
 COMPONENT_VERSION=	3.0.9
 COMPONENT_PROJECT_URL=	http://sourceware.org/libffi/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:589d25152318bc780cd8919b14670793f4971d9838dab46ed38c32b3ee92c452
 COMPONENT_ARCHIVE_URL=	ftp://sources.redhat.com/pub/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
@@ -37,11 +36,7 @@
 
 TPNO=		5930
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CC +=		$(CC_BITS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_TEST_DIR =	$(@D)/testsuite
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
@@ -55,20 +50,8 @@
 
 CFLAGS += -DFFI_MMAP_EXEC_WRIT=1
 
-CONFIGURE_OPTIONS += --enable-raw-api=no
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
+CONFIGURE_OPTIONS += --disable-raw-api
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(TEST_32_and_64)
-
-system-test:    $(NO_TESTS)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
--- a/components/libgcrypt/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libgcrypt/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,14 +20,13 @@
 #
 
 #
-# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libgcrypt
 COMPONENT_VERSION=	1.5.3
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  ftp://ftp.gnupg.org/gcrypt/libgcrypt/ 
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH= \
@@ -39,27 +38,18 @@
 
 COMPONENT_BUILD_TARGETS = all info
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS += --sysconfdir=/etc
+CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)
 CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS += --enable-maintainer-mode 
 CONFIGURE_OPTIONS += --disable-asm 
 CONFIGURE_OPTIONS += --enable-ciphers=arcfour:blowfish:des:aes:twofish:serpent:rfc2268:seed:camellia:cast5
-CONFIGURE_OPTIONS.64 += CC="$(CC) -m64"
 
 ASLR_MODE = $(ASLR_ENABLE)
 
 include ../../make-rules/shared-targets.mk
 
-configure:      $(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 
 COMPONENT_TEST_TRANSFORMS += \
@@ -67,9 +57,4 @@
         '-e "/FAIL/p" ' \
         '-e "/All/p" '
 
-test:           $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/security/libgpg-error
-REQUIRED_PACKAGES += system/library
--- a/components/libgcrypt/libgcrypt.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libgcrypt/libgcrypt.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,10 +36,11 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2013/422
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file path=usr/bin/$(MACH64)/libgcrypt-config
-file usr/bin/$(MACH64)/dumpsexp path=usr/bin/dumpsexp
-file usr/bin/$(MACH64)/hmac256 path=usr/bin/hmac256
-file path=usr/bin/libgcrypt-config
+# libgcrypt-config contains embedded paths, so swap these around.
+file usr/bin/libgcrypt-config path=usr/bin/$(MACH64)/libgcrypt-config
+file path=usr/bin/dumpsexp
+file path=usr/bin/hmac256
+file usr/bin/$(MACH32)/libgcrypt-config path=usr/bin/libgcrypt-config
 file path=usr/include/gcrypt-module.h
 file path=usr/include/gcrypt.h
 link path=usr/lib/$(MACH64)/libgcrypt.so target=libgcrypt.so.11.8.2
--- a/components/libgpg-error/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libgpg-error/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,14 +20,13 @@
 #
 
 #
-# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libgpg-error
 COMPONENT_VERSION=	1.12
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  ftp://ftp.gnupg.org/gcrypt/$(COMPONENT_NAME)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH= \
@@ -39,13 +38,10 @@
 
 COMPONENT_BUILD_TARGETS = all info
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS += --sysconfdir=/etc
+CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)
 CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS.64 += CC="$(CC) -m64"
 
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 
@@ -53,15 +49,4 @@
 
 include ../../make-rules/shared-targets.mk
 
-configure:      $(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += consolidation/desktop/desktop-incorporation
--- a/components/libgpg-error/libgpg-error.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libgpg-error/libgpg-error.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,9 +36,10 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2009/397
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file path=usr/bin/$(MACH64)/gpg-error-config
-file usr/bin/$(MACH64)/gpg-error path=usr/bin/gpg-error
-file path=usr/bin/gpg-error-config
+# gpg-error-config contains embedded paths, so swap these around.
+file usr/bin/gpg-error-config path=usr/bin/$(MACH64)/gpg-error-config
+file path=usr/bin/gpg-error
+file usr/bin/$(MACH32)/gpg-error-config path=usr/bin/gpg-error-config
 file path=usr/include/gpg-error.h
 link path=usr/lib/$(MACH64)/libgpg-error.so target=libgpg-error.so.0.10.0
 link path=usr/lib/$(MACH64)/libgpg-error.so.0 target=libgpg-error.so.0.10.0
--- a/components/libgsl/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libgsl/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,26 +18,24 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		gsl
 COMPONENT_VERSION=	2.1
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/gsl/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:59ad06837397617f698975c494fe7b2b698739a59e2fcf830b776428938a0c66
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/libgsl
 
 TPNO=			26006
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET=
+SYSTEM_TEST_TARGET=
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # NOTE:
 # The libgsl package on Solaris is getting GSL CBLAS routines from
@@ -80,20 +78,15 @@
 LDFLAGS += $(LD_Z_DEFS)
 LDFLAGS += $(LD_DEF_LIBS)
 
-STUDIO_LIBS_PATH.32 =	/usr/lib/studio
-STUDIO_LIBS_PATH.64 =	/usr/lib/studio/64
+STUDIO_LIBS_PATH.32 =	$(USRLIBDIR)/studio
+STUDIO_LIBS_PATH.64 =	$(USRLIBDIR)/studio/64
 
 LDFLAGS += -L$(STUDIO_LIBS_PATH.$(BITS)) -R$(STUDIO_LIBS_PATH.$(BITS)) \
 		-lsunperf -lfsu -lmtsk -lpicl -lkstat
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)"
-
 COMPONENT_BUILD_ARGS += CFLAGS="$(CFLAGS)"
 COMPONENT_BUILD_ARGS += LDFLAGS="$(LDFLAGS)"
 
-CC += $(CC_BITS)
-
 COMPONENT_TEST_ARGS =		-k -i
 COMPONENT_SYSTEM_TEST_ARGS =	-k -i
 
@@ -128,12 +121,6 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
 # There are known problems in libsunperf that are causing GSL test failures
 # in Solaris 12 with Studio 12.4 just on the x86 platform:
 # linalg: FAIL:   LQ_update m(5,3) [88]                             (32-bit)
@@ -145,7 +132,6 @@
 system-test:    build $(SYSTEM_TEST_32_and_64)
 
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/library/openmp
 REQUIRED_PACKAGES += system/library/sunperf
--- a/components/libgsl/libgsl.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libgsl/libgsl.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,10 +35,11 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2015/122
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file path=usr/bin/$(MACH64)/gsl-config
-file path=usr/bin/gsl-config
-file usr/bin/$(MACH64)/gsl-histogram path=usr/bin/gsl-histogram
-file usr/bin/$(MACH64)/gsl-randist path=usr/bin/gsl-randist
+# gsl-config needs swapping because it embeds library paths.
+file usr/bin/gsl-config path=usr/bin/$(MACH64)/gsl-config
+file usr/bin/$(MACH32)/gsl-config path=usr/bin/gsl-config
+file path=usr/bin/gsl-histogram
+file path=usr/bin/gsl-randist
 file path=usr/include/gsl/gsl_blas.h
 file path=usr/include/gsl/gsl_blas_types.h
 file path=usr/include/gsl/gsl_block.h
--- a/components/libidn/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libidn/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,20 +18,19 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
-PATH=$(dir $(CC)):$(JAVA_HOME)/bin:/usr/bin:/usr/gnu/bin
+PATH=$(dir $(CC)):$(JAVA_HOME)/bin:$(USRBINDIR):$(GNUBIN)
 
 COMPONENT_NAME=		libidn
 COMPONENT_VERSION=	1.19
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/libidn/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:8ed2e936b1ae3e30b45b54ca3672deaa83ee0f4d20db5ad83dc1af7222d39f41
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/libidn/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/libidn
 
 COMPONENT_ARCHIVE_1 =   tld-0.7.tar.gz
@@ -41,10 +40,8 @@
 
 TPNO=			8441
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+INSTALL_TARGET=
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 PATCH_LEVEL = 0
 LINT_FLAGS += -I$(PROTOUSRINCDIR)/idn
@@ -53,10 +50,10 @@
 studio_C99MODE = -Xc $(studio_C99_ENABLE)
 
 # -xinline=%auto -- we like inlining where appropriate
-CFLAGS += -xinline=%auto
+CFLAGS.studio += -xinline=%auto
 
 # -xbuiltin=%none -- builtins have been known to be buggy
-CFLAGS += -xbuiltin=%none
+CFLAGS.studio += -xbuiltin=%none
 
 CFLAGS += $(CPP_LARGEFILES)
 CFLAGS += $(XPG6MODE)
@@ -91,17 +88,10 @@
      '-e "/wrapped in unpack at/d"' \
      '-e "s/^make\[[0-9]\{1,\}\]/make/g"'
 
-GUNZIP = /usr/bin/gunzip
-TAR = /usr/bin/tar
-FIND = /usr/bin/find
-
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	LDFLAGS="$(LDFLAGS)"
 CONFIGURE_ENV +=	INSTALL="$(INSTALL)"
 
-CONFIGURE_OPTIONS  +=		--bindir=/usr/bin
-CONFIGURE_OPTIONS  +=		--includedir=/usr/include/idn
-CONFIGURE_OPTIONS  +=		--localstatedir=/var
+CONFIGURE_OPTIONS  +=		--includedir=$(USRINCDIR)/idn
+CONFIGURE_OPTIONS  +=		--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--enable-shared
 CONFIGURE_OPTIONS  +=		--disable-static
@@ -117,7 +107,6 @@
 CONFIGURE_OPTIONS  +=		--with-html-dir=$(CONFIGURE_PREFIX)/share/doc
 CONFIGURE_OPTIONS  +=		--with-pic
 
-PROTOUSRSHAREDOCDIR = $(PROTOUSRSHAREDIR)/doc
 IDNDOCDIR = $(PROTOUSRSHAREDOCDIR)/idn
 HTMLDOCDIR = $(IDNDOCDIR)/html
 HTMLDOCLIST = libidn-components.png libidn.html
@@ -145,10 +134,6 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
 install: $(INSTALL_32_and_64)
 	$(MKDIR) $(HTMLDOCDIR) ; \
 	list1='$(HTMLDOCLIST)' ; for f in $$list1; do \
@@ -165,9 +150,3 @@
 	    $(IDNDOCDIR)/
 	$(CP) -Rp $(PROTOUSRSHAREDIR)/locale/en@boldquot \
 	    $(PROTOUSRSHAREDIR)/locale/en
-
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
--- a/components/libksba/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libksba/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,13 +18,16 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+# Prefer 32-bit as only "binary" delivered is a script with embedded paths.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libksba
 COMPONENT_VERSION=	1.3.3
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.gnupg.org/related_software/libksba/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
@@ -34,9 +37,7 @@
 
 TPNO=			22395
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # Enable C99 mode + -Xc for its additional warnings.
 studio_C99MODE = -Xc $(studio_C99_ENABLE)
@@ -56,10 +57,9 @@
 COMPONENT_TEST_MASTER = \
 	$(COMPONENT_TEST_RESULTS_DIR)/results-libksba.master
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_ENV +=	INSTALL="$(INSTALL)"
 
-CONFIGURE_OPTIONS  +=		--localstatedir=/var
+CONFIGURE_OPTIONS  +=		--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--enable-shared
 CONFIGURE_OPTIONS  +=		--disable-static
@@ -69,18 +69,5 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
-
 REQUIRED_PACKAGES += library/security/libgpg-error
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/libksba/libksba.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libksba/libksba.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -33,6 +33,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2009/397
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+file path=usr/bin/$(MACH64)/ksba-config
 #
 file path=usr/bin/ksba-config
 file path=usr/include/ksba.h
--- a/components/liblogging/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/liblogging/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		liblogging
 COMPONENT_VERSION=	1.0.4
 COMPONENT_PROJECT_URL=	http://www.liblogging.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:aceb5d2aa8bdc771ff66f407f9adf4176b654db63e34a8605795b68be537b81c
 COMPONENT_ARCHIVE_URL=	\
@@ -37,9 +35,8 @@
 COMPONENT_BUGDB=	service/rsyslog
 TPNO=			20535
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Means build only stdlog
 CONFIGURE_OPTIONS +=    --disable-journal
@@ -47,20 +44,3 @@
 # There are built man pages in the tarball, which we shall patch. Making them
 # here would require python-docutils.
 CONFIGURE_OPTIONS +=	--disable-man-pages
-CONFIGURE_OPTIONS +=    --bindir=$(USRBINDIR)
-
-# Set -m32 or -m64 correctly for 32 and 64 bit versions.
-CC +=	$(CC_BITS)
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
-
-REQUIRED_PACKAGES += system/library
--- a/components/libmemcached/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libmemcached/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -19,15 +19,13 @@
 # CDDL HEADER END
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libmemcached
 COMPONENT_VERSION=	0.16
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:d4fb3a64dc592c104caa4e98bc11f209fcb97eecdeb7f506797320dea75b9459
 COMPONENT_ARCHIVE_URL= http://launchpadlibrarian.net/33299595/${COMPONENT_ARCHIVE}
@@ -36,19 +34,16 @@
 
 TPNO=			5582
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 CFLAGS += -xstrconst
+
+ifeq ($(OS_VERSION),5.11)
 LDFLAGS += -lsocket -lnsl
+endif
 
 CONFIGURE_ENV +=	MAKE=$(GMAKE)
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS +=	LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS +=    --bindir=$(USRBINDIR) 
 CONFIGURE_OPTIONS +=	--includedir=$(CONFIGURE_INCLUDEDIR)
 
 # need some files in $(SOURCE_DIR)/docs during build
@@ -69,9 +64,7 @@
 
 # Similarly, set pkglibdir in the arguments to gmake; otherwise
 # the Makefile sets runpath to a non-existent /usr/lib/libmemcached directory.
-COMPONENT_BUILD_ARGS +=	pkglibdir=/usr/lib
-
-ASLR_MODE = $(ASLR_ENABLE)
+COMPONENT_BUILD_ARGS +=	pkglibdir=$(USRLIBDIR)
 
 COMPONENT_INSTALL_ENV +=	DESTDIR=$(PROTO_DIR)
 
@@ -85,16 +78,4 @@
 	'-e "s|^make.*: Entering directory.*$$|XXX_REMOVE_XXX|g" ' \
 	'-e "/^XXX_REMOVE_XXX$$/d" '
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
 # Tests fail, probably because memcached is not running.
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/libmicrohttpd/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libmicrohttpd/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,35 +18,27 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME = libmicrohttpd
 COMPONENT_VERSION = 0.9.37
-COMPONENT_PROJECT_URL = http://ftp.gnu.org/gnu/libmicrohttpd/
-COMPONENT_SRC = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE = $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH = \
     sha256:a78cbcc050fb50f4ef4cf02709a3f8dd498e9230271b445fc3dbec4132b47cdc
-COMPONENT_ARCHIVE_URL = $(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/libmicrohttpd
 
 TPNO = 18422
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 LINT_FLAGS += -I$(PROTOUSRINCDIR)
 
-CC += $(CC_BITS)
 CPPFLAGS += $(CPP_LARGEFILES)
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)"
-
 CONFIGURE_OPTIONS += --disable-https
 CONFIGURE_OPTIONS += --disable-spdy
 CONFIGURE_OPTIONS += --includedir=$(USRINCDIR)/microhttpd
@@ -59,12 +51,3 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
--- a/components/libmng/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libmng/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libmng
 COMPONENT_VERSION=	1.0.10
 COMPONENT_PROJECT_URL=	http://www.libmng.com/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:03a79dac9b9316d37227057614a248a946f997c4d1a3437fb569e9a63897f911
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/libmng/files/libmng-devel/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
@@ -58,19 +56,16 @@
 
 TPNO=			5583
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+INSTALL_TARGET=
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # because Solaris installed the lcms headers elsewhere
 CFLAGS += `pkg-config --cflags lcms`
 # because it's unclear that --enable-largefile works properly
 CFLAGS += $(CPP_LARGEFILES)
 
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-
-CONFIGURE_OPTIONS += --includedir=/usr/include/libmng
+CONFIGURE_OPTIONS += --includedir=$(USRINCDIR)/libmng
 CONFIGURE_OPTIONS += --disable-static
 CONFIGURE_OPTIONS += --with-pic
 CONFIGURE_OPTIONS += --enable-shared 
@@ -94,25 +89,14 @@
 	    $(CP) makefiles/configure.in makefiles/Makefile.am . ; \
 	    ACLOCAL=aclocal-1.11 AUTOMAKE=automake-1.11 autoreconf -fiv)
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
 $(BUILD_DIR)/libmng-64.pc:	Solaris/libmng-64.pc
 	/bin/sed -e "s#MACH64#$(MACH64)#g" <$< >$@
 
 # common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
 install:	$(INSTALL_32_and_64) $(BUILD_DIR)/libmng-64.pc
 
-test:	$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
+REQUIRED_PACKAGES += developer/build/automake-111
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += library/lcms
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/libneon/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libneon/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,18 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+# Prefer 32-bit as only "binary" delivered is a script with embedded paths.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME = libneon
 COMPONENT_VERSION = 0.30.1
 COMPONENT_PROJECT_URL=	http://www.webdav.org/neon/
 COMPONENT_SRC_NAME = neon
-COMPONENT_SRC = $(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE = $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH = \
     sha256:00c626c0dc18d094ab374dbd9a354915bfe4776433289386ed489c2ec0845cdd
 COMPONENT_ARCHIVE_URL = $(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
@@ -35,13 +37,13 @@
 
 TPNO=			21902
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
+
+# Fix 64-bit linking done via compiler.
+LDFLAGS += $(CC_BITS)
 
 PATCH_LEVEL = 0
 
-CC += $(CC_BITS)
 CPPFLAGS += $(CPP_LARGEFILES)
 
 COMPONENT_TEST_MASTER = \
@@ -70,12 +72,8 @@
      '-e "s/copied $$/copied/g"'  \
      '-e "s/copied [0-9]\{1,\}\./copied/g"' 
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)"
-
-CONFIGURE_OPTIONS += --localstatedir=/var
-CONFIGURE_OPTIONS += --mandir=/usr/share/man
-CONFIGURE_OPTIONS += --infodir=/usr/share/info
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)
+CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS += --enable-shared
 CONFIGURE_OPTIONS += --disable-static
 CONFIGURE_OPTIONS += --enable-webdav
@@ -92,23 +90,10 @@
 
 COMPONENT_TEST_ENV +=	PATH="$(GNUBIN):$(PATH)"
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/libproxy
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/gss
 REQUIRED_PACKAGES += library/libproxy
--- a/components/libneon/libneon.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libneon/libneon.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,6 +35,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2006/563
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+file path=usr/bin/$(MACH64)/neon-config
 #
 #
 file path=usr/bin/neon-config
--- a/components/libnet/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libnet/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,18 +20,16 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER =	gcc
-
+# Prefer 32-bit as only "binary" delivered is a script with embedded paths.
+BUILD_BITS= 32_and_64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libnet
 COMPONENT_VERSION=	1.1.5
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://sourceforge.net/projects/libnet-dev/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:75588f8d1232e1df34eccf2dba5e66be197b345a07fae80d8275db994496a20d
 COMPONENT_ARCHIVE_URL=	http://cdnetworks-us-2.dl.sourceforge.net/project/libnet-dev/$(COMPONENT_ARCHIVE)
@@ -39,35 +37,20 @@
 
 TPNO=			17724
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
+
+# Overwrite ancient autoconf scripts to fix 64-bit host detection.
+COMPONENT_PREP_ACTION = (cd $(@D) ; autoreconf -fi)
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
 PKG_PROTO_DIRS += $(COMPONENT_SRC)/doc/man/man3
 CFLAGS += -g -fPIC
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS.32 += --srcdir=$(BUILD_DIR_32)
-CONFIGURE_OPTIONS.64 += --srcdir=$(BUILD_DIR_64)
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+CONFIGURE_OPTIONS += --srcdir=$(BUILD_DIR_$(BITS))
 
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc-3-runtime
 REQUIRED_PACKAGES += system/library/gcc-45-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
--- a/components/libpcap/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libpcap/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,17 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+# Prefer 32-bit as only "binary" delivered is a script with embedded paths.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libpcap
 COMPONENT_VERSION=	1.7.4
 COMPONENT_PROJECT_URL=	http://www.tcpdump.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:7ad3112187e88328b85e46dce7a9b949632af18ee74d97ffc3f2b41fe7f448b0
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)release/$(COMPONENT_ARCHIVE)
@@ -34,36 +36,19 @@
 
 TPNO=			23891
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Rebuild the configure script so the man pages are normalized.
 COMPONENT_PREP_ACTION =	(cd $(@D); autoconf);
 
-#
-# libpcap Makefile does not use CFLAGS when building shared library
-# so we require the following line to add the -m option to CC
-#
-CC += $(CC_BITS)
-CFLAGS += -D_SYS_REGSET_H
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS) -DHAVE_CONFIG_H"
-CONFIGURE_OPTIONS  +=	--disable-dbus
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+# libpcap Makefile does not use CFLAGS when building shared library.
+LDFLAGS += $(CC_BITS)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:	$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+CFLAGS += -D_SYS_REGSET_H
+CFLAGS += -DHAVE_CONFIG_H
+CONFIGURE_OPTIONS  +=	--disable-dbus
 
 REQUIRED_PACKAGES += developer/lexer/flex
 REQUIRED_PACKAGES += developer/parser/bison
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/librsync/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/librsync/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		librsync
 COMPONENT_VERSION=	0.9.7
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://librsync.sourceforge.net/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:6633e4605662763a03bb6388529cbdfd3b11a9ec55b8845351c1bd9a92bc41d6
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/$(COMPONENT_NAME)/files/librsync/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)/download
@@ -49,9 +50,7 @@
 
 CLEAN_PATHS += $(COMPONENT_NAME_1)
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D)) ; \
@@ -59,14 +58,10 @@
 
 CFLAGS += -features=no%extinl
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-
 CONFIGURE_OPTIONS  +=	--enable-shared
 
 PROTOUSRSHAREDOCDIR = $(PROTOUSRSHAREDIR)/doc/librsync-0.9.7
 
-PATCH_LEVEL = 1
-
 ASLR_MODE = $(ASLR_ENABLE)
 
 # Master test results are the same for 32-bit and 64-bit, so override
@@ -80,19 +75,9 @@
 	'-e "s|^.*source=.*libtool=no.*$$|XXX_CC_XXX|g" ' \
 	'-e "/^XXX_CC_XXX$$/d" '
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
+COMPONENT_POST_INSTALL_ACTION += \
 	$(MKDIR) -p $(PROTOUSRSHAREDOCDIR) ; \
 	$(CP) librsync-docs/librsync.pdf $(PROTOUSRSHAREDOCDIR) ; \
 	$(CP) -r librsync-docs/html $(PROTOUSRSHAREDOCDIR)
 
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += library/popt
-REQUIRED_PACKAGES += system/library
--- a/components/librsync/librsync.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/librsync/librsync.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -37,7 +37,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/245
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/rdiff path=usr/bin/rdiff
+file path=usr/bin/rdiff
 file path=usr/include/librsync-config.h
 file path=usr/include/librsync.h
 link path=usr/lib/$(MACH64)/librsync.so target=librsync.so.1.0.2
--- a/components/libsdl/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libsdl/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,17 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+# Prefer 32-bit as only "binary" delivered is a script with embedded paths.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME =	SDL
 COMPONENT_VERSION =	1.2.14
 COMPONENT_PROJECT_URL =	http://www.libsdl.org/
-COMPONENT_SRC =		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE =	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH = \
     sha256:5d927e287034cb6bb0ebccfa382cb1d185cb113c8ab5115a0759798642eed9b6
 COMPONENT_ARCHIVE_URL = $(COMPONENT_PROJECT_URL)release/$(COMPONENT_ARCHIVE)
@@ -34,34 +36,24 @@
 
 TPNO = 7683
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(SKIP_TEST)
+include $(WS_MAKE_RULES)/common.mk
 
 # libtool linking
 CC += $(CC_BITS)
 
 CONFIGURE_OPTIONS += --disable-pulseaudio
-CONFIGURE_OPTIONS += CC="$(CC)"
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
 
 # elfedit removes wrong RUNPATH/RPATH (see 22383984)
-install:	$(INSTALL_32_and_64)
-	/usr/bin/elfedit -e "dyn:delete RUNPATH" -e "dyn:delete RPATH" \
+COMPONENT_POST_INSTALL_ACTION.32= \
+	$(ELFEDIT) -e "dyn:delete RUNPATH" -e "dyn:delete RPATH" \
 	  $(PROTOUSRLIBDIR)/libSDL-1.2.so.0.*
-	/usr/bin/elfedit -e "dyn:delete RUNPATH" -e "dyn:delete RPATH" \
+
+COMPONENT_POST_INSTALL_ACTION.64= \
+	$(ELFEDIT) -e "dyn:delete RUNPATH" -e "dyn:delete RPATH" \
 	  $(PROTOUSRLIBDIR64)/libSDL-1.2.so.0.*
 
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
 REQUIRED_PACKAGES += x11/library/libxext
--- a/components/libsigsegv/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libsigsegv/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,42 +18,23 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libsigsegv
 COMPONENT_VERSION=	2.6
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/libsigsegv/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:c18b3b0975ec7e0a6af03a9533d7ffbdc500bb146e0ca338a6174b1346d655bb
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/libsigsegv/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/libsigsegv
 
 TPNO=			8453
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 CONFIGURE_OPTIONS  +=		--disable-static
 CONFIGURE_OPTIONS  +=		--enable-shared
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/libsndfile/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libsndfile/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libsndfile
 COMPONENT_VERSION=	1.0.23
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.mega-nerd.com/libsndfile/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:54c9c375598538263395a691f9b30987a2faa3d8a166d27e6a09ba4700223d4d
 COMPONENT_ARCHIVE_URL=	http://www.mega-nerd.com/libsndfile/files/$(COMPONENT_ARCHIVE)
@@ -34,17 +35,12 @@
 
 TPNO=			8890
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # Needed for __func__ in cpp_test.cc
 CXXFLAGS += $(studio_FEATURES_EXTENSIONS)
 CFLAGS +=	$(studio_PIC)
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	CXXFLAGS="$(CXXFLAGS)"
-
 # Master test results are the same for 32-bit and 64-bit, so override
 # here, rather than create multiple identical master files.
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
@@ -56,20 +52,7 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:	$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += codec/flac
 REQUIRED_PACKAGES += codec/ogg-vorbis
 REQUIRED_PACKAGES += database/sqlite-3
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/libsndfile/libsndfile.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libsndfile/libsndfile.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,10 +35,10 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/767
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/sndfile-convert path=usr/bin/sndfile-convert
-file usr/bin/$(MACH64)/sndfile-info path=usr/bin/sndfile-info
-file usr/bin/$(MACH64)/sndfile-play path=usr/bin/sndfile-play
-file usr/bin/$(MACH64)/sndfile-regtest path=usr/bin/sndfile-regtest
+file path=usr/bin/sndfile-convert
+file path=usr/bin/sndfile-info
+file path=usr/bin/sndfile-play
+file path=usr/bin/sndfile-regtest
 file path=usr/include/sndfile.h
 file path=usr/include/sndfile.hh
 link path=usr/lib/$(MACH64)/libsndfile.so \
--- a/components/libssh2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libssh2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libssh2
 COMPONENT_VERSION=	1.4.2
 COMPONENT_PROJECT_URL=	http://www.libssh2.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:418c09061fb9c3c26fec391a35a062780b21b3199885e3b27054619582469bd3
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
@@ -34,11 +35,9 @@
 
 TPNO=			11357
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS +=    CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=   --enable-shared
 CONFIGURE_OPTIONS +=   --disable-static
 
@@ -79,18 +78,5 @@
 	AM_MAKEFLAGS="-f $(BUILD_DIR_$(BITS))/tests/Makefile-system-test"
 COMPONENT_SYSTEM_TEST_ARGS = -f $(BUILD_DIR_$(BITS))/tests/Makefile-system-test
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    configure $(SYSTEM_TEST_32_and_64)
-
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
--- a/components/libtasn1/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libtasn1/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,46 +20,33 @@
 #
 
 #
-# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libtasn1
 COMPONENT_VERSION=	2.8
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=  http://ftp.gnu.org/gnu/libtasn1/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:2b7d74f4b10b18ae2f0291fcafabe30e42c9ededdea41add8c622302132d545a
-COMPONENT_ARCHIVE_URL=  http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/libtasn1
 
 TPNO=			9381
 
 COMPONENT_BUILD_TARGETS = all info
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 CONFIGURE_OPTIONS += --sysconfdir=/etc
 CONFIGURE_OPTIONS += --includedir=$(CONFIGURE_INCLUDEDIR)
 CONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS += --disable-static
 CONFIGURE_OPTIONS += --enable-shared
-CONFIGURE_OPTIONS.64 += CC="$(CC) -m64"
 
 ASLR_MODE = $(ASLR_ENABLE)
 
 include ../../make-rules/shared-targets.mk
 
-configure:      $(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 
 COMPONENT_TEST_TRANSFORMS += \
@@ -67,8 +54,3 @@
         '-e "/FAIL/p" ' \
         '-e "/All/p" '
 
-test:           $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
--- a/components/libtasn1/libtasn1.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libtasn1/libtasn1.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -37,9 +37,9 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/390
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/asn1Coding path=usr/bin/asn1Coding
-file usr/bin/$(MACH64)/asn1Decoding path=usr/bin/asn1Decoding
-file usr/bin/$(MACH64)/asn1Parser path=usr/bin/asn1Parser
+file path=usr/bin/asn1Coding
+file path=usr/bin/asn1Decoding
+file path=usr/bin/asn1Parser
 file path=usr/include/libtasn1.h
 link path=usr/lib/$(MACH64)/libtasn1.so target=libtasn1.so.3.1.10
 link path=usr/lib/$(MACH64)/libtasn1.so.3 target=libtasn1.so.3.1.10
--- a/components/libtecla/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libtecla/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,11 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libtecla
@@ -34,29 +37,13 @@
 
 TPNO=			8740
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Userland default includes -mt which links with libthread which we don't need.
 studio_MT =
 
-# This is needed for the 64-bit library to be built correctly.
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-
 # We have our own pre-Solarified man pages.
 CONFIGURE_OPTIONS +=	--without-man-pages
 
 ASLR_MODE =	$(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-build:		$(BUILD_32_and_64)
-install:	$(INSTALL_32_and_64)
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
-
-REQUIRED_PACKAGES += system/library
--- a/components/libtecla/libtecla.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libtecla/libtecla.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -44,7 +44,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2004/330
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/enhance path=usr/bin/enhance
+file path=usr/bin/enhance
 file path=usr/include/libtecla.h
 link path=usr/lib/$(MACH64)/libtecla.so target=libtecla.so.1
 file path=usr/lib/$(MACH64)/libtecla.so.1
--- a/components/libtool/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libtool/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,19 +20,16 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+# libtool only delivers scripts that embed paths, so prefer 32-bit.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libtool
 COMPONENT_VERSION=	2.4.2
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/libtool/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:b38de44862a987293cd3d8dfae1c409d514b6c4e794ebc93648febf9afc38918
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/libtool
 
 TPNO=			9088
@@ -48,13 +45,12 @@
 COMPONENT_ARCHIVE_URL_1 = http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE_1)
 SOURCE_DIR_1 =		$(COMPONENT_DIR)/$(COMPONENT_SRC_1)
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_TARGET=
+INSTALL_TARGET=
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--disable-static
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS  +=		PERL="$(PERL)"
 
 # requires an older automake to reconfigure.
@@ -64,12 +60,10 @@
 # Remove the hard-wired compiler locations in the LTCC and two CC lines
 # in the two versions of the libtool script.
 COMPONENT_POST_INSTALL_ACTION = \
-	(for dir in $(PROTOUSRBINDIR) $(PROTOUSRBINDIR)/$(MACH64) ; do \
-		cd $$dir; \
-		/usr/gnu/bin/sed -i \
-			-e 's|^LTCC="/.*$$|LTCC="cc"|' \
-			-e 's|^CC="/.*$$|CC="cc"|' libtool ; \
-	done)
+	cd $(PROTO_DIR)$(USRBIN.$(BITS)); \
+	$(GSED) -i \
+		-e 's|^LTCC="/.*$$|LTCC="cc"|' \
+		-e 's|^CC="/.*$$|CC="cc"|' libtool ; \
 
 # Macros to configure, build, and install the old version for the time being.
 BUILD_OLD_DIR_32 = $(COMPONENT_DIR)/build/$(COMPONENT_VERSION_1)-$(MACH32)
@@ -101,21 +95,13 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
 build:		$(BUILD_32_and_64)
 
 install:	$(INSTALL_32_and_64)
 
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += developer/base-developer-utilities
 REQUIRED_PACKAGES += file/gnu-coreutils
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += text/gnu-grep
 REQUIRED_PACKAGES += text/gnu-sed
--- a/components/libtorrent/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libtorrent/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libtorrent
 COMPONENT_VERSION=	0.12.2
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://libtorrent.rakshasa.no/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:cf9d2cd667fd6939a3e0bd27e48d0c7f35d9ab2f7affbb3214da03fd2c1360a8
 COMPONENT_ARCHIVE_URL=	http://libtorrent.rakshasa.no/downloads/$(COMPONENT_ARCHIVE)
@@ -37,9 +35,8 @@
 
 TPNO=			9038
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -56,34 +53,18 @@
 # this is needed or we can't compile the rak headers
 CC=$(CXX)
 
-CXXFLAGS +=	$(studio_OPT)
-CXXFLAGS +=	-i
-CXXFLAGS +=	$(studio_XREGS)
+CXXFLAGS.studio +=	-i
 
 CONFIGURE_OPTIONS  +=	--enable-shared
 CONFIGURE_OPTIONS  +=	--disable-debug
 CONFIGURE_OPTIONS  +=	--disable-static
 CONFIGURE_OPTIONS  +=	--with-ports
 CONFIGURE_OPTIONS  +=	--disable-libtool-lock
-CONFIGURE_OPTIONS.32 +=	--srcdir=$(BUILD_DIR_32)
-CONFIGURE_OPTIONS.64 +=	--srcdir=$(BUILD_DIR_64)
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=	CXXFLAGS="$(CXXFLAGS)"
+CONFIGURE_OPTIONS  +=	--srcdir=$(BUILD_DIR_$(BITS))
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+REQUIRED_PACKAGES += developer/build/automake-111
 REQUIRED_PACKAGES += library/c++/sigcpp
 REQUIRED_PACKAGES += library/security/openssl
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
--- a/components/libusb/ugen/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libusb/ugen/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,11 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libusb-ugen
@@ -29,9 +32,8 @@
 COMPONENT_SRC=		src
 COMPONENT_BUGDB=	library/libusb
 
-include $(WS_MAKE_RULES)/prep.mk
+BUILD_STYLE= justmake
 include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
 
 $(BUILD_DIR_32)/.built:	BITS=32
 $(BUILD_DIR_64)/.built:	BITS=64
@@ -48,15 +50,6 @@
 
 CLEAN_PATHS +=	$(SOURCE_DIR)/.prep
 
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-# enumerates USB devices plugged into your system
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
+# test enumerates USB devices plugged into your system
 
 REQUIRED_PACKAGES += system/io/usb
-REQUIRED_PACKAGES += system/library
--- a/components/libusb/ugen/src/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libusb/ugen/src/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/libusb/wrapper/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libusb/wrapper/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
 
@@ -27,6 +29,7 @@
 IPS_COMPONENT_VERSION=	0.5.11
 COMPONENT_PROJECT_URL=	http://libusb.sf.net/
 COMPONENT_SRC=		src
+COMPONENT_ARCHIVE=
 COMPONENT_BUGDB=	library/libusb
 
 TPNO=			9184
--- a/components/libusb/wrapper/src/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libusb/wrapper/src/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 LIBNAME =	libusb.so.1
@@ -27,10 +29,6 @@
 
 include ../../../../../make-rules/shared-macros.mk
 
-incdir =	/usr/include
-libdir =	/usr/lib
-docdir =	/usr/share/doc/libusb
-
 SRCS =		wr_libusb.c
 OBJS =		$(SRCS:%.c=%.o)
 
--- a/components/libxml2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libxml2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libxml2
 COMPONENT_VERSION=	2.9.3
 COMPONENT_PROJECT_URL=	http://xmlsoft.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:4de9e31f46b44d34871c22f54bfc54398ef124d6f7cafb1f4a5958fbcd3ba12d
 COMPONENT_ARCHIVE_URL=	ftp://xmlsoft.org/libxml2/$(COMPONENT_ARCHIVE)
@@ -43,10 +41,8 @@
 
 TPNO=			25711
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
 ASLR_MODE = $(ASLR_ENABLE)
 
@@ -58,10 +54,8 @@
 CONFIGURE_OPTIONS += --with-threads
 CONFIGURE_OPTIONS += --with-python=$(PYTHON.$(BITS))
 CONFIGURE_OPTIONS += --with-python-install-dir=$(PYTHON_VENDOR_PACKAGES)
-# Cannot link to lzma since it's not in /lib.
+# Cannot link to lzma since it's not in /lib and install media still has separate /usr.
 CONFIGURE_OPTIONS += --without-lzma
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS)"
 
 COMPONENT_PREP_ACTION += (cd $(@D) ; cp ../mapfile libxml2.syms ; autoreconf -if)
 
@@ -78,7 +72,7 @@
 # to correct for the .so file being installed there instead of the 64-bit path
 # where it belongs.  Further, Python 3.4 needs an extra 'm' on the link and
 # include paths, plus a tweak to the binary path; see PEP 3149 for details.
-COMPONENT_POST_CONFIGURE_ACTION = \
+COMPONENT_POST_CONFIGURE_ACTION += \
     (cd $(@D) ; cp -rp python python3.4 ; \
     $(GSED) -i -e 's|-lpython2[.]7|-lpython3.4m|' \
      -e 's|usr/bin/$(MACH64)/python2[.]7|usr/bin/python3.4m|' \
@@ -87,18 +81,8 @@
      `find python3.4 -name Makefile` ; \
 )
 
-# After we have built/installed libxml2, build/install the python
-# support for python 3.4
-COMPONENT_POST_INSTALL_ACTION = \
-    ( if [ $(BITS) -eq 64 ]; then \
-	cd $(@D)/python3.4 ; \
-	$(GMAKE) $(COMPONENT_INSTALL_ARGS) install ; \
-     else \
-	true ; \
-     fi )
-
 # It's also nice to test python 3.4 modules.
-COMPONENT_POST_TEST_ACTION = \
+COMPONENT_POST_TEST_ACTION += \
     ( if [ $(BITS) -eq 64 ]; then \
 	cd $(@D)/python3.4 ; \
 	$(GMAKE) $(COMPONENT_TEST_ARGS) test ; \
@@ -127,26 +111,21 @@
         '-e "/.*/d" '
 
 COMPONENT_SYSTEM_TEST_TARGETS = system-test 
-COMPONENT_PRE_SYSTEM_TEST_ACTION = $(COMPONENT_PRE_TEST_ACTION)
+COMPONENT_PRE_SYSTEM_TEST_ACTION += $(COMPONENT_PRE_TEST_ACTION)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
+COMPONENT_POST_INSTALL_ACTION.32 += \
+	$(PYTHON.2.7.32) -m compileall $(PROTOUSRLIBDIR)/python2.7/vendor-packages;
 
-install:	$(INSTALL_32_and_64)
-	$(PYTHON.2.7.32) -m compileall $(PROTO_DIR)/usr/lib/python2.7/vendor-packages
-	$(PYTHON.3.4.64) -m compileall $(PROTO_DIR)/usr/lib/python3.4/vendor-packages
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(CONFIGURE_32_and_64) $(SYSTEM_TEST_32_and_64)
-
+# After we have built/installed libxml2, build/install the python
+# support for python 3.4
+COMPONENT_POST_INSTALL_ACTION.64 += \
+	cd $(@D)/python3.4 ; \
+	$(GMAKE) $(COMPONENT_INSTALL_ARGS) install ; \
+	$(PYTHON.3.4.64) -m compileall $(PROTOUSRLIBDIR)/python3.4/vendor-packages;
 
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += runtime/python-34
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/libxml2/libxml2.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libxml2/libxml2.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -39,9 +39,11 @@
 link path=lib/libxml2.so target=libxml2.so.2
 file usr/lib/libxml2.so.2 path=lib/libxml2.so.2
 file $(MACH32)/llib-lxml2.ln path=lib/llib-lxml2.ln
-file path=usr/bin/xml2-config facet.devel=true
-file usr/bin/$(MACH64)/xmlcatalog path=usr/bin/xmlcatalog
-file usr/bin/$(MACH64)/xmllint path=usr/bin/xmllint
+# xml2-config contains embedded paths, so swap these around.
+file usr/bin/xml2-config path=usr/bin/$(MACH64)/xml2-config facet.devel=true
+file usr/bin/$(MACH32)/xml2-config path=usr/bin/xml2-config facet.devel=true
+file path=usr/bin/xmlcatalog
+file path=usr/bin/xmllint
 file path=usr/include/libxml2/libxml/DOCBparser.h
 file path=usr/include/libxml2/libxml/HTMLparser.h
 file path=usr/include/libxml2/libxml/HTMLtree.h
--- a/components/libxslt/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libxslt/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libxslt
 COMPONENT_VERSION=	1.1.28
 COMPONENT_PROJECT_URL=	http://xmlsoft.org/XSLT/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:5fc7151a57b89c03d7b825df5a0fae0a8d5f05674c0e7cf2937ecec4d54a028c
 COMPONENT_ARCHIVE_URL=	ftp://xmlsoft.org/libxslt/$(COMPONENT_ARCHIVE)
@@ -37,14 +35,12 @@
 
 TPNO=			17982
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-LINT_FLAGS +=	-I/usr/include/libxml2 
+LINT_FLAGS +=	-I$(USRINCDIR)/libxml2 
 
 CFLAGS +=	$(CPP_LARGEFILES)
 LDFLAGS +=	$(LD_Z_DEFS) $(LD_Z_TEXT) -lpthread
@@ -53,10 +49,8 @@
 CONFIGURE_OPTIONS += --with-pic
 CONFIGURE_OPTIONS += --with-python=$(PYTHON.$(BITS))
 CONFIGURE_OPTIONS += --without-crypto
-CONFIGURE_OPTIONS += --with-html-dir=/usr/share/lib/xslt/doc
+CONFIGURE_OPTIONS += --with-html-dir=$(USRSHARELIBDIR)/xslt/doc
 CONFIGURE_OPTIONS += --with-html-subdir=html
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS)"
 CONFIGURE_OPTIONS += PYTHON_VENDOR_PACKAGES=$(PYTHON_VENDOR_PACKAGES)
 
 COMPONENT_PREP_ACTION = \
@@ -75,18 +69,8 @@
 # system-test should really use system version library
 COMPONENT_PRE_SYSTEM_TEST_ACTION = ($(RM) $(@D)/libxslt/.libs/*)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-	$(PYTHON.2.7.32) -m compileall $(PROTO_DIR)/usr/lib/python2.7/vendor-packages
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(BUILD_32_and_64) $(SYSTEM_TEST_32_and_64)
-
+COMPONENT_POST_INSTALL_ACTION += \
+	$(PYTHON.2.7.32) -m compileall $(PROTOUSRLIBDIR)/python2.7/vendor-packages
 
 REQUIRED_PACKAGES += data/xml-common
 REQUIRED_PACKAGES += developer/build/automake-111
@@ -94,5 +78,4 @@
 REQUIRED_PACKAGES += library/libxslt
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/libxslt/libxslt.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/libxslt/libxslt.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -33,8 +33,10 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2002/244
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file path=usr/bin/xslt-config facet.devel=true
-file usr/bin/$(MACH64)/xsltproc path=usr/bin/xsltproc
+# xslt-config contains embedded paths, so swap these around.
+file usr/bin/xslt-config path=usr/bin/$(MACH64)/xslt-config facet.devel=true
+file usr/bin/$(MACH32)/xslt-config path=usr/bin/xslt-config facet.devel=true
+file path=usr/bin/xsltproc
 file path=usr/include/libexslt/exslt.h
 file path=usr/include/libexslt/exsltconfig.h
 file path=usr/include/libexslt/exsltexports.h
--- a/components/lighttpd/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/lighttpd/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,28 +20,23 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		lighttpd
 COMPONENT_VERSION=	1.4.35
 COMPONENT_PROJECT_URL=	http://www.lighttpd.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:62c23de053fd82e1bf64f204cb6c6e44ba3c16c01ff1e09da680d982802ef1cc
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/lighttpd
 
 TPNO=			17006
 
-LIGHTTPD_INSTALLDIR=/usr/lighttpd/1.4
+LIGHTTPD_INSTALLDIR=$(USRDIR)/lighttpd/1.4
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL=0
 
@@ -52,36 +47,22 @@
 # using just source file names (without full absolute paths).
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_PREFIX= /usr/lighttpd/1.4
+CONFIGURE_PREFIX= $(LIGHTTPD_INSTALLDIR)
 CONFIGURE_MANDIR= $(CONFIGURE_PREFIX)/man
 
 # Force lighttpd binaries and private modules to standard path
-CONFIGURE_SBINDIR.64 = $(CONFIGURE_PREFIX)/sbin
 CONFIGURE_LIBDIR.64 = $(CONFIGURE_PREFIX)/lib
 
+CFLAGS += "-I/usr/include/openldap"
+LDFLAGS += "-lldap_r-2.4"
+
 CONFIGURE_OPTIONS +=	--with-pic
 CONFIGURE_OPTIONS +=	--with-lua
 CONFIGURE_OPTIONS +=	--with-openssl
 CONFIGURE_OPTIONS +=	--with-pcre
 CONFIGURE_OPTIONS +=	--with-ldap
-CONFIGURE_OPTIONS +=	--with-mysql=/usr/mysql/5.5/bin/mysql_config
-CONFIGURE_OPTIONS +=    CFLAGS="$(CFLAGS) -I/usr/include/openldap -lldap_r-2.4"
-CONFIGURE_OPTIONS +=    PCRECONFIG="/usr/bin/$(MACH64)/pcre-config"
-
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
+CONFIGURE_OPTIONS +=	--with-mysql=$(USRDIR)/mysql/5.5/bin/mysql_config
+CONFIGURE_OPTIONS +=    PCRECONFIG="$(USRBINDIR64)/pcre-config"
 
 REQUIRED_PACKAGES += compress/bzip2
 REQUIRED_PACKAGES += database/mysql-55
@@ -93,6 +74,5 @@
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += runtime/lua
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/network
 REQUIRED_PACKAGES += web/fastcgi/spawn-fcgi
--- a/components/links/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/links/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,32 +18,26 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 # Because the Studio compiler generates thousands of lines of warnings.
-COMPILER =		gcc
-
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		links
 COMPONENT_VERSION=	2.12
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://links.twibright.com/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:2e3da6193de9d6ee71bc4beab17169ecc58d7cbf2e20192a3f518ed9f7f22e33
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/links
 
 TPNO=			27168
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-# Needed to generate a 64-bit executable.
-CC +=			$(CC_BITS)
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL =		0
 
@@ -51,23 +45,9 @@
 # new configure for it to configure and build properly.
 COMPONENT_PREP_ACTION=	(cd $(@D) ; autoconf)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += compress/bzip2
 REQUIRED_PACKAGES += compress/xz
 REQUIRED_PACKAGES += library/libevent
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/security/openssl/openssl-fips-140
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
--- a/components/links/links.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/links/links.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
@@ -35,7 +37,7 @@
 set name=org.opensolaris.arc-caseid value=LSARC/2008/322
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 #
-file usr/bin/$(MACH64)/links path=usr/bin/links
+file path=usr/bin/links
 file path=usr/share/man/man1/links.1
 #
 license links.license license=GPLv2
--- a/components/llvm/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/llvm/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -23,18 +23,15 @@
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 export PARFAIT_BUILD=no
-COMPILER=gcc
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		llvm
 COMPONENT_VERSION=	3.6.2
 COMPONENT_PROJECT_URL=	http://llvm.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)
-COMPONENT_BUGDB=	utility/llvm
-
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_SRC_NAME=	$(COMPONENT_SRC).src
+COMPONENT_SRC_NAME =	$(COMPONENT_SRC).src
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC_NAME).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f60dc158bfda6822de167e87275848969f0558b3134892ff54fced87e4667b94
@@ -72,9 +69,6 @@
 	$(GMAKE) -C $(COMPONENT_DIR)/cxa_finalize install ; \
 	fi;
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-
 # Depends on S12-only changes in gcc; might be able to deal with later,
 # but avoid publishing while this is under investigation.
 ifeq ($(BUILD_TYPE), evaluation)
@@ -83,21 +77,22 @@
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET=
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL := 0
 DEBUG_BUILD := 0
 GCC_VERSION := 4.9
 
 # We need GCC version 4.9, and not another version.
-CC=/usr/gcc/$(GCC_VERSION)/bin/gcc
-CXX=/usr/gcc/$(GCC_VERSION)/bin/g++
+CC=$(USRDIR)/gcc/$(GCC_VERSION)/bin/gcc
+CXX=$(USRDIR)/gcc/$(GCC_VERSION)/bin/g++
 
 # We need the specific C++ runtime that clang/llvm was built and
 # linked with, and not some random and incompatible stuff from
 # /usr/lib.
-LLVM_RUNPATH_32 = /usr/gcc/$(GCC_VERSION)/lib
-LLVM_RUNPATH_64 = /usr/gcc/$(GCC_VERSION)/lib/$(MACH64)
+LLVM_RUNPATH_32 = $(USRDIR)/gcc/$(GCC_VERSION)/lib
+LLVM_RUNPATH_64 = $(USRDIR)/gcc/$(GCC_VERSION)/lib/$(MACH64)
 LLVM_RUNPATH = $(LLVM_RUNPATH_$(BITS))
 
 # -O0 for now. Ideally we want -O2.
@@ -109,7 +104,7 @@
   GFLAG="-g3"
 endif
 
-export PATH=/usr/gnu/bin:/usr/xpg4/bin:/usr/bin:/usr/perl5/5.16/bin
+export PATH=$(GNUBIN):$(USRDIR)/xpg4/bin:$(USRBINDIR):$(USRDIR)/perl5/5.16/bin
 
 # Because LLVM's install target doesn't install everything that
 # needs to be installed.
@@ -230,7 +225,7 @@
 CXXFLAGS.sparc += -mptr$(BITS)
 CXXFLAGS += $(CFLAGS.$(MACH))
 
-CPPFLAGS = -D_GNU_SOURCE -DLLVM_SOLARIS -I/usr/gnu/include
+CPPFLAGS = -D_GNU_SOURCE -DLLVM_SOLARIS -I$(USRGNUDIR)/include
 
 ifeq ($(DEBUG_BUILD), 1)
   CPPFLAGS += -D_DEBUG
@@ -245,68 +240,56 @@
 CPPFLAGS.sparc = -DLLVM_SPARC
 CPPFLAGS += $(CPPFLAGS.$(MACH))
 
-LLVM_LIBDIR_32 = /usr/lib
-LLVM_LIBDIR_64 = /usr/lib/$(MACH64)
-LLVM_LIBDIR = $(LLVM_LIBDIR_$(BITS))
-
-LLVM_LIBEXECDIR_32 = /usr/libexec
-LLVM_LIBEXECDIR_64 = /usr/libexec/$(MACH64)
+LLVM_LIBEXECDIR_32 = $(USRDIR)/libexec
+LLVM_LIBEXECDIR_64 = $(USRDIR)/libexec/$(MACH64)
 LLVM_LIBEXECDIR = $(LLVM_LIBEXECDIR_$(BITS))
 
-CONFIGURE_SCRIPT = $(SOURCE_DIR)/configure
-CONFIGURE_OPTIONS += CC="$(CC)"
-CONFIGURE_OPTIONS += CXX="$(CXX)"
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_OPTIONS += CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS += --libdir=$(LLVM_LIBDIR)
 CONFIGURE_OPTIONS += --libexecdir=$(LLVM_LIBEXECDIR)
 CONFIGURE_OPTIONS += --sharedstatedir=/tmp
-CONFIGURE_OPTIONS += --localstatedir=/var
-CONFIGURE_OPTIONS += --enable-compiler-version-checks=yes
-CONFIGURE_OPTIONS += --enable-clang-static-analyzer=yes
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)
+CONFIGURE_OPTIONS += --enable-compiler-version-checks
+CONFIGURE_OPTIONS += --enable-clang-static-analyzer
 
 ifeq ($(DEBUG_BUILD), 1)
-  CONFIGURE_OPTIONS += --enable-assertions=yes
-  CONFIGURE_OPTIONS += --enable-optimized=no
-  CONFIGURE_OPTIONS += --enable-expensive-checks=yes
-  CONFIGURE_OPTIONS += --enable-debug-runtime=yes
-  CONFIGURE_OPTIONS += --enable-debug-symbols=yes
+  CONFIGURE_OPTIONS += --enable-assertions
+  CONFIGURE_OPTIONS += --disable-optimized
+  CONFIGURE_OPTIONS += --enable-expensive-checks
+  CONFIGURE_OPTIONS += --enable-debug-runtime
+  CONFIGURE_OPTIONS += --enable-debug-symbols
 else
-  CONFIGURE_OPTIONS += --enable-assertions=no
-  CONFIGURE_OPTIONS += --enable-optimized=yes
-  CONFIGURE_OPTIONS += --enable-expensive-checks=no
-  CONFIGURE_OPTIONS += --enable-debug-runtime=no
-  CONFIGURE_OPTIONS += --enable-debug-symbols=no
+  CONFIGURE_OPTIONS += --disable-assertions
+  CONFIGURE_OPTIONS += --enable-optimized
+  CONFIGURE_OPTIONS += --disable-expensive-checks
+  CONFIGURE_OPTIONS += --disable-debug-runtime
+  CONFIGURE_OPTIONS += --disable-debug-symbols
 endif
 
-CONFIGURE_OPTIONS += --enable-keep-symbols=yes
-CONFIGURE_OPTIONS += --enable-jit=yes
+CONFIGURE_OPTIONS += --enable-keep-symbols
+CONFIGURE_OPTIONS += --enable-jit
 CONFIGURE_OPTIONS += --disable-docs
 CONFIGURE_OPTIONS += --disable-doxygen
-CONFIGURE_OPTIONS += --enable-threads=yes
-CONFIGURE_OPTIONS += --enable-pthreads=yes
-CONFIGURE_OPTIONS += --enable-shared=yes
-CONFIGURE_OPTIONS += --enable-zlib=yes
-CONFIGURE_OPTIONS += --enable-pic=yes
+CONFIGURE_OPTIONS += --enable-threads
+CONFIGURE_OPTIONS += --enable-pthreads
+CONFIGURE_OPTIONS += --enable-shared
+CONFIGURE_OPTIONS += --enable-zlib
+CONFIGURE_OPTIONS += --enable-pic
 CONFIGURE_OPTIONS += --enable-timestamps
 CONFIGURE_OPTIONS += --enable-backtraces
 CONFIGURE_OPTIONS += --enable-bindings=auto
-CONFIGURE_OPTIONS += --enable-libffi=yes
-CONFIGURE_OPTIONS += --enable-terminfo=yes
-CONFIGURE_OPTIONS += --enable-ltdl-install=no
+CONFIGURE_OPTIONS += --enable-libffi
+CONFIGURE_OPTIONS += --enable-terminfo
+CONFIGURE_OPTIONS += --disable-ltdl-install
 CONFIGURE_OPTIONS += --with-python=$(PYTHON)
 
 ifeq ($(MACH),sparc)
   CONFIGURE_OPTIONS += --with-extra-ld-options='-lkstat'
 endif
-CONFIGURE_OPTIONS += --with-gcc-toolchain=/usr/gcc/$(GCC_VERSION)
+CONFIGURE_OPTIONS += --with-gcc-toolchain=$(USRDIR)/gcc/$(GCC_VERSION)
 CONFIGURE_OPTIONS += --with-optimize-option="$(OFLAG) $(GFLAG)"
 
 # Enable the cross-compiler in 3.8.X.
 CONFIGURE_OPTIONS.i386 += --enable-targets="x86"
 CONFIGURE_OPTIONS.sparc += --enable-targets="sparc"
-CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(MACH))
 
 # Put this here for now until the gpatch problems are resolved.
 COMPONENT_BUILD_ARGS += -j8
@@ -316,18 +299,10 @@
 COMPONENT_INSTALL_ARGS += SHELL=/bin/bash
 
 # common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
 # There are no master test results yet. TBDL in 3.8.X.
 test:
 	@echo "Tests not yet implemented (wait for 3.8.X)."
 
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += developer/gcc-4/gcc-common-49
 REQUIRED_PACKAGES += developer/gnu-binutils
 REQUIRED_PACKAGES += library/libedit
@@ -342,6 +317,4 @@
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime-49
 REQUIRED_PACKAGES += system/library/gcc/gcc-gobjc-runtime-49
 REQUIRED_PACKAGES += system/library/math
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/linker
-
--- a/components/llvm/cxa_finalize/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/llvm/cxa_finalize/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,11 +18,11 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER=gcc
-
+COMPILER= gcc
 include ../../../make-rules/shared-macros.mk
 
 include $(WS_MAKE_RULES)/prep.mk
@@ -120,9 +120,7 @@
 	     fi ; \
 	     done
 
-test:
-	echo "No tests."
+test: $(NO_TESTS)
 
-system-test:
-	echo "No system tests."
+system-test: $(NO_TESTS)
 
--- a/components/lua/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/lua/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,19 +18,19 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		lua
 COMPONENT_VERSION=	5.2.1
 COMPONENT_PROJECT_URL=	http://www.lua.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:64304da87976133196f9e4c15250b70f444467b6ed80d7cfd7b3b982b5177be5
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)ftp/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/lua
 
 LUA_TESTS=		lua-5.2.1-tests
 COMPONENT_ARCHIVE_1=	$(LUA_TESTS).tar.gz
@@ -40,13 +40,14 @@
 
 TPNO=			5814
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+INSTALL_32_and_64 += $(BUILD_DIR)/lua-64.pc
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL= 0
 
-# This is because lua uses $(CC) to build it's shared libraries.
+# This is because lua uses $(CC) to build its shared libraries.
 CC +=		$(CC_BITS)
 
 CFLAGS +=	$(CC_PIC) $(CPP_LARGEFILES)
@@ -59,9 +60,7 @@
 $(INSTALL_64):	COMPONENT_INSTALL_ARGS += INSTALL_BIN=$(PROTOUSRBINDIR64)
 
 $(BUILD_DIR)/lua-64.pc:		files/lua-64.pc
-	/bin/sed -e "s#MACH64#$(MACH64)#g" < $< > $@
-
-ASLR_MODE = $(ASLR_ENABLE)
+	$(GSED) -e "s#MACH64#$(MACH64)#g" < $< > $@
 
 CLEAN_PATHS +=	$(LUA_TESTS)
 
@@ -105,17 +104,8 @@
 	fi)
 
 COMPONENT_SYSTEM_TEST_DIR =	$(LUA_TESTS)
-COMPONENT_SYSTEM_TEST_CMD =	/usr/bin/lua
+COMPONENT_SYSTEM_TEST_CMD =	$(USRBINDIR)/lua
 COMPONENT_SYSTEM_TEST_ARGS =	-e"_U=true"
 COMPONENT_SYSTEM_TEST_TARGETS =	all.lua
 
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64) $(BUILD_DIR)/lua-64.pc
-
-test: 		$(TEST_32_and_64)
-
-system-test:	$(SYSTEM_TEST_32_and_64)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/lua/lua.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/lua/lua.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,8 +35,8 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=LSARC/2009/013
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/lua path=usr/bin/lua
-file usr/bin/$(MACH64)/luac path=usr/bin/luac
+file path=usr/bin/lua
+file path=usr/bin/luac
 file path=usr/include/lauxlib.h
 file path=usr/include/lua.h
 file path=usr/include/luaconf.h
--- a/components/lynx/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/lynx/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,11 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		lynx
@@ -30,20 +33,17 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:6980e75cf0d677fd52c116e2e0dfd3884e360970c88c8356a114338500d5bee7
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_NAME)$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/lynx
 
 TPNO=			21553
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 # Needed to successfully find lynx.pot.
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CFLAGS +=	-I/usr/include/ncurses
+CFLAGS +=	-I$(USRINCDIR)/ncurses
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	--enable-nls
 CONFIGURE_OPTIONS +=	--enable-japanese-utf8
 CONFIGURE_OPTIONS +=	--enable-widec
@@ -62,7 +62,7 @@
 COMPONENT_TEST_TARGETS =
 
 COMPONENT_SYSTEM_TEST_DIR =
-COMPONENT_SYSTEM_TEST_CMD =		/usr/bin/lynx
+COMPONENT_SYSTEM_TEST_CMD =		$(USRBINDIR)/lynx
 COMPONENT_SYSTEM_TEST_ARGS =		-dump \
 	http://www.cameronmoll.com/mobile/mkp/pg1.html \
 	http://www.cameronmoll.com/mobile/mkp/pg2.html \
@@ -70,19 +70,7 @@
 	http://www.cameronmoll.com/mobile/mkp/pg4.html
 COMPONENT_SYSTEM_TEST_TARGETS =
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-system-test:	$(SYSTEM_TEST_64)
-
 REQUIRED_PACKAGES += library/libidn
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/security/openssl/openssl-fips-140
-REQUIRED_PACKAGES += system/library
--- a/components/lynx/lynx.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/lynx/lynx.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -39,7 +39,7 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 file path=etc/lynx/lynx.cfg
 file path=etc/lynx/lynx.lss
-file usr/bin/$(MACH64)/lynx path=usr/bin/lynx
+file path=usr/bin/lynx
 file path=usr/share/locale/ca/LC_MESSAGES/lynx.mo
 file path=usr/share/locale/cs/LC_MESSAGES/lynx.mo
 file path=usr/share/locale/da/LC_MESSAGES/lynx.mo
--- a/components/m4/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/m4/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,30 +20,24 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		m4
 COMPONENT_VERSION=	1.4.17
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/m4/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f0543c3beb51fa6b3337d8025331591e0e18d8ec2886ed391f1aade43477d508
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/m4/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gnu-m4
 
 TPNO=			25279
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 CONFIGURE_PREFIX =	/usr/gnu
 CONFIGURE_OPTIONS  +=	--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
 
 # test failures; keep going
 COMPONENT_TEST_ARGS += -k -i
@@ -56,19 +50,5 @@
 	'-e /FAIL/p'  \
 	'-e /ERROR/p'
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += library/libsigsegv
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/m4/m4.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/m4/m4.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -37,7 +37,7 @@
 set name=org.opensolaris.arc-caseid value=LSARC/2008/338
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 link path=usr/bin/gm4 target=../gnu/bin/m4 facet.compat.gnulinks=true
-file usr/gnu/bin/$(MACH64)/m4 path=usr/gnu/bin/m4
+file path=usr/gnu/bin/m4
 file path=usr/gnu/share/man/man1/m4.1
 link path=usr/sfw/bin/gm4 target=../../gnu/bin/m4
 file path=usr/share/info/m4.info
--- a/components/mailman/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mailman/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,41 +18,36 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-BITS=64
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mailman
 COMPONENT_VERSION=	2.1.18-1
 IPS_COMPONENT_VERSION=	2.1.18.1
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.list.org/
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH=	sha256:ce70ed8b58d719cab80758f39a7258c0a28f8e8e859facdaa8c29add620a5c2c
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/mailman
 
 TPNO=			18736
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 CONFIGURE_ENV	+=	MAILMAN_USER=mailman
 CONFIGURE_ENV	+=	MAILMAN_GROUP=mailman
 
-CONFIGURE_PREFIX= /usr/lib/mailman
-CONFIGURE_OPTIONS +=	--with-var-prefix=/var/mailman
+CONFIGURE_PREFIX= $(USRLIBDIR)/mailman
+CONFIGURE_OPTIONS +=	--with-var-prefix=$(VARDIR)/mailman
 CONFIGURE_OPTIONS +=	--with-mail-gid=other
 CONFIGURE_OPTIONS +=	--with-cgi-gid=webservd
-CONFIGURE_OPTIONS +=	--with-python=/usr/bin/python2.7
+CONFIGURE_OPTIONS +=	--with-python=$(PYTHON.2.7)
 CONFIGURE_OPTIONS +=	--without-permcheck
 CONFIGURE_OPTIONS +=	--with-mailhost=localhost
 CONFIGURE_OPTIONS +=	--with-urlhost=localhost
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-
-ASLR_MODE = $(ASLR_ENABLE)
 
 # Copy generated file to proto area.  Then py-compile several files that are
 # used as modules in a devious way.
@@ -62,21 +57,8 @@
 	 $(PYTHON.2.7) -m py_compile $(PROTOUSRLIBDIR)/mailman/*/paths.py \
 		$(PROTOUSRLIBDIR)/mailman/Mailman/Defaults.py)
 
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
-
 REQUIRED_PACKAGES += library/python/dnspython-27
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/network
--- a/components/make/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/make/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,34 +20,28 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		make
 COMPONENT_VERSION=	4.1
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/make/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:0bc7613389650ee6a24554b52572a272f7356164fd2c4132b0bcf13123e4fca5
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/make/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gnu-make
 
 TPNO=			24441
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# the test suite needs to be configured first
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
-
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_PREFIX)/bin
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 
 CONFIGURE_OPTIONS  +=		--program-prefix=g
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS  +=		--without-guile
 
 # force re-runs to be the same
@@ -73,21 +67,3 @@
     '-e "s|^make.*: Leaving directory.*$$|XXX_CC_XXX|g" ' \
     '-e "s|^make.*: Entering directory.*$$|XXX_CC_XXX|g" ' \
     '-e "/^XXX_CC_XXX$$/d" '
-
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-# the test suite needs to be configured first
-system-test:	configure $(SYSTEM_TEST_64)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/mc/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mc/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,50 +22,30 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mc
 COMPONENT_VERSION=	4.8.15
 COMPONENT_PROJECT_URL=	http://www.midnight-commander.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f74e3da70410975cdeb27ee9a66d1dd812250b6d3ede364bca728dd5a48e5471
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)downloads/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/mc
 
 TPNO=			26430
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-
-CONFIGURE_OPTIONS += --sysconfdir=/usr/share
-CONFIGURE_OPTIONS += --libexecdir=/usr/share
+CONFIGURE_OPTIONS += --sysconfdir=$(USRSHAREDIR)
+CONFIGURE_OPTIONS += --libexecdir=$(USRSHAREDIR)
 CONFIGURE_OPTIONS += --with-samba
 CONFIGURE_OPTIONS += --with-x
 CONFIGURE_OPTIONS += --enable-charset
 CONFIGURE_OPTIONS += --without-ext2undel
 CONFIGURE_OPTIONS += --with-screen=slang
 CONFIGURE_OPTIONS += "mc_cv_nroff_tascii="
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-
-# Enable Address Space Layout Randomization
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
 
 REQUIRED_PACKAGES += library/glib2
 REQUIRED_PACKAGES += library/libssh2
@@ -73,4 +53,3 @@
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/perl-520
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/mc/mc.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mc/mc.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,7 +35,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=LSARC/2008/202
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/mc path=usr/bin/mc
+file path=usr/bin/mc
 link path=usr/bin/mcdiff target=mc
 link path=usr/bin/mcedit target=mc
 link path=usr/bin/mcview target=mc
--- a/components/meld/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/meld/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,47 +18,38 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		meld
 COMPONENT_VERSION=	1.8.6
 COMPONENT_PROJECT_URL=	http://meld.sourceforge.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:af96682b8f4bf3ad4221c853b1516218d62a17ff43c38f4a83e7e8ac6736e8a5
 COMPONENT_ARCHIVE_URL=	http://ftp.gnome.org/pub/gnome/sources/meld/1.8/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/meld
 
 TPNO=			21932
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Needed to find the GNU version of install.
-PATH =			/usr/gnu/bin:/usr/bin
+PATH =			$(GNUBIN):$(USRBINDIR)
 
 PKG_MACROS +=		PYVER=$(PYTHON_VERSION)
 
 # Meld has no configure however it honors DESTDIR which is necessary so
-# we don't try to install into roots /usr but rather our proto areas usr
+# we don't try to install into /usr but rather our proto areas usr
 COMPONENT_INSTALL_ARGS +=	DESTDIR=$(PROTO_DIR)
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-# common targets
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += developer/gnome/gettext
 REQUIRED_PACKAGES += library/python/pygtk2-27
 REQUIRED_PACKAGES += runtime/python-27
--- a/components/memcached-java/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/memcached-java/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -19,16 +19,15 @@
 # CDDL HEADER END
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		memcached-java
 COMPONENT_VERSION=	2.0.1
 COMPONENT_RELEASE=	release_$(COMPONENT_VERSION)
 COMPONENT_SRC=		java_memcached-$(COMPONENT_RELEASE)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f0978f387cd6c42191a3ec366ecc5519f66ee03e686c5d080eb2516ebbecdcc4
 COMPONENT_ARCHIVE_URL=	http://img.whalin.com/memcached/jdk5/standard/$(COMPONENT_ARCHIVE)
@@ -37,9 +36,8 @@
 
 TPNO=			5586
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ant.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= ant
+include $(WS_MAKE_RULES)/common.mk
 
 # Make sure we remove unneeded pieces from the source (the test dir)
 # and also the existing source files which will be generated anew 
@@ -70,19 +68,4 @@
 # All files in the package will come from the build directory.
 PKG_PROTO_DIRS +=	$(BUILD_DIR_$(BITS))
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-
-build:		$(BUILD_32)
-
-# Nothing needed for install; all files are generated
-# during the build.
-install:	build
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += runtime/java/jre-8
--- a/components/memcached/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/memcached/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		memcached
 COMPONENT_VERSION=	1.4.17
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://memcached.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:d9173ef6d99ba798c982ea4566cb4f0e64eb23859fdbf9926a89999d8cdc0458
 COMPONENT_ARCHIVE_URL=	http://memcached.org/files/$(COMPONENT_ARCHIVE)
@@ -37,11 +35,9 @@
 
 TPNO=			16265
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
-PATH=/usr/bin:/usr/gnu/bin:/usr/perl5/bin
+PATH=$(USRBINDIR):$(GNUBIN):$(USRDIR)/perl5/bin
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
     ($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -52,8 +48,8 @@
 
 CFLAGS += -D__ATTRIBUTE_DISABLED
 
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/lib/$(MACH64)
-CONFIGURE_OPTIONS.64 +=	--with-libevent=/usr/lib/$(MACH64)
+CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/lib
+CONFIGURE_OPTIONS.64 +=	--with-libevent=$(USRLIBDIR64)
 # The below works around a bug in configure/configure.ac that sets
 # an incorrect runpath.
 # Setting ac_cv_libevent bypasses libevent checks in configure,
@@ -61,8 +57,7 @@
 # because libevent is in a default library directory.
 CONFIGURE_OPTIONS.64 +=	"ac_cv_libevent_dir=/usr/lib/$(MACH64)"
 CONFIGURE_OPTIONS +=	--enable-dtrace --disable-docs --disable-coverage
-CONFIGURE_OPTIONS +=	--localstatedir=/var
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
+CONFIGURE_OPTIONS +=	--localstatedir=$(VARDIR)
 
 # Transforms remove unnecessary text from results
 COMPONENT_TEST_TRANSFORMS += \
@@ -71,22 +66,7 @@
 	'-e "/\(slab class\).*/d" ' \
 	'-e "/\(<\).*/d" ' 
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += library/libevent
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/network
--- a/components/memcached/memcached.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/memcached/memcached.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -40,7 +40,7 @@
     path=lib/svc/manifest/application/database/memcached.xml
 file Solaris/memcached path=lib/svc/method/memcached
 file path=usr/include/memcached/protocol_binary.h
-file usr/lib/$(MACH64)/memcached path=usr/lib/memcached mode=0555
+file path=usr/lib/memcached mode=0555
 file Solaris/memcached.8 path=usr/share/man/man8/memcached.8
 #
 license memcached.license license=BSD
--- a/components/mercurial/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mercurial/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,16 +22,14 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
-PATH=/usr/bin:/usr/gnu/bin:/usr/sbin
+PATH=$(USRBINDIR):$(GNUBIN):$(USRSBINDIR)
 
 COMPONENT_NAME=		mercurial
 COMPONENT_VERSION=	3.7.1
 COMPONENT_PROJECT_URL=	http://mercurial.selenic.com/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:96d37d1f444a032295e190318b3166e9d05abb55916d2b3adb618a8f16c5cfed
 COMPONENT_ARCHIVE_URL=	http://www.selenic.com/mercurial/release/$(COMPONENT_ARCHIVE)
@@ -43,9 +41,10 @@
 # Mercurial does not yet support Python 3.
 PYTHON_VERSIONS = $(PYTHON2_VERSIONS)
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/setup.py.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= setup.py
+TEST_TARGET= install $(TEST_32)
+# Add install dependency when system-test target is implemented.
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_POST_INSTALL_ACTION = \
 	(cd $(PROTO_DIR)/usr/bin ; $(MV) -f hg hg-$(PYTHON_VERSION))
@@ -106,15 +105,3 @@
 			diff -u $(COMPONENT_SRC)/doc/$$f.orig $(COMPONENT_SRC)/doc/$$f; \
 		done > $@; \
 	fi || true
-
-# common targets
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		install $(TEST_32)
-
-# Add install dependency as above after system-test targets are implemented.
-system-test: 	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
--- a/components/meta-packages/developer-opensolaris-userland/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/meta-packages/developer-opensolaris-userland/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,13 +20,14 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		developer/opensolaris/userland
-COMPONENT_VERSION=	
+COMPONENT_VERSION=
+COMPONENT_SRC=
 COMPONENT_PROJECT_URL=	http://solaris-userland.java.net/
 COMPONENT_ARCHIVE_URL=	http://hg.java.net/solaris-userland-gate/
 COMPONENT_BUGDB=	gate-stuff/userland
--- a/components/meta-packages/group-feature/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/meta-packages/group-feature/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -27,6 +27,7 @@
 
 COMPONENT_NAME=		meta-packages/group-feature
 COMPONENT_VERSION=	$(PKG_SOLARIS_VERSION)
+COMPONENT_SRC=
 COMPONENT_PROJECT_URL=	http://solaris-userland.java.net/
 COMPONENT_ARCHIVE_URL=	http://hg.java.net/solaris-userland-gate/
 COMPONENT_BUGDB=	gate-stuff/userland
--- a/components/meta-packages/history/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/meta-packages/history/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/mlocate/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mlocate/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,30 +22,26 @@
 #
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         mlocate
 COMPONENT_VERSION=      0.26
 COMPONENT_PROJECT_URL=  https://fedorahosted.org/mlocate
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH= \
     sha256:3063df79fe198fb9618e180c54baf3105b33d88fe602ff2d8570aaf944f1263e
 COMPONENT_ARCHIVE_URL=  https://fedorahosted.org/releases/m/l/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/mlocate
 
 TPNO=			27159
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_OPTIONS.64 +=    CC="$(CC) -m64"
-CONFIGURE_OPTIONS += --localstatedir="/var/cache"
-CONFIGURE_OPTIONS += --sysconfdir="/etc"
+CONFIGURE_OPTIONS += --localstatedir="$(VARDIR)/cache"
+CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)
 
 COMPONENT_PREP_ACTION = (cd $(@D) ; autoreconf -f && automake)
 COMPONENT_POST_INSTALL_ACTION= \
@@ -73,18 +69,3 @@
 COMPONENT_SYSTEM_TEST_CMD =	$(SHELL) $(SOURCE_DIR)/tests/testsuite
 COMPONENT_SYSTEM_TEST_ARGS =	AUTOTEST_PATH=$(GNUBIN):$(USRBINDIR):$(USRSBINDIR)
 COMPONENT_SYSTEM_TEST_TARGETS =
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    configure $(SYSTEM_TEST_64)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/mlocate/mlocate.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mlocate/mlocate.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -38,8 +38,8 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 file path=etc/updatedb.conf mode=0644 overlay=allow preserve=true
 link path=usr/bin/locate target=mlocate
-file usr/bin/$(MACH64)/locate path=usr/bin/mlocate group=mlocate mode=2555
-file usr/bin/$(MACH64)/updatedb path=usr/sbin/updatedb group=mlocate mode=2555
+file usr/bin/locate path=usr/bin/mlocate group=mlocate mode=2555
+file usr/bin/updatedb path=usr/sbin/updatedb group=mlocate mode=2555
 file path=usr/share/locale/ar/LC_MESSAGES/mlocate.mo
 file path=usr/share/locale/as/LC_MESSAGES/mlocate.mo
 file path=usr/share/locale/ast/LC_MESSAGES/mlocate.mo
--- a/components/mpc/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mpc/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,54 +20,36 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mpc
 COMPONENT_VERSION=	0.9
 COMPONENT_PROJECT_URL=	http://www.multiprecision.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:fd3efe422f0d454592059e80f2c00d1a2e381bf2beda424c5094abd4deb049ac
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)mpc/download/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/mpc
 
 TPNO=			4706
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= install $(TEST_32_and_64)
+# Add install dependency when system-test target is implemented.
+include $(WS_MAKE_RULES)/common.mk
 
 export SHELL
-SHELL=/bin/sh
+SHELL=$(BINDIR)/sh
 
 CFLAGS +=		`pkg-config --cflags libmpfr`
 
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS  +=		--disable-static
 
 COMPONENT_TEST_DIR =		$(BUILD_DIR)/$(MACH$(BITS))/tests
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:	$(BUILD_32_and_64)
-
-
-install:	$(INSTALL_32_and_64)	
-
-test:		install $(TEST_32_and_64)
-
-# Add install dependency as above when system-test targets are implemented.
-system-test: 	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/gmp
 REQUIRED_PACKAGES += library/mpfr
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/mpfr/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mpfr/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -19,18 +19,16 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
-PATH=$(dir $(CC)):/usr/bin:/usr/gnu/bin
+PATH=$(dir $(CC)):$(USRBINDIR):$(GNUBIN)
 
 COMPONENT_NAME=         mpfr
 COMPONENT_VERSION=      2.4.2
 COMPONENT_PROJECT_URL=	http://www.mpfr.org/
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:246d7e184048b1fc48d3696dd302c9774e24e921204221540745e5464022b637
 COMPONENT_ARCHIVE_URL=  $(COMPONENT_PROJECT_URL)$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
@@ -38,10 +36,7 @@
 
 TPNO=			17709
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+include $(WS_MAKE_RULES)/common.mk
 
 CLEAN_PATHS += libmpfr.pc
 PATCH_LEVEL = 0
@@ -62,13 +57,9 @@
 MPN32 = $(MPN32_$(MACH))
 MPN64 = $(MPN64_$(MACH))
 
-GMPINCDIR = /usr/include/gmp
-GMPLIBDIR_32 = /usr/lib
-GMPLIBDIR_64 = /usr/lib/$(MACH64)
+GMPINCDIR = $(USRINCDIR)/gmp
 MPFRMULHIGH = 2048
 
-GSED = /usr/bin/gsed
-
 COMPONENT_TEST_TRANSFORMS += \
      '-e "/libtool/d"' \
      '-e "/-m32/d"' \
@@ -76,35 +67,28 @@
      '-e "/DEPDIR=/d"' \
      '-e "s/^make\[[0-9]\{1,\}\]/make/g"'
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
 CONFIGURE_ENV += LD="$(CC) $(CFLAGS) $(LDFLAGS)"
-CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)"
 CONFIGURE_ENV += CPP="$(CC) $(CPPFLAGS) $(CFLAGS) -E"
 CONFIGURE_ENV += INSTALL="$(INSTALL)"
 CONFIGURE_ENV += SED="$(GSED)"
 CONFIGURE_ENV += ABI="$(BITS)"
 CONFIGURE_ENV += "MPN_PATH=$(MPN_$(BITS))"
 
-CONFIGURE_OPTIONS += --includedir=/usr/include/mpfr
-CONFIGURE_OPTIONS += --localstatedir=/var
+CONFIGURE_OPTIONS += --includedir=$(USRINCDIR)/mpfr
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS += --enable-shared
 CONFIGURE_OPTIONS += --disable-static
 CONFIGURE_OPTIONS += --disable-libtool-lock
 CONFIGURE_OPTIONS += --enable-thread-safe
 CONFIGURE_OPTIONS += --enable-tests-timeout=0
 CONFIGURE_OPTIONS += --with-gmp-include=$(GMPINCDIR)
-CONFIGURE_OPTIONS += --with-gmp-lib=$(GMPLIBDIR_$(BITS))
+CONFIGURE_OPTIONS += --with-gmp-lib=$(USRLIB.$(BITS))
 CONFIGURE_OPTIONS += --with-mulhigh-size=$(MPFRMULHIGH)
 CONFIGURE_OPTIONS += --with-pic
 
-LINT_FLAGS += -I/usr/include/gmp
+LINT_FLAGS += -I$(GMPINCDIR)
 
-PROTOUSRSHAREINFODIR = $(PROTOUSRSHAREDIR)/info
-PROTOUSRSHAREHTMLDIR = $(PROTOUSRSHAREDIR)/doc/mpfr/html
-PROTOUSRSHAREMAN3DIR = $(PROTOUSRSHAREDIR)/man/man3
-PROTOUSRINCLUDEDIR = $(PROTOUSRDIR)/include
-PROTOPKGCONFIGDIR = $(PROTOUSRLIBDIR)/pkgconfig
-PROTOPKGCONFIGDIR64 = $(PROTOUSRLIBDIR64)/pkgconfig
+PROTOUSRSHAREHTMLDIR = $(PROTOUSRSHAREDOCDIR)/mpfr/html
 
 COMPONENT_POST_INSTALL_ACTION = \
     ( $(MKDIR) $(PROTOUSRSHAREHTMLDIR) ; \
@@ -112,11 +96,11 @@
       $(MKDIR) $(PROTOPKGCONFIGDIR) ; \
       $(MKDIR) $(PROTOPKGCONFIGDIR64) ; \
       $(GSED) -e "s^\#include <gmp.h>^\#include <gmp/gmp.h>^g" \
-	$(PROTOUSRINCLUDEDIR)/mpfr/mpfr.h > \
-	$(PROTOUSRINCLUDEDIR)/mpfr/mpfr.h.sed ; \
-      $(CP) -fp $(PROTOUSRINCLUDEDIR)/mpfr/mpfr.h.sed \
-	$(PROTOUSRINCLUDEDIR)/mpfr/mpfr.h ; \
-      $(RM) -f $(PROTOUSRINCLUDEDIR)/mpfr/mpfr.h.sed ; \
+	$(PROTOUSRINCDIR)/mpfr/mpfr.h > \
+	$(PROTOUSRINCDIR)/mpfr/mpfr.h.sed ; \
+      $(CP) -fp $(PROTOUSRINCDIR)/mpfr/mpfr.h.sed \
+	$(PROTOUSRINCDIR)/mpfr/mpfr.h ; \
+      $(RM) -f $(PROTOUSRINCDIR)/mpfr/mpfr.h.sed ; \
       $(GSED) -e "s/MACH64/$(MACH64)/g" \
 	$(COMPONENT_DIR)/Solaris/libmpfr-64.pc > $(COMPONENT_DIR)/libmpfr.pc ; \
       $(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/index.html \
@@ -128,18 +112,4 @@
       $(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/libmpfr.3 \
 	$(PROTOUSRSHAREMAN3DIR)/ )
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/gmp
-REQUIRED_PACKAGES += system/library
--- a/components/mrtg/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mrtg/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,11 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mrtg
@@ -30,38 +33,22 @@
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:5efa7fae8040159208472e5f889be5b41d8c8a2ea6b31616f0f75cc7f48d2365
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)/pub/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/mrtg
 
 TPNO=			25709
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure-64.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS += --with-gd-inc=/usr/include/gd2
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS) -I$(BUILD_DIR_64)/bin"
-CONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS) $(CC_BITS)"
+CFLAGS += -I$(BUILD_DIR_64)/bin
+# Fix 64-bit linking via compiler.
+LDFLAGS += $(CC_BITS)
+CONFIGURE_OPTIONS += --with-gd-inc=$(USRINCDIR)/gd2
 
-CONFIGURE_BINDIR.64 = $(USRBINDIR)
 CONFIGURE_LIBDIR.64 = $(USRLIBDIR)
 
 # Build process expects a bin directory in compilation area.
 COMPONENT_PRE_BUILD_ACTION=(cd $(@D) ; mkdir -p bin)
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/gd
 REQUIRED_PACKAGES += runtime/perl-512
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/mtr/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mtr/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,46 +20,28 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mtr
 COMPONENT_VERSION=	0.86
 COMPONENT_PROJECT_URL=	http://www.bitwizard.nl/mtr/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:7912f049f9506748913e2866068b7f95b11a4e0a855322120b456c46ac9eb763
 COMPONENT_ARCHIVE_URL=	https://github.com/traviscross/mtr/archive/v$(COMPONENT_VERSION).tar.gz
-COMPONENT_BUGDB=	utility/mtr
 
 TPNO=			18130
 
-include ../../make-rules/prep.mk
-include ../../make-rules/configure.mk
-include ../../make-rules/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 CONFIGURE_SBINDIR.64 =		$(CONFIGURE_PREFIX)/bin
 CONFIGURE_OPTIONS  +=		--without-gtk
 CONFIGURE_OPTIONS  +=		--without-ipinfo
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=		LDFLAGS="$(LDFLAGS) $(CC_BITS)"
 
 COMPONENT_PRE_CONFIGURE_ACTION += (cd $(SOURCE_DIR); ./bootstrap.sh)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += library/ncurses
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/mutt/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mutt/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,26 +22,21 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mutt
 COMPONENT_VERSION=	1.5.21
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:2141f36e8d0f4f71c9ca6780001e7cc679fe313e643953fc07f001223e67c4a0
 COMPONENT_ARCHIVE_URL=	ftp://ftp.mutt.org/mutt/devel/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL=	http://www.mutt.org/
-COMPONENT_BUGDB=	utility/mutt
 
 TPNO=			9259
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS  +=		--sysconfdir="$(ETCDIR)/$(COMPONENT_NAME)"
 CONFIGURE_OPTIONS  +=		--enable-pop
 CONFIGURE_OPTIONS  +=		--enable-imap
@@ -61,19 +56,6 @@
 	$(GSED) -i 's%XXX-CUSAGE-XXX%$(shell $(CC) -V 2>&1 | head -1)%' \
 	$(BUILD_DIR_64)/muttbug.sh 
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += data/docbook/docbook-dtds
 REQUIRED_PACKAGES += data/docbook/docbook-style-dsssl
 REQUIRED_PACKAGES += data/docbook/docbook-style-xsl
@@ -85,7 +67,6 @@
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/perl-520
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/library/security/libsasl
 REQUIRED_PACKAGES += system/library/security/libsasl2
--- a/components/mutt/mutt.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mutt/mutt.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -50,12 +50,12 @@
 file path=etc/mutt/Muttrc.dist
 file path=etc/mutt/mime.types
 file path=etc/mutt/mime.types.dist
-file usr/bin/$(MACH64)/flea path=usr/bin/flea
-file usr/bin/$(MACH64)/mutt path=usr/bin/mutt
-file usr/bin/$(MACH64)/muttbug path=usr/bin/muttbug
-file usr/bin/$(MACH64)/pgpewrap path=usr/bin/pgpewrap
-file usr/bin/$(MACH64)/pgpring path=usr/bin/pgpring
-file usr/bin/$(MACH64)/smime_keys path=usr/bin/smime_keys
+file path=usr/bin/flea
+file path=usr/bin/mutt
+file path=usr/bin/muttbug
+file path=usr/bin/pgpewrap
+file path=usr/bin/pgpring
+file path=usr/bin/smime_keys
 file path=usr/share/doc/mutt/COPYRIGHT
 file path=usr/share/doc/mutt/ChangeLog
 file path=usr/share/doc/mutt/GPL
--- a/components/mysql-5-5/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mysql-5-5/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,17 +18,16 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 export PARFAIT_BUILD=no
-
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME        = mysql
 COMPONENT_VERSION     = 5.5.48
-COMPONENT_SRC         = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE     = $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:cc3f8745879eee0508de1a70fc2d267a2d06b7433faa8bb07a787768dcfed781
 COMPONENT_ARCHIVE_URL = http://cdn.mysql.com/Downloads/MySQL-5.5/$(COMPONENT_ARCHIVE)
@@ -40,22 +39,20 @@
 COMPONENT_PRE_BUILD_ACTION += \
   $(CP) -rp $(SOURCE_DIR)/* $(@D);
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/cmake.mk
+BUILD_STYLE= cmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
+
 
 # Remove "-z ignore" to avoid link problem, missing C++ runtime
 # references in libmysqlclient.so
 LD_Z_IGNORE =
 
-# Enable ASLR for this component
-ASLR_MODE           = $(ASLR_ENABLE)
-
 # This component uses cmake to generate Makefiles and thus does not
 # run any configure script
-CMAKE_PREFIX        = /usr/mysql/5.5
-CONFDIR             = /etc/mysql/5.5
-DATA_PREFIX         = /var/mysql/5.5
+CMAKE_PREFIX        = $(USRDIR)/mysql/5.5
+CONFDIR             = $(ETCDIR)/mysql/5.5
+DATA_PREFIX         = $(VARDIR)/mysql/5.5
 
 CMAKE_BINDIR.32     = bin/$(MACH32)
 CMAKE_BINDIR.64     = bin
@@ -63,15 +60,10 @@
 CMAKE_LIBDIR.64     = lib/$(MACH64)
 CMAKE_PLUGINDIR.32  = lib/plugin
 CMAKE_PLUGINDIR.64  = lib/$(MACH64)/plugin
-CMAKE_CFLAGS.64     = "-m64 -norunpath"
-CMAKE_CXXFLAGS.64   = "-m64 -norunpath"
-CMAKE_CFLAGS.32     = -norunpath
-CMAKE_CXXFLAGS.32   = -norunpath
 
 # Providing component specific build options to cmake
 CMAKE_OPTIONS += -DBUILD_CONFIG=mysql_release
 CMAKE_OPTIONS += -DINSTALL_LAYOUT=STANDALONE
-CMAKE_OPTIONS += -DCMAKE_INSTALL_PREFIX=$(CMAKE_PREFIX)
 CMAKE_OPTIONS += -DINSTALL_BINDIR=$(CMAKE_BINDIR.$(BITS))
 CMAKE_OPTIONS += -DINSTALL_SBINDIR=$(CMAKE_BINDIR.$(BITS))
 CMAKE_OPTIONS += -DINSTALL_SCRIPTDIR=$(CMAKE_BINDIR.$(BITS))
@@ -89,20 +81,9 @@
 CMAKE_OPTIONS += -DWITH_EXAMPLE_STORAGE_ENGINE=1
 CMAKE_OPTIONS += -DWITH_FEDERATED_STORAGE_ENGINE=1
 CMAKE_OPTIONS += -DWITH_INNOBASE_STORAGE_ENGINE=1
-CMAKE_OPTIONS += -DCMAKE_EXE_LINKER_FLAGS="-norunpath"
-CMAKE_OPTIONS += -DCMAKE_C_FLAGS=$(CMAKE_CFLAGS.$(BITS))
-CMAKE_OPTIONS += -DCMAKE_CXX_FLAGS=$(CMAKE_CXXFLAGS.$(BITS))
 CMAKE_OPTIONS += '-DCOMPILATION_COMMENT=MySQL Community Server (GPL)'
 CMAKE_OPTIONS += -DFEATURE_SET=community
 
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(NO_TESTS)
-
-system-test: $(NO_TESTS)
-
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/perl-520
--- a/components/mysql-5-6/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mysql-5-6/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,39 +18,35 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 export PARFAIT_BUILD=no
-
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME        = mysql
 COMPONENT_VERSION     = 5.6.25
-COMPONENT_SRC         = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE     = $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
          sha256:15079c0b83d33a092649cbdf402c9225bcd3f33e87388407be5cdbf1432c7fbd
 COMPONENT_ARCHIVE_URL = http://cdn.mysql.com/Downloads/MySQL-5.6/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL = http://dev.mysql.com/ 
 COMPONENT_BUGDB       = database/mysql
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-# Enable ASLR for this component
-ASLR_MODE           = $(ASLR_ENABLE)
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # MySQL being one of Oracle's own product doesn't require to have a
 # TPNO License number.
 
 # This component uses cmake to generate Makefiles and thus does not
 # run any configure script
-CMAKE               = /usr/bin/cmake
-CMAKE_PREFIX        = /usr/mysql/5.6
-CONFDIR             = /etc/mysql/5.6
-DATA_PREFIX         = /var/mysql/5.6
+CMAKE               = $(shell which cmake)
+CMAKE_PREFIX        = $(USRDIR)/mysql/5.6
+CONFDIR             = $(ETCDIR)/mysql/5.6
+DATA_PREFIX         = $(VARDIR)/mysql/5.6
 
 CMAKE_BINDIR.32     = bin/$(MACH32)
 CMAKE_BINDIR.64     = bin
@@ -98,14 +94,6 @@
 COMPONENT_PRE_BUILD_ACTION += echo Running cmake with $(CMAKE_OPTIONS);
 COMPONENT_PRE_BUILD_ACTION += $(CMAKE) . $(CMAKE_OPTIONS);
 
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += database/mysql-56/client
 REQUIRED_PACKAGES += developer/build/cmake
 REQUIRED_PACKAGES += library/security/openssl
@@ -113,7 +101,6 @@
 REQUIRED_PACKAGES += runtime/perl-520
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/network
--- a/components/mysql-common/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/mysql-common/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,23 +18,24 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= NO_ARCH
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		mysql-common
 COMPONENT_VERSION=	5.11
+COMPONENT_SRC=
 COMPONENT_PROJECT_URL=	http://dev.mysql.com/
 COMPONENT_BUGDB=	database/mysql
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-# ASLR Mode should be set as not applicable
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+BUILD_STYLE= pkg
+COMMON_TARGETS= no
+include $(WS_MAKE_RULES)/common.mk
 
 # nothing to download or build; just package
-build install test system-test:
 
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
--- a/components/nano/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/nano/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,42 +18,30 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		nano
 COMPONENT_VERSION=	2.0.9
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.nano-editor.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:6d212385680d29dcda35dda7801da19c80182a8bc6bc6d5cf7533034c853d37f
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)dist/v2.0/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/nano
 
 TPNO=			9253
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CFLAGS +=		-I/usr/include/ncurses
-
-CONFIGURE_OPTIONS +=	--bindir=/usr/bin
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
+# Ensure ancient autoconf scripts are overwritten with fixed versions that
+# properly detect SunOS 5.x hosts.
+COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fiv)
 
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
+CPPFLAGS += -I$(USRINCDIR)/ncurses
+CFLAGS += -I$(USRINCDIR)/ncurses
 
 REQUIRED_PACKAGES += library/ncurses
-REQUIRED_PACKAGES += system/library
--- a/components/ncftp/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ncftp/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -1,4 +1,4 @@
-
+#
 # CDDL HEADER START
 #
 # The contents of this file are subject to the terms of the
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-BITS=64
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		ncftp
 COMPONENT_VERSION=	3.2.5
 COMPONENT_PROJECT_URL=	http://www.ncftp.com/ncftp/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC)-src.tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:b4ebe2415761a5137cd1d313c8fc1352f26d8963cc9e9e354e29720aa2089d42
@@ -38,28 +36,10 @@
 
 TPNO=			24893
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-
 CONFIGURE_OPTIONS += --srcdir=$(BUILD_DIR_64) 
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:	$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-REQUIRED_PACKAGES += system/library
--- a/components/ncurses/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ncurses/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,36 +20,33 @@
 #
 
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		ncurses
 COMPONENT_VERSION=	5.7
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/ncurses/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:0a9bdea5c7de8ded5c9327ed642915f2cc380753f12d4ad120ef7da3ea3498f4
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/pub/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/ncurses
 
 TPNO=			5931
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # Needed to make "gmake test" work.
-COMPONENT_PRE_CONFIGURE_ACTION = \
+COMPONENT_PRE_CONFIGURE_ACTION += \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
 CONFIGURE_PREFIX =	/usr/gnu
 
-# Needed to correctly build that 64-bit library.
+# Fix 64-bit linking via compiler.
 LDFLAGS += $(CC_BITS)
 
+# Expects GNU install.
+CONFIGURE_ENV += INSTALL="$(INSTALL)"
+
 CONFIGURE_OPTIONS +=	--with-shared
 CONFIGURE_OPTIONS +=	--with-normal
 CONFIGURE_OPTIONS +=	--enable-rpath
@@ -57,17 +54,17 @@
 CONFIGURE_OPTIONS +=	--includedir=$(USRINCDIR)/ncurses
 CONFIGURE_OPTIONS +=	--with-default-terminfo-dir=$(GNUSHARE)/terminfo
 
-# Needed to pass -m32 or -m64 to the C/C++ compiler and linker.
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS +=	LDFLAGS="$(LDFLAGS)"
-
 # XXX: Ugly hack copied directly from the desktop SUNWncurses.spec file:
 # The sun-color terminfo included in ncurses does not work;
 # copying the one shipped with Sun's curses fixes it:
 COMPONENT_POST_INSTALL_ACTION += \
 	$(CP) /usr/share/lib/terminfo/s/sun-color \
-	$(PROTO_DIR)$(GNUSHARE)/terminfo/s/
+	$(PROTO_DIR)$(GNUSHARE)/terminfo/s/;
+
+# We only deliver 64-bit binaries and in /usr/bin.
+COMPONENT_POST_INSTALL_ACTION.32 += \
+	$(GSED) -i -e 's|$(GNUBIN)/i86|$(GNUBIN)|' \
+		$(PROTOGNUBIN)/$(MACH32)/ncurses5-config;
 
 # There is no master test file because tests are interactive and not
 # tied to the build.
@@ -78,17 +75,6 @@
 
 $(SKIP_TEST_AT_TOP_LEVEL)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += shell/bash
-REQUIRED_PACKAGES += system/library
+# Required by this Makefile.
+REQUIRED_PACKAGES += system/data/terminfo/terminfo-core
--- a/components/ncurses/ncurses.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ncurses/ncurses.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
@@ -51,17 +51,18 @@
 link path=usr/bin/gtoe target=../gnu/bin/toe facet.compat.gnulinks=true
 link path=usr/bin/gtput target=../gnu/bin/tput facet.compat.gnulinks=true
 link path=usr/bin/gtset target=../gnu/bin/tset facet.compat.gnulinks=true
-file path=usr/gnu/bin/$(MACH64)/ncurses5-config
+# ncurses5-config contains embedded paths, so swap these around.
+file usr/gnu/bin/ncurses5-config path=usr/gnu/bin/$(MACH64)/ncurses5-config
 link path=usr/gnu/bin/captoinfo target=tic
-file usr/gnu/bin/$(MACH64)/clear path=usr/gnu/bin/clear
-file usr/gnu/bin/$(MACH64)/infocmp path=usr/gnu/bin/infocmp
+file path=usr/gnu/bin/clear
+file path=usr/gnu/bin/infocmp
 link path=usr/gnu/bin/infotocap target=tic
-file path=usr/gnu/bin/ncurses5-config
+file usr/gnu/bin/$(MACH32)/ncurses5-config path=usr/gnu/bin/ncurses5-config
 link path=usr/gnu/bin/reset target=tset
-file usr/gnu/bin/$(MACH64)/tic path=usr/gnu/bin/tic
-file usr/gnu/bin/$(MACH64)/toe path=usr/gnu/bin/toe
-file usr/gnu/bin/$(MACH64)/tput path=usr/gnu/bin/tput
-file usr/gnu/bin/$(MACH64)/tset path=usr/gnu/bin/tset
+file path=usr/gnu/bin/tic
+file path=usr/gnu/bin/toe
+file path=usr/gnu/bin/tput
+file path=usr/gnu/bin/tset
 link path=usr/gnu/lib/$(MACH64)/libform.so target=libform.so.5
 link path=usr/gnu/lib/$(MACH64)/libform.so.5 target=libform.so.5.7
 file path=usr/gnu/lib/$(MACH64)/libform.so.5.7
--- a/components/net-snmp/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/net-snmp/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,19 +18,20 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+# net-snmp has a "special" build where only 32-bit items are installed into
+# proto area; so prefer 32-bit to preserve existing sourcing.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
-PATH=$(SPRO_VROOT)/bin:/usr/gnu/bin:/usr/bin
-DOXYGEN=/usr/bin/doxygen
+PATH=$(SPRO_VROOT)/bin:$(GNUBIN):$(USRBINDIR)
 
 COMPONENT_NAME=		net-snmp
 COMPONENT_VERSION=	5.4.1
 COMPONENT_PROJECT_URL=	http://www.net-snmp.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:0ea976722c993c87dede8eb6348e6feb059e3851bbef2de824bf18ac97cdb565
 #COMPONENT_ARCHIVE_URL=	http://ftp.ntua.gr/mirror/net-snmp/net-snmp/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
@@ -39,11 +40,11 @@
 
 TPNO=			5702
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_32_and_64 += $(BUILD_DIR_32)/.docs
+INSTALL_TARGET= build $(INSTALL_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
-CFLAGS += $(studio_C99_ENABLE)
+studio_C99MODE= $(studio_C99_ENABLE)
 CPPFLAGS += "-DFALSE_SHARING_ALIGN=64"
 
 CONFIGURE_ENV +=	PYTHONPROG=$(PYTHON.$(BITS))
@@ -51,18 +52,18 @@
 CONFIGURE_OPTIONS  +=	--with-default-snmp-version=3
 CONFIGURE_OPTIONS  +=	--with-sys-contact="root@localhost"
 CONFIGURE_OPTIONS  +=	--with-sys-location=Unknown
-CONFIGURE_OPTIONS  +=	--with-logfile=/var/log/snmpd.log
-CONFIGURE_OPTIONS  +=	--with-persistent-directory=/var/net-snmp
+CONFIGURE_OPTIONS  +=	--with-logfile=$(VARDIR)/log/snmpd.log
+CONFIGURE_OPTIONS  +=	--with-persistent-directory=$(VARDIR)/net-snmp
 
-CONFIGURE_OPTIONS  +=	--with-mibdirs=/etc/net-snmp/snmp/mibs
-CONFIGURE_OPTIONS  +=	--datadir=/etc/net-snmp
+CONFIGURE_OPTIONS  +=	--with-mibdirs=$(ETCDIR)/net-snmp/snmp/mibs
+CONFIGURE_OPTIONS  +=	--datadir=$(ETCDIR)/net-snmp
 CONFIGURE_OPTIONS  +=	--enable-agentx-dom-sock-only
 CONFIGURE_OPTIONS  +=	--enable-ucd-snmp-compatibility
 CONFIGURE_OPTIONS  +=	--enable-ipv6
 CONFIGURE_OPTIONS  +=	--enable-mfd-rewrites
 CONFIGURE_OPTIONS  +=	--with-pkcs
 CONFIGURE_OPTIONS  +=	--with-transports="UDP TCP UDPIPv6 TCPIPv6"
-CONFIGURE_OPTIONS  +=   --sysconfdir=/etc/net-snmp
+CONFIGURE_OPTIONS  +=   --sysconfdir=$(ETCDIR)/net-snmp
 
 # Which MIB modules do we want to build
 MIB_MOBULES.sparc = ucd-snmp/lmSensors
@@ -82,10 +83,6 @@
 CONFIGURE_OPTIONS.64  +=	--with-perl-modules="$(PERL_ARGS)"
 CONFIGURE_OPTIONS.64  +=	--disable-perl-cc-checks
 
-CONFIGURE_OPTIONS	+=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS	+=	CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_OPTIONS	+=	CC="$(CC)"
-
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D); $(CLONEY) $(COMPONENT_DIR)/sun $(@D)/sun)
 
@@ -93,8 +90,8 @@
 ARCH=32
 ARCH=$(BITS:64=$(MACH64))
 
-CCSMAKE_ARGS =	CC="$(CC)" CFGPREFIX=/usr CFGLIB64=/usr/lib/$(MACH64)
-CCSMAKE_ARGS +=	CFGLIB=/usr/lib ARCH=$(ARCH) ROOT=$(PROTO_DIR)
+CCSMAKE_ARGS =	CC="$(CC)" CFGPREFIX=$(USRDIR) CFGLIB64=$(USRLIBDIR64)
+CCSMAKE_ARGS +=	CFGLIB=$(USRLIBDIR) ARCH=$(ARCH) ROOT=$(PROTO_DIR)
 
 COMPONENT_TEST_DIR =		$(COMPONENT_DIR)
 COMPONENT_TEST_CMD =		$(KSH93)
@@ -119,19 +116,8 @@
 	($(MKDIR) -p $(BUILD_DIR)/prototype/$(MACH64)/etc/net-snmp/snmp/mibs; \
 	 cd $(BUILD_DIR)/$(MACH64)/sun ; ls agent; $(CCSMAKE) -e $(CCSMAKE_ARGS) install)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:	$(BUILD_32_and_64) $(BUILD_DIR_32)/.docs
-
 $(INSTALL_64): COMPONENT_INSTALL_ARGS += DESTDIR=$(BUILD_DIR)/prototype/$(MACH64)
 
-install:	build $(INSTALL_32_and_64)
-
-test:	$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 # build the docs
 $(BUILD_DIR_32)/.docs:
 	(cd $(@D) ; $(ENV) srcdir=$(@D) $(DOXYGEN) -u $(@D)/doxygen.conf ; \
@@ -144,7 +130,6 @@
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/pkcs11
 REQUIRED_PACKAGES += system/management/snmp/net-snmp
 REQUIRED_PACKAGES += system/network
--- a/components/nethack/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/nethack/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,28 +20,26 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
-PATH=$(dir $(CC)):/usr/bin:/usr/gnu/bin
+PATH=$(dir $(CC)):$(USRBINDIR):$(GNUBIN)
 
 COMPONENT_NAME=		nethack
 COMPONENT_VERSION=	3.4.3
 COMPONENT_PROJECT_URL=	http://www.nethack.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_NAME)-343-src.tgz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:bb39c3d2a9ee2df4a0c8fdde708fbc63740853a7608d2f4c560b488124866fe4
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/$(COMPONENT_NAME)/files/$(COMPONENT_NAME)/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)/download
-COMPONENT_BUGDB=	utility/nethack
 
 TPNO=			9239
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL=0
 
@@ -68,26 +66,15 @@
 COMPONENT_INSTALL_ENV += LFLAGS="$(CC_BITS)"
 COMPONENT_INSTALL_ENV += MAKEFLAGS=-e
 
-PKG_PROTO_DIRS += $(COMPONENT_SRC)/doc
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-	sed -e 's/^!\(NetHack.tomb\)/\1/' -e 's/^!\(NetHack.pet\)/\1/' \
+COMPONENT_POST_INSTALL_ACTION += \
+	$(GSED) -e 's/^!\(NetHack.tomb\)/\1/' -e 's/^!\(NetHack.pet\)/\1/' \
 		-e 's/^!\(NetHack.tile_file\)/\1/' \
 		$(COMPONENT_SRC)/win/X11/NetHack.ad \
 		> $(PROTO_DIR)/usr/lib/nethack/NetHack.ad
 
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+PKG_PROTO_DIRS += $(COMPONENT_SRC)/doc
 
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += x11/compatibility/links-xorg
 REQUIRED_PACKAGES += x11/library/libx11
 REQUIRED_PACKAGES += x11/library/libxpm
--- a/components/nettle/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/nettle/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,29 +18,22 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64_and_32
+include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		nettle
 COMPONENT_VERSION=	3.1.1
 COMPONENT_PROJECT_URL=	http://www.lysator.liu.se/~nisse/nettle/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:5fd4d25d64d8ddcb85d0d897572af73b05b4d163c6cc49438a5bfbb8ff293d4c
-COMPONENT_ARCHIVE_URL=	https://ftp.gnu.org/gnu/nettle/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/nettle
 
 TPNO=	23793
 
-include ../../make-rules/shared-macros.mk
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-MCS = mcs
-STRIP = strip
-
 # We need to build an extra static version of these libraries for
 # GRUB/Wanboot support.
 
@@ -56,6 +49,11 @@
 
 endif
 
+include $(WS_MAKE_RULES)/gnu-component.mk
+
+MCS = mcs
+STRIP = strip
+
 # Set the wanboot CFLAGS as needed for the wanboot compilation
 
 CFLAGS.wanboot += -D_BOOT
@@ -75,11 +73,7 @@
 
 CONFIGURE_OPTIONS  += --libexecdir=$(CONFIGURE_LIBDIR.$(BITS))
 CONFIGURE_OPTIONS  += --infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  += --with-include-path=/usr/include/gmp
-CONFIGURE_OPTIONS  += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  += CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS  += LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS  += CC_FOR_BUILD="$(CC) $(CC_BITS)"
+CONFIGURE_OPTIONS  += --with-include-path=$(USRINCDIR)/gmp
 CONFIGURE_OPTIONS  += --disable-elliptic-curves
 CONFIGURE_OPTIONS  += --disable-knuth-lfib
 
@@ -109,9 +103,6 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-# common targets
-configure:      $(CONFIGURE_32_and_64)
-
 $(BUILD_DIR)/$(MACH32)/.configured: CFLAGS += $(CFLAGS.shared)
 $(BUILD_DIR)/$(MACH32)/.configured: CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.shared)
 $(BUILD_DIR)/$(MACH64)/.configured: CFLAGS += $(CFLAGS.shared)
@@ -121,10 +112,6 @@
 $(BUILD_DIR)/wanboot-amd64/.configured: CFLAGS += $(CFLAGS.wanboot)
 $(BUILD_DIR)/wanboot-amd64/.configured: CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.wanboot)
 
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
 $(BUILD_DIR)/wanboot-amd64/.installed: \
 	COMPONENT_POST_INSTALL_ACTION += \
 	$(MKDIR) $(PROTO_DIR)/usr/lib/grub/wanboot;
@@ -153,9 +140,7 @@
 	COMPONENT_POST_INSTALL_ACTION += \
 	$(AR) ts $(PROTO_DIR)/usr/lib/grub/wanboot/libhogweed.a;
 
-test:           $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+# Required by this Makefile.
+REQUIRED_PACKAGES += developer/build/automake-111
 
 REQUIRED_PACKAGES += library/gmp
-REQUIRED_PACKAGES += system/library
--- a/components/nettle/nettle.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/nettle/nettle.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,10 +36,10 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2015/187
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/nettle-hash path=usr/bin/nettle-hash
-file usr/bin/$(MACH64)/nettle-pbkdf2 path=usr/bin/nettle-pbkdf2
-file usr/bin/$(MACH64)/pkcs1-conv path=usr/bin/pkcs1-conv
-file usr/bin/$(MACH64)/sexp-conv path=usr/bin/sexp-conv
+file path=usr/bin/nettle-hash
+file path=usr/bin/nettle-pbkdf2
+file path=usr/bin/pkcs1-conv
+file path=usr/bin/sexp-conv
 file path=usr/include/nettle/aes.h
 file path=usr/include/nettle/arcfour.h
 file path=usr/include/nettle/arctwo.h
--- a/components/nghttp2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/nghttp2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,16 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		nghttp2
 COMPONENT_VERSION=	1.6.0
 COMPONENT_PROJECT_URL=	https://nghttp2.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:c88012e87b80c055ddd2412efd7e96b9e8cfe0652c4b21083f2cb89b2f0d3a26
 COMPONENT_ARCHIVE_URL=	https://github.com/tatsuhiro-t/nghttp2/releases/download/v$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
@@ -35,25 +35,10 @@
 
 TPNO = 26335
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)"
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 CONFIGURE_OPTIONS += --disable-hpack-tools
 CONFIGURE_OPTIONS += --disable-static
 CONFIGURE_OPTIONS += ZLIB_LIBS=-lz
 CONFIGURE_OPTIONS += ZLIB_CFLAGS=
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-REQUIRED_PACKAGES += system/library
--- a/components/nicstat/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/nicstat/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,43 +18,32 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		nicstat
 COMPONENT_VERSION=	1.95
 COMPONENT_PROJECT_URL=	http://sourceforge.net/projects/nicstat/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:c4cc33f8838f4523f27c3d7584eedbe59f4c587f0821612f5ac2201adc18b367
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)files/$(COMPONENT_ARCHIVE)/download
-COMPONENT_BUGDB=	utility/nicstat
 
 TPNO=			20669
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+# Makefile.Solaris is pretty useless for working in Userland.
+INSTALL_TARGET= build
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-COMPONENT_BUILD_ENV +=	CC="$(CC) -m64"
-COMPONENT_BUILD_ARGS =	-f Makefile.Solaris
+COMPONENT_BUILD_ARGS += COPT="$(CFLAGS)"
+COMPONENT_BUILD_ARGS +=	-f Makefile.Solaris
 
 PATCH_LEVEL =		0
 
 # Just get stuff from the build directory.
 PKG_PROTO_DIRS += $(BUILD_DIR_64)
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-build:		$(BUILD_64)
-
-# Makefile.Solaris is pretty useless for working in Userland.
-install:	$(BUILD_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-REQUIRED_PACKAGES += system/library
--- a/components/nmap/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/nmap/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,44 +20,42 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 # Can't use the Studio compilers as they don't support the GNU 
 # __attribute__ extension
-COMPILER =	gcc
-
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         nmap
 COMPONENT_VERSION=      6.25
 COMPONENT_PROJECT_URL=	http://nmap.org/
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH= \
     sha256:42c54fd5cc5f05e5df909757d62307102a8ff1dfaf5c2626b1cb5f2ecd009e57
 COMPONENT_ARCHIVE_URL=  $(COMPONENT_PROJECT_URL)dist/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/nmap
 
 TPNO=			9217
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
 PKG_MACROS +=		PYVER=$(PYTHON_VERSION)
 
-CONFIGURE_OPTIONS  +=   CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=   CXX="$(CXX)"
-CONFIGURE_OPTIONS  +=   CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS  +=   LDFLAGS="$(LDFLAGS) -m64"
+ifeq ($(OS_VERSION),5.11)
 CONFIGURE_OPTIONS  +=   LIBS="-lsocket -lnsl"
+endif
+
+# Fix 64-bit linking via compiler.
+LDFLAGS += $(CC_BITS)
+
 CONFIGURE_OPTIONS  +=   PYTHON="$(PYTHON.$(PYTHON_VERSION))"
 CONFIGURE_OPTIONS  +=   --srcdir=$(BUILD_DIR_64)
-CONFIGURE_OPTIONS  +=   --localstatedir=/var 
+CONFIGURE_OPTIONS  +=   --localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  +=   --without-localdirs 
 CONFIGURE_OPTIONS  +=   --with-zenmap 
 CONFIGURE_OPTIONS  +=   --with-openssl
@@ -73,26 +71,12 @@
         $(GSED) -i -e "s?env python?python$(PYTHON_VERSION)?" \
                 $(PROTOUSRBINDIR)/uninstall_zenmap
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-		
-install:	$(INSTALL_64) 
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += library/pcre
 REQUIRED_PACKAGES += library/python/pygobject-27
 REQUIRED_PACKAGES += library/python/pygtk2-27
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += runtime/lua
 REQUIRED_PACKAGES += runtime/python-27
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
 REQUIRED_PACKAGES += system/library/libpcap
--- a/components/nmap/nmap.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/nmap/nmap.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -41,11 +41,11 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2007/129
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/ncat path=usr/bin/ncat
+file path=usr/bin/ncat
 file path=usr/bin/ndiff
-file usr/bin/$(MACH64)/nmap path=usr/bin/nmap
+file path=usr/bin/nmap
 link path=usr/bin/nmapfe target=zenmap
-file usr/bin/$(MACH64)/nping path=usr/bin/nping
+file path=usr/bin/nping
 file path=usr/bin/uninstall_zenmap
 link path=usr/bin/xnmap target=zenmap
 file path=usr/bin/zenmap
--- a/components/novnc/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/novnc/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
--- a/components/ntp/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ntp/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,7 +22,7 @@
 #
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		ntp
@@ -34,7 +34,6 @@
 COMPONENT_PROJECT_URL=	http://www.ntp.org/
 COMPONENT_SRC_NAME=	ntp
 COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(HUMAN_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	 \
     sha256:583d0e1c573ace30a9c6afbea0fc52cae9c8c916dbc15c026e485a0dda4ba048
 COMPONENT_ARCHIVE_URL=	http://archive.ntp.org/ntp4/ntp-4.2/$(COMPONENT_ARCHIVE)
@@ -44,21 +43,19 @@
 
 PATCH_LEVEL = 0
 
-ASLR_MODE= $(ASLR_ENABLE)
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+CFLAGS +=	 -D_XOPEN_SOURCE=600 -D__EXTENSIONS__
 
-CFLAGS +=	$(studio_C99_ENABLE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__
-CFLAGS.i386 =	-preserve_argvalues=complete
-CFLAGS +=	$(CFLAGS.$(MACH))
+studio_C99MODE= $(studio_C99_ENABLE)
+CFLAGS.studio.i386 =	-preserve_argvalues=complete
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	--bindir=/usr/sbin
+CONFIGURE_BINDIR.32 = $(USRSBINDIR)
+
 CONFIGURE_OPTIONS +=	--with-binsubdir=sbin
-CONFIGURE_OPTIONS +=	--libexecdir=/usr/lib/inet
-CONFIGURE_OPTIONS +=	--sysconfdir=/etc/inet
+CONFIGURE_OPTIONS +=	--libexecdir=$(USRLIBDIR)/inet
+CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)/inet
 CONFIGURE_OPTIONS +=	--enable-all-clocks
 CONFIGURE_OPTIONS +=	--enable-debugging
 CONFIGURE_OPTIONS +=	--enable-debug-timing
@@ -66,16 +63,7 @@
 CONFIGURE_OPTIONS +=	--enable-parse-clocks
 CONFIGURE_OPTIONS +=	--enable-ignore-dns-errors
 CONFIGURE_OPTIONS +=	--without-ntpsnmpd
-CONFIGURE_OPTIONS +=	--with-openssl-libdir=/lib
-
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-install:	$(INSTALL_32)
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+CONFIGURE_OPTIONS +=	--with-openssl-libdir=$(LIBDIR)
 
 REQUIRED_PACKAGES += library/libedit
 REQUIRED_PACKAGES += library/security/openssl
@@ -84,6 +72,5 @@
 REQUIRED_PACKAGES += service/network/dns/mdns
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/library/security/crypto
--- a/components/ocaml/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ocaml/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,17 +20,16 @@
 #
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
-PATH=/usr/bin:/usr/gnu/bin:/usr/sbin:$(SPRO_VROOT)/bin
+PATH=$(USRBINDIR):$(GNUBIN):$(USRSBINDIR):$(SPRO_VROOT)/bin
 
 COMPONENT_NAME=		ocaml
 COMPONENT_VERSION=	3.11.2
 COMPONENT_PROJECT_URL=	http://www.ocaml.org
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH= \
     sha256:86f3387a0d7e7c8be2a3c53af083a5a726e333686208d5ea0dd6bb5ac3f58143
@@ -53,18 +52,10 @@
     sha256:48eedc6a870bef84562b2d0ed25d9c3b15ab646f72ecfb4c6c2cbaccc6b4081d
 COMPONENT_ARCHIVE_URL_3= http://caml.inria.fr/distrib/ocaml-3.11/$(COMPONENT_ARCHIVE_3)
 
-COMPONENT_BUGDB=	utility/ocaml
-
 TPNO=			9233
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-
-# We don't support 64-bit yet, but this will be needed when we do.
-CONFIGURE_ENV.64 += UL_LDFLAGS="-m64"
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Ocaml does not use a standard configure script, but has its own handwritten
 # one.  So we must specify the arguments it accepts by hand.
@@ -103,7 +94,7 @@
 #
 
 COMPONENT_POST_BUILD_ACTION = (cd $(@D); \
-                export LD_EXEC_OPTIONS="-z aslr=disable"; \
+                export LD_EXEC_OPTIONS="$(ASLR_DISABLE)"; \
                 $(UNPACK) $(UNPACK_ARGS) ../../$(COMPONENT_ARCHIVE_1); \
                 $(UNPACK) $(UNPACK_ARGS) ../../$(COMPONENT_ARCHIVE_3); \
                 $(CP) $(COMPONENT_DIR)/files/ocamlbyteinfo.ml $(@D); \
@@ -153,21 +144,8 @@
 #
 PKG_PROTO_DIRS +=       $(BUILD_DIR_$(BITS))
 
-# common targets
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += runtime/tcl-8
 REQUIRED_PACKAGES += runtime/tk-8
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
--- a/components/open-fabrics/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,13 +18,17 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+include ../../make-rules/shared-macros.mk
 
 LD_Z_IGNORE =
 
 COMPONENT_NAME=	open-fabrics
 COMPONENT_VERSION=1.5.3
+COMPONENT_SRC=
 
 COMPONENT_PROJECT_URL=	http://www.openfabrics.org/
 COMPONENT_BUGDB=	library/ofuv_lib
@@ -43,8 +47,6 @@
 TPNO_QPERF=		5083
 TPNO_RDS_TOOLS=		5092
 
-include ../../make-rules/shared-macros.mk
-
 # sensitive to kernel interface changes.
 ifeq ($(BUILD_TYPE), evaluation)
 PUBLISH_STAMP=
@@ -54,8 +56,8 @@
 SUBDIRS =	$(shell echo */Makefile | sed -e 's;/Makefile;;g')
 endif
 
+include ofed.mk
 include $(WS_MAKE_RULES)/ips.mk
-include ofed.mk
 
 # Do not apply the standard license transforms for this component. The
 # license actions in the open-fabrics.p5m file are already tagged with the
@@ -113,7 +115,6 @@
 REQUIRED_PACKAGES += runtime/tcl-8
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/open-fabrics/ibutils/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/ibutils/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,41 +18,33 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64_and_32
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		ibutils
 COMPONENT_VERSION=	1.5.7
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:8db2fcb20102c37e7037826c58b899092df034aac870d3d50a13263746f17f18
-COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/ibutils/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/ofuv_tools
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+include ../ofed-component.mk
 
-LIBS +=	-lsocket -lnsl -lopensm -losmvendor -losmcomp -libumad -libmad
+LIBS +=	-lopensm -losmvendor -losmcomp -libumad -libmad
 
-LDFLAGS.64 +=	-L $(PROTO_DIR)/usr/lib/$(MACH64)
+LDFLAGS.64 +=	-L $(PROTOUSRLIBDIR64)
 
 # we want to use the libcheck here
 DISABLE_LIBCHECK=
 
 CONFIGURE_ENV +=	INSTALL_DATA="$(INSTALL) -m 644"
 
+CONFIGURE_BINDIR.64= $(USRSBINDIR)
 CONFIGURE_OPTIONS +=	CXXFLAGS="$(CC_BITS)"
-CONFIGURE_OPTIONS +=	--with-osm=$(PROTO_DIR)/usr
-CONFIGURE_OPTIONS +=	--bindir=$(USRSBINDIR)
-
-PROTOMAN =	$(PROTO_DIR)/$(CONFIGURE_MANDIR)
+CONFIGURE_OPTIONS +=	--with-osm=$(PROTOUSRDIR)
 
 CLEANUP_FILES =\
 	$(PROTOUSRLIBDIR)/libibdm.la\
@@ -78,20 +70,20 @@
 	$(PROTOUSRBINDIR)/ibdiagui* \
 	$(PROTOUSRBINDIR)/ibnlparse*\
 	$(PROTOUSRBINDIR)/ibdiagpath* \
-	$(PROTOMAN)/man1//ibdmsh.1 \
-	$(PROTOMAN)/man1//ibdmtr.1\
-	$(PROTOMAN)/man1//ibdmchk.1\
-	$(PROTOMAN)/man1//ibdiagui.1 \
-	$(PROTOMAN)/man1//ibdiagpath.1\
-	$(PROTOMAN)/man1//ibtopodiff.1 \
-	$(PROTOMAN)/man1//ibdm-ibnl-file.1\
-	$(PROTOMAN)/man1//ibdm-topo-file.1 \
-	$(PROTOMAN)/man3//ibnd_discover_fabric.3\
-	$(PROTOMAN)/man3//ibnd_find_node_dr.3 \
-	$(PROTOMAN)/man3//ibnd_find_node_guid.3\
-	$(PROTOMAN)/man3//ibnd_iter_nodes.3 \
-	$(PROTOMAN)/man3//ibnd_iter_nodes_type.3\
-	$(PROTOMAN)/man3//ibnd_show_progress.3 \
+	$(PROTOUSRSHAREMAN1DIR)/ibdmsh.1 \
+	$(PROTOUSRSHAREMAN1DIR)/ibdmtr.1\
+	$(PROTOUSRSHAREMAN1DIR)/ibdmchk.1\
+	$(PROTOUSRSHAREMAN1DIR)/ibdiagui.1 \
+	$(PROTOUSRSHAREMAN1DIR)/ibdiagpath.1\
+	$(PROTOUSRSHAREMAN1DIR)/ibtopodiff.1 \
+	$(PROTOUSRSHAREMAN1DIR)/ibdm-ibnl-file.1\
+	$(PROTOUSRSHAREMAN1DIR)/ibdm-topo-file.1 \
+	$(PROTOUSRSHAREMAN3DIR)/ibnd_discover_fabric.3\
+	$(PROTOUSRSHAREMAN3DIR)/ibnd_find_node_dr.3 \
+	$(PROTOUSRSHAREMAN3DIR)/ibnd_find_node_guid.3\
+	$(PROTOUSRSHAREMAN3DIR)/ibnd_iter_nodes.3 \
+	$(PROTOUSRSHAREMAN3DIR)/ibnd_iter_nodes_type.3\
+	$(PROTOUSRSHAREMAN3DIR)/ibnd_show_progress.3 \
 
 CLEANUP_DIRS=\
 	$(PROTOUSRINCDIR)/ibdm\
@@ -102,14 +94,3 @@
 	$(RM) $(CLEANUP_FILES);\
 	$(RM) -r $(CLEANUP_DIRS)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
--- a/components/open-fabrics/infiniband-diags/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/infiniband-diags/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,31 +18,26 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64_and_32
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		infiniband-diags
 COMPONENT_VERSION=	1.5.8
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:0baf6694d54602a66dfc2b82a765c933b24534fd8e2bda7e9b89abf503b29c02
 COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/management/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/ofuv_tools
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+INSTALL_TARGET=
+include ../ofed-component.mk
 
-MAN8FILES = set_nodedesc.sh.8
+CFLAGS += -I$(PROTOUSRINCDIR)/infiniband
 
-CFLAGS += -I$(PROTO_DIR)/usr/include/infiniband
-LIBS +=	-lsocket -lnsl -lopensm -losmvendor -losmcomp -libumad -libmad -libverbs -ldevinfo
+LIBS +=	-lopensm -losmvendor -losmcomp -libumad -libmad -libverbs -ldevinfo
 
 COMPONENT_PREP_ACTION = \
         cp solaris_set_nodedesc.c $(@D)/src
@@ -51,8 +46,6 @@
 
 CONFIGURE_ENV +=	PERL=$(PERL.5.12)
 
-CONFIGURE_OPTIONS +=	--sbindir=$(USRSBINDIR)
-
 # it apears that configure is broken
 COMPONENT_BUILD_ARGS  +=	LIBS="$(LIBS)"
 
@@ -62,8 +55,6 @@
 COMPONENT_POST_CONFIGURE_ACTION=\
 	$(SYMLINK) ../../../$(COMPONENT_SRC)/scripts/IBswcountlimits.pm $(@D)/scripts
 
-PROTOMAN = $(PROTO_DIR)/$(CONFIGURE_MANDIR)
-
 CLEANUP_FILES =\
 	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/libibnetdisc.la\
 	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/libibnetdisc.so \
@@ -72,24 +63,17 @@
 	$(PROTOUSRBINDIR)/dump_mfts.sh\
 	$(PROTOUSRBINDIR)/ibidsverify.pl \
 	$(PROTOUSRBINDIR)/ibfindnodesusing.pl\
-	$(PROTOMAN)/man8/vendstat.8 \
-	$(PROTOMAN)/man8/dump_lfts.8 \
-	$(PROTOMAN)/man8/dump_mfts.8 \
-	$(PROTOMAN)/man8/ibidsverify.8 \
-	$(PROTOMAN)/man8/ibfindnodesusing.8 \
+	$(PROTOUSRSHAREMAN8DIR)/vendstat.8 \
+	$(PROTOUSRSHAREMAN8DIR)/dump_lfts.8 \
+	$(PROTOUSRSHAREMAN8DIR)/dump_mfts.8 \
+	$(PROTOUSRSHAREMAN8DIR)/ibidsverify.8 \
+	$(PROTOUSRSHAREMAN8DIR)/ibfindnodesusing.8 \
 	$(PROTOUSRINCDIR)/infiniband/ibnetdisc.h\
 
 COMPONENT_POST_INSTALL_ACTION =\
 	$(RM) $(CLEANUP_FILES);\
-	$(INSTALL) -m 644 manpages/set_nodedesc.sh.8 $(PROTOMAN)/man8
+	$(INSTALL) -m 644 manpages/set_nodedesc.sh.8 $(PROTOUSRSHAREMAN8DIR)
 
 # common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
 install:	$(INSTALL_32_and_64) #$(PROTOMAN8FILES)
 
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
--- a/components/open-fabrics/libibmad/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/libibmad/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,41 +18,25 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64_and_32
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		libibmad
 COMPONENT_VERSION=	1.3.7
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:825a1ff5c2df0a6a158e0058560772998d39ae633a838c19b58a99650dc199b0
 COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/management/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/ofuv_lib
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+include ../ofed-component.mk
 
-LIBS +=	-lsocket -lnsl -libumad
+LIBS +=	-libumad
 
 COMPONENT_POST_INSTALL_ACTION =\
 	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/$(COMPONENT_NAME).la;\
 	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/$(COMPONENT_NAME).la;\
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
--- a/components/open-fabrics/libibumad/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/libibumad/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,77 +18,60 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64_and_32
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		libibumad
 COMPONENT_VERSION=	1.3.7
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:4999cb9ff5c7243027d8a154d6b27d1efffaa4359b84447731c5ef545fb72229
 COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/management/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/ofuv_lib
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+include ../ofed-component.mk
 
-LIBS +=	-lsocket -lnsl -libverbs
+LIBS +=	-libverbs
 
-CLEANUP_FILES = $(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_free.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_done.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_send.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_recv.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_init.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_dump.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_poll.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_size.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_debug.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_alloc.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_get_ca.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_get_fd.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_status.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_get_mad.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_set_grh.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_set_addr.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_get_pkey.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_get_port.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_set_pkey.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_register.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_addr_dump.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_open_port.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_release_ca.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_close_port.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_unregister.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_set_grh_net.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_get_mad_addr.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_set_addr_net.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_release_port.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_register_oui.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_get_cas_names.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_get_issm_path.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/umad_get_ca_portguids.3
+CLEANUP_FILES = $(PROTOUSRSHAREMAN3DIR)/umad_free.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_done.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_send.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_recv.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_init.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_dump.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_poll.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_size.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_debug.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_alloc.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_get_ca.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_get_fd.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_status.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_get_mad.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_set_grh.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_set_addr.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_get_pkey.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_get_port.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_set_pkey.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_register.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_addr_dump.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_open_port.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_release_ca.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_close_port.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_unregister.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_set_grh_net.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_get_mad_addr.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_set_addr_net.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_release_port.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_register_oui.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_get_cas_names.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_get_issm_path.3 \
+	$(PROTOUSRSHAREMAN3DIR)/umad_get_ca_portguids.3
 
 COMPONENT_POST_INSTALL_ACTION = \
 	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/$(COMPONENT_NAME).la;\
 	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/$(COMPONENT_NAME).la;\
 	$(RM) $(CLEANUP_FILES)
 
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
--- a/components/open-fabrics/libibverbs/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/libibverbs/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,26 +18,22 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64_and_32
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		libibverbs
 COMPONENT_VERSION=	1.1.4
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC)-1.22.g7257cd3.tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:1e04aa9d518e3dc372fdda6bd25bf072caae4c85c38d0ae095a614104aa583d4
-COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/libibverbs/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/ofuv_lib
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+INSTALL_TARGET=
+include ../ofed-component.mk
 
 MAN3FILES =	ibv_alloc_shpd.3 \
 		ibv_reg_mr_relaxed.3 \
@@ -51,9 +47,7 @@
 CPPFLAGS +=	-I$(PWD)/../libmlx4/libmlx4-1.0.1/src
 CPPFLAGS +=	-I$(PWD)/../librdmacm/librdmacm-1.0.14.1/include
 
-LIBS +=	-lsocket -lnsl -lkstat
-
-CONFIGURE_OPTIONS +=	--bindir=$(USRBINDIR)
+LIBS +=	-lkstat
 
 # --disable-libcheck is not a supported option for this component
 DISABLE_LIBCHECK=
@@ -66,23 +60,15 @@
 
 COMPONENT_POST_INSTALL_ACTION = \
 	$(RM) $(PROTO_DIR)/$(CONFIGURE_BINDIR.$(BITS))/ibv_uc_pingpong; \
-	$(RM) $(PROTO_DIR)/$(CONFIGURE_MANDIR)/man1/ibv_uc_pingpong.1 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/ibv_reg_xrc_rcv_qp.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/ibv_create_xrc_srq.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/ibv_open_xrc_domain.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/ibv_close_xrc_domain.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/ibv_unreg_xrc_rcv_qp.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/ibv_query_xrc_rcv_qp.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/ibv_create_xrc_rcv_qp.3 \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man3/ibv_modify_xrc_rcv_qp.3
-	
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
+	$(RM) $(PROTOUSRSHAREMAN1DIR)/ibv_uc_pingpong.1 \
+	$(PROTOUSRSHAREMAN3DIR)/ibv_reg_xrc_rcv_qp.3 \
+	$(PROTOUSRSHAREMAN3DIR)/ibv_create_xrc_srq.3 \
+	$(PROTOUSRSHAREMAN3DIR)/ibv_open_xrc_domain.3 \
+	$(PROTOUSRSHAREMAN3DIR)/ibv_close_xrc_domain.3 \
+	$(PROTOUSRSHAREMAN3DIR)/ibv_unreg_xrc_rcv_qp.3 \
+	$(PROTOUSRSHAREMAN3DIR)/ibv_query_xrc_rcv_qp.3 \
+	$(PROTOUSRSHAREMAN3DIR)/ibv_create_xrc_rcv_qp.3 \
+	$(PROTOUSRSHAREMAN3DIR)/ibv_modify_xrc_rcv_qp.3
 
 install:	$(INSTALL_32_and_64) $(PROTOMAN3FILES)
 
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
--- a/components/open-fabrics/libmlx4/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/libmlx4/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,37 +18,28 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64_and_32
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		libmlx4
 COMPONENT_VERSION=	1.0.1
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC)-1.18.gb810a27.tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:ac3aa335d5749a8edc471630b1f5049122c8b7b66bab88c299e255122028e19c
-COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/libmlx4/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/ofuv_lib
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+include ../ofed-component.mk
 
 # --disable-libcheck is not a supported option for this component
 DISABLE_LIBCHECK=
 
-LIBS +=	-libverbs
+LIBS=	-libverbs
 LDFLAGS +=	-L$(PROTO_DIR)/$(CONFIGURE_LIBDIR.$(BITS))
 
-CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
-
-CONFIGURE_OPTIONS +=	LDFLAGS="$(LDFLAGS)"
-
 # requires an older automake to reconfigure
 COMPONENT_PREP_ACTION += (if [ x$(MACH) = "xi386" ]; then \
 		cp mlx4.driver.i386 $(@D)/mlx4.driver; \
@@ -65,14 +56,3 @@
 	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/$(COMPONENT_NAME).la;\
 	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/$(COMPONENT_NAME).la;\
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
--- a/components/open-fabrics/librdmacm/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/librdmacm/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,59 +18,39 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64_and_32
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		librdmacm
 COMPONENT_VERSION=	1.0.14.1
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:b74d367415b4f294f3821955428f3e362b91f779042c88970f99941216c13a7c
 COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/rdmacm/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/ofuv_lib
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+include ../ofed-component.mk
 
-LIBS += -libverbs -lsocket -lnsl
+LIBS += -libverbs
 
 CLEANUP_FILES =\
 	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man1/rdma_server.1\
 	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man1/rdma_client.1\
 	$(PROTOUSRBINDIR)/rdma_server\
 	$(PROTOUSRBINDIR)/rdma_client\
-	$(PROTOUSRBINDIR)/$(MACH64)/rdma_server\
-	$(PROTOUSRBINDIR)/$(MACH64)/rdma_client\
+	$(PROTOUSRBINDIR)/$(MACH32)/rdma_server\
+	$(PROTOUSRBINDIR)/$(MACH32)/rdma_client\
 	$(PROTOUSRINCDIR)/infiniband/ib.h\
 	$(PROTOUSRINCDIR)/rdma/rdma_cma_abi.h\
-	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/$(COMPONENT_NAME).la\
-	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/$(COMPONENT_NAME).la
+	$(PROTOUSRLIBDIR)/$(COMPONENT_NAME).la\
+	$(PROTOUSRLIBDIR64)/$(COMPONENT_NAME).la
 	
 COMPONENT_PREP_ACTION = \
 	$(TOUCH) $(COMPONENT_SRC)/Makefile.in
 
-CONFIGURE_OPTIONS +=	--bindir=$(USRBINDIR)
-
 COMPONENT_POST_INSTALL_ACTION = \
 	$(RM) $(CLEANUP_FILES);
 
-#COMPONENT_PRE_CONFIGURE_ACTION
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
--- a/components/open-fabrics/libsdp/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/libsdp/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,26 +18,21 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64_and_32
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		libsdp
 COMPONENT_VERSION=	1.1.108
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC)-0.15.gd7fdb72.tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:b72d4d84c7a02207c261082d1837757f8c131942193ceaf017daf684d61e8be1
-COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/libsdp/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/ofuv_lib
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+include ../ofed-component.mk
 
 MAN3FILES = libsdp.3lib
 MAN5FILES = libsdp.conf.5
@@ -46,10 +41,8 @@
 
 CFLAGS += -D_POSIX_PTHREAD_SEMANTICS
 
-LIBS += -lsocket -lnsl
-
-CONFIGURE_OPTIONS += --sysconfdir=/etc
-CONFIGURE_OPTIONS += --libdir=/usr/lib/secure/$(SUFFIX.$(BITS))
+CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)
+CONFIGURE_OPTIONS += --libdir=$(USRLIBDIR)/secure/$(SUFFIX.$(BITS))
 
 CLEANUP_DIRS =	$(PROTOUSRBINDIR)/linux
 CLEANUP_FILES =\
@@ -64,13 +57,3 @@
 	$(RM) $(CLEANUP_FILES);\
 	$(RM) $(CLEANUP_DIRS)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
--- a/components/open-fabrics/libsif/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/libsif/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,9 +18,13 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-COMPILER = gcc
+BUILD_ARCH= sparc
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libsif
@@ -33,9 +37,7 @@
 COMPONENT_ARCHIVE_URL= http://$(COMPONENT_SERVER)/otn-pub/oss/networking/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/ofuv_psif
 
-include $(WS_TOP)/make-rules/prep.mk
-include $(WS_TOP)/make-rules/configure.mk
-include ../ofed.mk
+include ../ofed-component.mk
 
 REMOVE_OLD_SRC= sif.h sif_user.h sif_int_user.h os_header.h psif_api.h psif_endian.h psif_hw_print.h psif_hw_data* psif_hw_setget* psif_hw_macro* kernel_types.h
 # --disable-libcheck is not a supported option for this component
@@ -44,9 +46,7 @@
 LIBS +=	-libverbs
 LDFLAGS +=	-L$(PROTO_DIR)/$(CONFIGURE_LIBDIR.$(BITS))
 
-CONFIGURE_ENV += CPPFLAGS=" -DSOLARIS $(CPPFLAGS) -I../../include/sif/ -I../../include/psifapi/ -I../../$(COMPONENT_SRC)/src/ "
-
-CONFIGURE_OPTIONS +=	LDFLAGS="$(LDFLAGS)"
+CPPFLAGS += -DSOLARIS -I../../include/sif/ -I../../include/psifapi/ -I../../$(COMPONENT_SRC)/src/
 
 COMPONENT_PREP_ACTION += cd $(COMPONENT_SRC)/src/ ; rm $(REMOVE_OLD_SRC) ; cd - ; \
                 (cd $(@D); \
@@ -58,30 +58,4 @@
 
 COMPONENT_POST_INSTALL_ACTION =\
 	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/$(COMPONENT_NAME).la;\
-	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/$(COMPONENT_NAME).la;\
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build_sparc:	$(BUILD_64)
-
-build_i386:
-		@echo "Not available."
-
-build:		build_$(MACH)
-
-install_sparc:	$(INSTALL_64)
-
-install_i386:
-		@echo "Not available."
-
-install:	install_$(MACH)
-
-# we're sparc-only
-ifeq ($(MACH), i386)
-PUBLISH_STAMP=
-endif
-
-test:		$(NO_TESTS)
-
-system-test:	$(NO_TESTS)
+	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/$(COMPONENT_NAME).la;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/open-fabrics/ofed-component-macros.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -0,0 +1,27 @@
+#
+# 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.
+#
+
+# OFED only builds with GCC
+COMPILER= gcc
+
+include ../../../make-rules/shared-macros.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/open-fabrics/ofed-component.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -0,0 +1,50 @@
+#
+# 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 standard, default options and base requirements for
+# openfabrics userland components.
+#
+COMPONENT_PROJECT_URL ?=	http://www.openfabrics.org/
+COMPONENT_ARCHIVE_URL ?=	http://www.openfabrics.org/downloads/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
+
+# component default overrides
+TEST_TARGET=
+SYSTEM_TEST_TARGET=
+include $(WS_MAKE_RULES)/common.mk
+include ../ofed.mk
+
+# None of the components have yet been tested with ASLR.
+ASLR_MODE= $(ASLR_DISABLE)
+
+# Almost every component requires these before Solaris 12.  Those that do not
+# can simply override.
+ifeq ($(OS_VERSION),5.11)
+LIBS +=	-lsocket -lnsl
+endif
+
+# common targets
+test:		$(NO_TESTS)
+
+system-test:    $(NO_TESTS)
+
--- a/components/open-fabrics/ofed.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/ofed.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 # Since we are building these as a set and not packaging them individually at
@@ -26,9 +26,10 @@
 # so we override PROTO_DIR
 PROTO_DIR = $(WS_COMPONENTS)/open-fabrics/prototype/$(MACH)
 
-PATH=$(GCC_ROOT)/bin:/usr/bin:/usr/gnu/bin
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-PATH=$(PARFAIT_TOOLS):$(GCC_ROOT)/bin:/usr/bin
+PATH=$(PARFAIT_TOOLS):$(GCC_ROOT)/bin:$(USRBINDIR)
+else
+PATH=$(GCC_ROOT)/bin:$(USRBINDIR):$(GNUBIN)
 endif
 
 
@@ -39,7 +40,7 @@
 # and we still need headers and to link with the components that we are
 # building, we need to point the compiler and linker at a common proto area
 # for OFED component headers and libraries.
-SHARED_INCLUDES += -I$(PROTO_DIR)/usr/include
+SHARED_INCLUDES += -I$(PROTOUSRINCDIR)
 
 # We need to insert the shared "proto" area include directories at the front
 # of any compile line to preempt the system headers.  It seems that the "best"
@@ -51,7 +52,6 @@
 # This is generally required, but must be overridable
 DISABLE_LIBCHECK =	--disable-libcheck
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_ENV +=	LD_OPTIONS="-R$(PROTO_DIR)/$(CONFIGURE_LIBDIR.$(BITS))"
 
 COMPONENT_INSTALL_ENV +=	LDFLAGS="-L$(PROTO_DIR)/$(CONFIGURE_LIBDIR.$(BITS))"
--- a/components/open-fabrics/open-fabrics.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/open-fabrics.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -49,8 +49,6 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 set name=variant.opensolaris.zone value=global value=nonglobal
 file path=etc/libsdp.conf mode=0644 preserve=renameold
-dir  path=usr/bin
-dir  path=usr/bin/$(MACH64)
 link path=usr/bin/$(MACH64)/ib_clock_test target=../ib_clock_test
 link path=usr/bin/$(MACH64)/ib_read_bw target=../ib_read_bw
 link path=usr/bin/$(MACH64)/ib_read_lat target=../ib_read_lat
@@ -89,7 +87,6 @@
 file path=usr/bin/rping
 file path=usr/bin/ucmatose
 file path=usr/bin/udaddy
-dir  path=usr/include
 dir  path=usr/include/infiniband
 file path=usr/include/infiniband/arch.h
 file path=usr/include/infiniband/driver.h
@@ -103,8 +100,6 @@
 dir  path=usr/include/rdma
 file path=usr/include/rdma/rdma_cma.h
 file path=usr/include/rdma/rdma_verbs.h
-dir  path=usr/lib
-dir  path=usr/lib/$(MACH64)
 dir  path=usr/lib/$(MACH64)/ibdiagnet1.5.7
 file path=usr/lib/$(MACH64)/ibdiagnet1.5.7/git_version.tcl
 file path=usr/lib/$(MACH64)/ibdiagnet1.5.7/ibdebug.tcl
@@ -175,21 +170,16 @@
 file path=usr/lib/$(MACH64)/librdmacm.so.1.0.0
 file path=usr/lib/$(MACH64)/libsif-rdmav2.so variant.arch=sparc
 link path=usr/lib/$(MACH64)/libsif.so target=libsif-rdmav2.so variant.arch=sparc
-dir  path=usr/lib/secure
-dir  path=usr/lib/secure/$(MACH64)
 link path=usr/lib/secure/$(MACH64)/libsdp.so target=libsdp.so.1.0.0
 link path=usr/lib/secure/$(MACH64)/libsdp.so.1 target=libsdp.so.1.0.0
 file path=usr/lib/secure/$(MACH64)/libsdp.so.1.0.0
 link path=usr/lib/secure/libsdp.so target=libsdp.so.1.0.0
 link path=usr/lib/secure/libsdp.so.1 target=libsdp.so.1.0.0
 file path=usr/lib/secure/libsdp.so.1.0.0
-dir  path=usr/perl5/site_perl/5.12/i86pc-solaris-64int variant.arch=i386
 file path=usr/perl5/site_perl/5.12/i86pc-solaris-64int/IBswcountlimits.pm \
     group=root mode=0444 variant.arch=i386
-dir  path=usr/perl5/site_perl/5.12/sun4-solaris-64int variant.arch=sparc
 file path=usr/perl5/site_perl/5.12/sun4-solaris-64int/IBswcountlimits.pm \
     group=root mode=0444 variant.arch=sparc
-dir  path=usr/sbin
 file path=usr/sbin/dump2psl.pl
 file path=usr/sbin/dump2slvl.pl
 file path=usr/sbin/ibaddr
@@ -239,8 +229,6 @@
 dir  path=usr/share/libibverbs.d
 file path=usr/share/libibverbs.d/mlx4.driver
 file path=usr/share/libibverbs.d/sif.driver variant.arch=sparc
-dir  path=usr/share/man
-dir  path=usr/share/man/man1
 file path=usr/share/man/man1/ib_clock_test.1
 file path=usr/share/man/man1/ib_read_bw.1
 link path=usr/share/man/man1/ib_read_lat.1 target=ib_read_bw.1
--- a/components/open-fabrics/opensm/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/opensm/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,71 +18,54 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64_and_32
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		opensm
 COMPONENT_VERSION=	3.3.9
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:b8f333815e9d145cbb29310a38d2f2e39f9727b30eb6b15cb0d81fb9db39a2e1
 COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/management/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/ofuv_lib
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+include ../ofed-component.mk
 
 CFLAGS += -std=gnu99
-LIBS +=	-libverbs -lsocket -lnsl -libumad -libmad
 
-CONFIGURE_ENV	+=	CPPFLAGS="$(CPPFLAGS)"
+LIBS +=	-libverbs -libumad -libmad
 
 CLEANUP_FILES = \
-	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/libosmcomp.la \
-	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/libosmcomp.la \
-        $(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/libosmvendor.la \
-	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/libosmvendor.la \
-        $(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/libopensm.la \
-	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/libopensm.la \
+	$(PROTOUSRLIBDIR)/libosmcomp.la \
+	$(PROTOUSRLIBDIR64)/libosmcomp.la \
+	$(PROTOUSRLIBDIR)/libosmvendor.la \
+	$(PROTOUSRLIBDIR64)/libosmvendor.la \
+	$(PROTOUSRLIBDIR)/libopensm.la \
+	$(PROTOUSRLIBDIR64)/libopensm.la \
 	$(PROTOUSRSBINDIR)/opensm \
 	$(PROTOUSRSBINDIR)/osmtest \
-        $(PROTO_DIR)/usr/etc/init.d/opensmd \
-	$(PROTO_DIR)/$(CONFIGURE_MANDIR)/man8/opensm.8 \
-        $(PROTO_DIR)/$(CONFIGURE_MANDIR)/man8/osmtest.8
+	$(PROTOETCDIR)/init.d/opensmd \
+	$(PROTOUSRSHAREMAN8DIR)/opensm.8 \
+	$(PROTOUSRSHAREMAN8DIR)/osmtest.8
 
 COMPONENT_POST_INSTALL_ACTION = \
 	$(RM) $(CLEANUP_FILES);\
-	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/$(COMPONENT_NAME).la;\
-	$(RM) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/$(COMPONENT_NAME).la;\
-	$(RM) -r $(PROTO_DIR)/usr/etc
+	$(RM) $(PROTOUSRLIBDIR)/$(COMPONENT_NAME).la;\
+	$(RM) $(PROTOUSRLIBDIR64)/$(COMPONENT_NAME).la;\
+	$(RM) -r $(PROTOETCDIR)
 
 COMPONENT_PRE_BUILD_ACTION =\
-	$(MV) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/libibverbs.la\
-	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/.libibverbs.la;\
-	$(MV) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/libibverbs.la\
-	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/.libibverbs.la
+	$(MV) $(PROTOUSRLIBDIR)/libibverbs.la\
+		$(PROTOUSRLIBDIR)/.libibverbs.la;\
+	$(MV) $(PROTOUSRLIBDIR64)/libibverbs.la\
+		$(PROTOUSRLIBDIR64)/.libibverbs.la
 
 COMPONENT_POST_BUILD_ACTION =\
-	$(MV) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/.libibverbs.la\
-	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.32)/libibverbs.la;\
-	$(MV) $(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/.libibverbs.la\
-	$(PROTO_DIR)/$(CONFIGURE_LIBDIR.64)/libibverbs.la
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
+	$(MV) $(PROTOUSRLIBDIR)/.libibverbs.la\
+		$(PROTOUSRLIBDIR)/libibverbs.la;\
+	$(MV) $(PROTOUSRLIBDIR64)/.libibverbs.la\
+		$(PROTOUSRLIBDIR64)/libibverbs.la
 
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
--- a/components/open-fabrics/perftest/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/perftest/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,26 +18,22 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		perftest
 COMPONENT_VERSION=	1.3.0
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC)-0.42.gf350d3d.tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:164d32753ab87ba3152c84f69bf16bb592d77b922e66e753bd9ad0e229675793
-COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/perftest/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/ofuv_tools
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+INSTALL_TARGET=
+include ../ofed-component.mk
 
 MAN1FILES =	ib_clock_test.1 \
 		ib_write_bw.1 \
@@ -47,18 +43,16 @@
 
 include $(WS_MAKE_RULES)/shared-targets.mk
 
-LIBS +=         -lsocket -lnsl -lkstat -lrdmacm -libverbs -libumad -libmad
+LIBS += -lkstat -lrdmacm -libverbs -libumad -libmad
 
 LDFLAGS +=	-L$(PROTO_DIR)/$(CONFIGURE_LIBDIR.$(BITS))
 CFLAGS +=	$(SHARED_INCLUDES) -fgnu89-inline
 
-CONFIGURE_OPTIONS +=	--bindir=$(USRBINDIR)
-
 COMMON_ARGS  +=	CC="$(CC)"
 COMMON_ARGS  +=	CFLAGS="$(CFLAGS)"
 COMMON_ARGS  +=	LDFLAGS="$(LDFLAGS) $(LIBS)"
 COMMON_ARGS  +=	INSTALL=$(INSTALL)
-COMMON_ARGS  +=  BINDIR=$(CONFIGURE_BINDIR)/usr/bin
+COMMON_ARGS  += BINDIR=$(CONFIGURE_BINDIR.$(BITS))
 COMPONENT_BUILD_ARGS  +=	$(COMMON_ARGS)
 COMPONENT_INSTALL_ARGS  +=	$(COMMON_ARGS)
 
@@ -74,12 +68,5 @@
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
 
 # common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
 install:	$(INSTALL_64) $(PROTOMAN1FILES)
 
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
--- a/components/open-fabrics/qperf/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/qperf/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,30 +18,23 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		qperf
 COMPONENT_VERSION=	0.4.6
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC)-0.1.gb81434e.tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:304b89d1b006c959cad3b132346a6d061526fe626953ef99c764df396e43f959
-COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/qperf/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/ofuv_tools
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+include ../ofed-component.mk
 
-LIBS +=         -lsocket -lnsl -lkstat -lrdmacm -libverbs
-
-CONFIGURE_OPTIONS +=	--bindir=$(USRBINDIR)
+LIBS += -lkstat -lrdmacm -libverbs
 
 COMPONENT_INSTALL_ENV +=	INSTALL="$(INSTALL) -m 755"
 
@@ -49,14 +42,3 @@
         (mkdir $(@D)/src ; cd $(@D)/src ; ln -s $(SOURCE_DIR)/src/help.txt ; \
          ln -s $(SOURCE_DIR)/src/mkhelp ; ln -s $(SOURCE_DIR)/src/mkman)
 
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
--- a/components/open-fabrics/rds-tools/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/open-fabrics/rds-tools/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,33 +18,25 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-# OFED only builds with GCC
-COMPILER=gcc
-
-include ../../../make-rules/shared-macros.mk
+BUILD_BITS= 64
+include ../ofed-component-macros.mk
 
 COMPONENT_NAME=		rds-tools
 COMPONENT_VERSION=	2.0.4
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:31b5924f73bed59e513470586c69ebe92eeb708fcc61a0519045fcf7954233a3
-COMPONENT_ARCHIVE_URL=	http://www.openfabrics.org/downloads/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/ofuv_tools
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include ../ofed.mk
+include ../ofed-component.mk
 
-CPPFLAGS +=	-I$(PROTO_DIR)/usr/include
+CPPFLAGS +=	-I$(PROTOUSRINCDIR)
 CFLAGS +=	-O2 -Wall -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ $(CPPFLAGS)
 
-LIBS +=	-lsocket -lnsl -llgrp -lkstat -libverbs
-
-CONFIGURE_OPTIONS +=	--bindir=$(USRBINDIR)
+LIBS +=	-llgrp -lkstat -libverbs
 
 COMPONENT_PREP_ACTION = \
 	cp rds-vendor.c $(@D)/
@@ -64,14 +56,3 @@
 
 COMPONENT_PRE_CONFIGURE_ACTION =	($(CLONEY) $(SOURCE_DIR) $(@D))
 
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
--- a/components/openexr/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openexr/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         openexr
 COMPONENT_VERSION=      1.6.1
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  http://www.openexr.com/
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:c616906ab958de9c37bb86ca7547cfedbdfbad5e1ca2a4ab98983c9afa6a5950
 COMPONENT_ARCHIVE_URL=  http://download.savannah.nongnu.org/releases/openexr/$(COMPONENT_ARCHIVE)
@@ -34,9 +35,7 @@
 
 TPNO=			10771
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 
@@ -60,8 +59,6 @@
      '-e "/-m64/d"' \
      '-e "/DEPDIR=/d"'
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)"
 CONFIGURE_ENV += LIBS="$(LIBS)"
 
 CONFIGURE_OPTIONS  +=           --disable-static
@@ -69,8 +66,8 @@
 CONFIGURE_OPTIONS  +=           --enable-posix-sem
 CONFIGURE_OPTIONS  +=           --with-pic
 
-PROTOPKGCONFIGDIR.32 = $(PROTOUSRLIBDIR)/pkgconfig
-PROTOPKGCONFIGDIR.64 = $(PROTOUSRLIBDIR64)/pkgconfig
+PROTOPKGCONFIGDIR.32 = $(PROTOPKGCONFIGDIR)
+PROTOPKGCONFIGDIR.64 = $(PROTOPKGCONFIGDIR64)
 
 COMPONENT_POST_INSTALL_ACTION = \
 	( cd $(PROTOPKGCONFIGDIR.$(BITS)) ; \
@@ -78,19 +75,7 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/ilmbase
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
-
--- a/components/openexr/openexr.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openexr/openexr.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -39,12 +39,12 @@
 set name=org.opensolaris.arc-caseid value=LSARC/2008/209
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 #
-file usr/bin/$(MACH64)/exrenvmap path=usr/bin/exrenvmap
+file path=usr/bin/exrenvmap
 #
-file usr/bin/$(MACH64)/exrheader path=usr/bin/exrheader
-file usr/bin/$(MACH64)/exrmakepreview path=usr/bin/exrmakepreview
-file usr/bin/$(MACH64)/exrmaketiled path=usr/bin/exrmaketiled
-file usr/bin/$(MACH64)/exrstdattr path=usr/bin/exrstdattr
+file path=usr/bin/exrheader
+file path=usr/bin/exrmakepreview
+file path=usr/bin/exrmaketiled
+file path=usr/bin/exrstdattr
 file path=usr/include/OpenEXR/ImfArray.h
 file path=usr/include/OpenEXR/ImfAttribute.h
 file path=usr/include/OpenEXR/ImfB44Compressor.h
--- a/components/openjade/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openjade/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,20 +20,17 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		openjade
 COMPONENT_VERSION=	1.3.2
 COMPONENT_PROJECT_URL=	http://openjade.sourceforge.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:1d2d7996cc94f9b87d0c51cf0e028070ac177c4123ecbfd7ac1cb8d0b7d322d1
 COMPONENT_ARCHIVE_URL=	http://prdownloads.sourceforge.net/openjade/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/openjade
 
 TPNO=			9620
 
@@ -45,26 +42,26 @@
 PKG_PROTO_DIRS += $(COMPONENT_SRC)/generic
 PKG_PROTO_DIRS += $(COMPONENT_SRC)/dsssl
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
+
+COMPONENT_PRE_CONFIGURE_ACTION += ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
+# Prevent libtool from embedding runpath (via -R).
+COMPONENT_POST_CONFIGURE_ACTION += \
+	$(GSED) -i -e 's/hardcode_into_libs=yes/hardcode_into_libs=no/' $(@D)/libtool; \
+	$(GSED) -i -e 's/hardcode_libdir_flag_spec=.*/hardcode_libdir_flag_spec=""/' $(@D)/libtool;
+
 CONFIGURE_SCRIPT = 	$(@D)/configure
 
-CXX +=			$(studio_NORUNPATH)
+# Expects GNU install.
+CONFIGURE_ENV += INSTALL="$(INSTALL)"
 
-CONFIGURE_OPTIONS +=    --enable-spincludedir=/usr/include/OpenSP
-CONFIGURE_OPTIONS.32 += --enable-splibdir=/usr/lib
-CONFIGURE_OPTIONS.64 +=	--enable-splibdir=/usr/lib/$(MACH64)
+CONFIGURE_OPTIONS +=    --enable-spincludedir=$(USRINCDIR)/OpenSP
+CONFIGURE_OPTIONS +=	--enable-splibdir=$(USRLIB.$(BITS))
 CONFIGURE_OPTIONS +=    --enable-mif
 CONFIGURE_OPTIONS +=	--disable-http
-CONFIGURE_OPTIONS += \
---enable-default-catalog="CATALOG:/etc/sgml/catalog:usr/share/sgml/CATALOG"   
-CONFIGURE_OPTIONS +=	--datadir=/usr/share/sgml/$(COMPONENT_NAME)
-CONFIGURE_OPTIONS +=	CXX="$(CXX)"
-CONFIGURE_OPTIONS +=	CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS +=	LDFLAGS="$(LDFLAGS)"
+CONFIGURE_OPTIONS +=	--enable-default-catalog="CATALOG:/etc/sgml/catalog:/usr/share/sgml/CATALOG"
+CONFIGURE_OPTIONS +=	--datadir=$(USRSHAREDIR)/sgml/$(COMPONENT_NAME)
 
 COMPONENT_TEST_DIR =	$(BUILD_DIR)/$(MACH$(BITS))/testsuite
 COMPONENT_TEST_ARGS =   -k -i
@@ -72,21 +69,12 @@
 
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 
-COMPONENT_INSTALL_TARGETS = install install-man
-
-ASLR_MODE =	$(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
+COMPONENT_INSTALL_TARGETS += install-man
 
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+# Workaround broken install targets.
+COMPONENT_PRE_INSTALL_ACTION.32 += \
+	$(MKDIR) $(PROTOUSRBINDIR)/$(MACH32);
 
 REQUIRED_PACKAGES += developer/documentation-tool/opensp
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/openjade/openjade.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openjade/openjade.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -37,7 +37,7 @@
 set name=org.opensolaris.arc-caseid value=LSARC/2009/475
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 link path=usr/bin/jade target=openjade
-file usr/bin/$(MACH64)/openjade path=usr/bin/openjade
+file path=usr/bin/openjade
 file DssslApp.h path=usr/include/openjade/DssslApp.h
 file EventGenerator.h path=usr/include/openjade/EventGenerator.h
 file FOTBuilder.h path=usr/include/openjade/FOTBuilder.h
--- a/components/openldap/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openldap/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,13 +22,12 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		openldap
 COMPONENT_VERSION=	2.4.30
 COMPONENT_PROJECT_URL=	http://www.openldap.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:fc013e528616f8578d9f221409c48af9b8937a62005e0bec88f6f1c4c8ff3d81
@@ -46,15 +45,12 @@
 COMPONENT_ARCHIVE_URL_1= ftp://ftp.eenet.ee/pub/cpan/authors/id/I/IA/IANC/$(COMPONENT_ARCHIVE_1)
 
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-
 # This depends on libsasl which cannot be installed on S11.
 ifeq ($(BUILD_TYPE), evaluation)
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
         ($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -68,15 +64,13 @@
 # we need to enable large file support and build PIC for our shared libraries
 CFLAGS += $(CPP_LARGEFILES) $(CC_PIC) $(studio_NORUNPATH)
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
 CONFIGURE_ENV += "ac_cv_lib_net_main=no"
 CONFIGURE_ENV += "ac_cv_lib_net_socket==no"
 CONFIGURE_ENV += "ac_cv_lib_inet_socket==no"
 
-CONFIGURE_OPTIONS += --sysconfdir=/etc
-CONFIGURE_OPTIONS.32 += --libexecdir=/usr/lib
-CONFIGURE_OPTIONS.64 += --libexecdir=/usr/lib/$(MACH64)
-CONFIGURE_OPTIONS += --localstatedir=/var/openldap
+CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)
+CONFIGURE_OPTIONS += --libexecdir=$(USRLIB.$(BITS))
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)/openldap
 CONFIGURE_OPTIONS += --includedir=$(USRINCDIR)/openldap
 CONFIGURE_OPTIONS += --docdir=$(USRSHAREDOCDIR)
 CONFIGURE_OPTIONS += --disable-static
@@ -95,27 +89,21 @@
 CONFIGURE_OPTIONS += --with-threads
 CONFIGURE_OPTIONS += --with-tls=openssl
 
-PROTOULD = $(PROTOUSRLIBDIR)
-COMPONENT_TEST_ENV += LD_LIBRARY_PATH="$(PROTOULD):$(PROTOULD)/$(MACH64):"
+COMPONENT_TEST_ENV += LD_LIBRARY_PATH="$(PROTOUSRLIBDIR):$(PROTOUSRLIBDIR64):"
 COMPONENT_TEST_ARGS += -e
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
 #
 # OpenLDAP must be built with cyrus-sasl out of the gate instead of the
 # installed copy.
 #
 CYRUS_SASL_ROOT = $(WS_COMPONENTS)/cyrus-sasl/build/prototype/$(MACH)
-LDFLAGS.32 +="-L$(CYRUS_SASL_ROOT)/usr/lib"
-LDFLAGS.64 +="-L$(CYRUS_SASL_ROOT)/usr/lib/$(MACH64)"
+LDFLAGS.32 +="-L$(CYRUS_SASL_ROOT)$(USRLIBDIR)"
+LDFLAGS.64 +="-L$(CYRUS_SASL_ROOT)$(USRLIBDIR64)"
 LDFLAGS +=$(LDFLAGS.$(BITS))
-CPPFLAGS +="-I$(CYRUS_SASL_ROOT)/usr/include"
-CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)"
+CPPFLAGS +="-I$(CYRUS_SASL_ROOT)$(USRINCDIR)"
 # make sure that we don't add the cyrus-sasl proto area to the RUNPATH
-LD_UNSET.32="-R$(CYRUS_SASL_ROOT)/usr/lib"
-LD_UNSET.64="-R$(CYRUS_SASL_ROOT)/usr/lib/$(MACH64)"
+LD_UNSET.32="-R$(CYRUS_SASL_ROOT)$(USRLIBDIR)"
+LD_UNSET.64="-R$(CYRUS_SASL_ROOT)$(USRLIBDIR.$(BITS))"
 LD_UNSET += $(LD_UNSET.$(BITS))
 COMPONENT_BUILD_ENV += LD_UNSET="$(LD_UNSET)"
 COMPONENT_INSTALL_ENV += LD_UNSET="$(LD_UNSET)"
@@ -127,28 +115,15 @@
 $(CONFIGURE_32):       ../cyrus-sasl/build/$(MACH32)/.installed
 $(CONFIGURE_64):       ../cyrus-sasl/build/$(MACH64)/.installed
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:	$(BUILD_32_and_64)
+COMPONENT_POST_BUILD_ACTION += \
 	(cd $(BUILD_DIR_32)/doc/guide/admin; \
 	$(PERL) -I$(SDFBLIB)/lib $(SDFBLIB)/script/sdf -2html guide.sdf; \
 	$(PERL) -I$(SDFBLIB)/lib $(SDFBLIB)/script/sdf -2html index.sdf)
 
-install:	$(INSTALL_32_and_64)
-
-# build does this always
-test:	$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-
 REQUIRED_PACKAGES += database/berkeleydb-5
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/libsasl
 REQUIRED_PACKAGES += system/library/security/libsasl2
 REQUIRED_PACKAGES += system/network
--- a/components/openldap/openldap.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openldap/openldap.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -85,22 +85,22 @@
 # The bypasses (and manual dependency on libsasl at the end of the file)
 # are required for building with the cyrus-sasl proto area because of
 # libsasl version depency checks in openldap code.
-file usr/bin/$(MACH64)/ldapcompare path=usr/bin/openldapcompare \
+file usr/bin/ldapcompare path=usr/bin/openldapcompare \
     pkg.depend.bypass-generate=libsasl2.so.3
-file usr/bin/$(MACH64)/ldapdelete path=usr/bin/openldapdelete \
+file usr/bin/ldapdelete path=usr/bin/openldapdelete \
     pkg.depend.bypass-generate=libsasl2.so.3
-file usr/bin/$(MACH64)/ldapexop path=usr/bin/openldapexop \
+file usr/bin/ldapexop path=usr/bin/openldapexop \
     pkg.depend.bypass-generate=libsasl2.so.3
-file usr/bin/$(MACH64)/ldapmodify path=usr/bin/openldapmodify \
+file usr/bin/ldapmodify path=usr/bin/openldapmodify \
     pkg.depend.bypass-generate=libsasl2.so.3
-file usr/bin/$(MACH64)/ldapmodrdn path=usr/bin/openldapmodrdn \
+file usr/bin/ldapmodrdn path=usr/bin/openldapmodrdn \
     pkg.depend.bypass-generate=libsasl2.so.3
-file usr/bin/$(MACH64)/ldappasswd path=usr/bin/openldappasswd \
+file usr/bin/ldappasswd path=usr/bin/openldappasswd \
     pkg.depend.bypass-generate=libsasl2.so.3
-file usr/bin/$(MACH64)/ldapsearch path=usr/bin/openldapsearch \
+file usr/bin/ldapsearch path=usr/bin/openldapsearch \
     pkg.depend.bypass-generate=libsasl2.so.3
-file usr/bin/$(MACH64)/ldapurl path=usr/bin/openldapurl
-file usr/bin/$(MACH64)/ldapwhoami path=usr/bin/openldapwhoami \
+file usr/bin/ldapurl path=usr/bin/openldapurl
+file usr/bin/ldapwhoami path=usr/bin/openldapwhoami \
     pkg.depend.bypass-generate=libsasl2.so.3
 file path=usr/include/openldap/lber.h
 file path=usr/include/openldap/lber_types.h
--- a/components/openscap/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openscap/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -21,20 +21,16 @@
 #
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER =	gcc
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		openscap
 COMPONENT_VERSION=	1.2.6
 COMPONENT_PROJECT_URL=  http://www.open-scap.org
 COMPONENT_DOWNLOAD_URL= https://fedorahosted.org/releases/o/p/openscap
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= sha256:95f2345e041e9ba838ad8065b68ce0ec4b0971d7afc72d601489236bbfc0c652
 COMPONENT_ARCHIVE_URL=  $(COMPONENT_DOWNLOAD_URL)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=        utility/openscap
 
 TPNO =			25520
 
@@ -46,12 +42,13 @@
 
 PERL_VERSIONS = $(PERL_VERSION)
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
-CPPFLAGS +=	-I/usr/include/openldap
+CPPFLAGS +=	-I$(USRINCDIR)/openldap
+
+# XXX This shouldn't be necessary, but is; investigate why.
+CFLAGS += -D_FILE_OFFSET_BITS=64
 
 # Perl related patch needs configure script recreation.
 COMPONENT_PREP_ACTION +=(cd $(@D); autoreconf);
@@ -62,18 +59,16 @@
 
 COMPONENT_POST_INSTALL_ACTION =	\
 	$(RM) $(PROTO_DIR)/usr/share/openscap/cpe/* && \
-	$(CP) files/cpe/* $(PROTO_DIR)/usr/share/openscap/cpe
+	$(CP) files/cpe/* $(PROTO_DIR)/usr/share/openscap/cpe;
 
 
 # Needed to make "gmake test" work.
 CPPFLAGS +=	-I$(SOURCE_DIR)/src/OVAL
 CPPFLAGS +=	-I$(SOURCE_DIR)/src/OVAL/probes
-CPPFLAGS +=	-I/usr/include/pcre
+CPPFLAGS +=	-I$(USRINCDIR)/pcre
 
 CONFIGURE_ENV +=        PERL="$(PERL)"
 CONFIGURE_ENV +=        PYTHON="$(PYTHON.$(BITS))"
-CONFIGURE_OPTIONS.64 +=	CFLAGS="$(CFLAGS) -D_FILE_OFFSET_BITS=64"
-CONFIGURE_OPTIONS +=	CPPFLAGS="$(CPPFLAGS)"
 CONFIGURE_OPTIONS +=	--enable-debug=no
 CONFIGURE_OPTIONS +=	--enable-sce=yes
 CONFIGURE_OPTIONS +=	--enable-perl=yes
@@ -89,19 +84,9 @@
 
 DOCS_DIR = $(PROTO_DIR)/usr/share/doc/openscap/html/
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-		$(MKDIR) $(DOCS_DIR)
-		$(CP) -r $(SOURCE_DIR)/docs/html/* $(DOCS_DIR)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+COMPONENT_POST_INSTALL_ACTION += \
+	$(MKDIR) $(DOCS_DIR); \
+	$(CP) -r $(SOURCE_DIR)/docs/html/* $(DOCS_DIR);
 
 REQUIRED_PACKAGES += compress/bzip2
 REQUIRED_PACKAGES += developer/swig
@@ -114,7 +99,6 @@
 REQUIRED_PACKAGES += $(PERL_PKG)
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += security/compliance/openscap
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc-3-runtime
 REQUIRED_PACKAGES += system/library/gcc-45-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
--- a/components/opensp/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/opensp/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,24 +22,20 @@
 #
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		opensp
 COMPONENT_VERSION=	1.5.1
 COMPONENT_PROJECT_URL=	http://openjade.sourceforge.net/
 COMPONENT_SRC=		OpenSP-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:3f0649840dc3d6ec432e3c8d933b178208f3feccb6db111d22c8995ad07c736b
 COMPONENT_ARCHIVE_URL=	http://prdownloads.sourceforge.net/openjade/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/opensp
 
 TPNO=			9621
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fiv)
 
@@ -52,9 +48,6 @@
 CONFIGURE_OPTIONS +=	--disable-http
 CONFIGURE_OPTIONS +=	--disable-nls
 CONFIGURE_OPTIONS +=	--enable-default-catalog="CATALOG:/etc/sgml/catalog:/usr/share/sgml/CATALOG"
-CONFIGURE_OPTIONS +=    CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	CXX="$(CXX)"
-CONFIGURE_OPTIONS +=	CXXFLAGS="$(CXXFLAGS)"
 ifeq ($(OS_VERSION),5.11)
 EXTRA_LIBRARIES =     -lsocket -lnsl
 endif
@@ -72,17 +65,4 @@
         '-e "/FAIL:/p" ' \
         '-e "/ERROR:/p" '
 
-ASLR_MODE =	$(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
--- a/components/openssh/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openssh/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,14 +18,17 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		openssh
 COMPONENT_VERSION=	7.1p2
 HUMAN_VERSION=		$(COMPONENT_VERSION)
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 
 # Version for IPS.  The encoding rules are:
 #   OpenSSH <x>.<y>p<n>     => IPS <x>.<y>.0.<n>
@@ -33,16 +36,14 @@
 IPS_COMPONENT_VERSION=	7.1.0.2
 
 COMPONENT_PROJECT_URL=	http://www.openssh.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	sha256:dd75f024dcf21e06a0d6421d582690bf987a1f6323e32ad6619392f3bfde6bbd
 COMPONENT_ARCHIVE_URL=	http://mirror.team-cymru.org/pub/OpenBSD/OpenSSH/portable/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=utility/openssh
 
 TPNO_OPENSSH=		26419
 TPNO_GSSKEX=		20377
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
+# Because of set up requirements, test suite is in stc gate.
+TEST_TARGET= $(SKIP_TEST)
 
 # 11.3 has conflicts with ON's SunSSH package, which had not yet added
 # mediated links, thus cannot be updated to.
@@ -52,12 +53,7 @@
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
-
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-COMPILER=	gcc
+include $(WS_MAKE_RULES)/common.mk
 
 CFLAGS += -DSET_USE_PAM
 CFLAGS += -DDEPRECATE_SUNSSH_OPT
@@ -72,21 +68,17 @@
 CFLAGS += -DWITHOUT_CAST128
 CFLAGS += -DENABLE_OPENSSL_FIPS
 
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)" 
-
 # We need to disable lazyloading of dynamic dependent libraries. During the
 # pre-authentication phase, sshd will chroot to /var/empty which doesn't
 # contain any files. If we use lazyloading, sshd will fail to find any
 # libraries that it needs.
-LDFLAGS += -B direct -z nolazyload
+LDFLAGS += $(LD_B_DIRECT) -z nolazyload
 
 # Enable nxheap and nxstack security extensions
 LDFLAGS += -z nxheap=enable -z nxstack=enable
 
-# Just $(BUILD_64) option was not propogating the 64 bit flags to all the
-# necessary places. Hence the -m64 option is added to LDFLAGS for
-# CONFIGURE_OPTIONS.64.
-CONFIGURE_OPTIONS.64 += LDFLAGS="$(LDFLAGS) -m64"
+# Fix 64-bit linking via compiler.
+LDFLAGS += $(CC_BITS)
 
 CONFIGURE_OPTIONS += --with-audit=solaris
 CONFIGURE_OPTIONS += --with-libedit
@@ -96,13 +88,12 @@
 CONFIGURE_OPTIONS += --with-solaris-contracts
 CONFIGURE_OPTIONS += --with-tcp-wrappers
 CONFIGURE_OPTIONS += --with-4in6
-CONFIGURE_OPTIONS += --with-xauth=/usr/bin/xauth
-CONFIGURE_OPTIONS += --enable-strip=no
+CONFIGURE_OPTIONS += --with-xauth=$(USRBINDIR)/xauth
+CONFIGURE_OPTIONS += --disable-strip
 CONFIGURE_OPTIONS += --without-rpath
-CONFIGURE_OPTIONS += --libexecdir=/usr/lib/ssh
-CONFIGURE_OPTIONS += --sbindir=/usr/lib/ssh
-CONFIGURE_OPTIONS += --sysconfdir=/etc/ssh
-CONFIGURE_OPTIONS += --bindir=/usr/bin
+CONFIGURE_OPTIONS += --libexecdir=$(USRLIBDIR)/ssh
+CONFIGURE_OPTIONS += --sbindir=$(USRLIBDIR)/ssh
+CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)/ssh
 CONFIGURE_OPTIONS += --disable-lastlog
 
 # Copy the sftp dtrace provider file and the header file to source directory
@@ -114,26 +105,11 @@
 # Copy source files that are not yet part of a patch
 COMPONENT_PREP_ACTION += ($(CP) sources/*.c $(@D)/)
 
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-# Because of certain set up requirement, the regress test suite is ported to
-# the STC gate.
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += library/libedit
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += service/security/kerberos-5
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/security/gss
 REQUIRED_PACKAGES += system/network
--- a/components/openssl/openssl-default/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openssl/openssl-default/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/openssl/openssl-fips-140/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openssl/openssl-fips-140/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/openssl/openssl-fips/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openssl/openssl-fips/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/openstack/common/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openstack/common/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -27,6 +27,7 @@
 
 COMPONENT_NAME=		openstack
 COMPONENT_VERSION=	2015.1.2
+COMPONENT_SRC=
 COMPONENT_PROJECT_URL=	http://www.openstack.org/
 COMPONENT_BUGDB=	service/nova
 IPS_COMPONENT_VERSION=	0.$(COMPONENT_VERSION)
--- a/components/openusb/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openusb/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,18 +18,18 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-COMPILER =	gcc
-
+BUILD_BITS= 64_and_32
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		openusb
 COMPONENT_VERSION=	1.0.1
 COMPONENT_SRC_NAME=	libopenusb
-COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://openusb.sourceforge.net/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:031098c376f16f6030c4dbd553266e107b39d1f7b3fc366f8f7fd412d3d7c3ad
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/openusb/files/$(COMPONENT_NAME)/libopenusb%201.0.1/$(COMPONENT_ARCHIVE)/download
@@ -37,41 +37,22 @@
 
 TPNO=			8843
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # keep traditional GNU semantics for inline functions so we don't lose
 # openusb_le{16|32}_to_cpu
-CFLAGS += -fgnu89-inline
-
-
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
+CFLAGS.gcc += -fgnu89-inline
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
         ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-PATCH_LEVEL = 1
-
 COMPONENT_POST_BUILD_ACTION = \
 	(cd $(@D)/src; $(MAKE) install-sunos-backend)
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-
-test: $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += library/glib2
 REQUIRED_PACKAGES += system/hal
 REQUIRED_PACKAGES += system/io/usb
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/libdbus
 REQUIRED_PACKAGES += system/library/libdbus-glib
--- a/components/openvswitch/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/openvswitch/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -21,30 +21,25 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 # parfait fails to compile us (22221056)
 export PARFAIT_BUILD=no
 
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		openvswitch
 COMPONENT_VERSION=	2.3.1
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:d6d96e45fd9c070cc2696a4a09b4cc4b48dd7fc367c0455725d00f7daa343bf0
 COMPONENT_PROJECT_URL=  http://openvswitch.org/
 COMPONENT_ARCHIVE_URL=  $(COMPONENT_PROJECT_URL)/releases/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	service/openvswitch
-IPS_COMPONENT_VERSION=	$(COMPONENT_VERSION) 
 
 TPNO=			21407
 
-include ../../make-rules/prep.mk
-include ../../make-rules/configure.mk
-
 # Depends on S12-only changes in ON to build.
 ifeq ($(BUILD_TYPE), evaluation)
 BUILD_64=
@@ -52,14 +47,10 @@
 PUBLISH_STAMP=
 endif
 
-include ../../make-rules/ips.mk
-include ../../make-rules/lint-libraries.mk
+include $(WS_MAKE_RULES)/common.mk
 
-PKG_PROTO_DIRS += $(COMPONENT_DIR)/files
 PKG_PROTO_DIRS += $(BUILD_DIR_64)
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-
 COMPONENT_PRE_CONFIGURE_ACTION += \
     ($(LN) -fs $(COMPONENT_DIR)/files/include/solaris $(SOURCE_DIR)/include/solaris; \
     $(LN) -fs $(COMPONENT_DIR)/files/lib/* $(SOURCE_DIR)/lib; \
@@ -67,19 +58,18 @@
 
 COMPILER =	gcc
 
-CONFIGURE_PREFIX	= /usr/lib/ovs
+USRLIBOVSDIR= $(USRLIBDIR)/ovs
+
+CONFIGURE_PREFIX	= $(USRLIBOVSDIR)
+CONFIGURE_BINDIR.64	= $(USRSBINDIR)
+CONFIGURE_SBINDIR.64	= $(USRLIBOVSDIR)
 
-CONFIGURE_OPTIONS	+= --mandir=/usr/share/man
-CONFIGURE_OPTIONS	+= --localstatedir=/var/run/ovs
-CONFIGURE_OPTIONS	+= --bindir=/usr/sbin
-CONFIGURE_OPTIONS	+= --sbindir=/usr/lib/ovs
-CONFIGURE_OPTIONS	+= --with-logdir=/var/log/ovs
-CONFIGURE_OPTIONS	+= --with-rundir=/var/run/ovs/
-CONFIGURE_OPTIONS	+= --with-dbdir=/var/lib/ovs/etc
-CONFIGURE_OPTIONS	+= --datarootdir=/usr/lib/ovs/share
-
-# Enable aslr for this component
-ASLR_MODE = $(ASLR_ENABLE)
+CONFIGURE_OPTIONS	+= --mandir=$(USRSHAREMANDIR)
+CONFIGURE_OPTIONS	+= --localstatedir=$(VARDIR)/run/ovs
+CONFIGURE_OPTIONS	+= --with-logdir=$(VARDIR)/log/ovs
+CONFIGURE_OPTIONS	+= --with-rundir=$(VARDIR)/run/ovs/
+CONFIGURE_OPTIONS	+= --with-dbdir=$(VARDIR)/lib/ovs/etc
+CONFIGURE_OPTIONS	+= --datarootdir=$(USRLIBOVSDIR)/share
 
 COMPONENT_PRE_BUILD_ACTION = \
     ($(LN) -fs $(COMPONENT_DIR)/files/include/solaris $(SOURCE_DIR)/include/solaris)
@@ -91,24 +81,10 @@
 
 COMPONENT_TEST_ENV += PATH="$(GNUBIN):$(PATH)"
 
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
-
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/management/rad
 REQUIRED_PACKAGES += system/management/rad/client/rad-c
--- a/components/p7zip/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/p7zip/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,14 +20,15 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
-PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:/usr/bin
+PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:$(USRBINDIR)
+else
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 endif
 
 COMPONENT_NAME=		p7zip
@@ -38,13 +39,12 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:49557e7ffca08100f9fc687f4dfc5aea703ca207640c76d9dee7b66f03cb4782
 COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/project/p7zip/p7zip/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/p7zip
 
 TPNO=			20368
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+INSTALL_TARGET=
+include $(WS_MAKE_RULES)/common.mk
 
 # the tests fail horribly with -Bdirect
 LD_B_DIRECT=
@@ -55,7 +55,7 @@
 
 COMPONENT_PREP_ACTION = (cd $(@D); cp ../makefile.solaris makefile.machine)
 COMPONENT_BUILD_TARGETS = all3
-COMPONENT_INSTALL_ARGS += DEST_HOME=/usr DEST_DIR=$(PROTO_DIR)
+COMPONENT_INSTALL_ARGS += DEST_HOME=$(USRDIR) DEST_DIR=$(PROTO_DIR)
 
 $(SOURCE_DIR)/DOCS/copying.txt $(SOURCE_DIR)/DOCS/unRarLicense.txt: prep
 
@@ -65,11 +65,7 @@
 $(BUILD_DIR)/copying.txt: $(SOURCE_DIR)/DOCS/copying.txt
 	$(CP) $(SOURCE_DIR)/DOCS/copying.txt $@
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # common targets
-build:		$(BUILD_64)
-
 EXTRATARGETS = \
 	$(BUILD_DIR)/copying.txt $(BUILD_DIR)/unRarLicense.txt
 
@@ -81,13 +77,6 @@
 # 7zr.1 is in DOS format for some reason, and geqn can't handle it.
 COMPONENT_POST_INSTALL_ACTION += $(GSED) -i -e 's/\r//' $(PROTO_DIR)/usr/man/man1/7zr.1
 
-# build does this always
-test:	$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/pam_pkcs11/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pam_pkcs11/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,18 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+# For this component, prefer 32-bit over 64-bit for now until sufficient
+# testing has been performed.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pam_pkcs11
 COMPONENT_VERSION=	0.6.0
 COMPONENT_PROJECT_URL=	http://www.opensc-project.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:170db26eb9610dde5d3307771ed0e0e14cc0778aaacd3b3d4e71240ccb61cec6
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)files/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
@@ -34,28 +37,26 @@
 
 TPNO=			17173
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS += --with-pcsclite=no
-CONFIGURE_OPTIONS += --with-included-gettext=yes
-CONFIGURE_OPTIONS += --localstatedir=/var
-CONFIGURE_OPTIONS += OPENSSL_LIBS="-lssl -lcrypto -lsocket -lnsl"
+# Force regeneration of ancient autoconf scripts to fix 64-bit build detection
+# and due to patches to autoconf and automake files.
+COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fiv)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
+OPENSSL_LIBS= -lssl -lcrypto
+ifeq ($(OS_VERSION),5.11)
+OPENSSL_LIBS +=	-lsocket -lnsl
+endif
 
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+CONFIGURE_BINDIR.32= $(USRLIB.32)/pam_pkcs11
+CONFIGURE_BINDIR.64= $(USRLIB.64)/pam_pkcs11
+CONFIGURE_OPTIONS += --datarootdir=$(ETCDIR)/security
+CONFIGURE_OPTIONS += --with-pcsclite=no
+CONFIGURE_OPTIONS += --localedir=$(USRSHARELOCALEDIR)
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)
+CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)
+CONFIGURE_OPTIONS += OPENSSL_LIBS="$(OPENSSL_LIBS)"
 
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += shell/bash
-REQUIRED_PACKAGES += system/library
--- a/components/pam_pkcs11/pam_pkcs11.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pam_pkcs11/pam_pkcs11.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -41,17 +41,18 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 dir  path=etc/security/pam_pkcs11/cacerts
 dir  path=etc/security/pam_pkcs11/crls
-file usr/share/pam_pkcs11/digest_mapping.example \
-    path=etc/security/pam_pkcs11/digest_mapping.example
-file usr/share/pam_pkcs11/mail_mapping.example \
-    path=etc/security/pam_pkcs11/mail_mapping.example
-file usr/bin/make_hash_link.sh path=etc/security/pam_pkcs11/make_hash_link.sh \
-    mode=0555
+# The other example files such as pam_d.login.example and
+# pam_pkcs11.conf.example, are intentionally omitted here either because the
+# examples are not applicable to Solaris or we already provide default
+# configuration.
+file path=etc/security/pam_pkcs11/digest_mapping.example
+file path=etc/security/pam_pkcs11/mail_mapping.example
+file usr/lib/pam_pkcs11/make_hash_link.sh \
+    path=etc/security/pam_pkcs11/make_hash_link.sh mode=0555
 file pam_pkcs11.conf path=etc/security/pam_pkcs11/pam_pkcs11.conf mode=0644 \
     original_name=SUNWpampkcs11:etc/security/pam_pkcs11/pam_pkcs11.conf \
     preserve=renamenew
-file usr/share/pam_pkcs11/subject_mapping.example \
-    path=etc/security/pam_pkcs11/subject_mapping.example
+file path=etc/security/pam_pkcs11/subject_mapping.example
 file usr/lib/$(MACH64)/pam_pkcs11/ldap_mapper.so \
     path=usr/lib/pam_pkcs11/$(MACH64)/ldap_mapper.so
 file usr/lib/$(MACH64)/pam_pkcs11/opensc_mapper.so \
@@ -61,11 +62,11 @@
 file path=usr/lib/pam_pkcs11/ldap_mapper.so
 file path=usr/lib/pam_pkcs11/opensc_mapper.so
 file path=usr/lib/pam_pkcs11/openssh_mapper.so
-file usr/bin/pkcs11_inspect path=usr/lib/pam_pkcs11/pkcs11_inspect mode=0555
-file usr/bin/pklogin_finder path=usr/lib/pam_pkcs11/pklogin_finder mode=0555
+file path=usr/lib/pam_pkcs11/pkcs11_inspect mode=0555
+file path=usr/lib/pam_pkcs11/pklogin_finder mode=0555
 file usr/lib/$(MACH64)/security/pam_pkcs11.so \
     path=usr/lib/security/$(MACH64)/pam_pkcs11.so
-file usr/lib/security/pam_pkcs11.so path=usr/lib/security/pam_pkcs11.so
+file path=usr/lib/security/pam_pkcs11.so
 file doc/mappers_api.html path=usr/share/doc/pam_pkcs11/mappers_api.html
 file doc/pam_pkcs11.html path=usr/share/doc/pam_pkcs11/pam_pkcs11.html
 file path=usr/share/locale/fr/LC_MESSAGES/pam_pkcs11.mo
--- a/components/pam_pkcs11/patches/pam_pkcs11.patch	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pam_pkcs11/patches/pam_pkcs11.patch	Wed Mar 30 13:33:31 2016 -0700
@@ -806,28 +806,44 @@
   {
     return h->slots[h->current_slot].label;
   }
-*** pam_pkcs11-0.6.0-ORIG/src/pam_pkcs11/Makefile.in	Wed Jun  6 02:23:27 2007
---- pam_pkcs11-WS/src/pam_pkcs11/Makefile.in	Mon Sep 28 16:06:48 2009
+*** pam_pkcs11-0.6.0-ORIG/src/pam_pkcs11/Makefile.am	Mon May 21 02:46:19 2007
+--- pam_pkcs11-WS/src/pam_pkcs11/Makefile.am	Wed Dec  9 13:47:15 2015
 ***************
-*** 234,241 ****
-  top_builddir = @top_builddir@
-  top_srcdir = @top_srcdir@
+*** 2,9 ****
+  
   MAINTAINERCLEANFILES = Makefile.in
+  
 ! AM_CFLAGS = -Wall -fno-strict-aliasing $(CRYPTO_CFLAGS)
 ! AM_CPPFLAGS = -Wall -fno-strict-aliasing $(CRYPTO_CFLAGS)
+  
   lib_LTLIBRARIES = pam_pkcs11.la
-  pam_pkcs11_la_SOURCES = pam_pkcs11.c  \
-  			mapper_mgr.c mapper_mgr.h \
---- 234,241 ----
-  top_builddir = @top_builddir@
-  top_srcdir = @top_srcdir@
+  
+--- 2,9 ----
+  
   MAINTAINERCLEANFILES = Makefile.in
+  
 ! AM_CFLAGS = $(CRYPTO_CFLAGS)
 ! AM_CPPFLAGS = $(CRYPTO_CFLAGS)
+  
   lib_LTLIBRARIES = pam_pkcs11.la
-  pam_pkcs11_la_SOURCES = pam_pkcs11.c  \
-  			mapper_mgr.c mapper_mgr.h \
-*** pam_pkcs11-0.6.0-ORIG/src/pam_pkcs11/pam_config.h	Wed Jun  6 02:55:02 2007
+  
+***************
+*** 15,21 ****
+  
+  install:       
+  	$(mkinstalldirs) $(DESTDIR)/$(libdir)/security
+! 	$(libLTLIBRARIES_INSTALL) $(top_builddir)/src/pam_pkcs11/.libs/pam_pkcs11.so $(DESTDIR)/$(libdir)/security
+  
+  format:
+  	indent *.c *.h
+--- 15,21 ----
+  
+  install:       
+  	$(mkinstalldirs) $(DESTDIR)/$(libdir)/security
+! 	$(INSTALL) $(top_builddir)/src/pam_pkcs11/.libs/pam_pkcs11.so $(DESTDIR)/$(libdir)/security
+  
+  format:
+  	indent *.c *.h*** pam_pkcs11-0.6.0-ORIG/src/pam_pkcs11/pam_config.h	Wed Jun  6 02:55:02 2007
 --- pam_pkcs11-WS/src/pam_pkcs11/pam_config.h	Mon Sep 28 16:06:48 2009
 ***************
 *** 13,19 ****
--- a/components/parallel/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/parallel/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,7 +22,7 @@
 #
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		parallel
@@ -30,51 +30,35 @@
 # A leading "0." is included to make it easier to upgrade the package, should
 # the maintainers decide to go to a more standard version numbering system.
 IPS_COMPONENT_VERSION=  0.2016.2.22
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/parallel/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:8dfbe539036a6ff02f9f542751e8621f42d285b3c9a7d9245042a6cc6ddc55ea
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/parallel
 
 TPNO=			27217
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # Set PATH to find the correct pod2man, so that the man pages can be
 # automatically generated
 COMPONENT_BUILD_ENV += \
-	PATH="/usr/bin:/usr/gnu/bin:/usr/perl5/$(PERL_VERSION)/bin"
+	PATH="$(USRBINDIR):$(GNUBIN):$(USRDIR)/perl5/$(PERL_VERSION)/bin"
 
 # Adjust the '#!/usr/bin/env perl' and '#!/usr/bin/perl' at the beginning of
 # the Perl scripts to use '#!/usr/perl5/$(PERL_VERSION)/bin/perl'
 COMPONENT_POST_INSTALL_ACTION += \
 	$(GSED) -i -e 's?/usr/bin/perl?/usr/perl5/$(PERL_VERSION)/bin/perl?' \
-		$(PROTOUSRBINDIR64)/niceload;
+		$(PROTOUSRBINDIR)/niceload;
 COMPONENT_POST_INSTALL_ACTION += \
 	$(GSED) -i -e \
 		's?/usr/bin/env perl?/usr/perl5/$(PERL_VERSION)/bin/perl?' \
-		$(PROTOUSRBINDIR64)/parallel;
+		$(PROTOUSRBINDIR)/parallel;
 COMPONENT_POST_INSTALL_ACTION += \
 	$(GSED) -i -e 's?/usr/bin/perl?/usr/perl5/$(PERL_VERSION)/bin/perl?' \
-		$(PROTOUSRBINDIR64)/sql;
+		$(PROTOUSRBINDIR)/sql;
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += $(PERL_PKG)
 REQUIRED_PACKAGES += shell/which
 REQUIRED_PACKAGES += system/core-os
--- a/components/parallel/parallel.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/parallel/parallel.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -33,10 +33,10 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2012/182
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/niceload path=usr/bin/niceload
-file usr/bin/$(MACH64)/parallel path=usr/bin/parallel
-file usr/bin/$(MACH64)/sem path=usr/bin/sem
-file usr/bin/$(MACH64)/sql path=usr/bin/sql
+file path=usr/bin/niceload
+file path=usr/bin/parallel
+file path=usr/bin/sem
+file path=usr/bin/sql
 file path=usr/share/doc/parallel/niceload.html
 file path=usr/share/doc/parallel/niceload.pdf
 file path=usr/share/doc/parallel/niceload.texi
--- a/components/patchutils/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/patchutils/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,32 +22,21 @@
 #
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		patchutils
 COMPONENT_VERSION=	0.3.1
 IPS_PKG_NAME=		text/patchutils
 COMPONENT_PROJECT_URL=	http://cyberelk.net/tim/patchutils/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:48d28d4a6fd9922e15ecfd8a152ba5aef6673842c8303337fcaa6b3bb2d129a2
 COMPONENT_ARCHIVE_URL=	http://cyberelk.net/tim/data/patchutils/stable/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/patchutils
 
 TPNO=			9269
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-
-# Commands go under /usr/bin so set bindir correctly.
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
-
-ASLR_MODE = $(ASLR_ENABLE)
+include $(WS_MAKE_RULES)/common.mk
 
 # A couple of tests dump core, and the message contains the pid
 # A number of failing tests operate on randomly named files
@@ -58,21 +47,9 @@
 	'-e "1,/^for test in/{N;d}"' \
 	'-e "/^===/{N;N;q}"'
 
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
 # Note that the gendiff tests will fail on Solaris, because the gendiff utility
 # is missing; this is delivered by rpm.
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 
 REQUIRED_PACKAGES += runtime/perl-512
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += text/gnu-diffutils
 REQUIRED_PACKAGES += text/gnu-patch
--- a/components/pbzip2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pbzip2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,24 +22,21 @@
 #
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pbzip2
 COMPONENT_VERSION=	1.1.13
 COMPONENT_PROJECT_URL=	http://compression.ca/pbzip2/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:8fd13eaaa266f7ee91f85c1ea97c86d9c9cc985969db9059cdebcb1e1b7bdbe6
 COMPONENT_ARCHIVE_URL=	https://launchpad.net/pbzip2/1.1/$(COMPONENT_VERSION)/+download/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/pbzip2
 
 TPNO=			27242
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # pbzip2 Solaris Sun Studio build uses a non-standard Makefile
 COMPONENT_BUILD_ARGS +=		CC="$(CXX)"
@@ -47,19 +44,6 @@
 COMPONENT_INSTALL_ARGS +=	-f Makefile.solaris.sunstudio
 COMPONENT_INSTALL_ARGS +=	PREFIX=$(PROTOUSRDIR)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += compress/bzip2
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/pconsole/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pconsole/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,29 +20,22 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-BITS=64
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pconsole
 COMPONENT_VERSION=	1.0
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_PROJECT_URL=	http://www.heiho.net/pconsole/
 COMPONENT_ARCHIVE_HASH=	\
     sha256:94520bf65f726df9d7e686bb486e9a2828c29d09a20b9522f1da4f7d66700bb2
 COMPONENT_ARCHIVE_URL=	http://www.heiho.net/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/pconsole
 
 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
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Required to configure correctly.
 COMPONENT_PRE_CONFIGURE_ACTION = \
@@ -53,23 +46,5 @@
 # specify required flags.
 CONFIGURE_ENV += "CC=$(CC) -I. $(CC_BITS)"
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# DESTDIR doesn't work correctly, so we specify some of the paths directly.
-COMPONENT_INSTALL_ARGS +=	prefix=$(PROTOUSRDIR)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/pconsole/patches/Makefile.in.patch	Wed Mar 30 13:33:31 2016 -0700
@@ -0,0 +1,32 @@
+Honor DESTDIR when installing files; simplifies build and packaging.
+
+Appropriate for upstream.
+--- pconsole-1.0.old/Makefile.in	2001-04-06 18:38:45.000000000 -0700
++++ pconsole-1.0/Makefile.in	2015-12-09 14:18:22.312611616 -0800
+@@ -79,19 +79,19 @@
+ install: all
+ 	@( \
+ 		echo "installing pconsole ..."; \
+-		mkdir -p $(bindir) 2>/dev/null ; \
+-		@INSTALL_PROGRAM@ pconsole $(bindir) ;		\
+-		@INSTALL_SCRIPT@ pconsole.sh $(bindir) ;	\
+-		@INSTALL_SCRIPT@ ssh.sh $(bindir) ;			\
++		mkdir -p "$(DESTDIR)$(bindir)" 2>/dev/null ; \
++		@INSTALL_PROGRAM@ pconsole "$(DESTDIR)$(bindir)" ;		\
++		@INSTALL_SCRIPT@ pconsole.sh "$(DESTDIR)$(bindir)" ;	\
++		@INSTALL_SCRIPT@ ssh.sh "$(DESTDIR)$(bindir)" ;			\
+ 		echo ;	\
+ 		echo "Note: You may want to make pconsole setuid root with the following commands:";	\
+ 		echo ;	\
+-		echo "   chown root $(bindir)/pconsole ; chmod 4110 $(bindir)/pconsole" ; \
++		echo "   chown root $(DESTDIR)$(bindir)/pconsole ; chmod 4110 $(DESTDIR)$(bindir)/pconsole" ; \
+ 		echo \
+ 	)
+ 
+ uninstall:
+-	rm -f $(bindir)/pconsole $(bindir)/pconsole.sh $(bindir)/ssh.sh ; \
+-	rmdir $(bindir) 2>/dev/null
++	rm -f $(DESTDIR)$(bindir)/pconsole $(DESTDIR)$(bindir)/pconsole.sh $(DESTDIR)$(bindir)/ssh.sh ; \
++	rmdir $(DESTDIR)$(bindir) 2>/dev/null
+ 
+ # EOB
--- a/components/pcre/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pcre/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -19,15 +19,13 @@
 # CDDL HEADER END
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pcre
 COMPONENT_VERSION=	8.38
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:9883e419c336c63b0cb5202b09537c140966d585e4d0da66147dc513da13e629
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/pcre/files/pcre/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
@@ -37,10 +35,7 @@
 
 TPNO=			25877
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # pick up -xc99=all in CFLAGS
 studio_C99MODE=        $(studio_C99_ENABLE)
@@ -66,15 +61,12 @@
 CXXFLAGS+=	$(XPG5MODE)
 
 # We need to do this because libtool adds wrong paths to RPATH.
-LDFLAGS += -L$(CONFIGURE_LIBDIR.$(BITS)) -R$(CONFIGURE_LIBDIR.$(BITS))
+# LDFLAGS += -L$(CONFIGURE_LIBDIR.$(BITS)) -R$(CONFIGURE_LIBDIR.$(BITS))
 
 LINTFLAGS+=	-I. $(studio_XBITS) $(CPP_LARGEFILES)
 
-CONFIGURE_ENV+=	"CFLAGS=$(CFLAGS)"
 CONFIGURE_ENV+=	"CPP=$(CC) $(CPPFLAGS) $(CFLAGS) -E"
-CONFIGURE_ENV+=	"CXXFLAGS=$(CXXFLAGS)"
 CONFIGURE_ENV+=	"CXXCPP=$(CXX) $(CPPFLAGS) $(CXXFLAGS) -E"
-CONFIGURE_ENV+=	"LDFLAGS=$(LDFLAGS)"
 CONFIGURE_ENV+=	"CXXLDFLAGS=$(LDFLAGS)"
 CONFIGURE_ENV+= "CXXLD=$(CXX) $(CXXFLAGS) $(LDFLAGS)"
 CONFIGURE_ENV+= "INSTALL=$(INSTALL)"
@@ -84,7 +76,7 @@
 CONFIGURE_ENV.64+= "MACH64=$(MACH64)"
 
 CONFIGURE_OPTIONS+=	--includedir=$(CONFIGURE_INCLUDEDIR)/pcre
-CONFIGURE_OPTIONS+=	--localstatedir=/var
+CONFIGURE_OPTIONS+=	--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS+=	--disable-static
 CONFIGURE_OPTIONS+=	--enable-cpp
 CONFIGURE_OPTIONS+=	--enable-rebuild-chartables
@@ -119,21 +111,7 @@
 COMPONENT_INSTALL_ARGS+=	"INSTALL=$(INSTALL)"
 COMPONENT_INSTALL_ARGS+=	"MAKE=$(GMAKE)"
 
-# common targets
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += compress/bzip2
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
--- a/components/pcre/pcre.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pcre/pcre.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -34,10 +34,11 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2012/081
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file path=usr/bin/$(MACH64)/pcre-config
-file path=usr/bin/pcre-config
-file usr/bin/$(MACH64)/pcregrep path=usr/bin/pcregrep
-file usr/bin/$(MACH64)/pcretest path=usr/bin/pcretest
+# pcre-config contains embedded paths, so swap these around.
+file usr/bin/pcre-config path=usr/bin/$(MACH64)/pcre-config
+file usr/bin/$(MACH32)/pcre-config path=usr/bin/pcre-config
+file path=usr/bin/pcregrep
+file path=usr/bin/pcretest
 file path=usr/include/pcre/pcre.h
 file pcre_internal.h path=usr/include/pcre/pcre_internal.h
 file path=usr/include/pcre/pcre_scanner.h
--- a/components/perl/perl516/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl/perl516/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/perl/perl520/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl/perl520/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/perl512/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl512/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,11 +18,14 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
-PATH=$(dir $(CC)):/usr/bin:/usr/gnu/bin
+PATH=$(dir $(CC)):$(USRBINDIR):$(GNUBIN)
 
 # I want to override PERL_VERSION and PERL_ARCH because when building
 # a new version of perl it probably isn't installed so shared-macros.mk
@@ -32,17 +35,16 @@
 COMPONENT_VERSION=	5.12.5
 PERL_VERSION=		5.12
 COMPONENT_PROJECT_URL=	http://www.perl.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:10749417fd3010aae320a34181ad4cd6a4855c1fc63403b87fa4d630b18e966c
 COMPONENT_ARCHIVE_URL=	http://www.cpan.org/src/5.0/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/perl
 TPNO=			9223
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_TARGET=
+INSTALL_TARGET=
+TEST_TARGET=
+include $(WS_MAKE_RULES)/common.mk
 
 #
 # Override these compiler settings because they are causing problems
@@ -71,15 +73,21 @@
 # If that changes the sed filter needs to change.
 #
 
+PERLDIR=	$(USRDIR)/perl5
+PERLLIBDIR=	$(PERLVERDIR)/lib
+PERLVERDIR=	$(PERLDIR)/$(PERL_VERSION)
+PERLSITEDIR=	$(PERLDIR)/site_perl/$(PERL_VERSION)
+PERLVENDORDIR=	$(PERLDIR)/vendor_perl/$(PERL_VERSION)
+
 CONFIGURE_SCRIPT = $(SOURCE_DIR)/Configure
 CONFIGURE_ENV += MAKE=$(GMAKE)
-CONFIGURE_ENV += PATH=$(dir $(CC)):$(PATH)
+CONFIGURE_ENV += PATH="$(PATH)"
 CONFIGURE_OPTIONS = \
-			    -Dprefix=/usr/perl5/$(PERL_VERSION) \
-			    -Dprivlib=/usr/perl5/$(PERL_VERSION)/lib \
-			    -Dsitelib=/usr/perl5/site_perl/$(PERL_VERSION) \
-			    -Dvendorprefix=/usr/perl5/$(PERL_VERSION) \
-			    -Dvendorlib=/usr/perl5/vendor_perl/$(PERL_VERSION) \
+			    -Dprefix=$(PERLVERDIR) \
+			    -Dprivlib=$(PERLLIBDIR) \
+			    -Dsitelib=$(PERLSITEDIR) \
+			    -Dvendorprefix=$(PERLVERDIR) \
+			    -Dvendorlib=$(PERLVENDORDIR) \
 			    -Dlibperl=libperl.so \
 			    -Duseshrplib \
 			    -Dusedtrace \
@@ -135,27 +143,18 @@
 INSTALL_32 =	$(VARIANTS:%=%/.installed)
 TEST_32 =	$(VARIANTS:%=%/.tested)
 
-configure:	$(CONFIGURE_32)
-
 build:		$(BUILD_32)
 
 install:	$(INSTALL_32)
 
 test:		$(TEST_32)
 
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-	#
-	#
-	# All tests should pass.
-	#
-	#
-
-
+# not yet tested with ASLR
+ASLR_MODE= $(ASLR_DISABLE)
 
 REQUIRED_PACKAGES += database/berkeleydb-5
 REQUIRED_PACKAGES += developer/lexer/flex
 REQUIRED_PACKAGES += developer/parser/bison
 REQUIRED_PACKAGES += library/database/gdbm
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += text/groff/groff-core
--- a/components/perl_modules/DBI/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/DBI/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/perl_modules/authen-pam/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/authen-pam/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/perl_modules/cssh/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/cssh/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/perl_modules/gettext/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/gettext/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/perl_modules/perl-tk/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/perl-tk/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/perl_modules/perl-x11-protocol/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/perl-x11-protocol/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/perl_modules/xml-libxml/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/xml-libxml/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/perl_modules/xml-namespacesupport/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/xml-namespacesupport/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/perl_modules/xml-parser/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/xml-parser/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/perl_modules/xml-sax-base/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/xml-sax-base/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/perl_modules/xml-sax/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/xml-sax/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/perl_modules/xml-simple/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/perl_modules/xml-simple/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/php-common/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/php-common/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,11 +18,14 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		php-common
+COMPONENT_SRC=
 # This version # based on the version # of Solaris
 COMPONENT_VERSION=	11.1
 COMPONENT_PROJECT_URL=	http://www.php.net/
--- a/components/php/php56/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/php/php56/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,9 +20,9 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 
 include $(WS_COMPONENTS)/php/php-metadata.mk
@@ -35,41 +35,36 @@
 COMPONENT_ARCHIVE_HASH=\
     sha256:0af0045745d61eeb74a3ea744529a2481b27cb689da720e6c0250675043724e4
 COMPONENT_ARCHIVE_URL=	http://php.net/get/$(COMPONENT_ARCHIVE)/from/this/mirror
-COMPONENT_BUGDB=	utility/php
 TPNO=			22435
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
+include $(WS_MAKE_RULES)/common.mk
 include $(PHP_TOP_DIR)/php.mk
 
 # We patch configure.in to allow building just modules (no SAPI's), e.g. intl.
 # Since we are sharing the source, regenerate configure here.
-COMPONENT_PREP_ACTION += (cd $(SOURCE_DIR) ; autoconf) ;
-
-ASLR_MODE = $(ASLR_ENABLE)
+COMPONENT_PREP_ACTION += (cd $(SOURCE_DIR) ; autoreconf) ;
 
 include enable-extensions.mk
 
 CONFIGURE_OPTIONS += --enable-dtrace
-REQUIRED_PACKAGES += system/dtrace
-COMPONENT_BUILD_ENV += PATH="$$PATH:/usr/sbin"
+COMPONENT_BUILD_ENV += PATH="$(PATH):$(USRSBINDIR)"
 
+ETCPHPDIR= $(ETCDIR)/php/$(UL_PHP_MINOR_VERSION)
+VARPHPDIR= $(VARDIR)/php/$(UL_PHP_MINOR_VERSION)
 # .conf files go under /etc, not /usr
-CONFIGURE_OPTIONS +=	--sysconfdir=/etc/php/$(UL_PHP_MINOR_VERSION)
+CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCPHPDIR)
 # var doesn't go under /usr either!
-CONFIGURE_OPTIONS +=	--localstatedir=/var/php/$(UL_PHP_MINOR_VERSION)
+CONFIGURE_OPTIONS +=	--localstatedir=$(VARPHPDIR)
 # Nor does php.ini and its friends.
-CONFIGURE_OPTIONS +=	--with-config-file-path=/etc/php/$(UL_PHP_MINOR_VERSION)
-CONFIGURE_OPTIONS +=	--with-config-file-scan-dir=/etc/php/$(UL_PHP_MINOR_VERSION)/conf.d
+CONFIGURE_OPTIONS +=	--with-config-file-path=$(ETCPHPDIR)
+CONFIGURE_OPTIONS +=	--with-config-file-scan-dir=$(ETCPHPDIR)/conf.d
 # Nor does PEAR (default: $PREFIX/lib/php)
-CONFIGURE_OPTIONS +=	--with-pear=/var/php/$(UL_PHP_MINOR_VERSION)/pear
+CONFIGURE_OPTIONS +=	--with-pear=$(VARPHPDIR)/pear
 
 # Use openldap
 # This is good enough to fool configure
-CONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS) -I/usr/include/openldap" \
-	LDFLAGS="$(LDFLAGS) -lldap_r"
+CPPFLAGS += -I$(USRINCDIR)/openldap
+LDFLAGS += -lldap_r
 # but ensure "make" gets the point
 COMPONENT_BUILD_ARGS += LDAP_SHARED_LIBADD="-lldap_r"
 
@@ -112,20 +107,12 @@
 
 CLEAN_PATHS += proto-scripts
 
-# For picking up php.ini-development and -production
-PKG_PROTO_DIRS +=      $(COMPONENT_SRC)
-
-configure:		$(CONFIGURE_64)
-build:			$(BUILD_64)
-install:		$(INSTALL_64)
-
 # The test results are unstable between runs
 $(SKIP_TEST_AT_TOP_LEVEL)
-test:			$(TEST_64)
 
 REQUIRED_PACKAGES += developer/icu
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += library/openldap
 REQUIRED_PACKAGES += library/security/openssl
-REQUIRED_PACKAGES += system/library
+REQUIRED_PACKAGES += system/dtrace
 REQUIRED_PACKAGES += system/library/math
--- a/components/php/suhosin-extension/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/php/suhosin-extension/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 include $(WS_COMPONENTS)/php/php-metadata.mk
 
 COMPONENT_NAME=		suhosin
 COMPONENT_VERSION=	0.9.37.1
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:322ba104a17196bae63d39404da103fd011b09fde0f02484dc44366511c586ba
 COMPONENT_ARCHIVE_URL=	http://download.suhosin.org/$(COMPONENT_ARCHIVE)
@@ -37,20 +35,10 @@
 
 TPNO=			22432
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
+include $(WS_MAKE_RULES)/common.mk
 include $(PHP_TOP_DIR)/phpize.mk
 
 CONFIGURE_OPTIONS += --enable-suhosin
 
 # Run MySQL tests - requires MySQL (and maybe configuration!)
 #COMPONENT_TEST_ENV += TEST_SUHOSIN_MYSQL=1
-
-configure: $(CONFIGURE_64)
-build: $(BUILD_64)
-install: $(INSTALL_64)
-test: $(TEST_64)
-
-REQUIRED_PACKAGES += system/library
--- a/components/php/xdebug/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/php/xdebug/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,15 +20,14 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 include $(WS_COMPONENTS)/php/php-metadata.mk
 
 COMPONENT_NAME=		xdebug
 COMPONENT_VERSION=	2.3.2
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH= \
 	sha256:f875d0f8c4e96fa7c698a461a14faa6331694be231e2ddc4f3de0733322fc6d0
@@ -37,18 +36,10 @@
 
 TPNO=			22429
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 include $(PHP_TOP_DIR)/phpize.mk
 
 CONFIGURE_OPTIONS +=	--enable-xdebug
 
-configure: $(CONFIGURE_64)
-build: $(BUILD_64)
-install: $(INSTALL_64)
-test: $(NO_TESTS)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/pigz/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pigz/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,25 +18,26 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pigz
 COMPONENT_VERSION=	2.2.5
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://zlib.net/pigz/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:e37498cbf3a475d7ebe2519751188c29564bf8dd27ba68bd3c7fe1ac08792759
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/pigz
 
 TPNO=			11152
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+INSTALL_TARGET= build
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 PKG_PROTO_DIRS += $(BUILD_DIR_64)
 
@@ -46,19 +47,11 @@
 COMPONENT_BUILD_ARGS += CC="$(CC)"
 COMPONENT_BUILD_ARGS += CFLAGS="$(CFLAGS) -DHAVE_PTHREAD_SETNAME_NP"
 COMPONENT_SYSTEM_TEST_TARGETS=	test
-COMPONENT_SYSTEM_TEST_ENV=	TARGETDIR=/usr/bin
+COMPONENT_SYSTEM_TEST_ENV=	TARGETDIR=$(USRBINDIR)
 COMPONENT_TEST_TARGETS=	test
 # Ignore these warnings that can come in random order.
 COMPONENT_TEST_TRANSFORMS += \
     '-e "/^.*does not .* -- skipping/d" ' \
     '-e "s|/usr/bin|\\$$(@D)|g" '
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-build:		$(BUILD_64)
-install:	$(BUILD_64)
-test:		$(TEST_64)
-system-test:    $(SYSTEM_TEST_64)
-
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
--- a/components/pinentry/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pinentry/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,17 +18,18 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
-PATH = /usr/gnu/bin:/usr/bin
+PATH = $(GNUBIN):$(USRBINDIR)
 
 COMPONENT_NAME=		pinentry
 COMPONENT_VERSION=	0.7.6
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.gnupg.org/related_software/pinentry/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:14670c18f4a042ffcbd7a937aa3f15de392816c56b472588383d8378f65b42ab
 COMPONENT_ARCHIVE_URL=	ftp://ftp.gnupg.org/gcrypt/pinentry/$(COMPONENT_ARCHIVE)
@@ -36,9 +37,9 @@
 
 TPNO=			8850
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+INSTALL_TARGET=
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 
@@ -46,30 +47,34 @@
 studio_C99MODE = -Xc $(studio_C99_ENABLE)
 
 # -xinline=%auto -- we like inlining where appropriate
-CFLAGS += -xinline=%auto
+CFLAGS.studio += -xinline=%auto
 
 # -xbuiltin=%none -- builtins have been known to be buggy
-CFLAGS += -xbuiltin=%none
+CFLAGS.studio += -xbuiltin=%none
 
 # void function cannot return value, unless it's GNU C
-CFLAGS += -features=extinl,extensions
+CFLAGS.studio += -features=extinl,extensions
 
 CFLAGS += $(CPP_LARGEFILES)
 CFLAGS += $(XPG6MODE)
 CFLAGS += $(CPP_POSIX)
 CFLAGS += $(CPP_C99_EXTENDED_MATH)
-CFLAGS += $(studio_PIC)
+CFLAGS += $(CC_PIC)
 
 # prevent libtool from removing these
-LDFLAGS += -lsocket -lnsl -lpkcs11
-LIBS = -lsocket -lnsl -lpkcs11
+ifeq ($(OS_VERSION),5.11)
+LDFLAGS += -lsocket -lnsl
+LIBS += -lsocket -lnsl
+endif
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	LDFLAGS="$(LDFLAGS)"
+LDFLAGS += -lpkcs11
+LIBS += -lpkcs11
+
+
 CONFIGURE_ENV +=	INSTALL="$(INSTALL)"
 CONFIGURE_ENV +=	LIBS="$(LIBS)"
 
-CONFIGURE_OPTIONS  +=		--localstatedir=/var
+CONFIGURE_OPTIONS  +=		--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--enable-pinentry-curses
 CONFIGURE_OPTIONS  +=		--enable-pinentry-gtk2
@@ -79,13 +84,6 @@
 CONFIGURE_OPTIONS  +=		--disable-pinentry-gtk
 CONFIGURE_OPTIONS  +=		--disable-pinentry-qt
 CONFIGURE_OPTIONS  +=		--disable-ncurses
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_PREFIX)/bin
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build: $(BUILD_64)
 
 install: $(INSTALL_64)
 	$(MKDIR) $(PROTOUSRLIBDIR)
@@ -95,13 +93,7 @@
 	$(MV) $(PROTOUSRBINDIR)/pinentry-gtk-2 $(PROTOUSRLIBDIR)/ ; fi
 	cd $(PROTOUSRLIBDIR) && ln -sf pinentry-gtk-2 pinentry
 
-test: $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += library/desktop/gtk2
 REQUIRED_PACKAGES += library/desktop/pango
 REQUIRED_PACKAGES += library/glib2
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += x11/library/libx11
--- a/components/pixz/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pixz/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -17,31 +17,27 @@
 # information: Portions Copyright [yyyy] [name of copyright owner]
 #
 # CDDL HEADER END
+#
 
 #
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pixz
 COMPONENT_VERSION=	1.0.6
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://github.com/vasi/pixz/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:c54a406dddc6c2226779aeb4b5d5b5649c1d3787b39794fbae218f7535a1af63
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)releases/download/v$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/pixz
 
 TPNO=			27449
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 PKG_PROTO_DIRS += $(BUILD_DIR_64)
-PKG_PROTO_DIRS += $(COMPONENT_DIR)/files
 
 # Needed to make the tests work, now we use configure.mk not justmake.mk.
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -74,23 +70,11 @@
 COMPONENT_TEST_TARGETS =
 
 COMPONENT_SYSTEM_TEST_ENV =	PATH=$(GNUBIN):$(PATH)
-COMPONENT_SYSTEM_TEST_ENV +=	PIXZ_BIN=/usr/bin/pixz
+COMPONENT_SYSTEM_TEST_ENV +=	PIXZ_BIN=$(USRBINDIR)/pixz
 COMPONENT_SYSTEM_TEST_CMD =	$(SOURCE_DIR)/test.sh
 COMPONENT_SYSTEM_TEST_ARGS =	src/pixz-test-tarball.tar pixz.c
 COMPONENT_SYSTEM_TEST_TARGETS =
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-build:		$(BUILD_64)
-
-install:	$(BUILD_64)
-
-test:		$(TEST_64)
-
-system-test:    build $(SYSTEM_TEST_64)
-
-
 REQUIRED_PACKAGES += compress/xz
 REQUIRED_PACKAGES += library/libarchive
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/pkg-config/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pkg-config/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,32 +22,25 @@
 #
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pkg-config
 COMPONENT_VERSION=	0.29
 COMPONENT_PROJECT_URL=	http://www.freedesktop.org/wiki/Software/pkg-config
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:c8507705d2a10c67f385d66ca2aae31e81770cc0734b4191eb8c489e864a006b
 COMPONENT_ARCHIVE_URL=	http://pkgconfig.freedesktop.org/releases/$(COMPONENT_ARCHIVE)
 COMPONENT_SIG_URL=	$(COMPONENT_ARCHIVE_URL).asc
-COMPONENT_BUGDB=	utility/pkg-config
 
 TPNO=			26453
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # otherwise our default PKG_CONFIG_PATH will change to the 64-bit libdir
 CONFIGURE_LIBDIR.64 =   $(CONFIGURE_PREFIX)/lib
 
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)" 
-COMPONENT_TEST_ENV += PATH=/usr/gnu/bin:/usr/bin
-ASLR_MODE = $(ASLR_ENABLE)
+COMPONENT_TEST_ENV += PATH=$(GNUBIN):$(USRBINDIR)
 
 # The additional pkg-config specific set of transforms to be applied to the
 # test results to try to normalize them.
@@ -62,16 +55,4 @@
 
 PKG_MACROS +=		OLD_DESKTOP_BUILD=$(OLD_DESKTOP_BUILD)
 
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/glib2
-REQUIRED_PACKAGES += system/library
--- a/components/pkg-config/pkg-config.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pkg-config/pkg-config.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,7 +36,7 @@
 set name=org.opensolaris.arc-caseid value=LSARC/2006/202
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 #
-file usr/bin/$(MACH64)/pkg-config path=usr/bin/pkg-config
+file path=usr/bin/pkg-config
 dir  path=usr/lib/$(MACH64)/pkgconfig group=other
 dir  path=usr/lib/pkgconfig group=other
 file path=usr/share/aclocal/pkg.m4
--- a/components/pkgbuild/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pkgbuild/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,43 +22,23 @@
 #
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-BITS=64
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pkgbuild
 COMPONENT_VERSION=	1.3.105
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:ed32d913af249d4221c2b94450eb4e996747024260c210620e94ac8130bc0fd6
 COMPONENT_ARCHIVE_URL=	http://prdownloads.sourceforge.net/pkgbuild/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL=	http://pkgbuild.sourceforge.net/
-COMPONENT_BUGDB=	utility/pkgbuild
 
 TPNO=			13159
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Required due to patches to configure and/or automake files.
 COMPONENT_PREP_ACTION += (cd $(@D); autoreconf -fi;)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += runtime/perl-512
--- a/components/popt/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/popt/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,14 +22,12 @@
 #
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		popt
 COMPONENT_VERSION=	1.16
 COMPONENT_PROJECT_URL=	http://freecode.com/projects/popt/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:e728ed296fe9f069a0e005003c3d6b2dde3d9cad453422a10d6558616d304cc8
 COMPONENT_ARCHIVE_URL=	https://launchpad.net/$(COMPONENT_NAME)/head/$(COMPONENT_VERSION)/+download/$(COMPONENT_ARCHIVE)
@@ -37,10 +35,7 @@
 
 TPNO=			27265
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION = \
         (cd $(@D) ; $(TOUCH) config.rpath) ;
@@ -50,32 +45,14 @@
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
 # Add /usr/gnu/bin at the front of $PATH for GNU gettext.
-CONFIGURE_ENV +=	PATH=/usr/gnu/bin:$(PATH)
+CONFIGURE_ENV +=	PATH=$(GNUBIN):$(PATH)
 
 CONFIGURE_OPTIONS +=	--disable-nls
 
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS)"
-
-PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
-
 # Master test results are the same for 32-bit and 64-bit, so override
 # here, rather than create multiple identical master files.
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
 # api-sanity-autotest.pl is part of the API Sanity Checker
 # http://ispras.linuxbase.org/index.php/API_Sanity_Autotest
 # (which we don't have in Solaris), so expect that test to fail.
-test:           $(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
--- a/components/postfix/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/postfix/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,26 +20,23 @@
 #
 
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		postfix
 COMPONENT_VERSION=	2.11.3
 COMPONENT_PROJECT_URL=	http://www.postfix.org
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:04e5146e6e56261baae9f63c590348a4b12ce22d3d46260e26e97233f40802c3
-COMPONENT_BUGDB=	utility/postfix
 COMPONENT_ARCHIVE_URL=	http://mirrors-usa.go-parts.com/$(COMPONENT_NAME)/source/official/$(COMPONENT_ARCHIVE)
 
 TPNO=			7492
 
-include ../../make-rules/prep.mk
-include ../../make-rules/justmake.mk
-include ../../make-rules/ips.mk
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include ../../make-rules/common.mk
 
 # general
 CCARGS =	-DDEF_DAEMON_DIR=\\\"/usr/lib/postfix\\\"
@@ -60,32 +57,20 @@
 
 # pcre-config is run as part of the setup, so we need to find the 64-bit
 # version so it will provide a 64-bit runpath, o/w pkglint gives warnings.
-PATH =		/usr/bin/$(MACH64):/usr/bin:/usr/gnu/bin
+PATH =		$(USRBINDIR64):$(USRBINDIR):$(GNUBIN)
 
-COMPONENT_BUILD_ENV += CC="$(CC) -m64"
 COMPONENT_BUILD_ENV += CCARGS="$(CCARGS)"
+COMPONENT_BUILD_ENV += OPT="$(CFLAGS)"
+COMPONENT_BUILD_ENV += DEBUG="$(CFLAGS)"
 COMPONENT_BUILD_ENV += PATH="$(PATH)"
 COMPONENT_BUILD_ENV += AUXLIBS="$(AUXLIBS)"
 
 COMPONENT_INSTALL_TARGETS = non-interactive-package install_root="$(PROTO_DIR)"
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-build:          $(BUILD_64)
-
-install:        $(INSTALL_64)
-
-test:           $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
-
 REQUIRED_PACKAGES += database/berkeleydb-5
 REQUIRED_PACKAGES += database/sqlite-3
 REQUIRED_PACKAGES += library/pcre
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/network
--- a/components/privoxy/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/privoxy/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,9 +20,9 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		privoxy
@@ -33,13 +33,14 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:b75f6b8b8409ed7ac6c3a00dcd608a45180f07bfa46658c836d5c6ffc4dc25c4
 COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/ijbswa/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/privoxy
 
 TPNO=		 22977	
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
+
+# Fix 64-bit linking via compiler.
+LDFLAGS += $(CC_BITS)
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -49,22 +50,14 @@
             autoheader; \
             autoconf )
 
-CC += $(CC_BITS)
-
 # Needed to installed most of the files into the proto area.
-CONFIGURE_OPTIONS +=	--sysconfdir=/etc
-CONFIGURE_OPTIONS +=	--localstatedir=/var
+CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)
+CONFIGURE_OPTIONS +=	--localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS +=	--sbindir=$(CONFIGURE_PREFIX)/lib
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-	$(CP) $(BUILD_DIR_64)/templates/* $(PROTOETCDIR)/templates
+COMPONENT_POST_INSTALL_ACTION += \
+	($(CP) $(BUILD_DIR_64)/templates/* $(PROTOETCDIR)/templates)
 
 # Regression tests exist for privoxy in tools/privoxy-regression-test.pl,
 # however these are not applicable to us since they violate the company policy
@@ -79,14 +72,8 @@
 # You may need to set the forward address in /etc/privoxy/config to the 
 # Oracle proxy to access pages in your web browser with privoxy running. 
 
-test: 		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += library/pcre
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/network
--- a/components/procmail/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/procmail/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,48 +20,30 @@
 #
 
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		procmail
 COMPONENT_VERSION=	3.22
 COMPONENT_PROJECT_URL=	http://www.procmail.org
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:087c75b34dd33d8b9df5afe9e42801c9395f4bf373a784d9bc97153b0062e117
-COMPONENT_BUGDB=	utility/procmail
 
 # ftp://ftp.procmail.org/pub/procmail/procmail-3.22.tar.gz no longer works.
 COMPONENT_ARCHIVE_URL=	ftp://ftp.ucsb.edu/pub/mirrors/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 
 TPNO=			9003
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-COMPONENT_BUILD_ENV += CC="$(CC) -m64"
+COMPONENT_BUILD_ENV += RPM_OPT_FLAGS="$(CFLAGS)"
 
 COMPONENT_INSTALL_ARGS +=	BASENAME=$(PROTOUSRDIR)
 COMPONENT_INSTALL_ARGS +=	MANDIR=$(PROTOUSRSHAREMANDIR)
 
-PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-build:          $(BUILD_64)
-
-install:        $(INSTALL_64)
-
-test:           $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/procmail/patches/07-use-libc-strstr.patch	Wed Mar 30 13:33:31 2016 -0700
@@ -0,0 +1,17 @@
+Avoid procmail's benchmark-based selection between private strstr and libc
+strstr which can change based on "benchmark" performance during build.
+
+A bug should be filed upstream to suggest that this check be removed or that
+some way to override it be provided for reproducible builds.
+diff -ru procmail-3.22/src/autoconf procmail-3.22/src/autoconf
+--- procmail-3.22/src/autoconf	2016-02-17 11:40:24.573974151 -0800
++++ procmail-3.22/src/autoconf	2016-02-17 11:39:46.707737313 -0800
+@@ -1228,7 +1228,7 @@
+ 	 syscnt>=iter?"SLOW":"FAST");
+ 	if(syscnt>iter+iter/16)		  /* if at least 1.0625 times slower */
+ 	   printf("\
+-#define SLOWstrstr\t\t\t      /* using my substitute instead */\n");
++/* #define SLOWstrstr */\t\t\t      /* NOT using my substitute instead */\n");
+       }
+      else
+ 	printf("/* Insufficient memory to perform the benchmark! */\n");
--- a/components/proftpd/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/proftpd/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,9 +20,9 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		proftpd
@@ -49,9 +49,9 @@
 TPNO_PROFTPD=		17783
 TPNO_MOD_GSS=		13480
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# libcheck and specific Perl Test::Unit version is required for full test
+TEST_TARGET= $(SKIP_TEST)
+include $(WS_MAKE_RULES)/common.mk
 
 # IPS_COMPONENT_VERSION is by default set to $(COMPONENT_VERSION) but it is not
 # enough for us. We need to include the $(COMPONENT_SUBVERSION) somehow.
@@ -59,14 +59,13 @@
 # instead of 'e'.
 IPS_COMPONENT_VERSION=  $(COMPONENT_VERSION)
 
-# Remove -D_POSIX_PTHREAD_SEMANTICS and this comment after move to S12_45.
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS) -I/usr/include/kerberosv5 -DHAVE_KRB5_H=1 -DKRB5_DLLIMP= -DHAVE__GETGRPSBYMEMBER -D_POSIX_PTHREAD_SEMANTICS -D_SOLARIS_DTRACE"
+CFLAGS += -I$(USRINCDIR)/kerberosv5 -DHAVE_KRB5_H=1 -DKRB5_DLLIMP= -DHAVE__GETGRPSBYMEMBER -D_SOLARIS_DTRACE
 # Force immediate binding because of chroot().
 CONFIGURE_OPTIONS +=	LDFLAGS="-z guidance=nolazyload -z nolazyload -lbsm"
 CONFIGURE_OPTIONS +=	install_user=`id -nu`
 CONFIGURE_OPTIONS +=	install_group=`groups | cut -f 1 -d ' '`
 CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)
-CONFIGURE_OPTIONS +=	--localstatedir=/var/run
+CONFIGURE_OPTIONS +=	--localstatedir=$(VARDIR)/run
 CONFIGURE_OPTIONS +=	--libexecdir=$(USRLIBDIR)/proftpd
 CONFIGURE_OPTIONS +=	--enable-ipv6
 CONFIGURE_OPTIONS +=	--enable-ctrls
@@ -104,22 +103,9 @@
 # attributes.
 LICENSE_TRANSFORMS =
 
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-# libcheck and specific Perl Test::Unit version is required for full test
-
-
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += service/security/kerberos-5
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/gss
 REQUIRED_PACKAGES += system/network
--- a/components/psutils/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/psutils/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,11 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 include $(WS_MAKE_RULES)/shared-targets.mk
 
@@ -31,17 +34,16 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:3853eb79584ba8fbe27a815425b65a9f7f15b258e0d43a05a856bdb75d588ae4
 COMPONENT_ARCHIVE_URL= http://gd.tuwien.ac.at/publishing/tex/tex-utils/psutils/$(COMPONENT_ARCHIVE)
+HUMAN_VERSION=		$(COMPONENT_VERSION)
 #COMPONENT_ARCHIVE_URL= ftp://ftp.knackered.org/pub/psutils/psutils.tar.gz
 # Official ftp sources are currently unavailable, so I'm using mirror I found.
 # I made sure that the tarball is equal to the one present in SFW
 
-COMPONENT_BUGDB=	utility/psutils
-
 TPNO=			9004
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Can't use 'p17' since that is not accepted by pkg. And homepage
 # http://knackered.knackered.org/angus/psutils/ states that development version
@@ -51,18 +53,16 @@
 # to stay compatible with nevada settings, letter is default paper size
 CFLAGS += -DPAPER=\\\"letter\\\" -DUNIX
 
-COMPONENT_BUILD_ENV += CC=$(CC)
-COMPONENT_BUILD_ENV += CFLAGS="$(CFLAGS)"
-COMPONENT_BUILD_ENV += INCLUDEDIR=$(PROTO_DIR)/usr/share/psutils
+COMPONENT_BUILD_ENV += INCLUDEDIR=$(PROTOUSRSHAREDIR)/psutils
 COMPONENT_BUILD_ENV += PERL=$(PERL)
 
 # slightly hacky, since COMPONENT_BUILD_TARGETS are just arguments passed to
 # make
 COMPONENT_BUILD_ARGS = -e -f Makefile.unix
 
-COMPONENT_INSTALL_ENV += BINDIR=$(PROTO_DIR)/usr/bin
-COMPONENT_INSTALL_ENV += INCLUDEDIR=$(PROTO_DIR)/usr/share/psutils
-COMPONENT_INSTALL_ENV += MANDIR=$(PROTO_DIR)/usr/share/man/man1
+COMPONENT_INSTALL_ENV += BINDIR=$(PROTOUSRBINDIR)
+COMPONENT_INSTALL_ENV += INCLUDEDIR=$(PROTOUSRSHAREDIR)/psutils
+COMPONENT_INSTALL_ENV += MANDIR=$(PROTOUSRSHAREMAN1DIR)
 COMPONENT_INSTALL_ENV += PERL=$(PERL)
 COMPONENT_INSTALL_ENV += INSTALL="$(INSTALL) -m 0555"
 COMPONENT_INSTALL_ENV += INSTALLMAN="$(INSTALL) -m 0444"
@@ -71,16 +71,7 @@
 # make
 COMPONENT_INSTALL_ARGS = -e -f Makefile.unix
 
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
 $(INSTALL_32):	$(PROTOUSRSHAREMAN1DIR) $(PROTOUSRBIN)
 
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += $(PERL_PKG)
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/psutils/psutils.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/psutils/psutils.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,15 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
 <transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
 set name=pkg.fmri \
     value=pkg:/print/psutils@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="PostScript utilities"
 set name=pkg.description \
     value="Collection of utilities for manipulating PostScript documents"
-set name=pkg.human-version value=$(COMPONENT_VERSION)
+set name=pkg.human-version value=$(HUMAN_VERSION)
 set name=com.oracle.info.description value="the psutils PostScript Utilities"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification value=org.opensolaris.category.2008:System/Printing
--- a/components/ptp/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ptp/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,19 +18,17 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
-COMPILER =      gcc
-
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		ptpd
 COMPONENT_VERSION=	2.2.0
-IPS_COMPONENT_VERSION=	$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://ptpd.sourceforge.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f2266a22db84318d8b9ce266ea83772c03438c31f4993fa9643fa675a07c26b4
 COMPONENT_ARCHIVE_URL= \
@@ -40,30 +38,13 @@
 TPNO_PTP=		12665
 TPNO_SOLARFLARE=	15817
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-PATCH_LEVEL =	1
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PKG_PROTO_DIRS += $(BUILD_DIR_64)
 
-COMPONENT_BUILD_ENV  +=         CC=$(CC)
-
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/libv12n
 REQUIRED_PACKAGES += system/library/math
--- a/components/pv/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pv/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,31 +22,24 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pv
 COMPONENT_VERSION=	1.6.0
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.ivarch.com/programs/pv.shtml
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:9dd45391806b0ed215abee4c5ac1597d018c386fe9c1f5afd2f6bc3b07fd82c3
 COMPONENT_ARCHIVE_URL=	http://www.ivarch.com/programs/sources/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/pv
 
 TPNO=			27247
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 PKG_PROTO_DIRS += $(BUILD_DIR_64)
 
-CONFIGURE_OPTIONS  +=   CFLAGS="$(CFLAGS)"
-
-COMPILER =	gcc
-
 COMPONENT_TEST_ENV +=  PATH="$(GNUBIN):$(PATH)"
 
 COMPONENT_TEST_TRANSFORMS += \
@@ -57,19 +50,5 @@
 
 COMPONENT_SYSTEM_TEST_ENV +=	PATH="$(GNUBIN):$(PATH)"
 COMPONENT_SYSTEM_TEST_CMD =	sh $(SOURCE_DIR)/autoconf/scripts/run-test.sh
-COMPONENT_SYSTEM_TEST_ARGS =	/usr/bin/pv $(SOURCE_DIR)
+COMPONENT_SYSTEM_TEST_ARGS =	$(USRBINDIR)/pv $(SOURCE_DIR)
 COMPONENT_SYSTEM_TEST_TARGETS =
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TEST_64)
-
-REQUIRED_PACKAGES += system/library
--- a/components/pv/pv.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pv/pv.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -33,7 +33,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2009/350
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/pv path=usr/bin/pv
+file path=usr/bin/pv
 file path=usr/share/locale/de/LC_MESSAGES/pv.mo
 file path=usr/share/locale/fr/LC_MESSAGES/pv.mo
 file path=usr/share/locale/pl/LC_MESSAGES/pv.mo
--- a/components/pwgen/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pwgen/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,28 +20,25 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pwgen
 COMPONENT_VERSION=	2.06
 COMPONENT_PROJECT_URL=	http://sourceforge.net/projects/pwgen/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:61598c9e3a0f7eb2e7367d4ecc71522c4f16a7d41ed31db29e3afee8d9843454
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)files/pwgen/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)	
-COMPONENT_BUGDB=	utility/pwgen
 
 TPNO=			9020
 
-CONFIGURE_OPTIONS += LDFLAGS="$(CC_BITS)"
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# Fix 64-bit linking via compiler.
+LDFLAGS += $(CC_BITS)
 
 # IPS Package versions contain sequences of non-negative (for now) integers,
 # separated by dots.  Leading zeroes are not allowed, due to ordering
@@ -51,6 +48,7 @@
 # to "2.6" to comply with the convention described above.
 #
 IPS_COMPONENT_VERSION=	2.6
+HUMAN_VERSION=		$(COMPONENT_VERSION)
 
 # configure in pwgen is generated by autoconf 2.13, which does not accept the
 # variables like CC, CXX, etc.  The solution is to generate a new configure
@@ -59,25 +57,8 @@
 #
 COMPONENT_PREP_ACTION=	(cd $(@D) ; autoconf) 
 
-CONFIGURE_OPTIONS+= 	CFLAGS="$(CFLAGS)"
-
 # This is to get rid of gcc specific -Wxxx options in pwgen makefile
 #
 COMPONENT_BUILD_ARGS = WALL_OPTS=
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/crypto
--- a/components/pwgen/pwgen.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/pwgen/pwgen.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability committed>
@@ -27,7 +27,7 @@
 set name=pkg.summary value="Easy to memorize password generator"
 set name=pkg.description \
     value="pwgen is a password generator for creating passwords which can be easily memorized by a human."
-set name=pkg.human-version value=$(COMPONENT_VERSION)
+set name=pkg.human-version value=$(HUMAN_VERSION)
 set name=com.oracle.info.description value="the pwgen password generator"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification \
--- a/components/python/anyjson/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/anyjson/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/astroid/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/astroid/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= NO_ARCH
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		astroid
 COMPONENT_VERSION=	1.3.6
 COMPONENT_PROJECT_URL=	http://bitbucket.org/logilab/$(COMPONENT_NAME)
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:1241ef961448c57b4616beb8dcc959724641dca1e22914663f79d67fec26f854
 COMPONENT_ARCHIVE_URL=	$(call pypi_url)
@@ -41,18 +39,14 @@
 # this likewise. And astroid only supports 2.7+ now.
 PYTHON_VERSIONS=	2.7
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/setup.py.mk
+BUILD_STYLE= setup.py
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_NO_ARCH)
+include $(WS_MAKE_RULES)/common.mk
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
 # common targets
 
-build:		$(BUILD_NO_ARCH)
-
-install:	$(INSTALL_NO_ARCH)
-
 # The tests are run using python 2.7 only and require that
 # the python-27 package is installed (does not have to be the default python). 
 
@@ -96,9 +90,5 @@
 COMPONENT_POST_SYSTEM_TEST_ACTION += \
 	$(MV) $(COMPONENT_SRC)/astroid/tests/unittest_modutils.py-orig $(COMPONENT_SRC)/astroid/tests/unittest_modutils.py
 
-test:		$(TEST_NO_ARCH)
-
-system-test:    $(SYSTEM_TEST_NO_ARCH)
-
 REQUIRED_PACKAGES += library/python/logilab-common-27
 REQUIRED_PACKAGES += library/python/six-27
--- a/components/python/beautifulsoup4/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/beautifulsoup4/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/cheetah/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/cheetah/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/cherrypy/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/cherrypy/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/cmd2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/cmd2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/cov-core/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/cov-core/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/d2to1/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/d2to1/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/django-appconf/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/django-appconf/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/filechunkio/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/filechunkio/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/formencode/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/formencode/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/httplib2/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/httplib2/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/iso8601/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/iso8601/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/jsonpatch/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/jsonpatch/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/jsonpointer/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/jsonpointer/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/jsonschema/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/jsonschema/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/ldtp/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/ldtp/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/lesscpy/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/lesscpy/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/librabbitmq/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/librabbitmq/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/lockfile/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/lockfile/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/markdown/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/markdown/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/markupsafe/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/markupsafe/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/mock/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/mock/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/nose-cover3/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/nose-cover3/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/passlib/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/passlib/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/paste.deploy/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/paste.deploy/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/paste/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/paste/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/ply/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/ply/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/prettytable/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/prettytable/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/pyasn1-modules/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pyasn1-modules/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/pyasn1/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pyasn1/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/pycountry/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pycountry/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/pydns/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pydns/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/pygments/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pygments/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/pylint/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pylint/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -17,37 +17,33 @@
 # information: Portions Copyright [yyyy] [name of copyright owner]
 #
 # CDDL HEADER END
+#
 
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= NO_ARCH
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pylint
 COMPONENT_VERSION=	1.4.3
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=		\
 	sha256:1dce8c143a5aa15e0638887c2b395e2e823223c63ebaf8d5f432a99e44b29f60
 COMPONENT_ARCHIVE_URL=	$(call pypi_url)
 COMPONENT_PROJECT_URL=  https://bitbucket.org/logilab/pylint
-COMPONENT_BUGDB=	utility/pylint
 
 TPNO=			22903
 
 # Since Pylint 1.4, it only supports Python 2.7+ and Python 3.3+.
 PYTHON_VERSIONS=	2.7
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/setup.py.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= setup.py
+include $(WS_MAKE_RULES)/common.mk
 
 # There are several pylint documentation files that setup.py isn't installing
 # but are present in the pylint package on other distributions. Copy them into
 # the proto area "manually", so they can be included in the package.
-PDOC =			$(PROTO_DIR)/usr/share/doc
-PDOC_PYLINT =		$(PDOC)/pylint
+PDOC_PYLINT =		$(PROTOUSRSHAREDOCDIR)/pylint
 PDOC_PYLINT_EXAMPLES =	$(PDOC_PYLINT)/examples
 
 COMPONENT_POST_INSTALL_ACTION += \
@@ -82,12 +78,8 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-# common targets
-
-build:		$(BUILD_NO_ARCH)
-
-install:	$(INSTALL_NO_ARCH)
-	$(PYTHON.2.7.32) -m py_compile $(PROTO_DIR)/usr/lib/python2.7/vendor-packages/pylint/testutils.py
+COMPONENT_POST_INSTALL_ACTION += \
+	$(PYTHON.2.7.32) -m py_compile $(PROTOUSRLIBDIR)/python2.7/vendor-packages/pylint/testutils.py
 
 # The tests are run using python 2.7 only and require that
 # the python-27 package is installed (does not have to be the default python). 
@@ -118,10 +110,6 @@
 COMPONENT_SYSTEM_TEST_CMD = /usr/bin/pytest-$(PYTHON_VERSION)
 COMPONENT_SYSTEM_TEST_ARGS =
 
-test:		$(TEST_NO_ARCH)
-
-system-test:    $(SYSTEM_TEST_NO_ARCH)
-
 REQUIRED_PACKAGES += library/python/logilab-common-27
 REQUIRED_PACKAGES += library/python/astroid-27
 REQUIRED_PACKAGES += library/python/six-27
--- a/components/python/pyparsing/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pyparsing/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/pyrabbit/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pyrabbit/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/pytest-capturelog/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pytest-capturelog/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/pytest-codecheckers/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pytest-codecheckers/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/pytest-cov/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/pytest-cov/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/python-ldap/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/python-ldap/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/python27/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/python27/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,9 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
-
 #
 include ../../../make-rules/shared-macros.mk
 
@@ -205,6 +206,5 @@
 REQUIRED_PACKAGES += runtime/tk-8
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
--- a/components/python/python34/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/python34/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,7 +22,6 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		Python
@@ -208,6 +207,5 @@
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += runtime/tcl-8
 REQUIRED_PACKAGES += runtime/tk-8
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
--- a/components/python/python35/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/python35/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,7 +22,6 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		Python
@@ -211,6 +210,5 @@
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += runtime/tcl-8
 REQUIRED_PACKAGES += runtime/tk-8
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
--- a/components/python/repoze.lru/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/repoze.lru/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/routes/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/routes/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/setuptools-git/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/setuptools-git/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/setuptools/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/setuptools/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/sqlalchemy-migrate/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/sqlalchemy-migrate/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/suds/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/suds/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/tempita/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/tempita/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/waitress/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/waitress/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/warlock/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/warlock/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/webob/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/webob/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/python/webtest/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/python/webtest/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/quagga/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/quagga/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,17 +20,15 @@
 #
 
 #
-# Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		quagga
 COMPONENT_VERSION=	0.99.19
 IPS_COMPONENT_VERSION=	$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.quagga.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:bc5052d285af6e7aac42984741e74261637c57c4a02032bf05de7a5ea3a1afe0
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
@@ -49,22 +47,20 @@
 
 studio_OPT = -xO3
 
-LDFLAGS +=-lumem
+LDFLAGS += -lumem
 CFGLOCALSTATEDIR=/system/volatile/quagga
 CFGSYSCONFDIR=  $(ETCDIR)/quagga
 
-CFLAGS += -xspace -Xa
-CFLAGS += -g -xdebugformat=dwarf -O
-CFLAGS += -errtags=yes -xc99=%all
-CFLAGS += -erroff=E_TRAILING_COMMA_IN_ENUM
-CFLAGS += -erroff=E_STATEMENT_NOT_REACHED
-CFLAGS += -erroff=E_EMPTY_TRANSLATION_UNIT
+CFLAGS.studio += -xspace -Xa
+CFLAGS.studio += -g -xdebugformat=dwarf -O
+CFLAGS.studio += -errtags=yes -xc99=%all
+CFLAGS.studio += -erroff=E_TRAILING_COMMA_IN_ENUM
+CFLAGS.studio += -erroff=E_STATEMENT_NOT_REACHED
+CFLAGS.studio += -erroff=E_EMPTY_TRANSLATION_UNIT
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS +=	--with-cflags="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	--enable-opaque-lsa
 CONFIGURE_OPTIONS +=	--localstatedir=$(CFGLOCALSTATEDIR)
 CONFIGURE_OPTIONS +=	--sysconfdir=$(CFGSYSCONFDIR)
@@ -79,17 +75,7 @@
 CONFIGURE_OPTIONS +=	--enable-group=root
 CONFIGURE_OPTIONS +=	--enable-solaris
 
-configure:	$(CONFIGURE_32)
-
-build:		$(BUILD_32)
-install:	$(INSTALL_32)
-test:	$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/network
--- a/components/quilt/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/quilt/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,26 +22,22 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
-PATH = /usr/gnu/bin:/usr/bin
+PATH = $(GNUBIN):$(USRBINDIR)
 
 COMPONENT_NAME=		quilt
 COMPONENT_VERSION=	0.64
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://savannah.nongnu.org/projects/quilt/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:c4bfd3282214a288e8d3e921ae4d52e73e24c4fead72b5446752adee99a7affd
 COMPONENT_ARCHIVE_URL=	http://download.savannah.gnu.org/releases/quilt/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/quilt
 
 TPNO=			21555
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
     ($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -55,23 +51,23 @@
 # generated README and man pages.
 COMPONENT_BUILD_ARGS+=	--no-print-directory
 
-CONFIGURE_OPTIONS += --with-column=/usr/bin/column
-CONFIGURE_OPTIONS += --with-cp=/usr/gnu/bin/cp
-CONFIGURE_OPTIONS += --with-date=/usr/gnu/bin/date
-CONFIGURE_OPTIONS += --with-getopt=/usr/gnu/bin/getopt
-CONFIGURE_OPTIONS += --with-grep=/usr/gnu/bin/grep
-CONFIGURE_OPTIONS += --with-tail=/usr/gnu/bin/tail
-CONFIGURE_OPTIONS += --with-tr=/usr/gnu/bin/tr
-CONFIGURE_OPTIONS += --with-sed=/usr/gnu/bin/sed
-CONFIGURE_OPTIONS += --with-diff=/usr/gnu/bin/diff
-CONFIGURE_OPTIONS += --with-find=/usr/gnu/bin/find
-CONFIGURE_OPTIONS += --with-patch=/usr/gnu/bin/patch
-CONFIGURE_OPTIONS += --with-perl=/usr/perl5/$(PERL_VERSION)/bin/perl
-CONFIGURE_OPTIONS += --with-pod2man=/usr/perl5/$(PERL_VERSION)/bin/pod2man
-CONFIGURE_OPTIONS += --with-xgettext=/usr/bin/gxgettext
-CONFIGURE_OPTIONS += --with-msgfmt=/usr/bin/gmsgfmt
+PERLBINDIR= $(USRDIR)/perl5/$(PERL_VERSION)/bin
 
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
+CONFIGURE_OPTIONS += --with-column=$(USRBINDIR)/column
+CONFIGURE_OPTIONS += --with-cp=$(GNUBIN)/cp
+CONFIGURE_OPTIONS += --with-date=$(GNUBIN)/date
+CONFIGURE_OPTIONS += --with-getopt=$(GNUBIN)/getopt
+CONFIGURE_OPTIONS += --with-grep=$(GNUBIN)/grep
+CONFIGURE_OPTIONS += --with-tail=$(GNUBIN)/tail
+CONFIGURE_OPTIONS += --with-tr=$(GNUBIN)/tr
+CONFIGURE_OPTIONS += --with-sed=$(GNUBIN)/sed
+CONFIGURE_OPTIONS += --with-diff=$(GNUBIN)/diff
+CONFIGURE_OPTIONS += --with-find=$(GNUBIN)/find
+CONFIGURE_OPTIONS += --with-patch=$(GNUBIN)/patch
+CONFIGURE_OPTIONS += --with-perl=$(PERLBINDIR)/perl
+CONFIGURE_OPTIONS += --with-pod2man=$(PERLBINDIR)/pod2man
+CONFIGURE_OPTIONS += --with-xgettext=$(USRBINDIR)/gxgettext
+CONFIGURE_OPTIONS += --with-msgfmt=$(USRBINDIR)/gmsgfmt
 
 COMPONENT_INSTALL_ARGS +=	BUILD_ROOT=$(PROTO_DIR)
 
@@ -84,17 +80,6 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    configure $(SYSTEM_TEST_64)
-
-
 REQUIRED_PACKAGES += archiver/gnu-tar
 REQUIRED_PACKAGES += file/gnu-coreutils
 REQUIRED_PACKAGES += file/gnu-findutils
--- a/components/quilt/quilt.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/quilt/quilt.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -39,8 +39,8 @@
 file etc/bash_completion.d/quilt path=etc/bash/bash_completion.d/quilt
 file path=etc/quilt.quiltrc mode=0644 \
     original_name=SUNWquilt:etc/quilt.quiltrc overlay=allow preserve=true
-file usr/bin/$(MACH64)/guards path=usr/bin/guards
-file usr/bin/$(MACH64)/quilt path=usr/bin/quilt
+file path=usr/bin/guards
+file path=usr/bin/quilt
 file usr/share/doc/quilt/README \
     path=usr/share/doc/quilt-$(COMPONENT_VERSION)/README
 file usr/share/doc/quilt/README.MAIL \
--- a/components/r/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/r/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,14 +22,12 @@
 #
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		R
 COMPONENT_VERSION=	3.2.3
 COMPONENT_PROJECT_URL=	http://www.r-project.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:b93b7d878138279234160f007cb9b7f81b8a72c012a15566e9ec5395cfd9b6c1
 COMPONENT_ARCHIVE_URL=	http://cran.mtu.edu/src/base/R-3/$(COMPONENT_ARCHIVE)
@@ -37,9 +35,9 @@
 
 TPNO=			26540
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# Need to build the tests before using them.
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -52,8 +50,8 @@
 LDFLAGS += $(studio_PIC)
 LDFLAGS += $(LD_DEF_LIBS)
 
-STUDIO_LIBS_PATH =	/usr/lib/studio/64
-R_LIBS_PATH =		/usr/lib/$(MACH64)/R/lib
+STUDIO_LIBS_PATH =	$(USRLIBDIR)/studio/64
+R_LIBS_PATH =		$(USRLIBDIR64)/R/lib
 JAVA_LIBS_PATH =	$(JAVA8_HOME)/jre/lib/$(MACH64)/server
 
 LDFLAGS += -L$(STUDIO_LIBS_PATH) -R$(STUDIO_LIBS_PATH) \
@@ -62,23 +60,31 @@
 # Augment the PATH and set CC/CXX/F95 such that the build environment doesn't
 # leak into usr/lib/64/etc/Makeconf and force consumers to have a setup like
 # our build environment to build R modules.
-export PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+export PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 CC =		cc
 CXX =		CC
 F95 =		f95
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
-export PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+export PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 endif
 
 
 CONFIGURE_ENV += F77="$(F95) $(CC_BITS)"
 CONFIGURE_ENV += FC="$(F95) $(CC_BITS)"
 
-CONFIGURE_ENV += CPICFLAGS="$(studio_PIC)"
-CONFIGURE_ENV += CFLAGS="-xO3 -xc99 -xlibmieee $(CC_BITS)"
-# Needed to successfully compile R packages using C++ code.
-CONFIGURE_ENV += CXX="$(CXX) -std=c++11"
+# For now, R is built with a very specific set of optimization flags to match
+# Oracle-provided builds.  These should be re-evaluated when upgrading to
+# Studio 12.5 or later or when next upgrading R.
+studio_OPT= -xO3
+studio_XBITS=
+studio_XREGS=
+studio_IROPTS=
+studio_C99MODE= $(studio_C99_ENABLE)
+studio_ALIGN=
+studio_MT=
 
+CFLAGS.studio += -xlibmieee
+CXXFLAGS += -std=c++11
 # We (the Userland) team don't need -D__MATHERR_RENAME_EXCEPTION for the
 # creation of the R packages we provide in Solaris. It would be needed by
 # our customers that try to install R packages that use C++. And they would
@@ -87,13 +93,15 @@
 # code is compiled with "-std=c++11". When that version of the Studio
 # compilers is released, we should encourage customers to install it, but
 # for those still using Studio 12.4, this definition will continue to be needed.
-CONFIGURE_ENV += CXXFLAGS="$(CC_BITS) -std=c++11 -D__MATHERR_RENAME_EXCEPTION"
+CXXFLAGS += -D__MATHERR_RENAME_EXCEPTION
+LDFLAGS += -L$(R_LIBS_PATH) -R$(R_LIBS_PATH)
+
+CONFIGURE_ENV += CPICFLAGS="$(studio_PIC)"
 CONFIGURE_ENV += FPICFLAGS="$(studio_PIC)"
-CONFIGURE_ENV += FFLAGS="-xO3 $(CC_BITS)"
-CONFIGURE_ENV += FCFLAGS="-xO3 $(CC_BITS)"
+CONFIGURE_ENV += FFLAGS="$(studio_OPT) $(CC_BITS)"
+CONFIGURE_ENV += FCFLAGS="$(studio_OPT) $(CC_BITS)"
 CONFIGURE_ENV += FCLIBS="-lsunperf -lfsu -lsunmath"
 CONFIGURE_ENV += FLIBS="-lsunperf -lfsu -lsunmath"
-CONFIGURE_ENV += LDFLAGS="$(LDFLAGS) -L$(R_LIBS_PATH) -R$(R_LIBS_PATH)"
 # Needed so that R packages using C++ code can link against the standard
 # C++ libraries.
 CONFIGURE_ENV += SHLIB_CXXLDFLAGS="-lCrunG3"
@@ -106,9 +114,7 @@
 # You need to define this option on SPARC, otherwise you will get quad
 # arithmetic on SPARC but not on x86.  Really makes some R functions run
 # very slow on SPARC (COR path).
-CONFIGURE_OPTIONS.i386 =
-CONFIGURE_OPTIONS.sparc =	--disable-long-double
-CONFIGURE_OPTIONS +=		$(CONFIGURE_OPTIONS.$(MACH))
+CONFIGURE_OPTIONS.sparc +=	--disable-long-double
 
 CONFIGURE_OPTIONS += --enable-R-shlib
 CONFIGURE_OPTIONS += --with-blas='-lsunperf'
@@ -139,30 +145,17 @@
 	'-e "/comparing.*reg-examples3.Rout/d" ' \
 	'-e "/^  comparing /p" '
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # Use the installed version of R, not the one in the build area.
 # These definitions override those found in .../test/Makefile.
-COMPONENT_SYSTEM_TEST_ARGS += R="LANGUAGE=en LC_ALL=C SRCDIR=$(BUILD_DIR_64)/tests R_DEFAULT_PACKAGES= /usr/bin/R --vanilla"
-COMPONENT_SYSTEM_TEST_ARGS += R2="R_DEFAULT_PACKAGES= /usr/bin/R --vanilla"
-COMPONENT_SYSTEM_TEST_ARGS += R3="/usr/bin/R CMD check"
-COMPONENT_SYSTEM_TEST_ARGS += RDIFF="/usr/bin/R CMD Rdiff"
-COMPONENT_SYSTEM_TEST_ARGS += RDCONV="LC_CTYPE=C /usr/bin/R CMD Rdconv"
+COMPONENT_SYSTEM_TEST_ARGS += R="LANGUAGE=en LC_ALL=C SRCDIR=$(BUILD_DIR_64)/tests R_DEFAULT_PACKAGES= $(USRBINDIR)/R --vanilla"
+COMPONENT_SYSTEM_TEST_ARGS += R2="R_DEFAULT_PACKAGES= $(USRBINDIR)/R --vanilla"
+COMPONENT_SYSTEM_TEST_ARGS += R3="$(USRBINDIR)/R CMD check"
+COMPONENT_SYSTEM_TEST_ARGS += RDIFF="$(USRBINDIR)/R CMD Rdiff"
+COMPONENT_SYSTEM_TEST_ARGS += RDCONV="LC_CTYPE=C $(USRBINDIR)/R CMD Rdconv"
 
 COMPONENT_TEST_ARGS =		-k -i
 COMPONENT_SYSTEM_TEST_ARGS +=	-k -i
 
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-# Need to build the tests before use them.
-system-test:	build $(SYSTEM_TEST_64)
-
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += image/library/libpng
 REQUIRED_PACKAGES += image/library/libtiff
@@ -174,7 +167,6 @@
 REQUIRED_PACKAGES += library/readline
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/bash
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/fortran-runtime
 REQUIRED_PACKAGES += system/library/iconv
 REQUIRED_PACKAGES += system/library/math
--- a/components/r/r.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/r/r.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,8 +36,8 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2015/216 value=PSARC/2015/541
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/R path=usr/bin/R
-file usr/bin/$(MACH64)/Rscript path=usr/bin/Rscript
+file path=usr/bin/R
+file path=usr/bin/Rscript
 file path=usr/lib/$(MACH64)/R/COPYING
 file path=usr/lib/$(MACH64)/R/SVN-REVISION
 file path=usr/lib/$(MACH64)/R/bin/BATCH
--- a/components/rabbitmq/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/rabbitmq/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,7 +22,7 @@
 #
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 PATH=/usr/gnu/bin:/usr/bin:/usr/sbin
@@ -30,8 +30,6 @@
 COMPONENT_NAME=		rabbitmq-server
 COMPONENT_VERSION=	3.5.6
 COMPONENT_PROJECT_URL=	http://www.rabbitmq.com/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:24be1433234112db391e0c5ef32bfb2ca111e51b2e57998cc0f3d97ba361671f
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)/releases/$(COMPONENT_NAME)/v$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
@@ -39,9 +37,8 @@
 
 TPNO=			25764
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+include $(WS_MAKE_RULES)/common.mk
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
@@ -60,15 +57,6 @@
 COMPONENT_TEST_CMD =		$(PYTHON)
 COMPONENT_TEST_TARGETS =	test.py $(TEST_32)
 
-# common targets
-build:		$(BUILD_32)
-
-install:	$(INSTALL_32)
-
-test:		$(TEST_32)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
 
 
--- a/components/rdiff-backup/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/rdiff-backup/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -17,44 +17,30 @@
 # information: Portions Copyright [yyyy] [name of copyright owner]
 #
 # CDDL HEADER END
+#
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		rdiff-backup
 COMPONENT_VERSION=	1.3.3
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:ee030ce638df0eb1047cf72578e0de15d9a3ee9ab24da2dc0023e2978be30c06
 COMPONENT_ARCHIVE_URL=	http://download.savannah.gnu.org/releases/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL=  http://www.nongnu.org/rdiff-backup/
-COMPONENT_BUGDB=	utility/rdiff-backup
 
 TPNO=			9055
 
 # Syntax issues: not Python 3 ready.
 PYTHON_VERSIONS=	$(PYTHON2_VERSIONS)
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/setup.py.mk
+BUILD_STYLE= setup.py
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-# common targets
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += library/librsync
-REQUIRED_PACKAGES += system/library
--- a/components/re2c/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/re2c/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,36 +18,31 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-COMPILER =		gcc
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		re2c
 COMPONENT_VERSION=	0.16
 COMPONENT_PROJECT_URL=	http://re2c.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:48c12564297641cceb5ff05aead57f28118db6277f31e2262437feba89069e84
 COMPONENT_ARCHIVE_URL=	https://github.com/skvadrik/$(COMPONENT_NAME)/releases/download/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/re2c
 
 TPNO =			27272
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
-export PATH=$(GCC_ROOT)/bin:/usr/gnu/bin:/usr/bin
+export PATH=$(GCC_ROOT)/bin:$(GNUBIN):$(USRBINDIR)
 
 # Needed to get the tests to run successfully.
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=	CXXFLAGS="$(CXXFLAGS)"
-
 # Needed for "gmake test" to work successfully.
 # If SHELLOPTS is exported (as it is by the userland makefiles),
 # then all shell options get exported to child invocations of bash,
@@ -56,20 +51,7 @@
 # diffs failing due to script tracing in output files.
 unexport SHELLOPTS
 
-COMPONENT_SYSTEM_TEST_ENV +=	RE2C_BIN=/usr/bin/re2c
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
+COMPONENT_SYSTEM_TEST_ENV +=	RE2C_BIN=$(USRBINDIR)/re2c
 
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:	build $(SYSTEM_TEST_64)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
--- a/components/re2c/re2c.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/re2c/re2c.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,6 +35,6 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2015/229
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/re2c path=usr/bin/re2c
+file path=usr/bin/re2c
 file path=usr/share/man/man1/re2c.1
 license re2c.license license=PublicDomain
--- a/components/readline/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/readline/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,19 +20,16 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		readline
 COMPONENT_VERSION=	6.3
 COMPONENT_PROJECT_URL=	http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/readline/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/readline
 
 TPNO_V6=		22356
@@ -49,22 +46,19 @@
 COMPONENT_ARCHIVE_URL_1 = http://ftp.gnu.org/gnu/readline/$(COMPONENT_ARCHIVE_1)
 SOURCE_DIR_1 =          $(COMPONENT_DIR)/$(COMPONENT_SRC_1)
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+BUILD_TARGET=
+INSTALL_TARGET=
+TEST_TARGET= install $(TEST_32_and_64)
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-LINT_FLAGS += -I$(PROTO_DIR)/usr/include
-
-CC += $(CC_BITS)
+LINT_FLAGS += -I$(PROTOUSRINCDIR)
 
 # readline likes to use ld directly and this is the easiest
 # way to get it to add -lc
 LDFLAGS += -lc
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=		--enable-shared
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=		LDFLAGS="$(LDFLAGS)"
 
 # Build the readline examples as well.
 COMPONENT_BUILD_TARGETS =	everything
@@ -113,17 +107,6 @@
 $(BUILD_DIR_32)/.installed:     $(BUILD_OLD_DIR_32)/.installed
 $(BUILD_DIR_64)/.installed:     $(BUILD_OLD_DIR_64)/.installed
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
 build:		$(BUILD_32_and_64)
 
 install:	$(INSTALL_32_and_64)
-
-test:		install $(TEST_32_and_64)
-
-system-test:    configure $(SYSTEM_TEST_32_and_64)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/rpm2cpio/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/rpm2cpio/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,9 +20,9 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= NO_ARCH
 include ../../make-rules/shared-macros.mk
 
 # The version of rpm2cpio.pl delivered in Userland does not seem to be
@@ -39,17 +39,15 @@
 
 TPNO=			17824
 
-include $(WS_MAKE_RULES)/prep.mk
+BUILD_STYLE= archive
+COMMON_TARGETS= no
+include $(WS_MAKE_RULES)/common.mk
 
 # Do not clean the sources (set in prep.mk)
 #
 CLEAN_PATHS=
 
-include $(WS_MAKE_RULES)/ips.mk
-
-CLEAN_PATHS+= $(BUILD_DIR)
-
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+CLEAN_PATHS += $(BUILD_DIR)
 
 # Common targets
 #
--- a/components/rrdtool/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/rrdtool/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,87 +22,68 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         rrdtool
 COMPONENT_VERSION=      1.4.9
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= sha256:3e2826e0d60aaf85313da35b3c0d3a926748fe482b4ada766a325a83b60125cc
 COMPONENT_ARCHIVE_URL=  http://oss.oetiker.ch/rrdtool/pub/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL=  http://oss.oetiker.ch/rrdtool/
-COMPONENT_BUGDB=        utility/rrdtool
 TPNO=                   21430 
 
 PYTHON_VERSION=         2.7
 PYTHON_VERSIONS=        2.7
 
-include ../../make-rules/prep.mk
-include ../../make-rules/configure.mk
-include ../../make-rules/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include ../../make-rules/common.mk
 
-PATH=$(dir $(CC)):/usr/bin:/usr/sbin:/usr/gnu/bin
+PATH=$(dir $(CC)):$(USRBINDIR):$(USRSBINDIR):$(GNUBIN)
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
 COMPONENT_PREP_ACTION = ( cd $(@D); autoconf -f)
+PERLVERDIR=	$(USRDIR)/perl5/$(PERL_VERSION)
+PERLBINDIR=	$(PERLVERDIR)/bin
+PERLLIBDIR=	$(PERLVERDIR)/lib
 
 CONFIGURE_OPTIONS  += --enable-python
 CONFIGURE_OPTIONS  += --disable-ruby
 CONFIGURE_OPTIONS  += --enable-tcl
-CONFIGURE_OPTIONS  += --enable-static=no
+CONFIGURE_OPTIONS  += --disable-static
 CONFIGURE_OPTIONS  +=   CC="$(CC) $(CC_BITS)" 
-CONFIGURE_OPTIONS  +=   CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=   LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS  +=   POD2MAN=/usr/perl5/$(PERL_VERSION)/bin/pod2man
-CONFIGURE_OPTIONS  +=   POD2HTML=/usr/perl5/$(PERL_VERSION)/bin/pod2html
+CONFIGURE_OPTIONS  +=   POD2MAN=$(PERLBINDIR)/pod2man
+CONFIGURE_OPTIONS  +=   POD2HTML=$(PERLBINDIR)/pod2html
 CONFIGURE_OPTIONS  +=   am_cv_python_pythondir=$(PYTHON_VENDOR_PACKAGES)
 CONFIGURE_OPTIONS  +=   am_cv_python_pyexecdir=$(PYTHON_VENDOR_PACKAGES)
 CONFIGURE_OPTIONS  +=   PYTHON=$(PYTHON.$(PYTHON_VERSION).$(BITS))
 
-$(CONFIGURE_64): CONFIGURE_OPTIONS +=   LUARRDLIBDIR=64
-
-$(CONFIGURE_32): CONFIGURE_OPTIONS += --disable-perl 
-$(CONFIGURE_64): CONFIGURE_OPTIONS += --enable-perl 
-$(CONFIGURE_64): CONFIGURE_OPTIONS +=   PERL=$(PERL)
-$(CONFIGURE_64): CONFIGURE_OPTIONS +=   PERLCC="\"$(CC) $(CC_BITS)\""
-$(CONFIGURE_64): CONFIGURE_OPTIONS +=   PERLCCFLAGS="\"$(CFLAGS)\""
-$(CONFIGURE_64): CONFIGURE_OPTIONS +=   PERLLD="\"$(CC) $(CC_BITS)\""
-$(CONFIGURE_64): CONFIGURE_OPTIONS +=   PERLLIB=/usr/perl5/$(PERL_VERSION)/lib
-$(CONFIGURE_64): CONFIGURE_OPTIONS +=   PERLINSTALLMAN3DIR=$(USRSHAREMAN3DIR)
-$(CONFIGURE_64): CONFIGURE_OPTIONS +=   PERLINSTALLSITEMAN3DIR=$(USRSHAREMAN3DIR)
-$(CONFIGURE_64): CONFIGURE_OPTIONS +=   PERLINSTALLVENDORMAN3DIR=$(USRSHAREMAN3DIR)
+CONFIGURE_OPTIONS.32 += --disable-perl
+CONFIGURE_OPTIONS.64 += --enable-perl
+CONFIGURE_OPTIONS.64 += LUARRDLIBDIR=64
+CONFIGURE_OPTIONS.64 += PERL=$(PERLBINDIR)/perl
+CONFIGURE_OPTIONS.64 += PERLCC="\"$(CC) $(CC_BITS)\""
+CONFIGURE_OPTIONS.64 += PERLCCFLAGS="\"$(CFLAGS)\""
+CONFIGURE_OPTIONS.64 += PERLLD="\"$(CC) $(CC_BITS)\""
+CONFIGURE_OPTIONS.64 += PERLLIB=$(PERLLIBDIR)
+CONFIGURE_OPTIONS.64 += PERLINSTALLMAN3DIR=$(USRSHAREMAN3DIR)
+CONFIGURE_OPTIONS.64 += PERLINSTALLSITEMAN3DIR=$(USRSHAREMAN3DIR)
+CONFIGURE_OPTIONS.64 += PERLINSTALLVENDORMAN3DIR=$(USRSHAREMAN3DIR)
 
 PYTHON_ENV  =   CC="$(CC)"
 PYTHON_ENV +=   CFLAGS="$(CFLAGS)"
 COMPONENT_BUILD_ENV += $(PYTHON_ENV)
 COMPONENT_INSTALL_ENV += $(PYTHON_ENV)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 PKG_MACROS +=  PYVER=$(PYTHON_VERSION)
 PKG_MACROS +=  PYV=$(shell echo $(PYTHON_VERSION) | tr -d .)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-		
-BUILD_PKG_DEPENDENCIES =        $(BUILD_TOOLS)
-
 REQUIRED_PACKAGES += image/library/libpng
 REQUIRED_PACKAGES += library/desktop/cairo
 REQUIRED_PACKAGES += library/desktop/pango
 REQUIRED_PACKAGES += library/glib2
 REQUIRED_PACKAGES += library/libxml2
 REQUIRED_PACKAGES += runtime/lua
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += runtime/python-27
--- a/components/rrdtool/rrdtool.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/rrdtool/rrdtool.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,10 +36,10 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=LSARC/2008/129
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/rrdcached path=usr/bin/rrdcached
-file usr/bin/$(MACH64)/rrdcgi path=usr/bin/rrdcgi
-file usr/bin/$(MACH64)/rrdtool path=usr/bin/rrdtool
-file usr/bin/$(MACH64)/rrdupdate path=usr/bin/rrdupdate
+file path=usr/bin/rrdcached
+file path=usr/bin/rrdcgi
+file path=usr/bin/rrdtool
+file path=usr/bin/rrdupdate
 file path=usr/include/rrd.h
 file path=usr/include/rrd_client.h
 file path=usr/include/rrd_format.h
--- a/components/rsync/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/rsync/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,46 +20,22 @@
 #
 
 #
-# Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		rsync
 COMPONENT_VERSION=	3.1.1
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://rsync.samba.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:7de4364fcf5fe42f3bdb514417f1c40d10bbca896abe7e7f2c581c6ea08a2621
 COMPONENT_ARCHIVE_URL=	http://rsync.samba.org/ftp/rsync/src/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/rsync
 
 TPNO=			21574
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=		SHELL_PATH=/bin/sh
-CONFIGURE_OPTIONS  +=		--bindir=$(CONFIGURE_BINDIR.32)
+CONFIGURE_OPTIONS  +=		SHELL_PATH=$(BINDIR)/sh
 CONFIGURE_OPTIONS  +=		--with-included-popt
 CONFIGURE_OPTIONS  +=		--enable-xattr-support
-
-# Enable ASLR for this component
-ASLR_MODE =	$(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/rsyslog/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/rsyslog/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,17 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		rsyslog
 COMPONENT_VERSION=	8.4.2
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.rsyslog.com/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	sha256:71c3c6dac74fba2692f9fefb092cd3d22e2bd71eb702e0da06648de51b8b7b9a
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)files/download/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	service/rsyslog
@@ -42,9 +43,11 @@
 
 UNPACK_ARGS_DOC=		-r $(COMPONENT_SRC_DOC)
 
-include ../../make-rules/prep.mk
-include ../../make-rules/configure.mk
-include ../../make-rules/ips.mk
+# There are tests, but gmake test is currently broken. 
+# It was working in the previous version, but not sure why
+# it breaks now. Leaving it at no tests for now.
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Automake fix, regenerates configure file to get rid of the
 # automake 'probably too old' error. This fixes gmake test
@@ -64,10 +67,8 @@
 COMPONENT_TEST_TRANSFORMS += '-e "/\(usr\).*/d" '
 COMPONENT_TEST_TRANSFORMS += '-e "/\(SOURCE_DIR\).*/d" '
 
-COMPILER =	gcc
-
 # This is needed for things to be built correctly.
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS) -std=c99"
+CFLAGS += -std=c99
 
 # A normal 64-bit build would result in /usr/lib/$(MACH64)/rsyslog but since we
 # have a self-contained eco-system, simplify things for customers and just use
@@ -79,7 +80,7 @@
 CONFIGURE_OPTIONS +=    --enable-gssapi_krb5
 CONFIGURE_OPTIONS +=    --enable-gnutls
 CONFIGURE_OPTIONS +=    --disable-klog
-CONFIGURE_OPTIONS +=    --sbindir=/usr/lib/rsyslog
+CONFIGURE_OPTIONS +=    --sbindir=$(USRLIBDIR)/rsyslog
 
 # libgcrypt is not approved.
 CONFIGURE_OPTIONS +=	--disable-libgcrypt
@@ -89,34 +90,19 @@
 # content. Also, building them from here requires python-docutils.
 CONFIGURE_OPTIONS +=	--disable-generate-man-pages
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # common targets
-configure:	$(CONFIGURE_64)
+PROTODOCDIR=	$(PROTOUSRSHAREDOCDIR)/$(COMPONENT_NAME)
+# Docs to install are the tree under docs/build with some exceptions.
 
-build:		$(BUILD_64)
-
-PROTODOCDIR=	$(PROTOUSRSHAREDIR)/doc/$(COMPONENT_NAME)
-# Docs to install are the tree under docs/build with some exceptions.
-install:	$(INSTALL_64)
-	$(MKDIR) $(PROTODOCDIR)
+COMPONENT_POST_INSTALL_ACTION += \
+	($(MKDIR) $(PROTODOCDIR) ; \
 	cd $(COMPONENT_SRC_DOC)/build ; \
 	find . \(    -name '_sources' \
 	          -o -name '.doctrees' \
 	          -o -name '.buildinfo' \
 	          -o -name 'objects.inv' \) \
 	     -prune -o -print0 \
-	| cpio -pd0u $(PROTODOCDIR)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-# There are tests, but gmake test is currently broken. 
-# It was working in the previous version, but not sure why
-# it breaks now. Leaving it at no tests for now.
-test:		$(NO_TESTS)
-
-PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
-PKG_PROTO_DIRS +=	$(COMPONENT_SRC)
+	| cpio -pd0u $(PROTODOCDIR))
 
 REQUIRED_PACKAGES += library/gnutls
 REQUIRED_PACKAGES += library/json-c
@@ -124,4 +110,3 @@
 REQUIRED_PACKAGES += library/liblogging
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/rtorrent/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/rtorrent/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,30 +20,25 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 # we really need to use studio, mostly because that's what
-# sigc++ uses, so we don't like that parfait is g++ in disguise
+# sigc++ uses, so we don't like that parfait is clang/llvm in disguise
 export PARFAIT_BUILD=no
-
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		rtorrent
 COMPONENT_VERSION=	0.8.2
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://libtorrent.rakshasa.no/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:76135a63869e43fa0392829bb45d94c0aa55e94350dddc272685ccfac1bbb2ed
 COMPONENT_ARCHIVE_URL=	http://libtorrent.rakshasa.no/downloads/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/rtorrent
 
 TPNO=			8824
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -67,31 +62,14 @@
 
 CXXFLAGS +=	-i
 CXXFLAGS +=	-template=no%extdef
-CXXFLAGS +=	$(studio_XREGS)
-CXXFLAGS +=	-I/usr/include/ncurses
+CXXFLAGS +=	-I$(USRINCDIR)/ncurses
 CONFIGURE_OPTIONS.64 +=         --srcdir=$(BUILD_DIR_64)
 CONFIGURE_OPTIONS +=		--disable-debug
-CONFIGURE_OPTIONS +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=		LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS +=		CXXFLAGS="$(CXXFLAGS)"
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+REQUIRED_PACKAGES += developer/build/automake-111
 REQUIRED_PACKAGES += library/c++/sigcpp
 REQUIRED_PACKAGES += library/libtorrent
 REQUIRED_PACKAGES += library/ncurses
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += web/curl
--- a/components/rtorrent/rtorrent.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/rtorrent/rtorrent.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -33,6 +33,6 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2009/336
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/rtorrent path=usr/bin/rtorrent
+file path=usr/bin/rtorrent
 file path=usr/share/man/man1/rtorrent.1
 license rtorrent.license license=GPLv2
--- a/components/ruby/facter/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ruby/facter/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/ruby/hiera/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ruby/hiera/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/ruby/mcollective/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ruby/mcollective/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/ruby/puppet-modules/oracle-solaris_providers/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ruby/puppet-modules/oracle-solaris_providers/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../../make-rules/shared-macros.mk
--- a/components/ruby/puppet-solaris/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ruby/puppet-solaris/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -27,6 +27,7 @@
 RUBY=/usr/ruby/$(RUBY_VERSION)/bin/ruby
 
 COMPONENT_NAME=		puppet-solaris
+COMPONENT_SRC=
 COMPONENT_VERSION=	$(PKG_SOLARIS_VERSION)
 COMPONENT_BUGDB=	utility/puppet
 
--- a/components/ruby/puppet/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ruby/puppet/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/ruby/ruby-21/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ruby/ruby-21/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,28 +20,22 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		ruby
 COMPONENT_VERSION=	2.1.6
 COMPONENT_PROJECT_URL=	http://www.ruby-lang.org/
-COMPONENT_SRC=	\
-	$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:1e1362ae7427c91fa53dc9c05aee4ee200e2d7d8970a891c5bd76bee28d28be4
 COMPONENT_ARCHIVE_URL=	\
 	http://cache.ruby-lang.org/pub/ruby/2.1/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/ruby
 
 TPNO=			22307
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/configure.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # COMPONENT_VERSION <major>.<minor>.<teeny>
 # is transformed into <major>.<minor> for RUBY_VER.
@@ -52,7 +46,7 @@
 # the library-compatible version
 RUBY_LIB_VER=2.1.0
 
-PROTORUBYDIR=$(PROTO_DIR)/usr/ruby/$(RUBY_VER)
+PROTORUBYDIR=$(PROTOUSRDIR)/ruby/$(RUBY_VER)
 PROTO_RBCONFIG_FILE=$(PROTORUBYDIR)/lib/ruby/$(RUBY_LIB_VER)/$(MACH64)-solaris$(SOLARIS_VERSION)/rbconfig.rb
 
 # these macros are used in the package manifest
@@ -112,13 +106,6 @@
 studio_XBITS.i386.64 += -D__amd64
 
 CONFIGURE_PREFIX =	$(USRDIR)/$(COMPONENT_NAME)/$(RUBY_VER)
-# change CONFIGURE_BINDIR.64 because this path will be embedded in
-# the header for ruby scripts; we are only building 64-bit,
-# so the real path for ruby will not have $(MACH64) in it
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_BINDIR.32)
-# not strictly needed, since ruby doesn't use sbin, but
-# change this as well, for consistency with BINDIR
-CONFIGURE_SBINDIR.64 =   $(CONFIGURE_SBINDIR.32)
 
 # we are building 64-bit, but most of the ruby libraries (*.rb files)
 # are non-bit-specfic text files, so don't put them under lib/$(MACH64).
@@ -136,10 +123,9 @@
 # problems with gems compiled with gcc.  Studio compiler doesn't 
 # report an error for __builtin_setjmp, but gcc would.
 CONFIGURE_OPTIONS +=	--with-setjmp-type=_setjmp
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	DTRACE="/usr/sbin/dtrace"
+CONFIGURE_OPTIONS +=	DTRACE="$(USRSBINDIR)/dtrace"
 # ensure we use the 64-bit configuration file, not the 32-bit one
-CONFIGURE_OPTIONS +=	--with-tclConfig-file=/usr/lib/64/tclConfig.sh
+CONFIGURE_OPTIONS +=	--with-tclConfig-file=$(USRLIBDIR)/64/tclConfig.sh
 
 # fiddle.so (ext/fiddle) links to libffi, which does not define
 # ffi_raw_size(), although its prototype is in libffi's 
@@ -197,16 +183,6 @@
 # appropriate to run at top level
 $(SKIP_TEST_AT_TOP_LEVEL)
 
-# common targets
-
-build:		$(BUILD_64)
-
-install:	build $(INSTALL_64)
-
-test:	$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/database/gdbm
 REQUIRED_PACKAGES += library/libffi
 REQUIRED_PACKAGES += library/ncurses
@@ -216,6 +192,5 @@
 REQUIRED_PACKAGES += runtime/tcl-8
 REQUIRED_PACKAGES += runtime/tk-8
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
--- a/components/ruby/ruby-common/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ruby/ruby-common/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
@@ -25,6 +27,7 @@
 COMPONENT_NAME=		ruby-meta
 # the latest version of Ruby
 COMPONENT_VERSION=	2.1
+COMPONENT_SRC=
 COMPONENT_PROJECT_URL=	http://www.ruby-lang.org/
 COMPONENT_BUGDB=	utility/ruby
 
--- a/components/ruby/stomp/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/ruby/stomp/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
--- a/components/samba/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/samba/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -67,8 +67,6 @@
 
 # directory to search for "include" in samba.p5m
 PKG_OPTIONS += -I $(COMPONENT_DIR)
-# Set the pkg... path to search files in ./Solaris/ dir (mainly the SMF manifests are there)
-PKG_PROTO_DIRS += $(COMPONENT_DIR)
 
 # Oracle HSM is not supported on 12.0 yet but the libsam.so target should rather be commented out than removed
 # (note) change compiler bitness here when Samba became 64bits
@@ -125,7 +123,7 @@
 $(BUILD_DIR_SMB)/.configured:	LDFLAGS +=	$(LIBS4SMBD)
 
 ASLR_MODE =	$(ASLR_ENABLE)
-LD_OPTIONS += 	-B direct
+LD_OPTIONS += 	$(LD_B_DIRECT)
 
 # --enable-fhs should not be on
 CONFIGURE_OPTIONS =	--exec-prefix=/usr
--- a/components/sane-backends/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sane-backends/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		sane-backends
 COMPONENT_VERSION=	1.0.19
 COMPONENT_PROJECT_URL=	http://www.sane-project.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:13271a7eb4dc4aa6072162abbd78848e4faad32c468b9b44e7f95cde96a4e17e
 COMPONENT_ARCHIVE_URL=	ftp://ftp2.sane-project.org/pub/sane/old-versions/sane-backends-1.0.19/$(COMPONENT_ARCHIVE)
@@ -34,33 +35,27 @@
 
 TPNO=			8865
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
+
+# Fix 64-bit linking via compiler.
+LDFLAGS += $(CC_BITS)
 
 CONFIGURE_OPTIONS +=	--disable-locking
-CONFIGURE_OPTIONS +=	--sysconfdir=/etc
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)" 
+CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)
 
-configure:	$(CONFIGURE_32_and_64)
+# We only deliver 64-bit binaries and in /usr/bin, /usr/sbin.
+COMPONENT_POST_INSTALL_ACTION.32 += \
+	$(GSED) -i \
+		-e 's|$(USRBINDIR)/$(MACH32)|$(USRBINDIR)|' \
+		-e 's|$(USRSBINDIR)/$(MACH32)|$(USRSBINDIR)|' \
+		$(PROTOUSRBINDIR)/$(MACH32)/sane-config;
 
 # Enable ASLR for this component
 ASLR_MODE = $(ASLR_ENABLE)
 
-COMPONENT_BUILD_ARGS += LDFLAGS="$(CC_BITS)"
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += image/library/libtiff
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/library/usb/libusb
--- a/components/sane-backends/patches/backends.patch	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sane-backends/patches/backends.patch	Wed Mar 30 13:33:31 2016 -0700
@@ -1,15 +1,3 @@
---- sane-backends-1.0.19/configure	Sun Feb 10 15:02:31 2008
-+++ sane-backends-1.0.19/configure	Mon May 30 19:25:06 2011
-@@ -3951,8 +3951,8 @@
- 
- 
- 
-+MAKEDEPEND=no
- 
--
- if test "$MAKEDEPEND" != "no"; then
-   DEPEND_RECURSIVE="depend-recursive"
- fi
 --- sane-backends-1.0.19/backend/plustek-usb.h	Mon Dec 17 06:28:13 2007
 +++ sane-backends-1.0.19/backend/plustek-usb.h	Mon May 30 19:25:08 2011
 @@ -130,22 +130,28 @@
--- a/components/sane-backends/sane-backends.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sane-backends/sane-backends.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -144,10 +144,11 @@
     original_name=SUNWsane-backend:etc/sane.d/umax1220u.conf preserve=renamenew
 file path=etc/sane.d/umax_pp.conf owner=root group=bin mode=0644 \
     original_name=SUNWsane-backend:etc/sane.d/umax_pp.conf preserve=renamenew
-file path=usr/bin/$(MACH64)/sane-config
-file path=usr/bin/sane-config
-file usr/bin/$(MACH64)/sane-find-scanner path=usr/bin/sane-find-scanner
-file usr/bin/$(MACH64)/scanimage path=usr/bin/scanimage
+# sane-config contains embedded paths, so swap these around.
+file usr/bin/sane-config path=usr/bin/$(MACH64)/sane-config
+file usr/bin/$(MACH32)/sane-config path=usr/bin/sane-config
+file path=usr/bin/sane-find-scanner
+file path=usr/bin/scanimage
 file path=usr/include/sane/sane.h
 file path=usr/include/sane/saneopts.h
 link path=usr/lib/$(MACH64)/libsane.so target=libsane.so.$(COMPONENT_VERSION)
--- a/components/sane-frontends/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sane-frontends/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,16 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		sane-frontends
 COMPONENT_VERSION=	1.0.14
 COMPONENT_PROJECT_URL=	http://www.sane-project.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:e7839dac1b70b5bb39124615aba8a136f5275d0e78bafd3d52ed76964ffea4a9
 COMPONENT_ARCHIVE_URL=	ftp://ftp2.sane-project.org/pub/sane/sane-frontends-1.0.14/$(COMPONENT_ARCHIVE)
@@ -34,36 +35,23 @@
 
 TPNO=			8865
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-CONFIGURE_OPTIONS +=	--with-sane-prefix=/usr
+LDFLAGS += -lsane
+
+CONFIGURE_OPTIONS +=	--with-sane-prefix=$(USRDIR)
 CONFIGURE_OPTIONS +=	--disable-sanetest
 CONFIGURE_OPTIONS +=	--disable-gtktest
 CONFIGURE_OPTIONS +=	--disable-gimptest
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	LDFLAGS="-lsane -m64"
 CONFIGURE_OPTIONS +=	--disable-gimp
 
-configure:	$(CONFIGURE_64)
-
 # Enable ASLR for this component
 ASLR_MODE = $(ASLR_ENABLE)
 
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += image/scanner/xsane/sane-backends
 REQUIRED_PACKAGES += library/desktop/gtk2
 REQUIRED_PACKAGES += library/glib2
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
 REQUIRED_PACKAGES += x11/library/libxcursor
--- a/components/sane-frontends/sane-frontends.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sane-frontends/sane-frontends.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -33,6 +33,6 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/170
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/xscanimage path=usr/bin/xscanimage
+file path=usr/bin/xscanimage
 file path=usr/share/man/man1/xscanimage.1
 license sane-frontend.license license=GPLv2
--- a/components/scons/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/scons/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,19 +18,19 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= NO_ARCH
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		scons
 COMPONENT_VERSION=	2.3.4
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.scons.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:4b57d72066fed3b6ff65a7dd9f73633c9b1c09f87520e9b3aae84b3e4864b441
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/$(COMPONENT_NAME)/files/$(COMPONENT_NAME)/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)/download
-COMPONENT_BUGDB=	utility/scons
 
 TPNO=			22207
 
@@ -39,9 +39,9 @@
 # this time.
 PYTHON_VERSIONS =	2.7
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/setup.py.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= setup.py
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # pkgdepend doesn't like the first line of a Python script to be:
 # '#!/usr/bin/env python' so turn it into '#!/usr/bin/python$(PYTHON_VERSION)'
@@ -57,13 +57,5 @@
 
 PKG_PROTO_DIRS +=	$(PROTO_DIR)/$(PYTHON_VENDOR_PACKAGES)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-build:		$(BUILD_NO_ARCH)
-
-install:	$(INSTALL_NO_ARCH)
-
-test:		$(NO_TESTS)
-
 REQUIRED_PACKAGES += library/python/setuptools-27
 REQUIRED_PACKAGES += runtime/python-27
--- a/components/screen/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/screen/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,52 +18,34 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		screen
 COMPONENT_VERSION=	4.3.1
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/screen/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/screen/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/screen
 
 TPNO=			23486	
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/gnu-component.mk
+
+# Fix 64-bit linking via compiler.
+LDFLAGS += $(CC_BITS)
 
 CONFIGURE_OPTIONS +=	--enable-colors256
-CONFIGURE_OPTIONS +=	--with-sys-screenrc=/etc/screenrc
+CONFIGURE_OPTIONS +=	--with-sys-screenrc=$(ETCDIR)/screenrc
 CONFIGURE_OPTIONS +=	--disable-socket-dir
 CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-# We need to add CC_BITS or we get ld: fatal: wrong ELF class: ELFCLASS64
-COMPONENT_BUILD_ARGS += LDFLAGS="$(CC_BITS)"
 
-PROTOTERMINFODIR=$(PROTOUSRSHAREDIR)/lib/terminfo
+PROTOTERMINFODIR=$(PROTOUSRSHARELIBDIR)/terminfo
 
 $(PROTOTERMINFODIR):
 	$(MKDIR) $@
 
 $(INSTALL_64):	$(PROTOTERMINFODIR)
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/sed/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sed/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,29 +20,25 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		sed
 COMPONENT_VERSION=	4.2.2
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/sed/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:fea0a94d4b605894f3e2d5572e3f96e4413bcad3a085aae7367c2cf07908b2ff
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/pub/gnu/sed/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gnu-sed
 
 TPNO=			12595
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
+
+CONFIGURE_BINDIR.64= $(GNUBIN)
 
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
 
 COMPONENT_TEST_DIR =		$(@D)/testsuite
 
@@ -64,21 +60,6 @@
 	($(GSED) -i -e "s|../sed/sed|/usr/gnu/bin/sed|" \
                 $(SOURCE_DIR)/testsuite/eval.sed) ;
 
-COMPONENT_SYSTEM_TEST_ENV +=	SED=/usr/gnu/bin/sed
+COMPONENT_SYSTEM_TEST_ENV +=	SED=$(GNUBIN)/sed
 COMPONENT_SYSTEM_TEST_ENV +=	PATH="$(GNUBIN):$(PATH)"
 COMPONENT_SYSTEM_TEST_DIR =	$(@D)/testsuite
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    configure $(SYSTEM_TEST_64)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/sed/sed.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sed/sed.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
@@ -38,7 +38,7 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2008/254 value=PSARC/2013/041
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 link path=usr/bin/gsed target=../gnu/bin/sed facet.compat.gnulinks=true
-file usr/bin/$(MACH64)/sed path=usr/gnu/bin/sed
+file path=usr/gnu/bin/sed
 file usr/share/man/man1/sed.1 path=usr/gnu/share/man/man1/sed.1
 file path=usr/share/info/sed.info
 file path=usr/share/locale/af/LC_MESSAGES/sed.mo
--- a/components/sendmail/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sendmail/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,8 +18,11 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		sendmail
@@ -31,13 +34,9 @@
     sha256:24f94b5fd76705f15897a78932a5f2439a32b1a2fdc35769bb1a5f5d9b4db439
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
 COMPONENT_SIG_URL=	$(COMPONENT_ARCHIVE_URL).sig
-COMPONENT_BUGDB=	utility/sendmail
 
 TPNO=			23958
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-
 # Mostly but not completely migrated from ON in S12.
 ifeq ($(BUILD_TYPE), evaluation)
 BUILD_32_and_64=
@@ -45,15 +44,15 @@
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+BUILD_STYLE= justmake
+INSTALL_TARGET=
+include $(WS_MAKE_RULES)/common.mk
 
 # Although we build 32_and_64, everything except libmilter just wants 64,
 # which is why the macros just below only have values for 64.  libmilter
 # is dealt with further below.
 PKG_PROTO_DIRS += $(BUILD_DIR_64)
 PKG_PROTO_DIRS += $(BUILD_DIR_64)/obj.SunOS.$(OS_VERSION).$(ARCH)
-PKG_PROTO_DIRS += $(COMPONENT_DIR)/files
 PKG_PROTO_DIRS += $(COMPONENT_DIR)/files/man
 
 # Userland default includes -mt which links with libthread which we don't need.
@@ -174,7 +173,7 @@
 COMPONENT_TEST_ARGS += CC_PIC="$(CC_PIC)"
 COMPONENT_TEST_ARGS += LDOPTS="$(CC_BITS)"
 
-COMPONENT_TEST_ENV +=	PATH=/usr/gnu/bin:/usr/bin
+COMPONENT_TEST_ENV +=	PATH=$(GNUBIN):$(USRBINDIR)
 
 # The transforms below abstract out the 32- or 64-bit specific parts of
 # the results, so we can use a common "all" master file.
@@ -187,19 +186,11 @@
     '-e "s|^$(CC).*$$|XXX_CC_XXX|g" ' \
     '-e "/^XXX_CC_XXX\\$$/d" '
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 INSTALL_64=
 
 # common targets
-build:		$(BUILD_32_and_64)
-
 install:	$(INSTALL_32_and_64)
 
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += database/berkeleydb-5
 REQUIRED_PACKAGES += library/libmilter
 REQUIRED_PACKAGES += library/openldap
@@ -207,5 +198,4 @@
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/network
--- a/components/sendmail/files/aux/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sendmail/files/aux/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/components/serf/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/serf/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
--- a/components/sg3_utils/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sg3_utils/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,15 +20,14 @@
 #
 
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		sg3_utils
 COMPONENT_VERSION=	1.33
 COMPONENT_PROJECT_URL=	http://sg.danny.cz/sg/sg3_utils.html
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH= \
     sha256:3034a4e798404cc963fc46437b0ceeb0edc635e02471ab13aa18acd8b716a27b
@@ -37,16 +36,13 @@
 
 TPNO=			17711
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CC += $(CC_BITS)
+# Even though "gmake check" goes to completion, it doesn't really do anything.
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 CPPFLAGS += -I$(COMPONENT_DIR)/$(COMPONENT_SRC)/include
 
 CONFIGURE_OPTIONS +=	--disable-static
-CONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS)"
 
 COMPONENT_INSTALL_ARGS += bindir=$(USRBINDIR)
 
@@ -55,17 +51,3 @@
 	(cd $(@D) ; \
 	$(GSED) -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool ; \
 	$(GSED) -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool)
-
-PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-build:          $(BUILD_32_and_64)
-install:        $(INSTALL_32_and_64)
-# Even though "gmake check" goes to completion, it doesn't really do anything.
-test:           $(NO_TESTS)
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
--- a/components/smp_utils/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/smp_utils/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,15 +20,14 @@
 #
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		smp_utils
 COMPONENT_VERSION=	0.97
 COMPONENT_PROJECT_URL= http://sg.danny.cz/sg/smp_utils.html
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH= \
     sha256:0e10d304cfa8789bcf16537e8f72d9afdf8838fca20ae68103c317432d00915b
@@ -37,8 +36,6 @@
 
 TPNO=			11065
 
-include $(WS_MAKE_RULES)/prep.mk
-
 # Needs header file from ON only available in S12.
 ifeq ($(BUILD_TYPE), evaluation)
 BUILD_64=
@@ -46,18 +43,10 @@
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-
-CC += $(CC_BITS)
-LDFLAGS += $(CC_BITS)
-COMPONENT_BUILD_ARGS += CC="$(CC)"
-COMPONENT_BUILD_ARGS += LDFLAGS="$(LDFLAGS)"
+include $(WS_MAKE_RULES)/common.mk
 
 CPPFLAGS += -I$(COMPONENT_DIR)/$(COMPONENT_SRC)/include
 CONFIGURE_OPTIONS +=	--disable-static
-CONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS)"
 
 # Don't use rpath!
 COMPONENT_POST_CONFIGURE_ACTION = \
@@ -65,58 +54,40 @@
 	$(GSED) -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool ; \
 	$(GSED) -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool)
 
-PKG_PROTO_DIRS += $(COMPONENT_DIR)/files
-
 COMPONENT_INSTALL_ARGS += INSTALL=$(INSTALL)
 COMPONENT_INSTALL_ARGS += INSTALL_TOP=$(PROTOUSRDIR) 
 $(INSTALL_64):  COMPONENT_INSTALL_ARGS += INSTALL_LIB=$(PROTOUSRLIBDIR64)
-$(INSTALL_64):  COMPONENT_INSTALL_ARGS += INSTALL_SBIN=$(PROTOUSRBINDIR64)
+$(INSTALL_64):  COMPONENT_INSTALL_ARGS += INSTALL_SBIN=$(PROTOUSRBINDIR)
 
 COMPONENT_TEST_ENV +=	LD_LIBRARY_PATH=$(PROTOUSRLIBDIR64)
 COMPONENT_TEST_CMD =	\
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_conf_general -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_conf_phy_event -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_conf_route_info -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_conf_zone_man_pass -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_conf_zone_perm_tbl -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_conf_zone_phy_info -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_discover -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_discover_list -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_ena_dis_zoning -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_phy_control -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_phy_test -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_read_gpio -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_broadcast -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_exp_route_tbl -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_general -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_manufacturer -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_phy_err_log -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_phy_event -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_phy_event_list -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_phy_sata -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_route_info -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_self_conf_stat -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_zone_man_pass -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_rep_zone_perm_tbl -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_write_gpio -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_zone_activate -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_zone_lock -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_zone_unlock -V; \
-		$(PROTOUSRDIR)/sbin/$(MACH64)/smp_zoned_broadcast -V
+		$(PROTOUSRBINDIR)/smp_conf_general -V; \
+		$(PROTOUSRBINDIR)/smp_conf_phy_event -V; \
+		$(PROTOUSRBINDIR)/smp_conf_route_info -V; \
+		$(PROTOUSRBINDIR)/smp_conf_zone_man_pass -V; \
+		$(PROTOUSRBINDIR)/smp_conf_zone_perm_tbl -V; \
+		$(PROTOUSRBINDIR)/smp_conf_zone_phy_info -V; \
+		$(PROTOUSRBINDIR)/smp_discover -V; \
+		$(PROTOUSRBINDIR)/smp_discover_list -V; \
+		$(PROTOUSRBINDIR)/smp_ena_dis_zoning -V; \
+		$(PROTOUSRBINDIR)/smp_phy_control -V; \
+		$(PROTOUSRBINDIR)/smp_phy_test -V; \
+		$(PROTOUSRBINDIR)/smp_read_gpio -V; \
+		$(PROTOUSRBINDIR)/smp_rep_broadcast -V; \
+		$(PROTOUSRBINDIR)/smp_rep_exp_route_tbl -V; \
+		$(PROTOUSRBINDIR)/smp_rep_general -V; \
+		$(PROTOUSRBINDIR)/smp_rep_manufacturer -V; \
+		$(PROTOUSRBINDIR)/smp_rep_phy_err_log -V; \
+		$(PROTOUSRBINDIR)/smp_rep_phy_event -V; \
+		$(PROTOUSRBINDIR)/smp_rep_phy_event_list -V; \
+		$(PROTOUSRBINDIR)/smp_rep_phy_sata -V; \
+		$(PROTOUSRBINDIR)/smp_rep_route_info -V; \
+		$(PROTOUSRBINDIR)/smp_rep_self_conf_stat -V; \
+		$(PROTOUSRBINDIR)/smp_rep_zone_man_pass -V; \
+		$(PROTOUSRBINDIR)/smp_rep_zone_perm_tbl -V; \
+		$(PROTOUSRBINDIR)/smp_write_gpio -V; \
+		$(PROTOUSRBINDIR)/smp_zone_activate -V; \
+		$(PROTOUSRBINDIR)/smp_zone_lock -V; \
+		$(PROTOUSRBINDIR)/smp_zone_unlock -V; \
+		$(PROTOUSRBINDIR)/smp_zoned_broadcast -V
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:          $(BUILD_64)
-
-install:        $(INSTALL_64)
-
-test:           install $(TEST_64)
-
-# Add install dependency as above after system-test targets are implemented.
-system-test:	$(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/smp_utils/smp_utils.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/smp_utils/smp_utils.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -40,49 +40,40 @@
 file smp_utils-prof_attr path=etc/security/prof_attr.d/smp_utils
 link path=usr/lib/$(MACH64)/libsmputils1.so target=libsmputils1.so.1.0.0
 link path=usr/lib/$(MACH64)/libsmputils1.so.1 target=libsmputils1.so.1.0.0
-file usr/lib/$(MACH64)/libsmputils1.so.1.0.0 \
-    path=usr/lib/$(MACH64)/libsmputils1.so.1.0.0
+file path=usr/lib/$(MACH64)/libsmputils1.so.1.0.0
 file RtSCSIDeviceInfo.html \
     path=usr/lib/help/profiles/locale/RtSCSIDeviceInfo.html
 file RtSCSIDeviceManagement.html \
     path=usr/lib/help/profiles/locale/RtSCSIDeviceManagement.html
-file usr/sbin/$(MACH64)/smp_conf_general path=usr/sbin/smp_conf_general
-file usr/sbin/$(MACH64)/smp_conf_phy_event path=usr/sbin/smp_conf_phy_event
-file usr/sbin/$(MACH64)/smp_conf_route_info path=usr/sbin/smp_conf_route_info
-file usr/sbin/$(MACH64)/smp_conf_zone_man_pass \
-    path=usr/sbin/smp_conf_zone_man_pass
-file usr/sbin/$(MACH64)/smp_conf_zone_perm_tbl \
-    path=usr/sbin/smp_conf_zone_perm_tbl
-file usr/sbin/$(MACH64)/smp_conf_zone_phy_info \
-    path=usr/sbin/smp_conf_zone_phy_info
-file usr/sbin/$(MACH64)/smp_discover path=usr/sbin/smp_discover
-file usr/sbin/$(MACH64)/smp_discover_list path=usr/sbin/smp_discover_list
-file usr/sbin/$(MACH64)/smp_ena_dis_zoning path=usr/sbin/smp_ena_dis_zoning
-file usr/sbin/$(MACH64)/smp_phy_control path=usr/sbin/smp_phy_control
-file usr/sbin/$(MACH64)/smp_phy_test path=usr/sbin/smp_phy_test
-file usr/sbin/$(MACH64)/smp_read_gpio path=usr/sbin/smp_read_gpio
-file usr/sbin/$(MACH64)/smp_rep_broadcast path=usr/sbin/smp_rep_broadcast
-file usr/sbin/$(MACH64)/smp_rep_exp_route_tbl \
-    path=usr/sbin/smp_rep_exp_route_tbl
-file usr/sbin/$(MACH64)/smp_rep_general path=usr/sbin/smp_rep_general
-file usr/sbin/$(MACH64)/smp_rep_manufacturer path=usr/sbin/smp_rep_manufacturer
-file usr/sbin/$(MACH64)/smp_rep_phy_err_log path=usr/sbin/smp_rep_phy_err_log
-file usr/sbin/$(MACH64)/smp_rep_phy_event path=usr/sbin/smp_rep_phy_event
-file usr/sbin/$(MACH64)/smp_rep_phy_event_list \
-    path=usr/sbin/smp_rep_phy_event_list
-file usr/sbin/$(MACH64)/smp_rep_phy_sata path=usr/sbin/smp_rep_phy_sata
-file usr/sbin/$(MACH64)/smp_rep_route_info path=usr/sbin/smp_rep_route_info
-file usr/sbin/$(MACH64)/smp_rep_self_conf_stat \
-    path=usr/sbin/smp_rep_self_conf_stat
-file usr/sbin/$(MACH64)/smp_rep_zone_man_pass \
-    path=usr/sbin/smp_rep_zone_man_pass
-file usr/sbin/$(MACH64)/smp_rep_zone_perm_tbl \
-    path=usr/sbin/smp_rep_zone_perm_tbl
-file usr/sbin/$(MACH64)/smp_write_gpio path=usr/sbin/smp_write_gpio
-file usr/sbin/$(MACH64)/smp_zone_activate path=usr/sbin/smp_zone_activate
-file usr/sbin/$(MACH64)/smp_zone_lock path=usr/sbin/smp_zone_lock
-file usr/sbin/$(MACH64)/smp_zone_unlock path=usr/sbin/smp_zone_unlock
-file usr/sbin/$(MACH64)/smp_zoned_broadcast path=usr/sbin/smp_zoned_broadcast
+file path=usr/sbin/smp_conf_general
+file path=usr/sbin/smp_conf_phy_event
+file path=usr/sbin/smp_conf_route_info
+file path=usr/sbin/smp_conf_zone_man_pass
+file path=usr/sbin/smp_conf_zone_perm_tbl
+file path=usr/sbin/smp_conf_zone_phy_info
+file path=usr/sbin/smp_discover
+file path=usr/sbin/smp_discover_list
+file path=usr/sbin/smp_ena_dis_zoning
+file path=usr/sbin/smp_phy_control
+file path=usr/sbin/smp_phy_test
+file path=usr/sbin/smp_read_gpio
+file path=usr/sbin/smp_rep_broadcast
+file path=usr/sbin/smp_rep_exp_route_tbl
+file path=usr/sbin/smp_rep_general
+file path=usr/sbin/smp_rep_manufacturer
+file path=usr/sbin/smp_rep_phy_err_log
+file path=usr/sbin/smp_rep_phy_event
+file path=usr/sbin/smp_rep_phy_event_list
+file path=usr/sbin/smp_rep_phy_sata
+file path=usr/sbin/smp_rep_route_info
+file path=usr/sbin/smp_rep_self_conf_stat
+file path=usr/sbin/smp_rep_zone_man_pass
+file path=usr/sbin/smp_rep_zone_perm_tbl
+file path=usr/sbin/smp_write_gpio
+file path=usr/sbin/smp_zone_activate
+file path=usr/sbin/smp_zone_lock
+file path=usr/sbin/smp_zone_unlock
+file path=usr/sbin/smp_zoned_broadcast
 file path=usr/share/man/man8/smp_conf_general.8
 file path=usr/share/man/man8/smp_conf_phy_event.8
 file path=usr/share/man/man8/smp_conf_route_info.8
--- a/components/snort/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/snort/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,26 +20,22 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		snort
 COMPONENT_VERSION=	2.9.6.2
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:8e1d7fc5e1523a786d845ca0102cc474abfcebfcc7e964a1653680034b5b5d77
 COMPONENT_PROJECT_URL=	http://www.snort.org/
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/snort.mirror/files/Snort%202.9.6.2/$(COMPONENT_ARCHIVE)/download
-COMPONENT_BUGDB=	utility/snort
 
 TPNO=			19385
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL =		0
 
@@ -51,41 +47,19 @@
 # Need to recreate the configure script for gethrtime checks.
 COMPONENT_PREP_ACTION +=	(cd $(@D); autoconf);
 
-# This option has the side-effect of getting the bindir lines correct in
-# snort_output.pc, snort_preproc.pc and snort.pc under
-# /usr/lib/$(MACH64)/pkgconfig/
-CONFIGURE_OPTIONS +=	--bindir=/usr/bin
-
-CONFIGURE_OPTIONS +=	--with-libpcre-libraries="/usr/lib/$(MACH64)"
-CONFIGURE_OPTIONS +=	--with-dnet-libraries="/usr/lib/$(MACH64)"
+CONFIGURE_OPTIONS +=	--with-libpcre-libraries="$(USRLIBDIR64)"
+CONFIGURE_OPTIONS +=	--with-dnet-libraries="$(USRLIBDIR64)"
 CONFIGURE_OPTIONS +=	--without-mysql
 CONFIGURE_OPTIONS +=	--without-postgresql
 CONFIGURE_OPTIONS +=	--enable-zlib
 CONFIGURE_OPTIONS +=	--enable-ipv6
 CONFIGURE_OPTIONS +=	--disable-static-daq
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	LDFLAGS="$(LDFLAGS)"
 
 # Move snort shared objects to 64-bit path to stop pkglint bitching.
 COMPONENT_POST_INSTALL_ACTION += \
 	$(MV) $(PROTOUSRLIBDIR)/snort_dynamicengine $(PROTOUSRLIBDIR64); \
 	$(MV) $(PROTOUSRLIBDIR)/snort_dynamicpreprocessor $(PROTOUSRLIBDIR64) ;
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += developer/lexer/flex
 REQUIRED_PACKAGES += developer/parser/bison
 REQUIRED_PACKAGES += library/pcre
@@ -94,7 +68,6 @@
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/libdaq
 REQUIRED_PACKAGES += system/library/libdnet
 REQUIRED_PACKAGES += system/library/libpcap
--- a/components/sox/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sox/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,42 +20,25 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		sox
 COMPONENT_VERSION=	14.4.2
 COMPONENT_PROJECT_URL=	http://sox.sourceforge.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:b45f598643ffbd8e363ff24d61166ccec4836fea6d3888881b8df53e3bb55f6c
 COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/project/$(COMPONENT_NAME)/$(COMPONENT_NAME)/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/sox
 
 TPNO=		 	25632	
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 CONFIGURE_OPTIONS  +=	--disable-static
 CONFIGURE_OPTIONS  += 	--disable-openmp
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:           $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 
 REQUIRED_PACKAGES += codec/flac
 REQUIRED_PACKAGES += codec/ogg-vorbis
@@ -64,6 +47,5 @@
 REQUIRED_PACKAGES += library/libsndfile
 REQUIRED_PACKAGES += library/libtool/libltdl
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/library/openmp
--- a/components/sox/sox.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sox/sox.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,10 +35,10 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=LSARC/2009/445
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-link path=usr/bin/$(MACH64)/play target=sox
-link path=usr/bin/$(MACH64)/rec target=sox
-file path=usr/bin/$(MACH64)/sox
-link path=usr/bin/$(MACH64)/soxi target=sox
+link path=usr/bin/$(MACH64)/play target=../sox
+link path=usr/bin/$(MACH64)/rec target=../sox
+link path=usr/bin/$(MACH64)/sox target=../sox
+link path=usr/bin/$(MACH64)/soxi target=../sox
 link path=usr/bin/play target=sox
 link path=usr/bin/rec target=sox
 file path=usr/bin/sox
--- a/components/spawn-fcgi/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/spawn-fcgi/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,41 +20,19 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		spawn-fcgi
 COMPONENT_VERSION=	1.6.3
 COMPONENT_PROJECT_URL=	http://www.lighttpd.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:7507a822995731629149040ee5686279b7582ae46f0296efd64b542ef052a90e
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/spawn-fcgi
 
 TPNO=			9041
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_ENV +=        CFLAGS="$(CFLAGS)"
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:           $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
--- a/components/spawn-fcgi/spawn-fcgi.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/spawn-fcgi/spawn-fcgi.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,6 +35,6 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=LSARC/2009/562
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/spawn-fcgi path=usr/bin/spawn-fcgi
+file path=usr/bin/spawn-fcgi
 file path=usr/share/man/man1/spawn-fcgi.1
 license spawn-fcgi.license license=BSD
--- a/components/sqlite-3/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sqlite-3/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,7 +22,7 @@
 #
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		sqlite
@@ -30,7 +30,6 @@
 COMPONENT_VERSION=	3.9.2
 COMPONENT_PROJECT_URL=	http://www.sqlite.org/
 COMPONENT_SRC=		$(COMPONENT_NAME)-autoconf-$(TARBALL_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:064c0abe9c9177534d4c770bca7a5902f9924b629ac886b4c08956be6dfbc36b
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)2015/$(COMPONENT_ARCHIVE)
@@ -47,23 +46,29 @@
 
 TPNO=			26531
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
+TEA_CONFIGURE_OPTIONS.32 += --with-tcl="$(USRLIBDIR)"
+TEA_CONFIGURE_OPTIONS.64 += --with-tcl="$(USRLIBDIR64)"
+TEA_CONFIGURE_OPTIONS.64 += --enable-64bit
+TEA_CONFIGURE_OPTIONS.sparc.64 += --enable-64bit-vis
+TEA_CONFIGURE_OPTIONS = --enable-shared
+TEA_CONFIGURE_OPTIONS += $(TEA_CONFIGURE_OPTIONS.$(BITS))
+TEA_CONFIGURE_OPTIONS += $(TEA_CONFIGURE_OPTIONS.$(MACH))
+TEA_CONFIGURE_OPTIONS += $(TEA_CONFIGURE_OPTIONS.$(MACH).$(BITS))
+
 COMPONENT_POST_CONFIGURE_ACTION = \
 	(cd $(@D)/tea ; $(ENV) $(CONFIGURE_ENV) $(CONFIG_SHELL) \
-	./configure --enable-shared --with-tcl="/usr/lib");
+	./configure $(TEA_CONFIGURE_OPTIONS));
 
 COMPONENT_POST_BUILD_ACTION = \
 	(cd $(@D)/tea ; $(ENV) $(COMPONENT_BUILD_ENV) \
 	$(GMAKE) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS));
 
-CC +=		$(CC_BITS)
-
 CFLAGS +=	-D_POSIX_PTHREAD_SEMANTICS
 CFLAGS +=	-DNDEBUG
 CFLAGS +=	-DSQLITE_SECURE_DELETE
@@ -80,23 +85,9 @@
 CFLAGS +=	-DSQLITE_DEFAULT_PCACHE_INITSZ=0
 CFLAGS +=	-I.
 
-CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	--enable-threadsafe
 CONFIGURE_OPTIONS +=	--enable-dynamic-extensions
 CONFIGURE_OPTIONS +=	--enable-shared
 CONFIGURE_OPTIONS +=	--disable-static
 
-ASLR_MODE =	$(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(NO_TESTS)
-
-system-test:	$(NO_TESTS)
-
 REQUIRED_PACKAGES += library/readline
-REQUIRED_PACKAGES += system/library
--- a/components/sqlite-3/sqlite-3.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sqlite-3/sqlite-3.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
@@ -37,7 +37,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2015/025
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/sqlite3 path=usr/bin/sqlite3
+file path=usr/bin/sqlite3
 file path=usr/include/sqlite3.h
 file path=usr/include/sqlite3ext.h
 link path=usr/lib/$(MACH64)/libsqlite3.so target=libsqlite3.so.0.8.6
--- a/components/squid/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/squid/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,47 +22,36 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER =	gcc
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
-PATH=/usr/bin:/usr/gnu/bin:/usr/sbin:/usr/perl5/bin
+PATH=$(USRBINDIR):$(GNUBIN):$(USRSBINDIR):$(USRDIR)/perl5/bin
 
 COMPONENT_NAME=         squid
 COMPONENT_VERSION=      3.5.5
 COMPONENT_PROJECT_URL=  http://www.squid-cache.org/
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH= \
     sha256:23793da6b23871765188becae59a6f4b6c3672c256ba9be90743b46a3c7921cf
 COMPONENT_ARCHIVE_URL=  $(COMPONENT_PROJECT_URL)Versions/v3/3.5/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/squid
 
 TPNO=			23264
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-CC += $(CC_BITS)
-CXX += $(CC_BITS)
-
-CFLAGS += -I/usr/include/kerberosv5
+CFLAGS += -I$(USRINCDIR)/kerberosv5
 CFLAGS += $(CPP_LARGEFILES)
 
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
 CONFIGURE_LIBDIR.64 =	$(CONFIGURE_PREFIX)/lib
-CONFIGURE_OPTIONS.64 += LDFLAGS="$(LDFLAGS) -m64"
-CONFIGURE_OPTIONS.64 += LIBS="-m64"
 
 # Squid has own prefix
-CONFIGURE_PREFIX =	/usr/squid
+CONFIGURE_PREFIX =	$(USRDIR)/squid
 
-CONFIGURE_OPTIONS +=   CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS += --libexecdir=$(CONFIGURE_PREFIX)/libexec
-CONFIGURE_OPTIONS += --localstatedir=/var/squid
-CONFIGURE_OPTIONS += --sharedstatedir=/var/squid
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)/squid
+CONFIGURE_OPTIONS += --sharedstatedir=$(VARDIR)/squid
 CONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)/squid
 CONFIGURE_OPTIONS += --mandir=$(CONFIGURE_PREFIX)/man
 CONFIGURE_OPTIONS += --sbindir=$(CONFIGURE_PREFIX)/sbin
@@ -96,8 +85,6 @@
 CONFIGURE_OPTIONS += --without-nettle
 CONFIGURE_OPTIONS += --disable-arch-native
 
-COMPONENT_BUILD_ARGS += CFLAGS="$(CFLAGS)"
-
 # Appends the following line to the end of the squid.conf configuration
 # file. This line is necessary for running squid for testing. 
 # This starts up squid as user webservd. 
@@ -105,15 +92,6 @@
 	(cd $(PROTO_DIR)/etc/squid ; \
  	echo '\ncache_effective_user webservd' >> squid.conf)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
 # configure says it needs cppunit to test with.
 # After some work I can get cppunit to build but it quickly
 # falls over during test so giving up.
@@ -145,18 +123,12 @@
 # Enter <squid server URL>:897 in your web browser and squid should complain.
 # Squid is working properly.
 
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += library/libtool/libltdl
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/perl-520
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
 REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/stdcxx/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/stdcxx/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,23 +18,21 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 # we really need to use studio so we don't like that
-# parfait is g++ in disguise
+# parfait is clang/llvm in disguise
 export PARFAIT_BUILD=no
-
 include ../../make-rules/shared-macros.mk
 
-PATH=$(dir $(CC)):/usr/gnu/bin:/usr/bin
+PATH=$(dir $(CC)):$(GNUBIN):$(USRBINDIR)
 
 COMPONENT_NAME=		stdcxx
 COMPONENT_VERSION=	4.2.1
 COMPONENT_PROJECT_URL=	http://stdcxx.apache.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=	http://stdcxx.apache.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:00854223cbd947bf1bd85d9dabd1b2829706d9062e0007d5022082a5e4b7e15e
 COMPONENT_ARCHIVE_URL=	http://www.apache.org/dist/stdcxx/$(COMPONENT_ARCHIVE)
@@ -44,9 +42,8 @@
 
 CLEAN_PATHS += install.sh
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+INSTALL_TARGET=
+include $(WS_MAKE_RULES)/common.mk
 
 SUNPRO_VERSION	:= $(shell $(CXX) -V 2>&1 | head -n1 \
   | sed 's/.*C++ *\([^ ]*\).*/\1/')
@@ -90,12 +87,8 @@
 ISA_PATCHES_64 = $(ISA_PATCHES_$(MACH64))
 ISA_PATCHES = $(ISA_PATCHES_$(BITS))
 
-PATCH_LEVEL = 1
-
 TOPDIR = $(COMPONENT_DIR)/$(COMPONENT_SRC)
 LOCAL_BUILDDIR = $(TOPDIR)/build
-MARG = -m$(BITS)
-PICFLAG = -KPIC -DPIC
 
 # Please see the README file in this directory for a detailed explanation
 # about these flags, what they do, and why we need them.
@@ -106,7 +99,7 @@
 CFLAGS_sparc = -Xc -features=extinl  -xvis=yes
 CFLAGS_sparc += -Qoption cg -xregs=no%appl -xbuiltin=%none -xO4 $(PICFLAG)
 CFLAGS_i386 = -Xc -features=extinl -xregs=no%frameptr
-CFLAGS_i386 += -xO3 -xbuiltin=%none $(PICFLAG)
+CFLAGS_i386 += -xO3 -xbuiltin=%none $(CC_PIC)
 
 CFLAGS_32 = $(FLAGS_$(MACH)) $(CFLAGS_$(MACH))
 CFLAGS_64 = $(FLAGS_$(MACH64)) $(CFLAGS_$(MACH))
@@ -137,7 +130,7 @@
 CXXFLAGS_GENERIC += -xbuiltin=%none
 CXXFLAGS_GENERIC += -xinline=
 CXXFLAGS_GENERIC += -xlibmieee
-CXXFLAGS_GENERIC += -z ignore $(PICFLAG)
+CXXFLAGS_GENERIC += $(LD_Z_IGNORE) $(PICFLAG)
 CXXFLAGS_GENERIC += -mt -D_REENTRANT -DNDEBUG
 CXXFLAGS_GENERIC += -D_IN_BUILD_STDCXX
 CXXFLAGS_GENERIC += -D__EXTENSIONS__
@@ -160,29 +153,25 @@
 # -mt will automatically pass -lthread unless we pass -lpthread
 #  on link line. -lthread causes regressions. see man CC(1) and -mt.
 #  -lumem must be passed before -lc.
-LDFLAGS = -lpthread -lumem -lm -lc -s -z ignore
+LDFLAGS = -lpthread -lumem -lm -lc -s $(LD_Z_IGNORE)
 
 # We cannot have -B direct
 LD_OPTIONS = -M /usr/lib/ld/map.noexstk -M /usr/lib/ld/map.noexdata 
 LD_OPTIONS += -M /usr/lib/ld/map.pagealign
-LD_OPTIONS += -lpthread -lumem -lm -lc -s -z ignore
+LD_OPTIONS += -lpthread -lumem -lm -lc -s $(LD_Z_IGNORE)
 
 # If I name it NLSPATH, gmake insists on getting its value from the
 # running environment. Also, it all has to be on one line. += prepends
 # 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 +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_ENV +=	CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_ENV +=	LDFLAGS="$(LDFLAGS)"
 CONFIGURE_ENV +=	LD_OPTIONS="$(LD_OPTIONS)"
 CONFIGURE_ENV +=	LD="$(CXX) $(CXXFLAGS) $(LDFLAGS)"
 CONFIGURE_ENV +=	MAKE="$(MAKE)"
 CONFIGURE_ENV +=	TOPDIR="$(TOPDIR)"
 CONFIGURE_ENV +=	MAKEFLAGS=""
 
-CONFIGURE_OPTIONS  =		$(MARG)
+CONFIGURE_OPTIONS  =		$(CC_BITS)
 CONFIGURE_OPTIONS  +=		-topdir=$(TOPDIR)
 CONFIGURE_OPTIONS  +=		-builddir=$(LOCAL_BUILDDIR)
 
@@ -257,12 +246,6 @@
 
 COMPONENT_TEST_TARGETS =
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
 install: $(BUILD_DIR_32)/.built $(BUILD_DIR_64)/.built
 	$(CP) $(COMPONENT_DIR)/Solaris/install.sh $(COMPONENT_DIR)/
 	$(CHMOD) 0755 $(COMPONENT_DIR)/install.sh
@@ -282,15 +265,11 @@
 	    -mach64=$(MACH64) )
 	test -d $(TOPDIR) || $(MKDIR) $(TOPDIR)
 
-test:	$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+CLEAN_PATHS += $(COMPONENT_SRC)-32 $(COMPONENT_SRC)-64
 
 clean::
-	$(RM) -r $(COMPONENT_SRC) $(COMPONENT_SRC)-32 $(COMPONENT_SRC)-64
 	$(RM) -f *.sed *.out
 
 
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/stunnel/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/stunnel/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		stunnel
 COMPONENT_VERSION=	5.18
 COMPONENT_PROJECT_URL=	http://www.stunnel.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:0532c0a2f8de3da1ab625e384146501ce5936fac63d01561c3a9bf652b692317
 
@@ -37,16 +35,14 @@
 
 COMPONENT_PREP_ACTION += (cd $(@D) ; autoreconf -f)
 
-COMPONENT_BUGDB=	utility/stunnel
 TPNO=                   24738
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # need /usr/perl5/bin on path to access pod2man perl script, used by 
 # the build to create docs
-COMPONENT_BUILD_ENV +=  PATH=/usr/perl5/bin:$(PATH)
+COMPONENT_BUILD_ENV +=  PATH=$(USRDIR)/perl5/bin:$(PATH)
 
 CPPFLAGS +=	"-DPIDFILE='\"/var/run/stunnel.pid\"'"
 
@@ -56,33 +52,14 @@
 CONFIGURE_OPTIONS +=	--disable-fips
 CONFIGURE_OPTIONS +=	--enable-ipv6
 CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)
-CONFIGURE_OPTIONS +=	CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	LDFLAGS="$(LDFLAGS)"
 
 # used to generate LD_PRELOAD_* interposer pathnames
-COMPONENT_BUILD_ARGS += pkglibdir=/usr/lib/stunnel
+COMPONENT_BUILD_ARGS += pkglibdir=$(USRLIBDIR)/stunnel
 
 COMPONENT_PRE_INSTALL_ACTION = \
 	$(MKDIR) $(PROTOETCDIR)/stunnel ; \
 	$(TOUCH) $(PROTOETCDIR)/stunnel/stunnel.pem
 
-PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:          $(BUILD_32_and_64)
-
-install:        $(INSTALL_32_and_64)
-
-test:           $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/network
--- a/components/stunnel/stunnel.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/stunnel/stunnel.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -44,9 +44,8 @@
 file tools/stunnel.conf-sample.in path=etc/stunnel/stunnel.conf
 file path=etc/stunnel/stunnel.pem
 file stunnel.xml path=lib/svc/manifest/network/ssl/stunnel.xml
-file usr/bin/$(MACH64)/stunnel path=usr/bin/stunnel
+file path=usr/bin/stunnel
 file path=usr/lib/$(MACH64)/stunnel/libstunnel.so
-file path=usr/lib/stunnel/libstunnel.so
 file path=usr/share/doc/stunnel/PORTS
 file doc/en/VNC_StunnelHOWTO.html \
     path=usr/share/doc/stunnel/doc/en/VNC_StunnelHOWTO.html
--- a/components/subversion/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/subversion/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,16 +22,14 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
-PATH=$(dir $(CC)):$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin
+PATH=$(dir $(CC)):$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
 
 COMPONENT_NAME=		subversion
 COMPONENT_VERSION=	1.7.20
 COMPONENT_PROJECT_URL=	http://subversion.apache.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:2bdb01eb3f3df5c9370af98580e1892822d6e75f2077ce97fc81749f316ef25a
 COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/subversion/$(COMPONENT_ARCHIVE)
@@ -39,9 +37,7 @@
 
 TPNO=			22298
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 PYMODS = client core delta fs ra repos wc
@@ -51,7 +47,7 @@
 PERL_VERSION.64 = 5.16
 PERL_VERSION = $(PERL_VERSION.$(BITS))
 PERL = $(PERL.$(PERL_VERSION))
-GNUCP = /usr/gnu/bin/cp
+GNUCP = $(GNUBIN)/cp
 
 # because we can't seem to get -norunpath to the java bindings build any
 # other way.
@@ -102,8 +98,6 @@
 
 $(BUILD_DIR)/$(MACH64)/.installed: COMPONENT_INSTALL_TARGETS += install-mods-shared
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)"
 CONFIGURE_ENV += PYTHON="$(PYTHON.$(BITS))"
 CONFIGURE_ENV += PYMODS="$(PYMODS)"
 CONFIGURE_ENV += PYTHONPATH="$(PYTHON_VENDOR_PACKAGES.$(BITS))"
@@ -115,23 +109,21 @@
 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
-APU-CONFIG.32 = /usr/apr-util/$(APR_UTIL_VERSION)/bin/apu-1-config
-APU-CONFIG.64 = /usr/apr-util/$(APR_UTIL_VERSION)/bin/$(MACH64)/apu-1-config
+APR-CONFIG.32 = $(USRDIR)/apr/$(APR_VERSION)/bin/apr-1-config
+APR-CONFIG.64 = $(USRDIR)/apr/$(APR_VERSION)/bin/$(MACH64)/apr-1-config
+APU-CONFIG.32 = $(USRDIR)/apr-util/$(APR_UTIL_VERSION)/bin/apu-1-config
+APU-CONFIG.64 = $(USRDIR)/apr-util/$(APR_UTIL_VERSION)/bin/$(MACH64)/apu-1-config
 APXS.32 = no
-APXS.64 = /usr/apache2/2.4/bin/apxs
-APR-CONFIG-RPATH.32 = /usr/apr/$(APR_VERSION)/lib
-APR-CONFIG-RPATH.64 = /usr/apr/$(APR_VERSION)/lib/$(MACH64)
-APU-CONFIG-RPATH.32 = /usr/apr-util/$(APR_VERSION)/lib
-APU-CONFIG-RPATH.64 = /usr/apr-util/$(APR_VERSION)/lib/$(MACH64)
+APXS.64 = $(USRDIR)/apache2/2.4/bin/apxs
+APR-CONFIG-RPATH.32 = $(USRDIR)/apr/$(APR_VERSION)/lib
+APR-CONFIG-RPATH.64 = $(USRDIR)/apr/$(APR_VERSION)/lib/$(MACH64)
+APU-CONFIG-RPATH.32 = $(USRDIR)/apr-util/$(APR_VERSION)/lib
+APU-CONFIG-RPATH.64 = $(USRDIR)/apr-util/$(APR_VERSION)/lib/$(MACH64)
 
 LDFLAGS += -R$(CONFIGURE_LIBDIR.$(BITS)) -R$(APR-CONFIG-RPATH.$(BITS)) \
 	   -R$(APU-CONFIG-RPATH.$(BITS))
 
-CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)"
-
-CONFIGURE_OPTIONS += --localstatedir=/var
+CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)
 CONFIGURE_OPTIONS += --enable-shared 
 CONFIGURE_OPTIONS += --disable-static
 CONFIGURE_OPTIONS += --disable-libtool-lock 
@@ -141,8 +133,8 @@
 CONFIGURE_OPTIONS += --with-ssl 
 CONFIGURE_OPTIONS += --with-zlib=$(CONFIGURE_PREFIX)
 CONFIGURE_OPTIONS += --with-jdk=$(JAVA_ROOT)
-CONFIGURE_OPTIONS += --with-apr=/usr/apr/$(APR_VERSION)
-CONFIGURE_OPTIONS += --with-apr-util=/usr/apr-util/$(APR_UTIL_VERSION)
+CONFIGURE_OPTIONS += --with-apr=$(USRDIR)/apr/$(APR_VERSION)
+CONFIGURE_OPTIONS += --with-apr-util=$(USRDIR)/apr-util/$(APR_UTIL_VERSION)
 CONFIGURE_OPTIONS += --enable-nls
 CONFIGURE_OPTIONS += --disable-mod-activation
 CONFIGURE_OPTIONS += --enable-javahl
@@ -171,18 +163,6 @@
 PKG_MACROS += PERL_ARCH_16="$(PERL_ARCH_16)"
 PKG_MACROS += PYVER=$(PYTHON_VERSION)
 
-ASLR_MODE=$(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += database/sqlite-3
 REQUIRED_PACKAGES += developer/versioning/subversion
 REQUIRED_PACKAGES += library/apr-15
@@ -190,7 +170,6 @@
 REQUIRED_PACKAGES += library/expat
 REQUIRED_PACKAGES += library/neon
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/security/gss
 REQUIRED_PACKAGES += system/library/security/libsasl
--- a/components/subversion/subversion.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/subversion/subversion.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -47,14 +47,14 @@
 file path=usr/apache2/2.4/libexec/mod_authz_svn.so
 file path=usr/apache2/2.4/libexec/mod_dav_svn.so
 file path=usr/apache2/2.4/libexec/mod_dontdothat.so
-file usr/bin/$(MACH64)/svn path=usr/bin/svn
-file usr/bin/$(MACH64)/svnadmin path=usr/bin/svnadmin
-file usr/bin/$(MACH64)/svndumpfilter path=usr/bin/svndumpfilter
-file usr/bin/$(MACH64)/svnlook path=usr/bin/svnlook
-file usr/bin/$(MACH64)/svnrdump path=usr/bin/svnrdump
-file usr/bin/$(MACH64)/svnserve path=usr/bin/svnserve
-file usr/bin/$(MACH64)/svnsync path=usr/bin/svnsync
-file usr/bin/$(MACH64)/svnversion path=usr/bin/svnversion
+file path=usr/bin/svn
+file path=usr/bin/svnadmin
+file path=usr/bin/svndumpfilter
+file path=usr/bin/svnlook
+file path=usr/bin/svnrdump
+file path=usr/bin/svnserve
+file path=usr/bin/svnsync
+file path=usr/bin/svnversion
 file usr/include/subversion-1/mod_dav_svn.h path=usr/include/svn/mod_dav_svn.h
 file usr/include/subversion-1/svn_auth.h path=usr/include/svn/svn_auth.h
 file usr/include/subversion-1/svn_base64.h path=usr/include/svn/svn_base64.h
--- a/components/sudo/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/sudo/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -21,7 +21,7 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		sudo
@@ -34,18 +34,18 @@
 COMPONENT_VERSION=	$(SRC_VERSION)
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(SRC_VERSION)
 endif
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:4316381708324da8b6cb151f655c1a11855207c7c02244d8ffdea5104d7cc308
 COMPONENT_ARCHIVE_URL=	http://www.sudo.ws/sudo/dist/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL=  http://www.sudo.ws/
-COMPONENT_BUGDB=	utility/sudo
 
 TPNO=			26593
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
+
+# Fix 64-bit linking via compiler.
+LDFLAGS += $(CC_BITS)
+LDFLAGS += -lldap_r-2.4
 
 # Allows zero-sized struct/union declarations and void functions with return
 # statements returning a value to work.
@@ -53,10 +53,8 @@
 
 COMPONENT_PREP_ACTION = ( cd $(@D) ; $(AUTORECONF) -f -I m4 )
 
-CONFIGURE_ENV +=	"CFLAGS=$(CFLAGS)"
+CPPFLAGS += -I$(USRINCDIR)/openldap
 CONFIGURE_ENV +=	"MAKE=$(GMAKE)"
-CONFIGURE_ENV +=	"CPPFLAGS=$(CPPFLAGS) -I/usr/include/openldap"
-CONFIGURE_ENV +=	"LDFLAGS=$(LDFLAGS) -m64 -lldap_r-2.4"
 
 CONFIGURE_OPTIONS +=	--with-ldap
 CONFIGURE_OPTIONS +=	--with-project
@@ -69,15 +67,10 @@
 CONFIGURE_OPTIONS +=	--without-lecture
 CONFIGURE_OPTIONS +=	--with-ignore-dot
 CONFIGURE_OPTIONS +=	--with-solaris-audit
-CONFIGURE_OPTIONS +=	--libexecdir=/usr/lib/$(MACH64)/sudo
+CONFIGURE_OPTIONS +=	--libexecdir=$(USRLIBDIR64)/sudo
 CONFIGURE_OPTIONS +=	"sudo_cv_var_nroff_opt_Tascii=no"
 
-COMPONENT_BUILD_ENV +=	CC=$(CC) CXX=$(CXX)
-COMPONENT_BUILD_ENV +=	"CFLAGS=$(CFLAGS)"
-
 COMPONENT_INSTALL_TARGETS = install
-COMPONENT_INSTALL_ARGS += bindir=$(USRBINDIR)
-COMPONENT_INSTALL_ARGS += sbindir=$(USRSBINDIR)
 
 # Avoid calling "chown 0" on installed files
 COMPONENT_INSTALL_ARGS += INSTALL_OWNER=
@@ -97,25 +90,9 @@
 COMPONENT_TEST_TRANSFORMS += '-e "/^parse_gids_test\|^strsplit_test\|^atofoo_test\|^hltq_test\|^sudo_conf\|^sudo_parseln\|^check_addr\|^check_base64\|^check_fill\|^iolog_path\|^check_symbols\|^sudoers\|^testsudoers\|^visudo\|^check_ttyname/!d"'
 COMPONENT_TEST_TRANSFORMS += '-e "s/\(\/dev\/pts\/\)[0-9][0-9]*/\1\#/"'
 
-# Enable aslr for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
 VISUDO=$(BUILD_DIR_64)/plugins/sudoers/visudo
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 
 REQUIRED_PACKAGES += library/openldap
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/crypto
 REQUIRED_PACKAGES += text/groff/groff-core
--- a/components/swig/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/swig/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,38 +18,33 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 # parfait is suddenly unhappy with us (21638460)
 export PARFAIT_BUILD=no
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		swig
 COMPONENT_VERSION=	3.0.5
 COMPONENT_PROJECT_URL=	http://www.swig.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:9f4cb9e8f213f041853646f58fe5e8428d63250d05f5c943b6fa759c77322a3c
 COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/project/swig/swig/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/swig
 
 TPNO=			22223
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
-PATH=$(SPRO_VROOT)/bin:$(JAVA_HOME)/bin:/usr/bin
+PATH=$(SPRO_VROOT)/bin:$(JAVA_HOME)/bin:$(USRBINDIR)
 
 # This is needed because the community provided 'check' target is not viewpath aware
 COMPONENT_PRE_CONFIGURE_ACTION =      ($(CLONEY) $(SOURCE_DIR) $(@D))
 
 CONFIGURE_ENV += JAVA_HOME="$(JAVA_HOME)"
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	CXXFLAGS="$(CXXFLAGS)"
 CONFIGURE_OPTIONS +=	--with-javaincl="$(JAVA_HOME)/include"
 
 # The additional swig specific set of transforms to be applied to the
@@ -71,20 +66,7 @@
 	partialcheck-python-test-suite \
 	partialcheck-ruby-test-suite
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/pcre
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/swig/swig.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/swig/swig.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -40,8 +40,8 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/475
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/ccache-swig path=usr/bin/ccache-swig
-file usr/bin/$(MACH64)/swig path=usr/bin/swig
+file path=usr/bin/ccache-swig
+file path=usr/bin/swig
 file path=usr/share/man/man1/ccache-swig.1
 file swig.1 path=usr/share/man/man1/swig.1
 file path=usr/share/swig/$(COMPONENT_VERSION)/allegrocl/allegrocl.swg
--- a/components/tcl/expect/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tcl/expect/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,24 +22,20 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		expect
 COMPONENT_VERSION=	5.45
 COMPONENT_PROJECT_URL=	http://expect.nist.gov/
 COMPONENT_SRC=		$(COMPONENT_NAME)$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:b28dca90428a3b30e650525cdc16255d76bb6ccd65d448be53e620d95d5cc040
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/expect/files/Expect/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)/download
-COMPONENT_BUGDB=	utility/expect
 
 TPNO=			5552
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 SCRIPTS = timed-run timed-read ftp-rfc autopasswd lpunlock weather \
           passmass rftp kibitz rlogin-cwd xpstat tkpasswd dislocate xkibitz \
@@ -51,13 +47,13 @@
 
 COMPONENT_BUILD_TARGETS = all ${SCRIPTS}
 
-LDFLAGS +=		$(CC_BITS)
-
-CONFIGURE_OPTIONS 	+= CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS	+= LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS 	+= --enable-shared
-CONFIGURE_OPTIONS 	+= --with-tcl="$(COMPONENT_DIR)/../tcl/build/$(MACH$(BITS))"
-CONFIGURE_OPTIONS 	+= --with-tclinclude="$(COMPONENT_DIR)/../tcl/build/$(MACH$(BITS))/generic"
+# 64-bit executables should also be delivered to relevant MACH subdirectory.
+CONFIGURE_BINDIR.64= $(USRBINDIR64)
+CONFIGURE_OPTIONS +=		--enable-shared
+CONFIGURE_OPTIONS +=		--with-tcl="$(COMPONENT_DIR)/../tcl/build/$(MACH$(BITS))"
+CONFIGURE_OPTIONS +=		--with-tclinclude="$(COMPONENT_DIR)/../tcl/build/$(MACH$(BITS))/generic"
+CONFIGURE_OPTIONS.64 += 	-enable-64bit
+CONFIGURE_OPTIONS.sparc.64 +=	--enable-64bit-vis
 
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 COMPONENT_TEST_TARGETS = test
@@ -65,15 +61,6 @@
 	'-e "s|$(WS_TOP)|\\$$(WS_TOP)|g"' \
 	'-e "s|tcl/build/$(MACH$(BITS))|\\$$(TCLBUILD)|g"'
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-build:		$(BUILD_32_and_64)
-install:	$(INSTALL_32_and_64) 
-test: 		$(TEST_32_and_64)
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 # special targets due to tcl internals dependencies
 ../tcl/build/%/.built:
 	(cd ../tcl ; $(GMAKE) build)
@@ -83,5 +70,4 @@
 
 REQUIRED_PACKAGES += runtime/tcl-8
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/tcl/expect/expect.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tcl/expect/expect.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
 <transform file path=usr/demo/expect/.+ ->default mode 0555>
@@ -37,7 +37,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2007/612
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/expect path=usr/bin/$(MACH32)/expect
+file path=usr/bin/$(MACH32)/expect
 file path=usr/bin/$(MACH64)/expect
 link path=usr/bin/expect target=$(MACH64)/expect
 file path=usr/demo/expect/autoexpect
--- a/components/tcl/tcl/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tcl/tcl/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,9 +20,9 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         tcl
@@ -37,12 +37,10 @@
 
 TPNO=			9083
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION = \
-	(cd $(SOURCE_DIR)/unix ; autoreconf -f; \
+	(cd $(SOURCE_DIR)/unix ; autoreconf -fi; \
 	 cd ../doc; \
             for i in *.n ; do manbase="$$(basename "$$i" .n)"; mv "$$i" "$${manbase}.1t"; done ; \
             for i in *.3 ; do manbase="$$(basename "$$i" .3)"; mv "$$i" "$${manbase}.3tcl"; done) 
@@ -50,18 +48,20 @@
 COMPONENT_PRE_CONFIGURE_ACTION = \
         ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-# Look for the configure file at the pointed location.
 CONFIGURE_SCRIPT = $(SOURCE_DIR)/unix/configure
 
-CFLAGS += $(studio_XREGS) -xstrconst $(XPG6MODE) $(studio_C99_ENABLE)
+# LDFLAGS is embedded into the tclConfig.sh script.
 LDFLAGS += $(CC_BITS)
 
-CONFIGURE_OPTIONS 	+= CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS 	+= LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS	+= --enable-shared
-CONFIGURE_OPTIONS	+= --enable-man-symlinks
-CONFIGURE_OPTIONS	+= --enable-threads
-CONFIGURE_OPTIONS.64	+= --enable-64bit
+CFLAGS.studio += -xstrconst $(XPG6MODE) $(studio_C99_ENABLE)
+
+# 64-bit executables should also be delivered to relevant MACH subdirectory.
+CONFIGURE_BINDIR.64= $(USRBINDIR64)
+CONFIGURE_OPTIONS +=		--enable-shared
+CONFIGURE_OPTIONS +=		--enable-man-symlinks
+CONFIGURE_OPTIONS +=		--enable-threads
+CONFIGURE_OPTIONS.64 +=		--enable-64bit
+CONFIGURE_OPTIONS.sparc.64 +=	--enable-64bit-vis
 
 COMPONENT_TEST_ENV	+= "TZ=GMT"
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
@@ -73,21 +73,12 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64) $(PROTOUSRLIBDIR)/tclConfig.sh 
+COMPONENT_POST_INSTALL_ACTION += \
+	sed -f $(COMPONENT_DIR)/files/tclsed.$(BITS) \
+		$(PROTO_DIR)$(USRLIB.$(BITS))/tclConfig.sh > \
+		$(PROTO_DIR)$(USRLIB.$(BITS))/tclConfig.sh.new; \
+	$(MV) $(PROTO_DIR)$(USRLIB.$(BITS))/tclConfig.sh.new \
+		$(PROTO_DIR)$(USRLIB.$(BITS))/tclConfig.sh; \
+	$(CHMOD) 555 $(PROTO_DIR)$(USRLIB.$(BITS))/tclConfig.sh
 
-$(PROTOUSRLIBDIR)/tclConfig.sh:		$(INSTALL_32)	
-					sed -f $(COMPONENT_DIR)/files/tclsed $(PROTOUSRLIBDIR)/tclConfig.sh > \
-						$(PROTOUSRLIBDIR)/tclConfig.sh.new
-					$(MV) $(PROTOUSRLIBDIR)/tclConfig.sh.new $(PROTOUSRLIBDIR)/tclConfig.sh
-					$(CHMOD) 555 $(PROTOUSRLIBDIR)/tclConfig.sh
-
-test: 		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/tcl/tcl/files/tclsed	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#
-# 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) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
-#
-#
-/^TCL_CC/c\
-TCL_CC='/opt/SUNWspro/bin/cc'
-
-/^TCL_BUILD_LIB_SPEC/c\
-TCL_BUILD_LIB_SPEC='-ltcl8.5${TCL_DBGX}'
-
-/^TCL_SRC_DIR/c\
-TCL_SRC_DIR=
-
-/^TCL_BUILD_STUB_LIB_SPEC/c\
-TCL_BUILD_STUB_LIB_SPEC='-ltclstub8.5${TCL_DBGX}'
-
-/^TCL_BUILD_STUB_LIB_PATH/c\
-TCL_BUILD_STUB_LIB_PATH='/usr/lib/libtclstub8.5${TCL_DBGX}.a'
-
-s,-lsunmath,,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/tcl/tcl/files/tclsed.32	Wed Mar 30 13:33:31 2016 -0700
@@ -0,0 +1,41 @@
+#
+# 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) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+/^TCL_CC=/c\
+TCL_CC='/opt/SUNWspro/bin/cc'
+
+/^TCL_BUILD_LIB_SPEC=/c\
+TCL_BUILD_LIB_SPEC='-ltcl8.5${TCL_DBGX}'
+
+/^TCL_SRC_DIR=/c\
+TCL_SRC_DIR=
+
+/^TCL_BUILD_STUB_LIB_SPEC=/c\
+TCL_BUILD_STUB_LIB_SPEC='-ltclstub8.5${TCL_DBGX}'
+
+/^TCL_BUILD_STUB_LIB_PATH=/c\
+TCL_BUILD_STUB_LIB_PATH='/usr/lib/libtclstub8.5${TCL_DBGX}.a'
+
+s,-lsunmath,,
+s,-L/usr/lib ,,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/tcl/tcl/files/tclsed.64	Wed Mar 30 13:33:31 2016 -0700
@@ -0,0 +1,42 @@
+#
+# 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) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+/^TCL_CC=/c\
+TCL_CC='/opt/SUNWspro/bin/cc'
+
+/^TCL_BUILD_LIB_SPEC=/c\
+TCL_BUILD_LIB_SPEC='-ltcl8.5${TCL_DBGX}'
+
+/^TCL_SRC_DIR=/c\
+TCL_SRC_DIR=
+
+/^TCL_BUILD_STUB_LIB_SPEC=/c\
+TCL_BUILD_STUB_LIB_SPEC='-ltclstub8.5${TCL_DBGX}'
+
+/^TCL_BUILD_STUB_LIB_PATH=/c\
+TCL_BUILD_STUB_LIB_PATH='/usr/lib/64/libtclstub8.5${TCL_DBGX}.a'
+
+s,-lsunmath,,
+s,-L/usr/lib/amd64 ,,
+s,-L/usr/lib/sparcv9 ,,
--- a/components/tcl/tcl/tcl.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tcl/tcl/tcl.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
 set name=pkg.fmri \
@@ -35,7 +35,7 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2007/317
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 link path=usr/bin/$(MACH32)/tclsh target=tclsh8.5
-file usr/bin/tclsh8.5 path=usr/bin/$(MACH32)/tclsh8.5
+file path=usr/bin/$(MACH32)/tclsh8.5
 link path=usr/bin/$(MACH64)/tclsh target=tclsh8.5
 file path=usr/bin/$(MACH64)/tclsh8.5
 link path=usr/bin/tclsh target=tclsh8.5
@@ -47,7 +47,7 @@
 file path=usr/include/tclTomMathDecls.h
 file path=usr/lib/$(MACH64)/libtcl8.5.so
 file path=usr/lib/$(MACH64)/libtclstub8.5.a
-file path=usr/lib/$(MACH64)/tclConfig.sh
+file path=usr/lib/$(MACH64)/tclConfig.sh mode=0555
 file path=usr/lib/libtcl8.5.so
 file path=usr/lib/libtclstub8.5.a
 file path=usr/lib/tcl8.5/auto.tcl
@@ -275,7 +275,7 @@
 file path=usr/lib/tcl8/8.4/platform/shell-1.1.4.tm
 file path=usr/lib/tcl8/8.5/msgcat-1.4.5.tm
 file path=usr/lib/tcl8/8.5/tcltest-2.3.4.tm
-file path=usr/lib/tclConfig.sh
+file path=usr/lib/tclConfig.sh mode=0555
 file path=usr/share/man/man1/tclsh.1
 file path=usr/share/man/man1t/SafeBase.1t
 file path=usr/share/man/man1t/Tcl.1t
--- a/components/tcl/tk/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tcl/tk/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,9 +20,9 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		tk
@@ -37,31 +37,24 @@
 
 TPNO=			16968
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION = \
-	(cd $(@D)/unix ; autoreconf -f)
+	(cd $(@D)/unix ; autoreconf -fi)
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
 
-#This macro will help to look for the configure 
-#file at the pointed location 
 CONFIGURE_SCRIPT = $(SOURCE_DIR)/unix/configure
 
-CFLAGS += $(studio_XREGS) -xstrconst $(XPG6MODE) $(studio_C99_ENABLE)
-LDFLAGS += $(CC_BITS)
+CFLAGS.studio += -xstrconst $(XPG6MODE) $(studio_C99_ENABLE)
 
-CONFIGURE_OPTIONS 	+= CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS 	+= LDFLAGS="$(LDFLAGS)"
-CONFIGURE_OPTIONS	+= --enable-shared
-CONFIGURE_OPTIONS	+= --enable-man-symlinks
-CONFIGURE_OPTIONS	+= --enable-threads
-CONFIGURE_OPTIONS.32	+= --with-tcl="$(COMPONENT_DIR)/../tcl/build/$(MACH32)"
-CONFIGURE_OPTIONS.64	+= --with-tcl="$(COMPONENT_DIR)/../tcl/build/$(MACH64)"
-CONFIGURE_OPTIONS.64	+= --enable-64bit
+CONFIGURE_OPTIONS +=		--enable-shared
+CONFIGURE_OPTIONS +=		--enable-man-symlinks
+CONFIGURE_OPTIONS +=		--enable-threads
+CONFIGURE_OPTIONS +=		--with-tcl="$(COMPONENT_DIR)/../tcl/build/$(MACH$(BITS))"
+CONFIGURE_OPTIONS.64 +=		--enable-64bit
+CONFIGURE_OPTIONS.sparc.64 +=	--enable-64bit-vis
 
 COMPONENT_TEST_TARGETS = test
 COMPONENT_TEST_TRANSFORMS += \
@@ -75,22 +68,13 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64) $(PROTOUSRLIBDIR)/tkConfig.sh 
-
-$(PROTOUSRLIBDIR)/tkConfig.sh:  $(INSTALL_32)  
-				sed -f $(COMPONENT_DIR)/files/tksed $(PROTOUSRLIBDIR)/tkConfig.sh > \
-					$(PROTOUSRLIBDIR)/tkConfig.sh.new
-				$(MV) $(PROTOUSRLIBDIR)/tkConfig.sh.new $(PROTOUSRLIBDIR)/tkConfig.sh
-				$(CHMOD) 555 $(PROTOUSRLIBDIR)/tkConfig.sh
-
-test: 		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+COMPONENT_POST_INSTALL_ACTION += \
+	sed -f $(COMPONENT_DIR)/files/tksed.$(BITS) \
+		$(PROTO_DIR)$(USRLIB.$(BITS))/tkConfig.sh > \
+		$(PROTO_DIR)$(USRLIB.$(BITS))/tkConfig.sh.new; \
+	$(MV) $(PROTO_DIR)$(USRLIB.$(BITS))/tkConfig.sh.new \
+		$(PROTO_DIR)$(USRLIB.$(BITS))/tkConfig.sh; \
+	$(CHMOD) 555 $(PROTO_DIR)$(USRLIB.$(BITS))/tkConfig.sh
 
 # special targets due to tcl internals dependencies
 ../tcl/build/%/.built:
@@ -100,7 +84,6 @@
 $(CONFIGURE_64):	../tcl/build/$(MACH64)/.built
 
 REQUIRED_PACKAGES += runtime/tcl-8
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
 REQUIRED_PACKAGES += x11/library/libxext
--- a/components/tcl/tk/files/tksed	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#
-# 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) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
-#
-#
-/^TK_BUILD_LIB_SPEC/c\
-TK_BUILD_LIB_SPEC='-ltk8.5'
-
-/^TK_SRC_DIR/c\
-TK_SRC_DIR=
-
-/^TK_BUILD_STUB_LIB_SPEC/c\
-TK_BUILD_STUB_LIB_SPEC='-ltkstub8.5'
-
-/^TK_BUILD_STUB_LIB_PATH/c\
-TK_BUILD_STUB_LIB_PATH='/usr/lib/libtkstub8.5.a'
-
-s,-lsunmath,,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/tcl/tk/files/tksed.32	Wed Mar 30 13:33:31 2016 -0700
@@ -0,0 +1,38 @@
+#
+# 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) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+/^TK_BUILD_LIB_SPEC=/c\
+TK_BUILD_LIB_SPEC='-ltk8.5'
+
+/^TK_SRC_DIR=/c\
+TK_SRC_DIR=
+
+/^TK_BUILD_STUB_LIB_SPEC=/c\
+TK_BUILD_STUB_LIB_SPEC='-ltkstub8.5'
+
+/^TK_BUILD_STUB_LIB_PATH=/c\
+TK_BUILD_STUB_LIB_PATH='/usr/lib/libtkstub8.5.a'
+
+s,-lsunmath,,
+s,-L/usr/lib ,,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/tcl/tk/files/tksed.64	Wed Mar 30 13:33:31 2016 -0700
@@ -0,0 +1,39 @@
+#
+# 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) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+/^TK_BUILD_LIB_SPEC=/c\
+TK_BUILD_LIB_SPEC='-ltk8.5'
+
+/^TK_SRC_DIR=/c\
+TK_SRC_DIR=
+
+/^TK_BUILD_STUB_LIB_SPEC=/c\
+TK_BUILD_STUB_LIB_SPEC='-ltkstub8.5'
+
+/^TK_BUILD_STUB_LIB_PATH=/c\
+TK_BUILD_STUB_LIB_PATH='/usr/lib/64/libtkstub8.5.a'
+
+s,-lsunmath,,
+s,-L/usr/lib/amd64 ,,
+s,-L/usr/lib/sparcv9 ,,
--- a/components/tcl/tk/tk.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tcl/tk/tk.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
 set name=pkg.fmri \
@@ -35,16 +35,16 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2007/317
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 link path=usr/bin/$(MACH32)/wish target=wish8.5
-file usr/bin/wish8.5 path=usr/bin/$(MACH32)/wish8.5
+file path=usr/bin/$(MACH32)/wish8.5
 link path=usr/bin/wish target=wish8.5
-file usr/bin/$(MACH64)/wish8.5 path=usr/bin/wish8.5
+file path=usr/bin/wish8.5
 file path=usr/include/tk.h
 file path=usr/include/tkDecls.h
 file path=usr/include/tkPlatDecls.h
 file path=usr/lib/$(MACH64)/libtk8.5.so
 file path=usr/lib/$(MACH64)/libtkstub8.5.a
 file path=usr/lib/$(MACH64)/tk8.5/pkgIndex.tcl
-file path=usr/lib/$(MACH64)/tkConfig.sh
+file path=usr/lib/$(MACH64)/tkConfig.sh mode=0555
 file path=usr/lib/libtk8.5.so
 file path=usr/lib/libtkstub8.5.a
 file path=usr/lib/tk8.5/bgerror.tcl
@@ -212,7 +212,7 @@
 file path=usr/lib/tk8.5/ttk/xpTheme.tcl
 file path=usr/lib/tk8.5/unsupported.tcl
 file path=usr/lib/tk8.5/xmfbox.tcl
-file path=usr/lib/tkConfig.sh
+file path=usr/lib/tkConfig.sh mode=0555
 file path=usr/share/man/man1/wish.1
 file path=usr/share/man/man1t/bell.1t
 file path=usr/share/man/man1t/bind.1t
--- a/components/tcpdump/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tcpdump/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,60 +18,41 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		tcpdump
 COMPONENT_VERSION=	4.7.4
 COMPONENT_PROJECT_URL=	http://www.tcpdump.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:5a321f0fb959b928f26112c9f49f81d754c23c1d8ffb0feb69304fee06b77e0a
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)release/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/tcpdump
 
 TPNO=			22949
 
 # Prevent macro redefinition error 
 CFLAGS += -D _NETINET_IP_H
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # fix my alignment issues instead of falling over on sparc
 studio_ALIGN.sparc.64=-xmemalign=16i
 CONFIGURE_OPTIONS.sparc += ac_cv___attribute__=no
-CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(MACH))
 
 # lazyloading (indirectly enabled by -Bdirect) seems to cause problems with
 # libpcap device enumeration.
 LD_B_DIRECT=
 
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS += --enable-ipv6=yes
 CONFIGURE_OPTIONS += --with-user=nobody
 CONFIGURE_OPTIONS += --without-crypto
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # common targets
-configure:	$(CONFIGURE_64)
-
-build:          $(BUILD_64)
-
-install:        $(INSTALL_64) 
-
 COMPONENT_PRE_TEST_ACTION = \
         ($(CP) -r $(SOURCE_DIR)/tests $(@D)/.)
 
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/libpcap
--- a/components/tcpdump/tcpdump.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tcpdump/tcpdump.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,6 +36,6 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2009/147
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 file exec_attr.tcpdump path=etc/security/exec_attr.d/diagnostic:tcpdump
-file usr/sbin/$(MACH64)/tcpdump path=usr/sbin/tcpdump
+file path=usr/sbin/tcpdump
 file path=usr/share/man/man1/tcpdump.1
 license tcpdump.license license=BSD
--- a/components/tcsh/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tcsh/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,25 +22,22 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		tcsh
 COMPONENT_VERSION=	6.19.00
 IPS_COMPONENT_VERSION=	6.19.0
 COMPONENT_PROJECT_URL=	http://www.tcsh.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:12e271e0b89e4259d9d6e8d525322e77340e7244cfbd199a591e5f8146285c49
 COMPONENT_ARCHIVE_URL=	ftp://ftp.astron.com/pub/tcsh/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/tcsh
 
 TPNO=			24443
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+# the testsuite needs to be configured first
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -49,18 +46,14 @@
 COMPONENT_PRE_TEST_ACTION = \
     ($(RM) $(SOURCE_DIR)/tests/package.m4)
 
-
 COMPONENT_PREP_ACTION = \
 	(cd $(@D) ; autoconf )
 
 LOCALEDIR=$(PROTO_DIR)/$(CONFIGURE_LOCALEDIR)
 
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_PREFIX)/bin
+CONFIGURE_OPTIONS  +=		--localedir=$(CONFIGURE_LOCALEDIR)
 
-CONFIGURE_OPTIONS  +=		--localedir=$(CONFIGURE_LOCALEDIR)
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-
-COMPONENT_TEST_ENV += PATH=/usr/gnu/bin:/usr/bin
+COMPONENT_TEST_ENV += PATH=$(GNUBIN):$(USRBINDIR)
 COMPONENT_SYSTEM_TEST_TARGETS= system-test
 
 # Strip compilation lines from test output
@@ -71,21 +64,4 @@
 	'-e "s|^make.*: Entering directory.*$$|XXX_CC_XXX|g" ' \
 	'-e "/^XXX_CC_XXX$$/d" '
 
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test: 		$(TEST_64)
-
-# the testsuite needs to be configured first
-system-test:    configure $(SYSTEM_TEST_64)
-
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += text/locale
--- a/components/texinfo/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/texinfo/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,30 +18,25 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 # using gcc makes parfait happy.
-COMPILER=gcc
-
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		texinfo
 COMPONENT_VERSION=	6.0
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/texinfo/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:11ba4358696e8be3b3c7cfc88b89cf69525791aeabf0ee0a59ca58ebbd3471e4
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/texinfo/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/texinfo
 
 TPNO_TEXINFO=		26645
 TPNO_TEXI2HTML=		9089
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 INFOPATH := /usr/share/info
 INFOPATH := $(INFOPATH):/usr/sfw/share/info
@@ -51,11 +46,7 @@
 
 CPPFLAGS += -DDEFAULT_INFOPATH=\\\"$(INFOPATH)\\\"
 
-CONFIGURE_BINDIR.64 =   $(CONFIGURE_PREFIX)/bin
-
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=		CPPFLAGS="$(CPPFLAGS)"
 
 COMPONENT_TEST_TRANSFORMS += \
 	'-e "s|^.*$(CC).*$$|XXX_CC_XXX|g" ' \
@@ -67,23 +58,9 @@
 	'-e "s|^make.*: Entering directory.*$$|XXX_CC_XXX|g" ' \
 	'-e "/^XXX_CC_XXX$$/d" '
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += runtime/perl-512
 REQUIRED_PACKAGES += runtime/python-27
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
--- a/components/texinfo/texinfo.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/texinfo/texinfo.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 # Note for the next texinfo maintainer:
--- a/components/text-utilities/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/text-utilities/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,9 +18,11 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		text-utilities
@@ -31,13 +33,12 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:e0457f715b73f4a349e1acb08cb410bf0edc9a74a3f75c357070f31f70e33cd6
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)/v2.25/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/text-utilities
 
 TPNO=			21750
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= install $(TEST_64)
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 # We currently only want some of the text-utils text utilities from this
 # component, so enumerate it in a macro that we can use for build and install.
@@ -51,9 +52,6 @@
 COMPONENT_PRE_INSTALL_ACTION = \
 	(cd $(@D)/po ; $(GMAKE) text-utilities.pot-update)
 
-CONFIGURE_OPTIONS +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=		--bindir=$(CONFIGURE_BINDIR.32)
-
 # We don't need the Python bindings built.
 CONFIGURE_OPTIONS +=		--without-python
 
@@ -76,12 +74,10 @@
 COMPONENT_POST_INSTALL_ACTION = \
 	(cd $(@D)/po ; $(GMAKE) $(COMPONENT_INSTALL_ARGS) install)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-COMPONENT_TEST_ENV +=	TS_CMD_COLRM=$(PROTO_DIR)/usr/bin/colrm
-COMPONENT_TEST_ENV +=	TS_CMD_COLUMN=$(PROTO_DIR)/usr/bin/column
-COMPONENT_TEST_ENV +=	TS_CMD_HEXDUMP=$(PROTO_DIR)/usr/bin/hexdump
-COMPONENT_TEST_ENV +=	TS_CMD_TAILF=$(PROTO_DIR)/usr/bin/tailf
+COMPONENT_TEST_ENV +=	TS_CMD_COLRM=$(PROTOUSRBINDIR)/colrm
+COMPONENT_TEST_ENV +=	TS_CMD_COLUMN=$(PROTOUSRBINDIR)/column
+COMPONENT_TEST_ENV +=	TS_CMD_HEXDUMP=$(PROTOUSRBINDIR)/hexdump
+COMPONENT_TEST_ENV +=	TS_CMD_TAILF=$(PROTOUSRBINDIR)/tailf
 COMPONENT_TEST_ENV +=	PATH="$(GNUBIN):$(PATH)"
 COMPONENT_TEST_DIR =	$(COMPONENT_SRC)/tests
 
@@ -93,10 +89,10 @@
 COMPONENT_TEST_ARGS =		--verbose
 COMPONENT_TEST_TARGETS =	colrm column hexdump tailf
 
-COMPONENT_SYSTEM_TEST_ENV +=   TS_CMD_COLRM=/usr/bin/colrm
-COMPONENT_SYSTEM_TEST_ENV +=   TS_CMD_COLUMN=/usr/bin/column
-COMPONENT_SYSTEM_TEST_ENV +=   TS_CMD_HEXDUMP=/usr/bin/hexdump
-COMPONENT_SYSTEM_TEST_ENV +=   TS_CMD_TAILF=/usr/bin/tailf
+COMPONENT_SYSTEM_TEST_ENV +=   TS_CMD_COLRM=$(USRBINDIR)/colrm
+COMPONENT_SYSTEM_TEST_ENV +=   TS_CMD_COLUMN=$(USRBINDIR)/column
+COMPONENT_SYSTEM_TEST_ENV +=   TS_CMD_HEXDUMP=$(USRBINDIR)/hexdump
+COMPONENT_SYSTEM_TEST_ENV +=   TS_CMD_TAILF=$(USRBINDIR)/tailf
 COMPONENT_SYSTEM_TEST_ENV +=   PATH="$(GNUBIN):$(PATH)"
 COMPONENT_SYSTEM_TEST_DIR =    $(COMPONENT_SRC)/tests
 
@@ -109,15 +105,3 @@
 COMPONENT_SYSTEM_TEST_CMD =	./run.sh
 COMPONENT_SYSTEM_TEST_ARGS =	--verbose
 COMPONENT_SYSTEM_TEST_TARGETS =	colrm column hexdump tailf
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		install $(TEST_64)
-
-system-test: 	configure $(SYSTEM_TEST_64)
-
-REQUIRED_PACKAGES += system/library
--- a/components/tidy/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tidy/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,14 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		tidy
 COMPONENT_VERSION=	1.0.0
 COMPONENT_PROJECT_URL=	http://tidy.sourceforge.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:074023e48ed151db743d194af1028e4a17fa72a18e4069b4f18d4683db4bb9cf
 COMPONENT_ARCHIVE_URL=	$(EXTERNAL_ARCHIVE_MIRROR)/$(SOURCE_ARCHIVE)
@@ -37,10 +35,8 @@
 
 TPNO=			9098
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
 #tree.js, treeview.js, tidyenum_8h.html are installed 
 #from files directory manually as doxygen didn't generate them.
@@ -53,15 +49,11 @@
 CONFIGURE_OPTIONS  +=       --enable-access 
 CONFIGURE_OPTIONS  +=       --enable-utf16 
 CONFIGURE_OPTIONS  +=       --enable-asian
-CONFIGURE_OPTIONS  +=	    CFLAGS="$(CFLAGS)"
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CP) -r $(SOURCE_DIR)/test $(@D))
 
-PROTODOCDIR=$(PROTOUSRSHAREDIR)/doc/tidy
-
-$(PROTODOCDIR):
-	$(MKDIR) $@
+PROTODOCDIR=$(PROTOUSRSHAREDOCDIR)/tidy
 
 COMPONENT_TEST_DIR =    $(@D)/test
 COMPONENT_TEST_CMD =	./testall.sh
@@ -78,17 +70,8 @@
 
 ASLR_MODE = $(ASLR_ENABLE)
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64) $(PROTODOCDIR)
-		$(CP) -r $(SOURCE_DIR)/htmldoc/api $(PROTODOCDIR)
-
-test:		$(TEST_32_and_64)
-
-system-test:    $(SYSTEM_TEST_32_and_64)
+COMPONENT_POST_INSTALL_ACTION += \
+		($(MKDIR) $(PROTODOCDIR); \
+		$(CP) -r $(SOURCE_DIR)/htmldoc/api $(PROTODOCDIR))
 
 REQUIRED_PACKAGES += developer/documentation-tool/doxygen
-REQUIRED_PACKAGES += system/library
--- a/components/tidy/tidy.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tidy/tidy.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,8 +36,8 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2007/134
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/tab2space path=usr/bin/tab2space
-file usr/bin/$(MACH64)/tidy path=usr/bin/tidy
+file path=usr/bin/tab2space
+file path=usr/bin/tidy
 file include/buffio.h path=usr/include/tidy/buffio.h
 file include/platform.h path=usr/include/tidy/platform.h
 file include/tidy.h path=usr/include/tidy/tidy.h
--- a/components/timezone/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/timezone/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -19,18 +19,17 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= NO_ARCH
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME= 	timezone
-
 COMPONENT_VERSION=    	2015.7
-
-COMPONENT_BUGDB=	utility/timezone
-
+COMPONENT_SRC=
 HUMAN_VERSION=		2015g
-
 TPNO=			24870
 
 # Build info part of pkg(5) FMRI dropped ",$(OS_VERSION)" between 11 and 12;
@@ -47,14 +46,15 @@
 	 factory northamerica pacificnew \
 	 southamerica backward
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= archive
+COMMON_TARGETS= no
+include $(WS_MAKE_RULES)/common.mk
 
 PKG_MACROS +=		OS_META_VERSION=$(OS_META_VERSION)
 
 POFILE=zoneinfo.po
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+CLEAN_PATHS += $(POFILE)
 
 build:
 	@/bin/sh ./do_pofile.sh > $(POFILE)
@@ -67,5 +67,3 @@
 
 system-test:    $(NO_TESTS)
 
-clean::
-	$(RM) -r $(BUILD_DIR) $(POFILE)
--- a/components/tmux/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tmux/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,47 +20,26 @@
 #
 
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		tmux
 COMPONENT_VERSION=	1.9
 COMPONENT_MICRO_VERSION=	a
 IPS_COMPONENT_VERSION=	1.9.1
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)$(COMPONENT_MICRO_VERSION)
+HUMAN_VERSION=		$(COMPONENT_VERSION)$(COMPONENT_MICRO_VERSION)
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(HUMAN_VERSION)
 COMPONENT_PROJECT_URL=	http://tmux.sourceforge.net
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:c5e3b22b901cf109b20dab54a4a651f0471abd1f79f6039d79b250d21c2733f5
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/tmux/files/tmux/$(COMPONENT_NAME)-$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/tmux
 
 TPNO=			20510
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS  +=	CXXFLAGS="$(CXXFLAGS)"
-
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 REQUIRED_PACKAGES += library/libevent
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/tmux/tmux.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tmux/tmux.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -28,6 +28,7 @@
 set name=pkg.summary value="tmux - terminal multiplexer"
 set name=pkg.description \
     value="tmux(1) is a terminal multiplexer that enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached."
+set name=pkg.human-version value=$(HUMAN_VERSION)
 set name=com.oracle.info.description value="the tmux terminal multiplexer"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification \
@@ -38,6 +39,6 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2013/270
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 #
-file usr/bin/$(MACH64)/tmux path=usr/bin/tmux
+file path=usr/bin/tmux
 file path=usr/share/man/man1/tmux.1
 license tmux.license license="MIT, BSD"
--- a/components/tomcat-8/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tomcat-8/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,7 +22,7 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= NO_ARCH
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		tomcat
@@ -30,11 +30,9 @@
 COMPONENT_PROJECT_URL=	http://tomcat.apache.org/
 COMPONENT_SRC_NAME=	apache-tomcat
 COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)-src
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:b8f7770ae947a0c0aed9b5a6f3e2ff18fd27a07f068cc6029f019b5d4c6de560
 COMPONENT_ARCHIVE_URL=	http://www.apache.org/dist/tomcat/tomcat-8/v$(COMPONENT_VERSION)/src/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/tomcat
 
 # Tomcat subcomponents
 COMPONENT_ARCHIVE_1= ecjsrc-4.4.2.jar
@@ -44,9 +42,10 @@
 
 TPNO=			26981
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/ant.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= ant
+TEST_TARGET= $(SKIP_TEST)
+SYSTEM_TEST_TARGET= $(SKIP_TEST)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL=0
 
@@ -69,15 +68,8 @@
 	(cd $(PROTO_DIR) ; $(RM) conf/CONF.tar.gz ; \
 	    gtar cfz conf/CONF.tar.gz conf/* )
 
-ASLR_MODE = $(ASLR_NOT_APPLICABLE)
-
-build:	$(BUILD_NO_ARCH)
-
-install: build
-
-test:	$(SKIP_TEST)
-
-system-test:	$(SKIP_TEST)
+# Used by this Makefile
+REQUIRED_PACKAGES += archiver/gnu-tar
 
 REQUIRED_PACKAGES += developer/java/junit
 REQUIRED_PACKAGES += runtime/java/jre-8
--- a/components/top/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/top/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,46 +18,29 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		top
 COMPONENT_VERSION=	3.8beta1
+HUMAN_VERSION=		$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://www.unixtop.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:6c683e9cb092078cbc1b2233b15fa8bd3d35a00874e6ba27cf54370d1d64fa4d
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)dist/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/top
 
 TPNO=			5701
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 IPS_COMPONENT_VERSION =	3.8
 
 # viewpathing support in the build is broken in the 'install' target
 COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/top/top.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/top/top.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -26,7 +26,7 @@
     value=pkg:/diagnostic/top@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary \
     value="provides a rolling display of top cpu using processes"
-set name=pkg.human-version value=$(COMPONENT_VERSION)
+set name=pkg.human-version value=$(HUMAN_VERSION)
 set name=com.oracle.info.description value="the top utility"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification \
@@ -35,6 +35,6 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/533
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/top path=usr/bin/top
+file path=usr/bin/top
 file path=usr/share/man/man1/top.1
 license top.license license="BSD, Apachev2.0"
--- a/components/tree/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/tree/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -17,48 +17,35 @@
 # information: Portions Copyright [yyyy] [name of copyright owner]
 #
 # CDDL HEADER END
+#
 
 #
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		tree
 COMPONENT_VERSION=	1.7.0
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12
 COMPONENT_PROJECT_URL=	http://mama.indstate.edu/users/ice/tree/
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)src/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/tree
 
 TPNO=			27186
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Fixes creation of executable
-CC += $(CC_BITS)
-# The native Makefile invites patching to set the following, but doing it here
+LDFLAGS += $(CC_BITS)
+
+# The native Makefile invites patching to build for Solaris, but doing it here
 # instead will keep it working if the build system changes.
 COMPONENT_BUILD_ARGS += CC="$(CC)"
 COMPONENT_BUILD_ARGS += CFLAGS="$(CFLAGS)"
 COMPONENT_BUILD_ARGS += LDFLAGS="$(LDFLAGS)"
 COMPONENT_INSTALL_ARGS += BINDIR=$(PROTOUSRBINDIR)
 COMPONENT_INSTALL_ARGS += MANDIR=$(PROTOUSRSHAREMAN1DIR)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-REQUIRED_PACKAGES += system/library
--- a/components/trousers/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/trousers/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,15 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		trousers
 COMPONENT_VERSION=	0.3.6
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_PROJECT_URL=	http://sourceforge.net/projects/trousers/files/trousers/
 COMPONENT_ARCHIVE_HASH=	\
 	sha256:91025f60248af44df192e8df16fa6b0c0f1e48c54f6dc51626567ed95758b0d6
@@ -35,28 +35,27 @@
 
 TPNO=			8341
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/lint-libraries.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL=0
 
-LIBS=-lnsl -lsocket -lgen
-
+ifeq ($(OS_VERSION),5.11)
+LIBS=-lnsl -lsocket
 CFLAGS += "-D_POSIX_PTHREAD_SEMANTICS"
+endif
 
-CONFIGURE_OPTIONS += --sbindir=/usr/lib
+LIBS += -lgen
+
+LDFLAGS += -lbsm -lscf -lresolv
+
+CONFIGURE_OPTIONS += --sbindir=$(USRLIBDIR)
+# 'openssl' is an undocumented option that causes trousers to use OpenSSL's UI
+# interfaces for text-based PIN entry.
 CONFIGURE_OPTIONS += --with-gui=openssl
-CONFIGURE_OPTIONS += CC="$(CC)"
 CONFIGURE_OPTIONS += LD="$(CC)"
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS) -lpthread -lbsm -lscf -lresolv"
 CONFIGURE_OPTIONS += LIBS="$(LIBS)"
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
 COMPONENT_POST_CONFIGURE_ACTION = (cd $(COMPONENT_SRC); \
 	for f in `ls src/include/tss/*.h` ; do \
 		/usr/bin/dos2unix $$f $$f; \
@@ -87,22 +86,9 @@
 
 COMPONENT_BUILD_TARGETS = all
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += developer/build/automake-110
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/security/openssl/openssl-fips-140
 REQUIRED_PACKAGES += shell/ksh93
 REQUIRED_PACKAGES += system/core-os
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/network
--- a/components/unixodbc/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/unixodbc/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,17 +18,19 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+# 32-bit is preferred until sufficient testing can be done.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
-PATH=$(dir $(CC)):/usr/bin:/usr/gnu/bin
+PATH=$(dir $(CC)):$(USRBINDIR):$(GNUBIN)
 
 COMPONENT_NAME=		unixODBC
 COMPONENT_VERSION=	2.3.1
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://unixodbc.org/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:1f5be3edecff9e31072ef738ea1d8019594c4f0c2e3ab427e6eef153491db6a2
 COMPONENT_ARCHIVE_URL=	http://ftp.unixodbc.org/pub/unixODBC/$(COMPONENT_ARCHIVE)
@@ -36,9 +38,8 @@
 
 TPNO=			9099
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL = 0
 
@@ -46,27 +47,29 @@
 studio_C99MODE = -Xc $(studio_C99_ENABLE)
 
 # -xinline=%auto -- we like inlining where appropriate
-CFLAGS += -xinline=%auto
+CFLAGS.studio += -xinline=%auto
 
 # -xbuiltin=%none -- builtins have been known to be buggy
-CFLAGS += -xbuiltin=%none
+CFLAGS.studio += -xbuiltin=%none
 
 CFLAGS += $(CPP_LARGEFILES)
 CFLAGS += $(XPG6MODE)
 CFLAGS += $(CPP_POSIX)
 CFLAGS += $(CPP_C99_EXTENDED_MATH)
-CFLAGS += $(studio_PIC)
+CFLAGS.studio += $(studio_PIC)
 
-GSED = /usr/gnu/bin/sed
+X11LIB.32 = $(CONFIGURE_LIBDIR.32)
+X11LIB.64 = $(CONFIGURE_LIBDIR.64)
 
-X11LIB.32 = $(CONFIGURE_PREFIX)/lib
-X11LIB.64 = $(CONFIGURE_PREFIX)/lib/$(MACH64)
+ifeq ($(OS_VERSION),5.11)
+LD_OPTIONS += -lsocket -lnsl
+endif
 
-LD_OPTIONS += -lsocket -lresolv -lnsl -lgen
+LD_OPTIONS += -lresolv -lgen
 
 CONFIGURE_OPTIONS  +=	--includedir=$(CONFIGURE_PREFIX)/include/odbc
-CONFIGURE_OPTIONS  +=	--localstatedir=/var
-CONFIGURE_OPTIONS  +=	--sysconfdir=/etc/odbc
+CONFIGURE_OPTIONS  +=	--localstatedir=$(VARDIR)
+CONFIGURE_OPTIONS  +=	--sysconfdir=$(ETCDIR)/odbc
 CONFIGURE_OPTIONS  +=	--x-includes="$(CONFIGURE_PREFIX)/include"
 CONFIGURE_OPTIONS  +=	--x-libraries="$(X11LIB.$(BITS))"
 CONFIGURE_OPTIONS  +=	--enable-shared
@@ -92,38 +95,26 @@
 CONFIGURE_OPTIONS  +=	--with-pic
 
 CONFIGURE_ENV  +=   LD="$(CC) $(CFLAGS) $(LDFLAGS)"
-CONFIGURE_ENV  +=   CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV  +=   LDFLAGS="$(LDFLAGS)"
 CONFIGURE_ENV  +=   INSTALL="$(INSTALL)"
 
-PROTOPKGCONFIGDIR32 = $(PROTOUSRLIBDIR)/pkgconfig
-PROTOPKGCONFIGDIR64 = $(PROTOUSRLIBDIR64)/pkgconfig
-
 ASLR_MODE =	$(ASLR_ENABLE)
 
-configure:	$(CONFIGURE_32_and_64)
-
-build: $(BUILD_32_and_64)
-
-install: $(INSTALL_32_and_64)
-	$(MKDIR) $(PROTOPKGCONFIGDIR32)
-	$(MKDIR) $(PROTOPKGCONFIGDIR64)
-	$(GSED) -e "s#SED_SIZEOF_LONG#4#g" \
+COMPONENT_POST_INSTALL_ACTION.32 += \
+	($(MKDIR) $(PROTOPKGCONFIGDIR); \
+	$(GSED) -e 's|SED_SIZEOF_LONG|4|g' \
 	    $(COMPONENT_DIR)/Solaris/unixODBC.pc > \
-	    $(PROTOPKGCONFIGDIR32)/unixODBC.pc
-	$(GSED) -e "s#SED_SIZEOF_LONG#8#g" \
+	    $(PROTOPKGCONFIGDIR)/unixODBC.pc);
+
+COMPONENT_POST_INSTALL_ACTION.64 += \
+	($(MKDIR) $(PROTOPKGCONFIGDIR64); \
+	$(GSED) -e 's|SED_SIZEOF_LONG|8|g' \
 	    $(COMPONENT_DIR)/Solaris/unixODBC.pc > \
-	    $(COMPONENT_DIR)/unixODBC.pc.1
-	$(GSED) -e 's#/lib#/lib/$(MACH64)#g' \
+	    $(COMPONENT_DIR)/unixODBC.pc.1; \
+	$(GSED) -e 's|/lib|/lib/$(MACH64)|g' \
 	    $(COMPONENT_DIR)/unixODBC.pc.1 > \
-	    $(PROTOPKGCONFIGDIR64)/unixODBC.pc
-	$(RM) -f $(COMPONENT_DIR)/unixODBC.pc.1
-
-test: $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
+	    $(PROTOPKGCONFIGDIR64)/unixODBC.pc; \
+	$(RM) -f $(COMPONENT_DIR)/unixODBC.pc.1);
 
 REQUIRED_PACKAGES += library/libtool/libltdl
 REQUIRED_PACKAGES += library/readline
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/unrar/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/unrar/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,12 +20,12 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
-PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin:/usr/sbin
+PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN):$(USRSBINDIR)
 
 COMPONENT_NAME=		unrar
 COMPONENT_VERSION=	4.2.4
@@ -35,46 +35,31 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:9432bf798e5f7123f3060f37b75b7c07f36f0091305f46473dcae9154f8cd686
 COMPONENT_ARCHIVE_URL=	http://www.rarlab.com/rar/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/unrar
 
 TPNO=			18537
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-
 # We need this before the default PKG_PROTO_DIRS, so set it before we include
-# ips.mk, which will append the default set.
+# common.mk, which will append the default set.
 PKG_PROTO_DIRS = $(BUILD_DIR_64)
 
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+INSTALL_TARGET= build
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL =	0
 
-
 # Needed by .../unrar/os.hpp to correctly define platform endianness.
 CXXFLAGS.i386 = -DLITTLE_ENDIAN
 CXXFLAGS.sparc = -DBIG_ENDIAN
-CXXFLAGS += $(CXXFLAGS.$(MACH))
-CXXFLAGS += "-erroff=wvarhidemem"
-COMPONENT_BUILD_ENV += CXX="$(CXX)"
-COMPONENT_BUILD_ENV += CXXFLAGS="$(CXXFLAGS)"
-COMPONENT_BUILD_ENV += LDFLAGS="$(studio_NORUNPATH) -m64"
+CXXFLAGS.studio += "-erroff=wvarhidemem"
+
+LDFLAGS += $(CC_BITS) $(studio_NORUNPATH)
+
 COMPONENT_BUILD_ENV += DEFINES="$(CPP_LARGEFILES)"
 
 COMPONENT_BUILD_ARGS += -f makefile.unix
 COMPONENT_BUILD_ARGS += STRIP="/bin/true"
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-build:		$(BUILD_64)
-
-install:	$(BUILD_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
--- a/components/unzip/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/unzip/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -17,11 +17,12 @@
 # information: Portions Copyright [yyyy] [name of copyright owner]
 #
 # CDDL HEADER END
+#
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		unzip
@@ -36,9 +37,9 @@
 
 TPNO=			16388
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # remove the unwanted file.
 COMPONENT_PREP_ACTION = $(RM) $(SOURCE_DIR)/crc_i386.S
@@ -56,19 +57,4 @@
 COMPONENT_INSTALL_ARGS += BINDIR=$(PROTOUSRBINDIR)
 COMPONENT_INSTALL_ARGS += MANDIR=$(PROTOUSRSHAREMAN1DIR)
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
--- a/components/vim/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/vim/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,11 +22,9 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
-PATH=/usr/bin:/usr/gnu/bin
-
 COMPONENT_NAME=		vim
 COMPONENT_VERSION=	7.4
 IPS_COMPONENT_VERSION=	$(shell echo $(HG_REV) | sed -e 's/-/./g' -e 's/v//')
@@ -38,20 +36,15 @@
 HG_HASH= sha256:0c823290aebf4ea341be2f8280cc5906cdbbf772c54fa675afb0845983f23b60
 
 
-COMPONENT_BUGDB=	utility/vim
-
 TPNO=			21780
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+INSTALL_TARGET=
+include $(WS_MAKE_RULES)/common.mk
 
 PATCH_LEVEL =	0
 
 PKG_MACROS +=	VIMVER=vim74
 
-ASLR_MODE =	$(ASLR_ENABLE)
-
 X_VARIANT =	$(BUILD_DIR)/$(MACH64)-gvim
 NOX_VARIANT =	$(BUILD_DIR)/$(MACH64)-vim
 
@@ -70,11 +63,6 @@
 # Necessary to pass 64-bit flags to the link stage.
 CC +=			$(CC_BITS)
 
-# Put all the binaries directly in /usr/bin, not in /usr/bin/64.
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
-
-# Necessary to pass 64-bit flags to the compilation stage.
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	--with-features=huge
 CONFIGURE_OPTIONS +=	--with-compiledby="the Solaris Userland build environment"
 CONFIGURE_OPTIONS +=	--with-modified-by="Solaris Userland <[email protected]>"
@@ -112,24 +100,14 @@
 	nawk '/begin of license/ {p=1; getline; next} /end of license/ {p=0} p == 1 {print}' $< > $@
 
 # common targets
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
 install:	$(INSTALL_64) $(X_VARIANT)/.built $(BUILD_DIR)/license
 
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += library/desktop/gdk-pixbuf
 REQUIRED_PACKAGES += library/desktop/gtk2
 REQUIRED_PACKAGES += library/desktop/pango
 REQUIRED_PACKAGES += library/glib2
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libice
 REQUIRED_PACKAGES += x11/library/libsm
--- a/components/w3m/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/w3m/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,39 +18,34 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
-COMPILER = gcc
-
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		w3m
 COMPONENT_VERSION=	0.5.3
 COMPONENT_PROJECT_URL=	http://w3m.sourceforge.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:e994d263f2fd2c22febfbe45103526e00145a7674a0fda79c822b97c2770a9e3
 COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/$(COMPONENT_NAME)/files/$(COMPONENT_NAME)/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)/download
-COMPONENT_BUGDB=	utility/w3m
 
 TPNO=			21998
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_PREP_ACTION = (cd $(@D) ; autoconf ; automake ; aclocal ; libtoolize )
 
 # install the bits in /usr/bin and /usr/lib
-CONFIGURE_BINDIR.64 = $(CONFIGURE_BINDIR.32)
-CONFIGURE_LIBDIR.64 = $(CONFIGURE_LIBDIR.32)
+CONFIGURE_LIBDIR.64= $(CONFIGURE_LIBDIR.32)
 
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS +=	--libexecdir=$(CONFIGURE_LIBDIR.32)
 CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)
-CONFIGURE_OPTIONS +=	--with-browser=/usr/bin/firefox
+CONFIGURE_OPTIONS +=	--with-browser=$(USRBINDIR)/firefox
 
 # Use the HTML and CSS styling external test suite as referenced at
 # http://www.w3.org/2005/MWI/Tests/
@@ -63,7 +58,7 @@
 COMPONENT_TEST_TARGETS =
 
 COMPONENT_SYSTEM_TEST_DIR =
-COMPONENT_SYSTEM_TEST_CMD =		/usr/bin/w3m
+COMPONENT_SYSTEM_TEST_CMD =		$(USRBINDIR)/w3m
 COMPONENT_SYSTEM_TEST_ARGS =		-dump \
 	http://www.cameronmoll.com/mobile/mkp/pg1.html \
 	http://www.cameronmoll.com/mobile/mkp/pg2.html \
@@ -71,17 +66,6 @@
 	http://www.cameronmoll.com/mobile/mkp/pg4.html
 COMPONENT_SYSTEM_TEST_TARGETS =
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-system-test:	$(SYSTEM_TEST_64)
-
 # The desktop packages differ between S11 and S12; list both for normal
 # and BUILD_TYPE=evaluation builds.
 REQUIRED_PACKAGES += library/desktop/gdk-pixbuf
@@ -92,6 +76,5 @@
 REQUIRED_PACKAGES += library/security/openssl/openssl-fips-140
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += runtime/perl-512
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libx11
--- a/components/watch/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/watch/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,15 +18,17 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
+COMPILER= gcc
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		procps-ng
 COMPONENT_VERSION=	3.3.11
 COMPONENT_PROJECT_URL=	http://sourceforge.net/projects/procps-ng/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:e9493169a2d2adc0bc045538707310c8e877b385e4e296143b62607d2bb044ed
@@ -35,15 +37,12 @@
 
 TPNO=			27264
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+INSTALL_TARGET= build
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
-COMPILER =			gcc
 
-CFLAGS +=			-I/usr/include/ncurses
-
-CONFIGURE_ENV +=		"CFLAGS=$(CFLAGS)"
+CFLAGS +=			-I$(USRINCDIR)/ncurses
 
 # Always show the build and link lines for easier debugging.
 COMPONENT_BUILD_ARGS +=		V=1
@@ -55,16 +54,4 @@
 
 PKG_PROTO_DIRS += $(BUILD_DIR_64)
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-build:		$(BUILD_64)
-
-# Nothing to install.
-install:	$(BUILD_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES +=	library/ncurses
-REQUIRED_PACKAGES +=	system/library
--- a/components/wdiff/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/wdiff/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,32 +18,27 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		wdiff
 COMPONENT_VERSION=	1.2.2
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/wdiff/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:34ff698c870c87e6e47a838eeaaae729fa73349139fc8db12211d2a22b78af6b
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/wdiff/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/wdiff
 
 TPNO=			21556
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-CONFIGURE_OPTIONS +=	CC="$(CC) -m64"
 CONFIGURE_OPTIONS +=	--enable-experimental
 
-CFLAGS +=	-DDIFF_PROGRAM="/usr/gnu/bin/diff"
-
-COMPONENT_BUILD_ENV += CFLAGS="$(CFLAGS)"
+# Used directly as a macro in C code, so literal quotes must be left intact.
+CFLAGS +=	-DDIFF_PROGRAM=\\\"$(GDIFF)\\\"
 
 COMPONENT_TEST_DIR =		$(SOURCE_DIR)/tests
 COMPONENT_TEST_CMD =		./testsuite
@@ -56,20 +51,6 @@
 COMPONENT_SYSTEM_TEST_TARGETS =
 
 # Get wdiff from /usr/bin
-COMPONENT_SYSTEM_TEST_ENV +=   PATH="/usr/bin"
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
+COMPONENT_SYSTEM_TEST_ENV +=   PATH="$(USRBINDIR)"
 
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    configure $(SYSTEM_TEST_64)
-
-
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += text/gnu-diffutils
--- a/components/wdiff/wdiff.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/wdiff/wdiff.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -36,10 +36,10 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 
 
-file usr/bin/$(MACH64)/mdiff path=usr/bin/mdiff
-file usr/bin/$(MACH64)/unify path=usr/bin/unify
-file usr/bin/$(MACH64)/wdiff path=usr/bin/wdiff
-file usr/bin/$(MACH64)/wdiff2 path=usr/bin/wdiff2
+file path=usr/bin/mdiff
+file path=usr/bin/unify
+file path=usr/bin/wdiff
+file path=usr/bin/wdiff2
 file path=usr/share/info/wdiff.info
 file path=usr/share/locale/af/LC_MESSAGES/wdiff-gnulib.mo
 file path=usr/share/locale/be/LC_MESSAGES/wdiff-gnulib.mo
--- a/components/webalizer/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/webalizer/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,9 +22,8 @@
 #
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
-COMPILER =	gcc
-
+COMPILER= gcc
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		webalizer
@@ -36,13 +35,14 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:b37524fbd98e97052a80d59f75e69f857468752cf74cc0eb0972e5fab02eb6f7
 COMPONENT_ARCHIVE_URL=	ftp://ftp.mrunix.net/pub/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/webalizer
 
 TPNO=			27276
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
+
+# Fix 64-bit linking via compiler.
+LDFLAGS += $(CC_BITS)
 
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D))
@@ -53,34 +53,14 @@
 		$(SOURCE_DIR)/sample.conf
 
 CONFIGURE_OPTIONS +=	--enable-dns
-CONFIGURE_OPTIONS +=	--with-gd=/usr/include/gd2
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=	LDFLAGS="$(LDFLAGS)"
+CONFIGURE_OPTIONS +=	--with-gd=$(USRINCDIR)/gd2
 
 # webalizer is defining u_int64_t but also uses db.h
 # which typedefs it, and parfait and gcc 4.7 aren't happy.
 CC += -Du_int64_t=uint64_t
 CONFIGURE_OPTIONS +=	c_cv_type_u_int64_t=yes
 
-# Needed to correctly build that 64-bit library.
-LDFLAGS += $(CC_BITS)
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-configure:	$(CONFIGURE_64)
-
-build:          $(BUILD_64)
-
-install:        $(INSTALL_64)
-
-test:           $(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += database/berkeleydb-5
 REQUIRED_PACKAGES += library/gd
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/components/webalizer/webalizer.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/webalizer/webalizer.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -40,7 +40,7 @@
 set name=org.opensolaris.arc-caseid value=LSARC/2008/503
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 file sample.conf path=etc/webalizer.conf.sample
-file usr/bin/$(MACH64)/webalizer path=usr/bin/webalizer
+file path=usr/bin/webalizer
 file path=usr/share/man/man1/webalizer.1
 license webalizer.license license=GPLv2
 
--- a/components/wget/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/wget/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,25 +18,22 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		wget
 COMPONENT_VERSION=	1.17.1
-COMPONENT_PROJECT_URL=	http://www.gnu.org/software/wget/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:fe559b61eb9cc01635ac6206a14e02cb51591838c35fa83c7a4aacae0bdd97c9
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/wget/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/wget
 
 TPNO=			26307
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+include $(WS_MAKE_RULES)/gnu-component.mk
 
 # Keep just the final test report
 COMPONENT_TEST_TRANSFORMS += '-ne "/^PASS/p" '
@@ -46,17 +43,13 @@
 COMPONENT_TEST_TRANSFORMS += '-ne "/^See/p" '
 COMPONENT_TEST_TRANSFORMS += '-ne "/^Please/p" '
 
-# Enforce wget binary to standard path
-CONFIGURE_BINDIR.64 = $(CONFIGURE_PREFIX)/bin
-
 # Enforce openssl (--with-ssl=openssl) instead of default gnutls
 # (--with-ssl) as wget doesn't work for secure connections with gnutls. 
 # Set PATH to find /usr/perl5/bin/pod2man, so that the man page wget.1
 # can be automatically generated
-CONFIGURE_OPTIONS +=	--sysconfdir=/etc
+CONFIGURE_OPTIONS +=	--sysconfdir=$(ETCDIR)
 CONFIGURE_OPTIONS +=	--with-ssl=openssl
 CONFIGURE_OPTIONS +=	--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)" 
 CONFIGURE_OPTIONS +=	PATH="$(PATH):/usr/perl5/bin"
 
 # Wget test suite will skip majority of tests with few Perl modules
@@ -82,23 +75,8 @@
 	gtar --get $(SOCK)/lib/IO/Socket/SSL $(SOCK)/lib/IO/Socket/SSL.pm \
 	     --strip-components=2 -f $(SOCK).tar.gz; )
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
-
 REQUIRED_PACKAGES += library/libidn
 REQUIRED_PACKAGES += library/pcre
 REQUIRED_PACKAGES += library/security/openssl
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += text/texinfo
--- a/components/which/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/which/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,44 +18,26 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		which
 COMPONENT_VERSION=	2.21
 COMPONENT_PROJECT_URL=	https://savannah.gnu.org/projects/which/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad
-COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/which/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gnu-which
 
 TPNO=			27233
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/gnu-component.mk
 
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin
-
-CONFIGURE_PREFIX    =	/usr/gnu
+CONFIGURE_PREFIX    =	$(USRDIR)/gnu
 CONFIGURE_OPTIONS  +=	--infodir=$(CONFIGURE_INFODIR)
 CONFIGURE_OPTIONS  +=	--disable-iberty
 CONFIGURE_OPTIONS  +=	--disable-dependency-tracking
-CONFIGURE_OPTIONS  +=	CFLAGS="$(CFLAGS)"
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-REQUIRED_PACKAGES += system/library
--- a/components/wireshark/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/wireshark/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,25 +18,23 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		wireshark
 COMPONENT_VERSION=	2.0.2
 COMPONENT_PROJECT_URL=	http://www.wireshark.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
     sha256:e921fb072085a5654d899949bb561d0687f4819f7b63ba35777bb949a9b6b9c1
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)download/src/all-versions/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/wireshark
 
 TPNO=			27086
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-
 # Depends on S12-only changes in ON.
 ifeq ($(BUILD_TYPE), evaluation)
 BUILD_64=
@@ -44,21 +42,20 @@
 PUBLISH_STAMP=
 endif
 
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # Micro version for easy libraries packaging
 MICRO_VERSION:= $(shell echo $(COMPONENT_VERSION) | awk -F. '{ print $$3 }')
 PKG_MACROS+= MICRO_VERSION=$(MICRO_VERSION)
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
 PATCH_LEVEL=0
 
 # We don't have automake 1.14 yet. Thus need to reconfigure with older one.
 COMPONENT_PREP_ACTION += ( cd $(@D) ; $(CONFIG_SHELL) autogen.sh );
 
-CONFIGURE_OPTIONS +=	--bindir=/usr/sbin
+CONFIGURE_BINDIR.64= $(CONFIGURE_SBINDIR.64)
+
 CONFIGURE_OPTIONS +=	--disable-usr-local
 CONFIGURE_OPTIONS +=	--disable-androiddump
 CONFIGURE_OPTIONS +=	--disable-randpkt
@@ -66,9 +63,8 @@
 CONFIGURE_OPTIONS +=	--with-krb5
 CONFIGURE_OPTIONS +=	--with-qt=no
 CONFIGURE_OPTIONS +=	--with-gtk2=yes
-CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)" 
-CONFIGURE_OPTIONS +=	PATH="/usr/perl5/bin:/usr/gnu/bin:$(PATH)"
-CONFIGURE_OPTIONS +=	PKG_CONFIG_PATH=/usr/lib/$(MACH64)/pkgconfig/gnutls-3
+CONFIGURE_OPTIONS +=	PATH="$(USRDIR)/perl5/bin:$(GNUBIN):$(PATH)"
+CONFIGURE_OPTIONS +=	PKG_CONFIG_PATH=$(PKG_CONFIG_PATH.64)/gnutls-3
 
 # We need to avoid RPATH=/usr/lib in Wireshark libraries so that we can
 # create successfully IPS package of different Wireshark branch than is
@@ -83,16 +79,6 @@
 	chmod 755 config.status; \
 	./config.status)
 
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += developer/lexer/flex
 REQUIRED_PACKAGES += developer/parser/bison
 REQUIRED_PACKAGES += diagnostic/wireshark/wireshark-common
@@ -106,7 +92,6 @@
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += runtime/lua
 REQUIRED_PACKAGES += service/security/kerberos-5
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/libpcap
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += system/library/security/libgcrypt
--- a/components/wxwidgets/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/wxwidgets/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,16 +18,17 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
-
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+# 32-bit preferred as only *-config and source generation scripts delivered.
+BUILD_BITS= 32_and_64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		wxwidgets
 COMPONENT_VERSION=	2.8.12
 COMPONENT_SRC_NAME=	wxGTK
-COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:13cf89f2c29bcb90bb56a31ac1af10f23003d3d43c3e4b24991518f5dc4e5abe
 COMPONENT_ARCHIVE_URL=	http://prdownloads.sourceforge.net/wxwindows/$(COMPONENT_ARCHIVE)
@@ -36,9 +37,12 @@
 
 TPNO=			9216
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_32_and_64 += $(BUILD_DIR_32)/contrib/.built \
+	$(BUILD_DIR_64)/contrib/.built
+INSTALL_32_and_64 += $(BUILD_DIR_32)/contrib/.installed \
+	$(BUILD_DIR_64)/contrib/.installed
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 PKG_PROTO_DIRS += $(COMPONENT_DIR)/man
 
@@ -47,8 +51,6 @@
 LDFLAGS += $(CC_BITS)
 LDFLAGS += $(studio_CXXLIB_CSTD)
 
-CXXFLAGS += $(studio_XREGS)
-
 CONFIGURE_OPTIONS += --with-gtk
 CONFIGURE_OPTIONS += --enable-gtk2
 CONFIGURE_OPTIONS += --enable-unicode
@@ -62,9 +64,6 @@
 CONFIGURE_OPTIONS += --without-gnomevfs
 CONFIGURE_OPTIONS += --with-opengl
 CONFIGURE_OPTIONS += --without-libmpack
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS += CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS)"
 
 # I want to use userland's "build" target in contrib subdirectory, but I need
 # to skip the configure phase
@@ -72,21 +71,6 @@
 $(BUILD_DIR_64)/contrib/.configured:
 	$(TOUCH) $@
 
-# common targets
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64) \
-		$(BUILD_DIR_32)/contrib/.built \
-		$(BUILD_DIR_64)/contrib/.built
-
-install:	$(INSTALL_32_and_64) \
-		$(BUILD_DIR_32)/contrib/.installed \
-		$(BUILD_DIR_64)/contrib/.installed
-
-test: 		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
 REQUIRED_PACKAGES += image/library/libjpeg
 REQUIRED_PACKAGES += image/library/libpng
 REQUIRED_PACKAGES += image/library/libtiff
@@ -99,7 +83,6 @@
 REQUIRED_PACKAGES += library/sdl
 REQUIRED_PACKAGES += library/zlib
 REQUIRED_PACKAGES += shell/ksh93
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/c++-runtime
 REQUIRED_PACKAGES += system/library/math
 REQUIRED_PACKAGES += x11/library/libsm
--- a/components/xmlto/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/xmlto/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,32 +22,26 @@
 #
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		xmlto
 COMPONENT_VERSION=	0.0.28
 COMPONENT_PROJECT_URL=	https://fedorahosted.org/xmlto/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
     sha256:2f986b7c9a0e9ac6728147668e776d405465284e13c74d4146c9cbc51fd8aad3
 COMPONENT_ARCHIVE_URL=	 https://fedorahosted.org/releases/x/m/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/xmlto
 
 TPNO=			27193
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_64)
+include $(WS_MAKE_RULES)/common.mk
 
 # These will be used by the xmlto script.
-CONFIGURE_ENV += FIND="/usr/gnu/bin/find"
-CONFIGURE_ENV += GETOPT="/usr/gnu/bin/getopt"
-CONFIGURE_ENV += GREP="/usr/gnu/bin/grep"
-CONFIGURE_ENV += TAIL="/usr/gnu/bin/tail"
-
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
+CONFIGURE_ENV += FIND="$(GNUBIN)/find"
+CONFIGURE_ENV += GETOPT="$(GNUBIN)/getopt"
+CONFIGURE_ENV += GREP="$(GNUBIN)/grep"
+CONFIGURE_ENV += TAIL="$(GNUBIN)/tail"
 
 # Strip compilation lines from test output
 COMPONENT_TEST_TRANSFORMS += \
@@ -65,18 +59,8 @@
 	$(GSED) -i -e "s|^XMLIF=.*$$|XMLIF=/usr/bin/xmlif|" \
 	$(SOURCE_DIR)/xmlif/test/run-test
 
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_64)
-
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(TEST_64)
-
-system-test:    configure $(SYSTEM_TEST_64)
-
+# Used by this Makefile.
+REQUIRED_PACKAGES += text/gnu-sed
 
 REQUIRED_PACKAGES += file/gnu-coreutils
 REQUIRED_PACKAGES += file/gnu-findutils
@@ -84,6 +68,5 @@
 REQUIRED_PACKAGES += library/libxslt
 REQUIRED_PACKAGES += shell/bash
 REQUIRED_PACKAGES += shell/gnu-getopt
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += text/gnu-grep
 REQUIRED_PACKAGES += web/browser/lynx
--- a/components/xmlto/xmlto.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/xmlto/xmlto.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -35,8 +35,8 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2013/212
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/xmlif path=usr/bin/xmlif
-file usr/bin/$(MACH64)/xmlto path=usr/bin/xmlto
+file path=usr/bin/xmlif
+file path=usr/bin/xmlto
 file path=usr/share/man/man1/xmlif.1
 file path=usr/share/man/man1/xmlto.1
 file path=usr/share/xmlto/format/docbook/awt
--- a/components/xorriso/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/xorriso/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,49 +18,35 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         xorriso
 COMPONENT_VERSION=      0.6.0
-COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=  http://scdbackup.sourceforge.net/xorriso/
-COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:1f26880eaacf7bd806520a458963d2374ad6bf90353e08ed0de271b6d45c5b8a
 COMPONENT_ARCHIVE_URL=  http://scdbackup.sourceforge.net/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/xorriso
 
 TPNO=			3504
 
 CPPFLAGS+=		-I./test
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 CONFIGURE_OPTIONS  +=           --enable-shared
 CONFIGURE_OPTIONS  +=           --disable-static
-CONFIGURE_OPTIONS  +=           --sysconfdir=/etc/gnu
+CONFIGURE_OPTIONS  +=           --sysconfdir=$(ETCDIR)/gnu
 CONFIGURE_OPTIONS  +=		--infodir=$(CONFIGURE_INFODIR)
-CONFIGURE_OPTIONS  +=		CPPFLAGS="$(CPPFLAGS)"
 
 # The tarball for this version already has a config.status file so remove it.
 COMPONENT_PREP_ACTION = \
 	 (cd $(@D) ; test -f config.status && rm config.status)
 
-configure:	$(CONFIGURE_32)
-
-build:          $(BUILD_32)
-
-install:        $(INSTALL_32)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += library/readline
 REQUIRED_PACKAGES += library/zlib
-REQUIRED_PACKAGES += system/library
--- a/components/xz/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/xz/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,28 +18,24 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		xz
 COMPONENT_VERSION=	5.2.2
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	http://tukaani.org/xz/
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:73df4d5d34f0468bd57d09f2d8af363e95ed6cc3a4a86129d2f2c366259902a2
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/xz
 
 TPNO=			27216
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
-
-CONFIGURE_OPTIONS +=		CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS +=		--bindir=$(USRBINDIR)
+SYSTEM_TEST_TARGET= configure $(SYSTEM_TEST_32_and_64)
+include $(WS_MAKE_RULES)/common.mk
 
 COMPONENT_TEST_DIR =		$(@D)/tests
 
@@ -60,25 +56,12 @@
 	(cd $(@D)/src/liblzma ; $(GMAKE) liblzma.la )
 
 COMPONENT_SYSTEM_TEST_DIR =	$(@D)/tests
-COMPONENT_SYSTEM_TEST_ENV +=	XZ_SCRIPT=/usr/bin/xz
-COMPONENT_SYSTEM_TEST_ENV +=	XZDEC_SCRIPT=/usr/bin/xzdec
-COMPONENT_SYSTEM_TEST_ENV +=	XZDIFF_SCRIPT=/usr/bin/xzdiff
-COMPONENT_SYSTEM_TEST_ENV +=	XZGREP_SCRIPT=/usr/bin/xzgrep
-
-ASLR_MODE = $(ASLR_ENABLE)
-
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
+COMPONENT_SYSTEM_TEST_ENV +=	XZ_SCRIPT=$(USRBINDIR)/xz
+COMPONENT_SYSTEM_TEST_ENV +=	XZDEC_SCRIPT=$(USRBINDIR)/xzdec
+COMPONENT_SYSTEM_TEST_ENV +=	XZDIFF_SCRIPT=$(USRBINDIR)/xzdiff
+COMPONENT_SYSTEM_TEST_ENV +=	XZGREP_SCRIPT=$(USRBINDIR)/xzgrep
 
 include $(WS_MAKE_RULES)/shared-targets.mk
 
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
-
-system-test:    configure $(SYSTEM_TEST_32_and_64)
-
 REQUIRED_PACKAGES += shell/bash
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/security/crypto
--- a/components/yasm/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/yasm/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,32 +18,26 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+
 #
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_ARCH= i386
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		yasm
 COMPONENT_VERSION=	1.3.0
 COMPONENT_PROJECT_URL=	http://yasm.tortall.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f
 COMPONENT_ARCHIVE_URL=	http://www.tortall.net/projects/$(COMPONENT_NAME)/releases/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/yasm
 
 TPNO=			23620
 
-# We're i386-only
-ifeq ($(MACH), sparc)
-PUBLISH_STAMP= 
-endif
-
 PYTHON_VERSIONS= 2.7
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure-32_and_64.mk
-include $(WS_MAKE_RULES)/common-32_and_64.mk
+include $(WS_MAKE_RULES)/common.mk
 
 # Adjust all the source files in all the Makefile.inc files to generate
 # shared libraries rather than a library archive.
@@ -64,10 +58,6 @@
 	automake --add-missing --copy ; \
 	autoconf)
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS)"
-CONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)"
-CONFIGURE_ENV += LDFLAGS="$(LDFLAGS)"
-
 CONFIGURE_ENV += am_cv_python_pythondir=$(PYTHON_VENDOR_PACKAGES)
 CONFIGURE_ENV += am_cv_python_pyexecdir=$(PYTHON_VENDOR_PACKAGES)
 
@@ -95,8 +85,5 @@
 
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
 
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 # Required for man pages.
 REQUIRED_PACKAGES += developer/documentation-tool/xmlto
-REQUIRED_PACKAGES += system/library
--- a/components/yasm/yasm.p5m	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/yasm/yasm.p5m	Wed Mar 30 13:33:31 2016 -0700
@@ -37,8 +37,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2015/316
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file usr/bin/$(MACH64)/yasm path=usr/bin/yasm \
-    pkg.depend.bypass-generate=libyasm.so.0
+file path=usr/bin/yasm pkg.depend.bypass-generate=libyasm.so.0
 file path=usr/include/libyasm-stdint.h
 file path=usr/include/libyasm.h
 file path=usr/include/libyasm/arch.h
--- a/components/zip/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/zip/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -17,11 +17,12 @@
 # information: Portions Copyright [yyyy] [name of copyright owner]
 #
 # CDDL HEADER END
+#
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		zip
@@ -32,13 +33,12 @@
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369
 COMPONENT_ARCHIVE_URL=	ftp://ftp.info-zip.org/pub/infozip/src/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/zip
 
 TPNO=			17905
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/justmake.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_STYLE= justmake
+TEST_TARGET= $(NO_TESTS)
+include $(WS_MAKE_RULES)/common.mk
 
 # remove the unwanted file.
 COMPONENT_PREP_ACTION = rm -f $(SOURCE_DIR)/match.S
@@ -53,18 +53,4 @@
 COMPONENT_INSTALL_ARGS += BINDIR=$(PROTOUSRBINDIR)
 COMPONENT_INSTALL_ARGS += MANDIR=$(PROTOUSRSHAREMAN1DIR)
 
-# Enable ASLR for this component
-ASLR_MODE = $(ASLR_ENABLE)
-
-# common targets
-build:		$(BUILD_64)
-
-install:	$(INSTALL_64)
-
-test:		$(NO_TESTS)
-
-system-test:    $(NO_TESTS)
-
-
 REQUIRED_PACKAGES += compress/bzip2
-REQUIRED_PACKAGES += system/library
--- a/components/zlib/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/zlib/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -20,16 +20,15 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
+BUILD_BITS= 64_and_32
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		zlib
 COMPONENT_VERSION=	1.2.8
 COMPONENT_PROJECT_URL=	http://www.zlib.net/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d
 COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/project/libpng/zlib/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
@@ -37,12 +36,9 @@
 
 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
+include $(WS_MAKE_RULES)/common.mk
 
 #
 # We want to build hardware specific versions of the longest_match()
@@ -88,10 +84,11 @@
 
 # We need to reset configure options here because zlib is confused with
 # CC and CFLAGS definitions as configure parameters.
-CONFIGURE_OPTIONS	+=  --shared
-CONFIGURE_OPTIONS.64	+= --libdir=/usr/lib/$(MACH64)
+CONFIGURE_OPTIONS	+= --shared
+CONFIGURE_OPTIONS.64	+= --libdir=$(USRLIBDIR64)
 
-CONFIGURE_ENV += CFLAGS="$(CFLAGS) -xalias_level=basic -xdepend"
+CFLAGS.studio += -xalias_level=basic -xdepend
+
 CONFIGURE_ENV += LDSHARED="$(CC) $(CFLAGS) -G"
 
 # This LDSHARED definitions is forced to get all required options plus
@@ -111,18 +108,7 @@
 
 COMPONENT_SYSTEM_TEST_TARGETS= test SYSTEM_TEST=1
 
-configure:	$(CONFIGURE_32_and_64)
-
-build:		$(BUILD_32_and_64)
-
-install:	$(INSTALL_32_and_64)
-
-test:		$(TEST_32_and_64)
+CLEAN_PATHS += $(PROTO_DIR) capabilities/*/*/*.o capabilities/*/$(MACH32)/*.s
 
-system-test:    $(BUILD_32_and_64) $(SYSTEM_TEST_32_and_64)
+system-test: build $(SYSTEM_TEST_32_and_64)
 
-clean::
-	$(RM) -r $(BUILD_DIR) $(PROTO_DIR) capabilities/*/*/*.o capabilities/*/$(MACH32)/*.s
-
-
-REQUIRED_PACKAGES += system/library
--- a/components/zsh/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/components/zsh/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -22,48 +22,47 @@
 #
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
-
+BUILD_BITS= 64
 include ../../make-rules/shared-macros.mk
 include $(WS_MAKE_RULES)/shared-targets.mk
 
 COMPONENT_NAME=		zsh
 COMPONENT_VERSION=	5.2
 COMPONENT_PROJECT_URL=	http://www.zsh.org/
-COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
     sha256:f17916320ffaa844bbd7ce48ceeb5945fc5f3eff64b149b4229bbfbdf3795a9d
 COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/project/zsh/zsh/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
-COMPONENT_BUGDB=	utility/zsh
 
 TPNO=			26447
 
-include $(WS_MAKE_RULES)/prep.mk
-include $(WS_MAKE_RULES)/configure.mk
-include $(WS_MAKE_RULES)/ips.mk
+BUILD_TARGET=
+INSTALL_TARGET=
+include $(WS_MAKE_RULES)/common.mk
+
+CONFIGURE_LIBDIR.64= $(CONFIGURE_LIBDIR.32)
 
 CONFIGURE_OPTIONS += -n
-CONFIGURE_OPTIONS += --bindir=/usr/bin
-CONFIGURE_OPTIONS += --libdir=/usr/lib
 CONFIGURE_OPTIONS += --enable-cppflags="$(CPP_LARGEFILES)"
 CONFIGURE_OPTIONS += --enable-dynamic
-CONFIGURE_OPTIONS += --enable-etcdir=/etc
+CONFIGURE_OPTIONS += --enable-etcdir=$(ETCDIR)
 CONFIGURE_OPTIONS += --enable-function-subdirs
 # Zsh uses the compiler to link, so we need to pass CC_BITS, not LD_BITS.
 CONFIGURE_OPTIONS += --enable-ldflags="$(CC_BITS) -zignore"
+ifeq ($(OS_VERSION),5.11)
 CONFIGURE_OPTIONS += --enable-libs="-lnsl"
+endif
 CONFIGURE_OPTIONS += --enable-maildir-support
 CONFIGURE_OPTIONS += --enable-multibyte
 CONFIGURE_OPTIONS += --enable-pcre
 CONFIGURE_OPTIONS += --with-tcsetpgrp
 CONFIGURE_OPTIONS += --disable-gdbm
-CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
 
-# pcre-config --libs unnecessarily emits "-R/usr/lib"; we remove it so that it
+# pcre-config --libs unnecessarily emits "-R$(USRLIBDIR64)"; we remove it so that it
 # doesn't end up in the binaries.
 COMPONENT_POST_CONFIGURE_ACTION = \
 	(cd $(@D); \
-	sed -e 's,-R/usr/lib,,' \
+	sed -e "s,-R$(USRLIBDIR64),," \
 		config.status > config.status.new; \
 	mv config.status.new config.status; \
 	chmod 755 config.status; \
@@ -98,21 +97,11 @@
 
 CLEAN_PATHS += license
 
-ASLR_MODE = $(ASLR_ENABLE)
-
 # common targets
-configure:	$(CONFIGURE_64)
-
 build:		$(BUILD_64) $(COMPOVERRIDES:%=$(COMPONENT_SRC)/%)
 
 install:	build $(INSTALL_64) $(PROTOETCDIR)/zprofile $(PROTOETCDIR)/zshrc license
 
-# build does this always
-test:		$(TEST_64)
-
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
-
 REQUIRED_PACKAGES += library/ncurses
 REQUIRED_PACKAGES += library/pcre
-REQUIRED_PACKAGES += system/library
 REQUIRED_PACKAGES += system/library/math
--- a/doc/makefile-variables.txt	Wed Mar 30 10:16:56 2016 -0700
+++ b/doc/makefile-variables.txt	Wed Mar 30 13:33:31 2016 -0700
@@ -3,13 +3,17 @@
 component distribution, the latter will be referred to as native Makefiles.
 
 The following are the basics that just about every Makefile should have.
+
+* BUILD_BITS declares which bits this component should be built for and
+  which binaries are the preferred ones (i.e. should be installed in /usr/bin);
+  values are: 64, 64_and_32, 32, 32_and_64.
 * COMPONENT_NAME is typically a short name (e.g., vim).
 * COMPONENT_VERSION is typically numbers separated by dots (e.g. 7.3).
-* COMPONENT_SRC is where the archive is extracted.  A common value for this is
+* COMPONENT_SRC is where the archive is extracted; it has a default value of
   "$(COMPONENT_NAME)-$(COMPONENT_VERSION)".
 * COMPONENT_PROJECT_URL is the general web site for the component.
-* COMPONENT_ARCHIVE is the base name of the archive to be downloaded.  A common
-  value for this is "$(COMPONENT_SRC).tar.gz".
+* COMPONENT_ARCHIVE is the base name of the archive to be downloaded; it has
+  a default value of "$(COMPONENT_SRC).tar.gz".
 * COMPONENT_ARCHIVE_HASH is typically "sha256:" followed by the first output
   field of `sha256sum $(COMPONENT_ARCHIVE)`.
 * COMPONENT_ARCHIVE_URL is where the archive can be downloaded from.  This is
@@ -27,9 +31,33 @@
 			gpg2 --homedir=$WS/tools/.gnupg --import;
 	done
   before you 'hg commit' your merge.
-* COMPONENT_BUGDB is the lower-case rendering of the BugDB cat/subcat.
+
+* GIT_REPO can be used in place of COMPONENT_ARCHIVE_URL to pull the component
+  source from the GIT repository referenced in the value.
+* GIT_REV is the tag or changeset that you wish to pull from GIT.
+
+* HG_REPO can be used in place of COMPONENT_ARCHIVE_URL to pull the component
+  source from the Mercurial repository referenced in the value.
+* HG_REV is the tag or changeset that you wish to pull from Mercurial.
+
+* SVN_REPO can be used in place of COMPONENT_ARCHIVE_URL to pull the component
+  source from the Subversion repository referenced in the value.
+* SVN_REV is the tag or changeset that you wish to pull from Subversion.
+
+The following are basic variables that can be overridden but provide default
+values:
+
+* BUILD_ARCH declares which architecture this component should be built for;
+  possible values are: i386, sparc.  If not set, the component will be built
+  for both.
+* COMPONENT_SRC is where the archive is extracted; it has a default value of
+  "$(COMPONENT_NAME)-$(COMPONENT_VERSION)".
+* COMPONENT_ARCHIVE is the base name of the archive to be downloaded; it has
+  a default value of "$(COMPONENT_SRC).tar.gz".
+* COMPONENT_BUGDB is the lower-case rendering of the BugDB cat/subcat; it has
+  a default value of "utility/$(COMPONENT_NAME)".
 * REQUIRED_PACKAGES is a list of packages required to build or run the
-  component and its tests.
+  component and its tests; it includes "system/library" by default.
 
 * GIT_REPO can be used in place of COMPONENT_ARCHIVE_URL to pull the component
   source from the GIT repository referenced in the value.
@@ -43,6 +71,52 @@
   source from the Subversion repository referenced in the value.
 * SVN_REV is the tag or changeset that you wish to pull from Subversion.
 
+The following are basic variables that must be set before including common.mk
+if overriding the default:
+
+* BUILD_STYLE declares what type of build process this component uses;
+  possible values are: ant, archive (extract and copy), attpackagemake, cmake,
+  configure, gnu-component, justmake, pkg (publish only), and setup.py.  See
+  the corresponding file in make-rules for details.  The default value is
+  'configure'.
+
+  Based on the value of BUILD_STYLE, other variables are affected as follows:
+
+  - If BUILD_STYLE is configure, CONFIGURE_ENV will automatically include
+    CFLAGS, CXXFLAGS, and LDFLAGS.
+  - If BUILD_STYLE is justmake, COMPONENT_BUILD_ENV will automatically include
+    CC, CXX, CFLAGS, CXXFLAGS, and LDFLAGS.
+
+* COMMON_TARGETS controls whether the standard build, configure, install,
+  test, system-test targets are provided automatically.  Possible values
+  are 'yes' and 'no'.  The default value is 'yes'.
+
+* BUILD_TARGET, INSTALL_TARGET, TEST_TARGET, SYSTEM_TEST_TARGET allow
+  overriding the default targets provided by COMMON_TARGETS.  If set to a
+  non-empty value, they act as an override.  If set to an empty value the
+  target will not be defined by common.mk.  Instead of overriding the standard
+  targets, it is suggested that the appropriate COMPONENT_PRE_*_ACTION or
+  COMPONENT_POST_*_ACTION variables be used instead.
+
+* BUILD_TARGET defaults to $(BUILD_$(BUILD_BITS))
+
+* INSTALL_TARGET defaults to $(INSTALL_$(BUILD_BITS))
+
+* TEST_TARGET defaults to $(TEST_$(BUILD_BITS))
+
+* SYSTEM_TEST_TARGET default is determined by $(TEST_TARGET); if TEST_TARGET
+  is not $(NO_TESTS) or $(SKIP_TEST), the default value is
+  $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+
+The following variables alter the compilation or build process for components:
+
+* ASLR_MODE controls the application of Address Space Layout Randomization to
+  ELF binaries during the build.  The possible values are: $(ASLR_ENABLE),
+  $(ASLR_DISABLE), $(ASLR_NOT_APPLICABLE).  If $(BUILD_BITS) is $(NO_ARCH),
+  $(BUILD_STYLE) is 'ant', or $(COMPONENT_BUGDB) starts with 'library',
+  $(ASLR_NOT_APPLICABLE) is the default.  Otherwise, the default is
+  $(ASLR_ENABLE).
+
 When using a source code management system as the canonical source for a
 component, the build automatically generates a source archive for the
 component by pulling the source from the SCM and creating a tarball from
@@ -118,8 +192,8 @@
 
 * SKIP_TEST_AT_TOP_LEVEL inclusion of this variable in a component Makefile
   will cause that component's tests to be skipped when running "gmake test"
-  at the top level.  It's often used for excluding long-running tests 
-  that may slow down comprehensive component testing.  
+  at the top level.  It's often used for excluding long-running tests
+  that may slow down comprehensive component testing.
 
 * COMPONENT_POST_UNPACK_ACTION is for making minor alterations to the unpacked
   source directory before any patching has taken place.  It should almost never
@@ -130,25 +204,26 @@
 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
+* If BUILD_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:
+  if BUILD_BITS=64 or BUILD_BITS= 64_and_32 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:
+  if BUILD_BITS=32 or BUILD_BITS=32_and_64 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.
+* CC_FOR_BUILD and CXX_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
@@ -158,13 +233,13 @@
   * 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
-  to tell configure how to build the software using CONFIGURE_OPTIONS.  But
-  sometimes you need to pass values in via the calling environment.  On rare
-  occasions, you still need to do things like override MACRO settings in the
-  generated Makefiles with COMPONENT_BUILD_ARGS.
+* CONFIGURE_ENV is mainly used for passing Makefile variables to configure.
+  When should this be used as opposed to CONFIGURE_OPTIONS and
+  COMPONENT_BUILD_{ARGS,ENV}?  In general, you want to tell configure how to
+  build the software using CONFIGURE_OPTIONS.  But sometimes you need to pass
+  values in via the calling environment.  On rare occasions, you still need to
+  do things like override MACRO settings in the generated Makefiles with
+  COMPONENT_BUILD_ARGS.
 * CONFIGURE_LOCALEDIR is a cousin of the other *DIR variables above, but
   rarely used and hence not triggered by CONFIGURE_DEFAULT_DIRS.
 * CONFIGURE_OPTIONS is extremely useful, possibly our most used "add-on"
@@ -182,13 +257,17 @@
 * 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.
+  CFLAGS.$(COMPILER), CFLAGS.$(COMPILERS).$(BITS),
+  CFLAGS.$(COMPILERS).$(MACH), and CFLAGS.$(COMPILERS).$(MACH).$(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.
+  CXXFLAGS.$(COMPILER), CXXFLAGS.$(COMPILERS).$(BITS),
+  CXXFLAGS.$(COMPILERS).$(MACH), and CXXFLAGS.$(COMPILERS).$(MACH).$(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
--- a/exception_lists/cddlchk	Wed Mar 30 10:16:56 2016 -0700
+++ b/exception_lists/cddlchk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/exception_lists/cdm	Wed Mar 30 10:16:56 2016 -0700
+++ b/exception_lists/cdm	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
 #
 makefilechk
--- a/make-rules/ant.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/ant.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/make-rules/attpackagemake.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/attpackagemake.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 #
--- a/make-rules/cmake.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/cmake.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
@@ -25,7 +27,6 @@
 # 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.
@@ -38,6 +39,9 @@
 CMAKE = $(shell which cmake)
 CMAKE_BUILD_TYPE ?= RelWithDebInfo
 
+# Layout configuration.
+CMAKE_PREFIX ?= $(USRDIR)
+
 CMAKE_OPTIONS += -DCMAKE_CXX_COMPILER="$(CXX)"
 CMAKE_OPTIONS += -DCMAKE_CXX_FLAGS="$(CXXFLAGS)"
 CMAKE_OPTIONS += -DCMAKE_C_COMPILER="$(CC)"
@@ -46,7 +50,7 @@
 
 # Must start install paths with a leading '/' or files will be installed into
 # wrong location!
-CMAKE_OPTIONS += -DCMAKE_INSTALL_PREFIX="$(USRDIR)"
+CMAKE_OPTIONS += -DCMAKE_INSTALL_PREFIX="$(CMAKE_PREFIX)"
 CMAKE_OPTIONS += -DCMAKE_MODULE_LINKER_FLAGS="$(LDFLAGS)"
 CMAKE_OPTIONS += -DCMAKE_SHARED_LINKER_FLAGS="$(LDFLAGS)"
 CMAKE_OPTIONS += -DGETTEXT_MSGFMT_EXECUTABLE="$(GNUBIN)/msgfmt"
--- a/make-rules/common-32.mk	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#
-# 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)
--- a/make-rules/common-32_and_64.mk	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#
-# 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)
--- a/make-rules/common-64.mk	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#
-# 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)
--- a/make-rules/common-no_arch.mk	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#
-# 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)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make-rules/common.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -0,0 +1,212 @@
+#
+# 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, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# This file sets up the standard, default options and base requirements for
+# userland components.
+#
+
+include $(WS_MAKE_RULES)/prep.mk
+
+# Override this to limit builds and publication to a single architecture.
+BUILD_ARCH ?= $(MACH)
+ifneq ($(strip $(BUILD_ARCH)),$(MACH))
+PUBLISH_STAMP= 
+
+target-na:
+	@echo "Not available for $(MACH)"
+
+BUILD_TARGET ?= target-na
+INSTALL_TARGET ?= target-na
+TEST_TARGET ?= target-na
+SYSTEM_TEST_TARGET ?= target-na
+endif
+
+# Assume components use a configure script-style build by default.
+BUILD_STYLE ?= configure
+# If not an archive build (i.e. extract and copy) or pkg build (publish only),
+# include relevant makefile.
+ifneq ($(strip $(BUILD_STYLE)),archive)
+ifneq ($(strip $(BUILD_STYLE)),pkg)
+include $(WS_MAKE_RULES)/$(strip $(BUILD_STYLE)).mk
+endif
+endif
+
+ifeq ($(strip $(BUILD_STYLE)),configure)
+# Assume these items should always be set in the configure environment.  strip
+# is used to work around potential problems with extra blank characters
+# inserted into strings during nested configure invocations within builds for
+# components such as gdb.
+ifneq ($(strip $(CFLAGS)),)
+# Only if provided.
+CONFIGURE_ENV += CFLAGS="$(strip $(CFLAGS))"
+endif
+ifneq ($(strip $(CXXFLAGS)),)
+# Only if provided.
+CONFIGURE_ENV += CXXFLAGS="$(strip $(CXXFLAGS))"
+endif
+# Always process LDFLAGS.
+CONFIGURE_ENV += LDFLAGS="$(strip $(LDFLAGS))"
+endif
+
+ifeq ($(strip $(BUILD_STYLE)),justmake)
+# Assume these items should always be set in the build environment.
+COMPONENT_BUILD_ENV += CC="$(CC)"
+COMPONENT_BUILD_ENV += CXX="$(CXX)"
+ifneq ($(strip $(CFLAGS)),)
+# Only if provided.
+COMPONENT_BUILD_ENV += CFLAGS="$(strip $(CFLAGS))"
+endif
+ifneq ($(strip $(CXXFLAGS)),)
+# Only if provided.
+COMPONENT_BUILD_ENV += CXXFLAGS="$(strip $(CXXFLAGS))"
+endif
+# Always process LDFLAGS.
+COMPONENT_BUILD_ENV += LDFLAGS="$(strip $(LDFLAGS))"
+endif
+
+# Assume that components categorized as a library do not need ASLR.
+ifeq ($(findstring library/,$(COMPONENT_BUGDB)),library/)
+ASLR_MODE= $(ASLR_NOT_APPLICABLE)
+else
+# Assume components built with ant do not need ASLR.
+ifeq ($(strip $(BUILD_STYLE)),ant)
+ASLR_MODE= $(ASLR_NOT_APPLICABLE)
+else
+# Enable ASLR by default unless target build is NO_ARCH.
+ifneq ($(strip $(BUILD_BITS)),NO_ARCH)
+ASLR_MODE= $(ASLR_ENABLE)
+endif # BUILD_BITS NO_ARCH
+endif # BUILD_STYLE ant
+endif # findstring library
+
+# Assume that if no COMPONENT_ARCHIVE_URL or COMPONENT_ARCHIVE_SRC has been
+# defined that no COMPONENT_ARCHIVE exists; this allows providing a default
+# value for COMPONENT_ARCHIVE while avoiding prep errors.
+ifndef COMPONENT_ARCHIVE_URL
+ifndef COMPONENT_ARCHIVE_SRC
+COMPONENT_ARCHIVE=
+endif
+endif
+
+# Determine if we should automatically include lint libraries in build and
+# install targets based on presence of llib* files in component directory. This
+# must be done before defining any common targets since the include affects
+# later variable expansion.
+LINT_LIBRARIES ?= $(wildcard llib-*)
+ifneq ($(strip $(LINT_LIBRARIES)),)
+include $(WS_MAKE_RULES)/lint-libraries.mk
+endif
+
+# Default targets; to omit a specific target, explicitly set the related target
+# variable to empty before including this file or set COMMON_TARGETS=no.
+COMMON_TARGETS ?= yes
+
+ifneq ($(strip $(COMMON_TARGETS)),no)
+# For ant-based build style, assume that install is provided by simply building
+# the component and that no tests are available.
+ifeq ($(strip $(BUILD_STYLE)),ant)
+INSTALL_TARGET ?= build
+TEST_TARGET ?= $(NO_TESTS)
+SYSTEM_TEST_TARGET ?= $(NO_TESTS)
+endif
+
+# For archive-based build style, assume that the build, install, and test
+# targets will be provided.
+ifeq ($(strip $(BUILD_STYLE)),archive)
+BUILD_TARGET ?=
+INSTALL_TARGET ?=
+TEST_TARGET ?=
+endif
+
+# For pkg-based build style, assume there are no build, install, or test steps;
+# just a package to be published.
+ifeq ($(strip $(BUILD_STYLE)),pkg)
+BUILD_TARGET=
+INSTALL_TARGET=
+TEST_TARGET=
+SYSTEM_TEST_TARGET=
+build install:
+test system-test:	$(NO_TESTS)
+endif
+
+# If TEST_TARGET is NO_TESTS, assume no system tests by default.
+ifeq ($(strip $(TEST_TARGET)),$(NO_TESTS))
+SYSTEM_TEST_TARGET ?= $(NO_TESTS)
+endif
+
+# If TEST_TARGET is SKIP_TEST, assume system tests are skipped by default.
+ifeq ($(strip $(TEST_TARGET)),$(SKIP_TEST))
+SYSTEM_TEST_TARGET ?= $(SKIP_TEST)
+endif
+
+# Otherwise, attempt to define common targets assuming defaults.
+BUILD_TARGET ?= $(BUILD_$(MK_BITS))
+ifneq ($(strip $(BUILD_TARGET)),)
+build:          $(BUILD_TARGET)
+endif
+
+INSTALL_TARGET ?= $(INSTALL_$(MK_BITS))
+ifneq ($(strip $(INSTALL_TARGET)),)
+install:        $(INSTALL_TARGET)
+endif
+
+TEST_TARGET ?= $(TEST_$(MK_BITS))
+ifneq ($(strip $(TEST_TARGET)),)
+test:           $(TEST_TARGET)
+endif
+
+# For the system-test target, assume that none have been implemented.
+SYSTEM_TEST_TARGET ?= $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+ifneq ($(strip $(SYSTEM_TEST_TARGET)),)
+system-test:    $(SYSTEM_TEST_TARGET)
+endif
+endif # COMMON_TARGETS
+
+# Always needed; every component builds packages.
+include $(WS_MAKE_RULES)/ips.mk
+
+# Determine if we should automatically add files directory to PKG_PROTO_DIRS.
+ifeq ($(wildcard files),files)
+PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
+endif
+
+# Add bit and mach-specific logic to general actions.
+COMPONENT_PRE_CONFIGURE_ACTION += $(COMPONENT_PRE_CONFIGURE_ACTION.$(BITS))
+COMPONENT_PRE_CONFIGURE_ACTION += $(COMPONENT_PRE_CONFIGURE_ACTION.$(MACH))
+COMPONENT_POST_CONFIGURE_ACTION += $(COMPONENT_POST_CONFIGURE_ACTION.$(BITS))
+COMPONENT_POST_CONFIGURE_ACTION += $(COMPONENT_POST_CONFIGURE_ACTION.$(MACH))
+COMPONENT_PRE_BUILD_ACTION += $(COMPONENT_PRE_BUILD_ACTION.$(BITS))
+COMPONENT_PRE_BUILD_ACTION += $(COMPONENT_PRE_BUILD_ACTION.$(MACH))
+COMPONENT_POST_BUILD_ACTION += $(COMPONENT_POST_BUILD_ACTION.$(BITS))
+COMPONENT_POST_BUILD_ACTION += $(COMPONENT_POST_BUILD_ACTION.$(MACH))
+COMPONENT_PRE_INSTALL_ACTION += $(COMPONENT_PRE_INSTALL_ACTION.$(BITS))
+COMPONENT_PRE_INSTALL_ACTION += $(COMPONENT_PRE_INSTALL_ACTION.$(MACH))
+COMPONENT_POST_INSTALL_ACTION += $(COMPONENT_POST_INSTALL_ACTION.$(BITS))
+COMPONENT_POST_INSTALL_ACTION += $(COMPONENT_POST_INSTALL_ACTION.$(MACH))
+COMPONENT_PRE_TEST_ACTION += $(COMPONENT_PRE_TEST_ACTION.$(BITS))
+COMPONENT_PRE_TEST_ACTION += $(COMPONENT_PRE_TEST_ACTION.$(MACH))
+COMPONENT_POST_TEST_ACTION += $(COMPONENT_POST_TEST_ACTION.$(BITS))
+COMPONENT_POST_TEST_ACTION += $(COMPONENT_POST_TEST_ACTION.$(MACH))
--- a/make-rules/configure-32.mk	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#
-# 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)
--- a/make-rules/configure-32_and_64.mk	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#
-# 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)
--- a/make-rules/configure-64.mk	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#
-# 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)
--- a/make-rules/configure-no_arch.mk	Wed Mar 30 10:16:56 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#
-# 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)
--- a/make-rules/configure.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/configure.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 #
@@ -54,19 +56,34 @@
 #	COMPONENT_TEST_TARGETS
 #
 
-CONFIGURE_PREFIX =	/usr
+CONFIGURE_PREFIX ?=	/usr
 
-CONFIGURE_BINDIR.32 =	$(CONFIGURE_PREFIX)/bin
-CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/bin/$(MACH64)
-CONFIGURE_LIBDIR.32 =	$(CONFIGURE_PREFIX)/lib
-CONFIGURE_LIBDIR.64 =	$(CONFIGURE_PREFIX)/lib/$(MACH64)
-CONFIGURE_SBINDIR.32 =	$(CONFIGURE_PREFIX)/sbin
-CONFIGURE_SBINDIR.64 =	$(CONFIGURE_PREFIX)/sbin/$(MACH64)
-CONFIGURE_MANDIR =	$(CONFIGURE_PREFIX)/share/man
-CONFIGURE_LOCALEDIR =	$(CONFIGURE_PREFIX)/share/locale
+# If the component prefers 64-bit binaries, then ensure builds deliver 64-bit
+# binaries to the standard directories and 32-bit binaries to the non-standard
+# location.  This allows simplification of package manifests and makes it
+# easier to deliver the 64-bit binaries as the default.
+ifeq ($(strip $(PREFERRED_BITS)),64)
+CONFIGURE_BINDIR.32 ?=	$(CONFIGURE_PREFIX)/bin/$(MACH32)
+CONFIGURE_SBINDIR.32 ?=	$(CONFIGURE_PREFIX)/sbin/$(MACH32)
+CONFIGURE_BINDIR.64 ?=	$(CONFIGURE_PREFIX)/bin
+CONFIGURE_SBINDIR.64 ?=	$(CONFIGURE_PREFIX)/sbin
+else
+CONFIGURE_BINDIR.32 ?=	$(CONFIGURE_PREFIX)/bin
+CONFIGURE_SBINDIR.32 ?=	$(CONFIGURE_PREFIX)/sbin
+CONFIGURE_BINDIR.64 ?=	$(CONFIGURE_PREFIX)/bin/$(MACH64)
+CONFIGURE_SBINDIR.64 ?=	$(CONFIGURE_PREFIX)/sbin/$(MACH64)
+endif
+
+# Regardless of PREFERRED_BITS, 64-bit libraries should always be delivered to
+# the appropriate subdirectory by default.
+CONFIGURE_LIBDIR.32 ?=	$(CONFIGURE_PREFIX)/lib
+CONFIGURE_LIBDIR.64 ?=	$(CONFIGURE_PREFIX)/lib/$(MACH64)
+
+CONFIGURE_MANDIR ?=	$(CONFIGURE_PREFIX)/share/man
+CONFIGURE_LOCALEDIR ?=	$(CONFIGURE_PREFIX)/share/locale
 # all texinfo documentation seems to go to /usr/share/info no matter what
-CONFIGURE_INFODIR =	/usr/share/info
-CONFIGURE_INCLUDEDIR =	/usr/include
+CONFIGURE_INFODIR ?=	/usr/share/info
+CONFIGURE_INCLUDEDIR ?=	/usr/include
 
 CONFIGURE_ENV = CONFIG_SHELL="$(CONFIG_SHELL)"
 
@@ -76,16 +93,18 @@
 CONFIGURE_ENV += CC="$(CC)"
 CONFIGURE_ENV += CXX="$(CXX)"
 
+# Ensure that 64-bit versions of *-config scripts are preferred.
+CONFIGURE_ENV.64 += PATH="$(USRBIN.64):$(PATH)"
+
+# A full build must be performed if any new options are added here as not all
+# components use autoconf-based configure scripts and some have patched theirs
+# to reject "unknown" options (which may be supported by newer versions of
+# autoconf's configure).
 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 += --sbindir=$(CONFIGURE_SBINDIR.$(BITS))
-endif
 CONFIGURE_OPTIONS += --libdir=$(CONFIGURE_LIBDIR.$(BITS))
 endif
 CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(BITS))
@@ -116,22 +135,28 @@
 # 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 and CXX_FOR_BUILD are 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
 
+CXX_FOR_BUILD ?= "$(CXX) $(CC_BITS)"
+ifneq  ($(strip $(CXX_FOR_BUILD)),)
+CONFIGURE_ENV += CXX_FOR_BUILD=$(CXX_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)"
+CONFIGURE_ENV += CPPFLAGS="$(strip $(CONFIGURE_CPPFLAGS) $(CPPFLAGS))"
 endif
 
 # temporarily work around some issues
@@ -222,6 +247,11 @@
 	$(COMPONENT_SYSTEM_TEST_CLEANUP)
 	$(TOUCH) $@
 
+# If BUILD_STYLE is set, provide a default configure target.
+ifeq   ($(strip $(BUILD_STYLE)),configure)
+configure:	$(CONFIGURE_$(MK_BITS))
+endif
+
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
 parfait: build
 else
--- a/make-rules/environment.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/environment.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
 #
 SUDO =		/usr/bin/sudo
--- a/make-rules/gem.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/gem.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 GEM=/usr/ruby/$(RUBY_VERSION)/bin/gem
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make-rules/gnu-component.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -0,0 +1,33 @@
+#
+# 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, 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# This file sets up the standard, default options and base requirements for
+# GNU userland components.
+#
+COMPONENT_PROJECT_URL ?=	http://www.gnu.org/software/$(COMPONENT_NAME)
+COMPONENT_ARCHIVE_URL ?=	http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
+
+include $(WS_MAKE_RULES)/common.mk
--- a/make-rules/install.rb.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/install.rb.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/make-rules/intltool.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/intltool.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/make-rules/ips-buildinfo.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/ips-buildinfo.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/make-rules/justmake.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/justmake.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 #
--- a/make-rules/lint-libraries.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/lint-libraries.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 #
@@ -36,7 +38,7 @@
 # llib-l{libname}
 #
 
-LINT_LIBRARIES = $(wildcard llib-*)
+LINT_LIBRARIES ?= $(wildcard llib-*)
 
 LINT_FLAGS = -nsvx -I$(@D) -I$(SOURCE_DIR)/include -I$(SOURCE_DIR)
 
--- a/make-rules/makemaker.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/makemaker.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/make-rules/prep-download.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/prep-download.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/make-rules/prep-git.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/prep-git.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
@@ -47,6 +49,8 @@
 # If the source is github attempt to generate an archive url
 ifeq (github,$(findstring github,$(GIT_REPO$(1))))
   COMPONENT_ARCHIVE_URL$(1) ?= $(GIT_REPO$(1))/tarball/$(GIT_BRANCH$(1))
+else
+  COMPONENT_ARCHIVE_SRC$(1) = git
 endif
 
 CLEAN_PATHS += $$(COMPONENT_SRC$(1))
--- a/make-rules/prep-hg.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/prep-hg.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 HG =		/usr/bin/hg
@@ -36,6 +38,7 @@
 
 COMPONENT_SRC$(1) = $$(COMPONENT_NAME$(1))-$(COMPONENT_VERSION)-$$(HG_REV$(1))
 COMPONENT_ARCHIVE$(1) = $$(COMPONENT_SRC$(1)).tar.bz2
+COMPONENT_ARCHIVE_SRC$(1) = hg
 
 CLEAN_PATHS += $$(COMPONENT_SRC$(1))
 CLOBBER_PATHS += $$(COMPONENT_ARCHIVE$(1))
--- a/make-rules/prep-patch.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/prep-patch.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/make-rules/prep-svn.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/prep-svn.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 SVN =		/usr/bin/svn
@@ -36,6 +38,7 @@
 
 COMPONENT_SRC$(1) = $$(COMPONENT_NAME$(1))-$$(SVN_REV$(1))
 COMPONENT_ARCHIVE$(1) = $$(COMPONENT_SRC$(1)).tar.bz2
+COMPONENT_ARCHIVE_SRC$(1) = svn
 
 CLEAN_PATHS += $$(COMPONENT_SRC$(1))
 CLOBBER_PATHS += COMPONENT_ARCHIVE$(1)
--- a/make-rules/prep-unpack.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/prep-unpack.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
@@ -32,8 +34,8 @@
 
 # Template for unpacking rules.
 define unpack-rules
-ifdef COMPONENT_ARCHIVE$(1)
-ifdef COMPONENT_SRC$(1)
+ifneq ($(strip $(COMPONENT_ARCHIVE$(1))),)
+ifneq ($(strip $(COMPONENT_SRC$(1))),)
 
 CLEAN_PATHS += $$(COMPONENT_SRC$(1))
 SOURCE_DIR$(1) = $$(COMPONENT_DIR)/$(COMPONENT_SRC$(1))
--- a/make-rules/puppetmodule.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/puppetmodule.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/make-rules/shared-macros.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/shared-macros.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
@@ -123,13 +125,45 @@
 include $(WS_MAKE_RULES)/ips-buildinfo.mk
 
 COMPILER ?=		studio
-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)
+# to adjust accordingly.  Possible values are: '32', '64', '32_and_64',
+# '64_and_32', and 'NO_ARCH' (the orderings specify build preference).
+BUILD_BITS ?=$(BITS)
+ifeq ($(strip $(BUILD_BITS)),64)
+BITS ?=			64
+else
+BITS ?=			32
+endif
+
+# Based on BUILD_BITS, determine which binaries are preferred for a build.
+# This macro is for the convenience of other make-rules files and should not be
+# overridden by developers.
+ifeq ($(strip $(BUILD_BITS)),64)
+PREFERRED_BITS=64
+endif
+ifeq ($(strip $(BUILD_BITS)),64_and_32)
+PREFERRED_BITS=64
+endif
+PREFERRED_BITS ?= 32
+
+# Map target build to macro/variable naming conventions.  This macro is for the
+# convenience of other make-rules files and should not be overridden by
+# developers.
+ifeq ($(BUILD_BITS),64_and_32)
+MK_BITS=32_and_64
+else
+MK_BITS=$(strip $(BUILD_BITS))
+endif
+
+# Do not assume a default build style for compatibility with older component
+# Makefiles.  If explicitly set, common.mk will automatically include relevant
+# make-rules files.  Possible values are: 'ant', 'archive', 'attpackagemake',
+# 'cmake', 'configure', 'gnu-component', 'justmake', 'pkg', and 'setup.py'. See
+# corresponding file in make-rules for details.
+# BUILD_STYLE=
 
 # The default version should go last.
 PYTHON_VERSION =	2.7
@@ -146,6 +180,10 @@
 PKG_REPO =	file:$(WS_REPO)
 
 COMPONENT_SRC_NAME =	$(COMPONENT_NAME)
+COMPONENT_SRC=		$(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+# Assume a component is categorized as a utility by default.
+COMPONENT_BUGDB=	utility/$(COMPONENT_NAME)
 
 COMPONENT_DIR :=	$(shell pwd)
 SOURCE_DIR =	$(COMPONENT_DIR)/$(COMPONENT_SRC)
@@ -154,6 +192,7 @@
 
 ETCDIR =	/etc
 USRDIR =	/usr
+USRGNUDIR =	$(USRDIR)/gnu
 BINDIR =	/bin
 SBINDIR =	/sbin
 LIBDIR =	/lib
@@ -175,60 +214,46 @@
 USRSHAREMAN3DIR =	$(USRSHAREMANDIR)/man3
 USRSHAREMAN4DIR =	$(USRSHAREMANDIR)/man4
 USRSHAREMAN5DIR =	$(USRSHAREMANDIR)/man5
+USRSHAREMAN8DIR =	$(USRSHAREMANDIR)/man8
 USRLIBDIR64 =	$(USRDIR)/lib/$(MACH64)
-PROTOBINDIR =	$(PROTO_DIR)/$(BINDIR)
-PROTOETCDIR =	$(PROTO_DIR)/$(ETCDIR)
-PROTOETCSECDIR = $(PROTO_DIR)/$(ETCDIR)/security
-PROTOUSRDIR =	$(PROTO_DIR)/$(USRDIR)
-PROTOLIBDIR =	$(PROTO_DIR)/$(LIBDIR)
+PROTOBINDIR =	$(PROTO_DIR)$(BINDIR)
+PROTOETCDIR =	$(PROTO_DIR)$(ETCDIR)
+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)
+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)
+PROTOUSRINCDIR =	$(PROTO_DIR)$(USRINCDIR)
+PROTOUSRSHAREDIR =	$(PROTO_DIR)$(USRSHAREDIR)
+PROTOUSRSHARELIBDIR =	$(PROTO_DIR)$(USRSHARELIBDIR)
+PROTOUSRSHAREDOCDIR =	$(PROTO_DIR)$(USRSHAREDOCDIR)
 PROTOUSRSHAREINFODIR =	$(PROTOUSRSHAREDIR)/info
-PROTOUSRSHAREMANDIR =	$(PROTO_DIR)/$(USRSHAREMANDIR)
-PROTOUSRSHAREMAN1DIR =	$(PROTO_DIR)/$(USRSHAREMAN1DIR)
-PROTOUSRSHAREMAN1MDIR =	$(PROTO_DIR)/$(USRSHAREMAN1MDIR)
-PROTOUSRSHAREMAN3DIR =	$(PROTO_DIR)/$(USRSHAREMAN3DIR)
-PROTOUSRSHAREMAN4DIR =	$(PROTO_DIR)/$(USRSHAREMAN4DIR)
-PROTOUSRSHAREMAN5DIR =	$(PROTO_DIR)/$(USRSHAREMAN5DIR)
-PROTOUSRSHARELOCALEDIR =	$(PROTO_DIR)/$(USRSHARELOCALEDIR)
-
+PROTOUSRSHAREMANDIR =	$(PROTO_DIR)$(USRSHAREMANDIR)
+PROTOUSRSHAREMAN1DIR =	$(PROTO_DIR)$(USRSHAREMAN1DIR)
+PROTOUSRSHAREMAN1MDIR =	$(PROTO_DIR)$(USRSHAREMAN1MDIR)
+PROTOUSRSHAREMAN3DIR =	$(PROTO_DIR)$(USRSHAREMAN3DIR)
+PROTOUSRSHAREMAN4DIR =	$(PROTO_DIR)$(USRSHAREMAN4DIR)
+PROTOUSRSHAREMAN5DIR =	$(PROTO_DIR)$(USRSHAREMAN5DIR)
+PROTOUSRSHAREMAN8DIR =	$(PROTO_DIR)$(USRSHAREMAN8DIR)
+PROTOUSRSHARELOCALEDIR =	$(PROTO_DIR)$(USRSHARELOCALEDIR)
 
-SFWBIN =	/usr/sfw/bin
-SFWINCLUDE =	/usr/sfw/include
-SFWLIB =	/usr/sfw/lib
-SFWLIB64 =	/usr/sfw/lib/$(MACH64)
-SFWSHARE =	/usr/sfw/share
-SFWSHAREMAN =	/usr/sfw/share/man
-SFWSHAREMAN1 =	/usr/sfw/share/man/man1
-PROTOSFWBIN =	$(PROTO_DIR)/$(SFWBIN)
-PROTOSFWLIB =	$(PROTO_DIR)/$(SFWLIB)
-PROTOSFWLIB64 =	$(PROTO_DIR)/$(SFWLIB64)
-PROTOSFWSHARE =	$(PROTO_DIR)/$(SFWSHARE)
-PROTOSFWSHAREMAN =	$(PROTO_DIR)/$(SFWSHAREMAN)
-PROTOSFWSHAREMAN1 =	$(PROTO_DIR)/$(SFWSHAREMAN1)
-PROTOSFWINCLUDE =	$(PROTO_DIR)/$(SFWINCLUDE)
-
-GNUBIN =	/usr/gnu/bin
-GNULIB =	/usr/gnu/lib
-GNULIB64 =	/usr/gnu/lib/$(MACH64)
-GNUSHARE =	/usr/gnu/share
-GNUSHAREMAN =	/usr/gnu/share/man
-GNUSHAREMAN1 =	/usr/gnu/share/man/man1
-PROTOGNUBIN =	$(PROTO_DIR)/$(GNUBIN)
-PROTOGNUSHARE =	$(PROTO_DIR)/$(GNUSHARE)
-PROTOGNUSHAREMAN =	$(PROTO_DIR)/$(GNUSHAREMAN)
-PROTOGNUSHAREMAN1 =	$(PROTO_DIR)/$(GNUSHAREMAN1)
+GNUBIN =	$(USRGNUDIR)/bin
+GNULIB =	$(USRGNUDIR)/lib
+GNULIB64 =	$(USRGNUDIR)/lib/$(MACH64)
+GNUSHARE =	$(USRGNUDIR)/share
+GNUSHAREMAN =	$(USRGNUDIR)/share/man
+GNUSHAREMAN1 =	$(USRGNUDIR)/share/man/man1
+PROTOGNUBIN =	$(PROTO_DIR)$(GNUBIN)
+PROTOGNUSHARE =	$(PROTO_DIR)$(GNUSHARE)
+PROTOGNUSHAREMAN =	$(PROTO_DIR)$(GNUSHAREMAN)
+PROTOGNUSHAREMAN1 =	$(PROTO_DIR)$(GNUSHAREMAN1)
 
 # work around _TIME, _DATE, embedded date chatter in component builds
 # to use, set TIME_CONSTANT in the component Makefile and add $(CONSTANT_TIME)
@@ -583,6 +608,8 @@
 TCLSH =		$(TCLSH.$(TCL_VERSION).$(MACH).$(BITS))
 
 CCSMAKE =	/usr/ccs/bin/make
+DOXYGEN =	/usr/bin/doxygen
+ELFEDIT =	/usr/bin/elfedit
 GMAKE =		/usr/gnu/bin/make
 GPATCH =	/usr/gnu/bin/patch
 PATCH_LEVEL =	1
@@ -615,10 +642,12 @@
 CAT =		/bin/cat
 SYMLINK =	/bin/ln -s
 ENV =		/usr/bin/env
+FIND =		/usr/bin/find
 INSTALL =	/usr/bin/ginstall
 GNU_GREP =	/usr/gnu/bin/grep
 CHMOD =		/usr/bin/chmod
 NAWK =		/usr/bin/nawk
+TAR =		/usr/bin/tar
 TEE =		/usr/bin/tee
 
 INS.dir=        $(INSTALL) -d $@
@@ -831,6 +860,8 @@
 # Add compiler-specific 'default' features
 CFLAGS +=	$(CFLAGS.$(COMPILER))
 CFLAGS +=	$(CFLAGS.$(COMPILER).$(BITS))
+CFLAGS +=	$(CFLAGS.$(COMPILER).$(MACH))
+CFLAGS +=	$(CFLAGS.$(COMPILER).$(MACH).$(BITS))
 
 # Studio C++ requires -norunpath to avoid adding its location into the RUNPATH
 # to C++ applications.
@@ -850,10 +881,6 @@
 # link C++ with the Studio  C++ Runtime and Apache Standard C++ library
 studio_CXXLIB_APACHE =	-library=stdcxx4,Crun
 
-# Add the C++ ABI compatibility flags for older ABI compatibility.  The default
-# is "standard mode" (-compat=5)
-studio_COMPAT_VERSION_4 =	-compat=4
-
 # Tell the compiler that we don't want the studio runpath added to the
 # linker flags.  We never want the Studio location added to the RUNPATH.
 CXXFLAGS +=	$($(COMPILER)_NORUNPATH)
@@ -864,6 +891,11 @@
 # Add compiler-specific 'default' features
 CXXFLAGS +=	$(CXXFLAGS.$(COMPILER))
 CXXFLAGS +=	$(CXXFLAGS.$(COMPILER).$(BITS))
+CXXFLAGS +=	$(CXXFLAGS.$(COMPILER).$(MACH))
+CXXFLAGS +=	$(CXXFLAGS.$(COMPILER).$(MACH).$(BITS))
+
+# Add mach-specific 'default' features
+CXXFLAGS +=	$(CXXFLAGS.$(MACH))
 
 #
 # Solaris linker flag sets to ease feature selection.  Add the required
@@ -874,38 +906,47 @@
 # set the bittedness that we want to link
 LD_BITS =	-$(BITS)
 
+# Note that spaces are not used after the '-z' below so that these macros can
+# be used in arguments to the compiler of the form -Wl,$(LD_Z_*).
+
 # Reduce the symbol table size, effectively conflicting with -g.  We should
 # get linker guidance here.
-LD_Z_REDLOCSYM =	-z redlocsym
+LD_Z_REDLOCSYM =	-zredlocsym
 
 # Cause the linker to rescan archive libraries and resolve remaining unresolved
 # symbols recursively until all symbols are resolved.  Components should be
 # linking in the libraries they need, in the required order.  This should
 # only be required if the component's native build is horribly broken.
-LD_Z_RESCAN_NOW =	-z rescan-now
+LD_Z_RESCAN_NOW =	-zrescan-now
 
-LD_Z_TEXT =		-z text
+LD_Z_TEXT =		-ztext
 
 # make sure that -lc is always present when building shared objects.
 LD_DEF_LIBS +=		-lc
 
 # make sure all symbols are defined.
-LD_Z_DEFS =		-z defs
+LD_Z_DEFS =		-zdefs
 
 # eliminate unreferenced dynamic dependencies
-LD_Z_IGNORE =		-z ignore
+LD_Z_IGNORE =		-zignore
 
 # eliminate comments
-LD_Z_STRIP_CLASS =	-z strip-class=comment
+LD_Z_STRIP_CLASS =	-zstrip-class=comment
 
 # use direct binding
 LD_B_DIRECT =		-Bdirect
 
 # use generic macro names for enabling/disabling ASLR
-ASLR_ENABLE = 		-z aslr=enable
-ASLR_DISABLE = 		-z aslr=disable
-ASLR_NOT_APPLICABLE = 	-z aslr=disable
-ASLR_MODE = 		$(ASLR_DISABLE)
+ASLR_ENABLE = 		-zaslr=enable
+ASLR_DISABLE = 		-zaslr=disable
+ASLR_NOT_APPLICABLE = 	-zaslr=disable
+
+# Disable ASLR by default unless target build is NO_ARCH.
+ifeq ($(strip $(BUILD_BITS)),NO_ARCH)
+ASLR_MODE= $(ASLR_NOT_APPLICABLE)
+else
+ASLR_MODE= $(ASLR_DISABLE)
+endif
 
 # by default, turn off Address Space Layout Randomization for ELF executables;
 # to explicitly enable ASLR, set ASLR_MODE = $(ASLR_ENABLE)
@@ -924,13 +965,14 @@
 LD_MAP_NOEXSTK.sparc =	-M /usr/lib/ld/map.noexstk
 
 # Create a non-executable bss segment when linking.
-LD_MAP_NOEXBSS =	-M /usr/lib/ld/map.noexbss
+LD_MAP_NOEXBSS.i386 =	-M /usr/lib/ld/map.noexbss
+LD_MAP_NOEXBSS.sparc =	-M /usr/lib/ld/map.noexbss
 
 # Create a non-executable data segment when linking.  Due to PLT needs, the
 # data segment must be executable on sparc, but the bss does not.
 # see mapfile comments for more information
 LD_MAP_NOEXDATA.i386 =	-M /usr/lib/ld/map.noexdata
-LD_MAP_NOEXDATA.sparc =	$(LD_MAP_NOEXBSS)
+LD_MAP_NOEXDATA.sparc =	$(LD_MAP_NOEXBSS.$(MACH))
 
 # Page alignment
 LD_MAP_PAGEALIGN =	-M /usr/lib/ld/map.pagealign
@@ -964,7 +1006,7 @@
 COMPONENT_INSTALL_ARGS += $(COMPONENT_INSTALL_ARGS.$(BITS))
 
 # declare these phony so that we avoid filesystem conflicts.
-.PHONY:	prep build install publish test clean clobber parfait
+.PHONY:	prep build install publish test system-test clean clobber parfait
 
 # If there are no tests to execute
 NO_TESTS =	test-nothing
@@ -1024,6 +1066,11 @@
 REQUIRED_PACKAGES += developer/java/jdk-8
 REQUIRED_PACKAGES += security/sudo
 
+# Only a default dependency if component being built produces binaries.
+ifneq ($(strip $(BUILD_BITS)),NO_ARCH)
+REQUIRED_PACKAGES += system/library
+endif
+
 include $(WS_MAKE_RULES)/environment.mk
 
 # A simple rule to print the value of any macro.  Ex:
--- a/make-rules/shared-targets.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/shared-targets.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 #
@@ -29,21 +31,14 @@
 PROTOMAN1MFILES=$(MAN1MFILES:%=$(PROTOUSRSHAREMAN1MDIR)/%)
 PROTOMAN3FILES=$(MAN3FILES:%=$(PROTOUSRSHAREMAN3DIR)/%)
 PROTOMAN4FILES=$(MAN4FILES:%=$(PROTOUSRSHAREMAN4DIR)/%)
+PROTOMAN5FILES=$(MAN5FILES:%=$(PROTOUSRSHAREMAN5DIR)/%)
+PROTOMAN8FILES=$(MAN8FILES:%=$(PROTOUSRSHAREMAN8DIR)/%)
 
 $(PROTOUSRSHAREMAN1DIR)/% $(PROTOUSRSHAREMAN1MDIR)/% $(PROTOUSRSHAREMAN3DIR)/% \
-$(PROTOUSRSHAREMAN4DIR)/%:    manpages/%
+$(PROTOUSRSHAREMAN4DIR)/% $(PROTOUSRSHAREMAN5DIR)/% $(PROTOUSRSHAREMAN8DIR)/%: \
+	manpages/%
 	$(INS.file)
 
-PROTOSFWLINKS= $(SFWPROGS:%=$(PROTOSFWBIN)/%)
-
-$(PROTOSFWLINKS):	$(PROTOSFWBIN)
-	$(RM) $@ ; $(SYMLINK) ../../bin/$(@F) $@
-
-PROTOSFWMAN1LINKS= $(SFWMAN1:%=$(PROTOSFWSHAREMAN1)/%)
-
-$(PROTOSFWMAN1LINKS):	$(PROTOSFWSHAREMAN1)
-	$(RM) $@ ; $(SYMLINK) ../../../../share/man/man1/$(@F) $@
-
 PROTOGNULINKS= $(GNUPROGS:%=$(PROTOGNUBIN)/%)
 
 $(PROTOGNULINKS):       $(PROTOGNUBIN)
@@ -63,11 +58,11 @@
 $(PROTOUSRSHAREMAN1MDIR) \
 $(PROTOUSRSHAREMAN3DIR) \
 $(PROTOUSRSHAREMAN4DIR) \
+$(PROTOUSRSHAREMAN5DIR) \
+$(PROTOUSRSHAREMAN8DIR) \
 $(PROTOUSRSHAREDOCDIR) \
 $(PROTOGNUBIN) \
 $(PROTOGNUSHAREMAN1) \
-$(PROTOSFWBIN) \
-$(PROTOSFWSHAREMAN1) \
 $(PROTOUSRSBINDIR) \
 $(PROTOUSRBINDIR):
 	$(MKDIR) $@
@@ -80,3 +75,7 @@
 $(PROTOMAN3FILES): $(PROTOUSRSHAREMAN3DIR)
 
 $(PROTOMAN4FILES): $(PROTOUSRSHAREMAN4DIR)
+
+$(PROTOMAN5FILES): $(PROTOUSRSHAREMAN5DIR)
+
+$(PROTOMAN8FILES): $(PROTOUSRSHAREMAN8DIR)
--- a/make-rules/skip-test.mk	Wed Mar 30 10:16:56 2016 -0700
+++ b/make-rules/skip-test.mk	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/tools/Makefile	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/Makefile	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/tools/bass-o-matic	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/bass-o-matic	Wed Mar 30 13:33:31 2016 -0700
@@ -19,6 +19,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 #
--- a/tools/build-watch.pl	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/build-watch.pl	Wed Mar 30 13:33:31 2016 -0700
@@ -19,6 +19,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 #
 #
--- a/tools/cloney	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/cloney	Wed Mar 30 13:33:31 2016 -0700
@@ -19,6 +19,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # clone a directory to another using symlinks, in a very clunky way
--- a/tools/gen-components	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/gen-components	Wed Mar 30 13:33:31 2016 -0700
@@ -19,6 +19,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 #
--- a/tools/pkglint.sh	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/pkglint.sh	Wed Mar 30 13:33:31 2016 -0700
@@ -19,6 +19,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
 #
 IFS=
--- a/tools/pkglintrc	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/pkglintrc	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 [pkglint]
--- a/tools/python/pkglint/__init__.py	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/python/pkglint/__init__.py	Wed Mar 30 13:33:31 2016 -0700
@@ -18,5 +18,7 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 #
--- a/tools/sunw-history-package	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/sunw-history-package	Wed Mar 30 13:33:31 2016 -0700
@@ -19,6 +19,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # sunw-history-package
--- a/tools/userland-fetch	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/userland-fetch	Wed Mar 30 13:33:31 2016 -0700
@@ -19,6 +19,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 #
--- a/tools/userland-incorporator	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/userland-incorporator	Wed Mar 30 13:33:31 2016 -0700
@@ -19,6 +19,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 #
--- a/tools/userland-mangler	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/userland-mangler	Wed Mar 30 13:33:31 2016 -0700
@@ -19,6 +19,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 #
--- a/tools/userland-unpack	Wed Mar 30 10:16:56 2016 -0700
+++ b/tools/userland-unpack	Wed Mar 30 13:33:31 2016 -0700
@@ -19,6 +19,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 #
--- a/transforms/autopyc	Wed Mar 30 10:16:56 2016 -0700
+++ b/transforms/autopyc	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/transforms/comparison-cleanup	Wed Mar 30 10:16:56 2016 -0700
+++ b/transforms/comparison-cleanup	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/transforms/copyright-template	Wed Mar 30 10:16:56 2016 -0700
+++ b/transforms/copyright-template	Wed Mar 30 13:33:31 2016 -0700
@@ -18,5 +18,7 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 #
--- a/transforms/generate-cleanup	Wed Mar 30 10:16:56 2016 -0700
+++ b/transforms/generate-cleanup	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/transforms/license-changes	Wed Mar 30 10:16:56 2016 -0700
+++ b/transforms/license-changes	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/transforms/print-paths	Wed Mar 30 10:16:56 2016 -0700
+++ b/transforms/print-paths	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/transforms/print-pkgs	Wed Mar 30 10:16:56 2016 -0700
+++ b/transforms/print-pkgs	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/transforms/publish-cleanup	Wed Mar 30 10:16:56 2016 -0700
+++ b/transforms/publish-cleanup	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 #
 
--- a/transforms/variant-cleanup	Wed Mar 30 10:16:56 2016 -0700
+++ b/transforms/variant-cleanup	Wed Mar 30 13:33:31 2016 -0700
@@ -18,6 +18,8 @@
 #
 # CDDL HEADER END
 #
+
+#
 # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 #