make-rules/shared-macros.mk
changeset 3817 30b42c38bbc4
parent 3750 60902b5c3237
child 3864 77a09e73626b
--- a/make-rules/shared-macros.mk	Mon Feb 16 13:54:04 2015 -0800
+++ b/make-rules/shared-macros.mk	Sun Feb 15 19:02:09 2015 -0600
@@ -47,13 +47,14 @@
 export WS_TOP :=		$(shell hg root)
 endif
 
-WS_LOGS =	$(WS_TOP)/$(MACH)/logs
-WS_REPO =	$(WS_TOP)/$(MACH)/repo
+WS_MACH =	$(WS_TOP)/$(MACH)
+WS_LOGS =	$(WS_MACH)/logs
+WS_REPO =	$(WS_MACH)/repo
 WS_TOOLS =	$(WS_TOP)/tools
 WS_MAKE_RULES =	$(WS_TOP)/make-rules
 WS_COMPONENTS =	$(WS_TOP)/components
 WS_INCORPORATIONS =	$(WS_TOP)/incorporations
-WS_LINT_CACHE =	$(WS_TOP)/$(MACH)/pkglint-cache
+WS_LINT_CACHE =	$(WS_MACH)/pkglint-cache
 
 # we want our pkg piplines to fail if there is an error
 # (like if pkgdepend fails in the middle of a pipe), but
@@ -67,6 +68,9 @@
 install:	SHELLOPTS=
 publish:	SHELLOPTS=pipefail
 
+# This can be overridden to avoid rebuilding when you touch a Makefile
+MAKEFILE_PREREQ =	Makefile
+
 # some things don't build properly in non-C locales,
 # so lets stay there
 export LC_ALL=C
@@ -87,7 +91,7 @@
 
 include $(WS_MAKE_RULES)/ips-buildinfo.mk
 
-COMPILER =		studio
+COMPILER ?=		studio
 BITS =			32
 
 # If we are building multiple versions of python, make sure that python 2.6
@@ -529,6 +533,7 @@
 SYMLINK =	/bin/ln -s
 ENV =		/usr/bin/env
 INSTALL =	/usr/bin/ginstall
+GNU_GREP =	/usr/gnu/bin/grep
 CHMOD =		/usr/bin/chmod
 NAWK =		/usr/bin/nawk
 TEE =		/usr/bin/tee
@@ -870,3 +875,35 @@
 component-hook:
 	@$(COMPONENT_HOOK)
 
+#
+# Packages with tools that are required to build Userland components
+#
+REQUIRED_PACKAGES += developer/build/gnu-make
+REQUIRED_PACKAGES += developer/build/make
+ifeq ($(COMPILER),gcc3)
+REQUIRED_PACKAGES += developer/gcc-3
+endif
+ifeq ($(COMPILER),gcc)
+REQUIRED_PACKAGES += developer/gcc-47
+endif
+ifeq ($(COMPILER),studio)
+# uncomment this line if you need to install Studio
+#REQUIRED_PACKAGES += developer/solarisstudio-123
+endif
+ifeq ($(PARFAIT_BUILD),yes)
+# uncomment this line if you need to install Parfait
+#REQUIRED_PACKAGES += developer/parfait/parfait-tools-151
+endif
+REQUIRED_PACKAGES += developer/versioning/mercurial
+REQUIRED_PACKAGES += file/gnu-findutils
+REQUIRED_PACKAGES += package/pkg
+REQUIRED_PACKAGES += runtime/python-27
+REQUIRED_PACKAGES += shell/bash
+REQUIRED_PACKAGES += shell/ksh93
+REQUIRED_PACKAGES += text/gawk
+REQUIRED_PACKAGES += text/gnu-grep
+REQUIRED_PACKAGES += text/gnu-sed
+REQUIRED_PACKAGES += developer/java/jdk-7
+REQUIRED_PACKAGES += security/sudo
+
+include $(WS_MAKE_RULES)/environment.mk