6889793 enable parallel builds of the X consolidation
authorAlan Coopersmith <Alan.Coopersmith@Sun.COM>
Thu, 15 Oct 2009 20:19:43 -0700
changeset 810 6f94d3da0552
parent 809 bd4bc96957db
child 811 abf6f2b98709
6889793 enable parallel builds of the X consolidation
buildit
open-src/Makefile
open-src/app/mesa-demos/Makefile
open-src/app/xmakemap/Makefile
open-src/common/Makefile.inc
open-src/common/Makefile.init
open-src/common/Makefile.subdirs
open-src/data/workspace-patterns/Makefile
open-src/doc/Makefile
open-src/doc/xorg-docs/Makefile
open-src/driver/Makefile
open-src/font/Makefile
open-src/font/bitstream-vera/Makefile
open-src/font/catalogue-dirs/Makefile
open-src/font/deja-vu/Makefile
open-src/font/encodings/Makefile
open-src/font/google-droid/Makefile
open-src/font/liberation/Makefile
open-src/font/sun-aliases/Makefile
open-src/lib/Makefile
open-src/lib/Makefile.inc
open-src/lib/fontconfig/Makefile
open-src/lib/freetype/Makefile
open-src/lib/libX11/Makefile
open-src/lib/libXaw/Makefile
open-src/lib/libpciaccess/Makefile
open-src/proto/Makefile.inc
open-src/proto/sun-ext-protos/Makefile
open-src/util/build-tools/find-build-errors
open-src/util/build-tools/xmake
open-src/xserver/xorg/Makefile
open-src/xserver/xvnc/Makefile
--- a/buildit	Tue Oct 13 15:30:00 2009 -0700
+++ b/buildit	Thu Oct 15 20:19:43 2009 -0700
@@ -6,6 +6,7 @@
 ###########################################################################
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -34,12 +35,12 @@
 #
 ###########################################################################
 #
-# ident "@(#)buildit	1.8	09/05/15 SMI"
+# ident	"@(#)buildit	1.10	09/10/27 SMI"
 #
 
 MAKE_PKGS=0
 
-set -- `getopt p $*`
+set -- $(getopt p $*)
 if [ $? != 0 ]
 then
     echo USAGE: $0 [-p]
@@ -52,12 +53,11 @@
     esac
 done
 
-
 # Add /usr/bin to front of path in case user has /usr/gnu/bin default
 # Add /usr/sbin to path for dtrace
 # Add /usr/X11/bin to path for makedepend
 
-PATH=/usr/bin:$PATH:/usr/sbin:/usr/X11/bin
+PATH=/usr/bin:${PATH}:/usr/sbin:/usr/X11/bin
 export PATH
 
 [ -d log ] || mkdir log
@@ -68,7 +68,7 @@
 echo "------------------------------------------------------------------------------"
 echo "Start time: "
 date
-START=`perl -e 'print time'`
+START="$(perl -e 'print time')"
 echo "Building on: "
 uname -a
 echo "Using these compilers: "
@@ -78,23 +78,29 @@
     print $_ ; print "*** Compiler too old!\n" if ( ($1 != 5) || ($2 < 9) ) }'
 gcc -v
 
-# Exported to reduce number of times it's evaluated in makefiles
-export POUND_SIGN='#'
+# Exported to stop Sun compilers from reporting home on each usage
+export SUNW_NO_UPDATE_NOTIFY='true'
+export UT_NO_USAGE_TRACKING='1'
 
 echo "Using these environment variables: "
 env
 echo "------------------------------------------------------------------------------"
 
 
-MACH=`uname -p`
-if [ "$MACH" = "i386" ]; then
+
+XMAKE="$(pwd)/open-src/util/build-tools/xmake"
+chmod +x ${XMAKE}
+
+MACH="$(uname -p)"
+if [ "${MACH}" = "i386" ]; then
     /bin/rm -rf proto-i386-svr4
 else
     /bin/rm -rf proto-sun4-svr4
 fi
 
+chmod +x open-src/common/install-sh open-src/common/delibtoolize.pl
 cd open-src
-make -k clean install
+${XMAKE} -v -k clean install
 cd ..
 
 echo ""
@@ -103,13 +109,11 @@
 echo ""
 echo "Finish time: "
 date
-perl -e '$runtime=time-$ARGV[0];printf("Runtime: %d:%02d\n", $runtime/3600, ($runtime%3600)/60); ' $START
+perl -e '$runtime=time-$ARGV[0]; printf("Runtime: %d:%02d\n", $runtime/3600, ($runtime%3600)/60); ' "${START}"
 
-if [ $MAKE_PKGS = 1 ] ; then
-    PACKAGE_LIST=`cd packages && echo SUNW* FSW*`
-    export PACKAGE_LIST
+if [ "${MAKE_PKGS}" = 1 ] ; then
+    export PACKAGE_LIST="$(cd packages && echo SUNW* FSW*)"
     chmod +x make_release_packages
     mkdir packages/common_files
     ./make_release_packages
 fi
-
--- a/open-src/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 # Makefile for X Consolidation Open Source bits
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -28,11 +28,15 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.22	08/08/08
+# ident	"@(#)Makefile	1.23	09/10/13 SMI"
 #
 ###############################################################################
 #
 
+# Need to install to proto area by default for inter-package dependencies to
+# work right.
+default_target: install
+
 # Modules have to be built in a specific order for dependencies to be
 # handled properly
 
@@ -44,6 +48,17 @@
 # - data/xbitmaps must be before app, as some applications depend on the
 #   bitmaps installed, but the rest of data depends on applications like
 #   xcursorgen for processing, so must come later
+# - font depends on utils like mkfontdir from app
+
+# High level dependencies
+proto: util/util-macros
+lib: proto
+app: lib data/xbitmaps
+xserver: proto doc lib
+driver: xserver
+app/rgb: xserver
+data: app
+font: app
 
 OS_SUBDIRS_common = \
 	util/util-macros \
@@ -62,10 +77,6 @@
 OS_SUBDIRS_sparc = $(OS_SUBDIRS_common)
 OS_SUBDIRS_i386 = $(OS_SUBDIRS_common)
 
-# Need to install to proto area by default for inter-package dependencies to
-# work right.
-default_target: install
-
 PWD:sh=pwd
 TOP=$(PWD)
 
--- a/open-src/app/mesa-demos/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/app/mesa-demos/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -58,7 +58,9 @@
 GLXINFO_BIN=$(SOURCE_DIR)/progs/xdemos/glxinfo
 
 # configure script is run in ../lib/mesa build, just link to results here
-CONFIGURE_TARGETS=$(SOURCE_DIR)/configs/current
+CONFIGURE_TARGETS_sparc=
+CONFIGURE_TARGETS_i386=$(SOURCE_DIR)/configs/current
+CONFIGURE_TARGETS= $(CONFIGURE_TARGETS_$(MACH))
 CONFIGURE_TARGETS_SET=yes
 
 # What to build
--- a/open-src/app/xmakemap/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/app/xmakemap/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 ###############################################################################
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -37,11 +37,12 @@
 SOURCE_TARBALL_NAME_SET=yes
 ADDITIONAL_SOURCE_DIR=sun-src
 
-# Don't need default targets for make build or make install, since there's
+# Don't need default targets for configure, build, or install, since there's
 # nothing to build, and the install rule follows here
-BUILD_TARGETS = $(SOURCE_TARGETS)
+CONFIGURE_TARGETS = 
+CONFIGURE_TARGETS_SET=yes
+BUILD_TARGETS = 
 BUILD_TARGETS_SET=yes
-
 INSTALL_TARGETS =
 INSTALL_TARGETS_SET=yes
 
--- a/open-src/common/Makefile.inc	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/common/Makefile.inc	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 # -*- Makefile -*- rules commonly shared among X consolidation open source dirs
 #
-# Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile.inc	1.99	09/05/15
+# ident	"@(#)Makefile.inc	1.100	09/10/13 SMI"
 #
 
 ### Default rules
@@ -45,6 +45,9 @@
 MODULE_MAKE_DEFAULT		= $(MODULE_MAKE_SET:yes=$(POUND_SIGN))
 $(MODULE_MAKE_DEFAULT)		MODULE_MAKE = $(MODTYPE_MAKE)
 
+# Enable parallel make for gmake built modules too
+#MAKEFLAGS			+= -j $(DMAKE_MAX_JOBS)
+
 # Where to install files
 MODTYPE_PREFIX_DEFAULT		= $(MODTYPE_PREFIX_SET:yes=$(POUND_SIGN))
 $(MODULE_PREFIX_DEFAULT)	MODTYPE_PREFIX=$(X11_DIR)
@@ -106,11 +109,16 @@
 					$(MODULE_ADD_INSTALL_TARGETS)
 
 # Additional flags to pass to make in 32-bit & 64-bit builds
-BUILD_32_FLAGS= BUILD_DIR=$(BUILD_DIR_32) ARCH_FLAGS="$(ARCH32_FLAGS)" \
-	BUILD_TYPE=32 $(MODTYPE_BUILD_32_FLAGS) $(MODULE_BUILD_32_FLAGS)
+BUILD_DIR_32_FLAGS= BUILD_DIR=$(BUILD_DIR_32) BUILD_TYPE=32
+
+BUILD_DIR_64_FLAGS= BUILD_DIR=$(BUILD_DIR_64) BUILD_TYPE=64 \
+	LIBSUBDIR=/$(SUBDIR64) ARCHLIBSUBDIR=/$(SUBDIR64)
 
-BUILD_64_FLAGS= BUILD_DIR=$(BUILD_DIR_64) ARCH_FLAGS="$(ARCH64_FLAGS)" \
-	BUILD_TYPE=64 $(MODTYPE_BUILD_64_FLAGS) $(MODULE_BUILD_64_FLAGS)
+BUILD_32_FLAGS= $(BUILD_DIR_32_FLAGS) ARCH_FLAGS="$(ARCH32_FLAGS)" \
+	$(MODTYPE_BUILD_32_FLAGS) $(MODULE_BUILD_32_FLAGS)
+
+BUILD_64_FLAGS= $(BUILD_DIR_64_FLAGS) ARCH_FLAGS="$(ARCH64_FLAGS)" \
+	$(MODTYPE_BUILD_64_FLAGS) $(MODULE_BUILD_64_FLAGS)
 
 all: $(BUILD_TYPES:%=source_%) $(BUILD_TYPES:%=build_%)
 all_32: source_32 configure_32 build_32
@@ -130,31 +138,31 @@
 
 source_32: $(SOURCE_DIR_32)/$(UNPACK_FILE)
 $(SOURCE_DIR_32)/$(UNPACK_FILE):
-	$(MAKE) $(MAKEFLAGS) BUILD_DIR=$(BUILD_DIR_32) source_gen
+	$(MAKE) $(MAKEFLAGS) $(BUILD_DIR_32_FLAGS) source_gen
 
 source_64: $(SOURCE_DIR_64)/$(UNPACK_FILE)
 $(SOURCE_DIR_64)/$(UNPACK_FILE):
-	$(MAKE) $(MAKEFLAGS) BUILD_DIR=$(BUILD_DIR_64) source_gen
+	$(MAKE) $(MAKEFLAGS) $(BUILD_DIR_64_FLAGS) source_gen
 
 configure: $(BUILD_TYPES:%=configure_%)
 
 configure_gen: $(CONFIGURE_TARGETS)
 
-configure_32:: 
+configure_32:: source_32
 	$(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) configure_gen
 
-configure_64::
-	$(MAKE) $(MAKEFLAGS) LIBSUBDIR=/$(SUBDIR64) ARCHLIBSUBDIR=/$(SUBDIR64) $(BUILD_64_FLAGS) configure_gen
+configure_64:: source_64
+	$(MAKE) $(MAKEFLAGS) $(BUILD_64_FLAGS) configure_gen
 
 build: $(BUILD_TYPES:%=build_%)
 
 build_gen: $(BUILD_TARGETS)
 
-build_32::
+build_32:: configure_32
 	$(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) build_gen
 
-build_64::
-	$(MAKE) $(MAKEFLAGS) LIBSUBDIR=/$(SUBDIR64) ARCHLIBSUBDIR=/$(SUBDIR64) $(BUILD_64_FLAGS) build_gen
+build_64:: configure_64
+	$(MAKE) $(MAKEFLAGS) $(BUILD_64_FLAGS) build_gen
 
 install: $(BUILD_TYPES:%=install_%)
 
@@ -164,7 +172,7 @@
 	$(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) install_gen
 
 install_64:: build_64
-	$(MAKE) $(MAKEFLAGS) LIBSUBDIR=/64 ARCHLIBSUBDIR=/$(SUBDIR64) $(BUILD_64_FLAGS) install_gen
+	$(MAKE) $(MAKEFLAGS) $(BUILD_64_FLAGS) install_gen
 
 DEBUG_BUILD_FLAGS = BUILD_DEBUG=yes
 
@@ -313,8 +321,7 @@
 
 # Command line options to GNU autoconf configure script
 DEFAULT_CONFIG_OPTS = --prefix=$(MODULE_PREFIX) \
-	--mandir='$${prefix}/share/man' --localstatedir=/var \
-	--disable-libtool-lock
+	--mandir='$${prefix}/share/man' --localstatedir=/var
 
 CONFIG_OPTS = $(DEFAULT_CONFIG_OPTS) \
 	$(MODTYPE_CONFIG_OPTS) $(MODULE_CONFIG_OPTS)
@@ -392,8 +399,13 @@
 LD_OPTIONS = -L$(PROTODIR)$(X11_DIR)/lib$(LIBSUBDIR) \
 	$(MODTYPE_LD_OPTIONS) $(MODULE_LD_OPTIONS)
 
+# MKDIRPROG - Workaround parallel build race condition
+#		in older upstream packaged install-sh
+
 BUILD_ENV = LD_OPTIONS='$(LD_OPTIONS)' \
 	PROTODIR='$(PROTODIR)' \
+	MAKE='$(MODULE_MAKE)' \
+	MKDIRPROG='mkdir -p' \
 	$(MODTYPE_BUILD_ENV) $(MODULE_BUILD_ENV)
 
 DEFAULT_BUILD_MAKEFLAGS=$(MODTYPE_MAKEFLAGS) $(MODULE_MAKEFLAGS) \
@@ -406,7 +418,7 @@
 print_default_build_flags:
 	@print "BUILD_ENV='$(BUILD_ENV)'" ; \
 	print "MAKE='$(MODULE_MAKE)'" ; \
-	print "MAKE_FLAGS='$(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS)'"
+	print "MAKEFLAGS='$(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS)'"
 
 build-in-subdir:
 	(cd $(subdir) ; \
@@ -443,7 +455,7 @@
 	-e 's|^sdkdir=|sdkdir=$$protodir|g;' \
 	-e 's|$$protodir\$${sdkdir}|\$${sdkdir}|g;'
 
-install_pkgconfig_uninstalled:
+install_pkgconfig_uninstalled: $(INSTALL_TARGETS)
 	@ if [[ ! -z "$(FIX_PC_FILES)" ]] ; then \
 	    cd $(SOURCE_DIR) ; \
 	    for pcin in $(FIX_PC_FILES:.in=) ; do \
@@ -462,7 +474,7 @@
 $(BUILD_DEBUG:yes=$(POUND_SIGN))	DEBUG_ELF_COMMENTS=
 ELF_COMMENTS += $(DEBUG_ELF_COMMENTS)
 
-set-elf-comments:
+set-elf-comments: $(BUILD_TARGETS:set-elf-comments=)
 	$(TOP)/common/set-elf-comments.pl -B $(TOP)/../packages/pkgversion \
 	 -M '$(ELF_COMMENTS)' $(SOURCE_DIR)
 
--- a/open-src/common/Makefile.init	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/common/Makefile.init	Thu Oct 15 20:19:43 2009 -0700
@@ -29,7 +29,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile.init	1.12	09/10/08
+# ident	"@(#)Makefile.init	1.13	09/10/13 SMI"
 #
 
 # Use ksh93 for shell commands in Makefiles so that builds are the same
@@ -40,16 +40,12 @@
 # Borrowed from Solaris OS/Net makefile.master:
 # The declaration POUND_SIGN is always '#'. This is needed to get around the
 # make feature that '#' is always a comment delimiter, even when escaped or
-# quoted.  The only way of generating this is the :sh macro mechanism.  Note
-# however that in general :sh macros should be avoided in makefiles that are
-# widely included into other makefiles, as the resulting shell executions can
-# cause a noticable slowdown in build times.
+# quoted. We use this macro expansion method to get POUND_SIGN rather than
+# always breaking out a shell because the general case can cause a noticable
+# slowdown in build times when so many Makefiles include Makefile.init.
 #
-# The extra $(POUND_SIGN) in front keeps us from spending time doing 
-# additional shell executions once it's already defined. (See CR 6589104,
-# credit to Casper Dik for the idea.)
-#
-$(POUND_SIGN)POUND_SIGN:sh= echo \\043
+PRE_POUND=				pre\#
+POUND_SIGN=				$(PRE_POUND:pre\%=%)
 
 # Set default build target to all
 default:: all
@@ -60,7 +56,7 @@
 ###  Machine architecture macros
 
 # MACH will be either "sparc" or "i386"
-MACH:sh=uname -p
+MACH=$(TARGET_ARCH:-%=%)
 
 # ARCH will be either "sun4" or "i386" - mainly used in $(PROTODIR)
 ARCH=$(MACH:sparc=sun4)
--- a/open-src/common/Makefile.subdirs	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/common/Makefile.subdirs	Thu Oct 15 20:19:43 2009 -0700
@@ -1,8 +1,8 @@
 # -*- Makefile -*- rules commonly shared among X consolidation open source dirs
 # Makefile.subdirs has rules for recursively iterating through module subdirs
 #
-# Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile.subdirs	1.3	09/05/15
+# ident	"@(#)Makefile.subdirs	1.4	09/10/13 SMI"
 #
 
 # Need to set $MACH
@@ -46,13 +46,13 @@
 	$(MAKE) $(MAKEFLAGS) subdirs OS_TARGET=clean
 	$(MAKE) $(MAKEFLAGS) clean-obsolete-subdirs
 
-subdirs:
+subdirs: $(OS_SUBDIRS)
+
+$(OS_SUBDIRS): ALWAYS_RUN
 	@case '${MAKEFLAGS}' in *[ik]*) set +e;; esac; \
-	for i in $(OS_SUBDIRS) ; do \
-	    (cd $$i ; \
-	     print "## making" $(OS_TARGET) "in open-src/$(DIRNAME)$$i..."; \
-	     $(MAKE) $(MAKEFLAGS) CDEBUGFLAGS="$(CDEBUGFLAGS)" $(OS_TARGET)); \
-	done
+	cd $@ ; \
+	print "## making" $(OS_TARGET) "in open-src/$(DIRNAME)$@..."; \
+        $(MAKE) $(MAKEFLAGS) CDEBUGFLAGS="$(CDEBUGFLAGS)" $(OS_TARGET)
 
 clean-obsolete-subdirs:
 	@case '${MAKEFLAGS}' in *[ik]*) set +e;; esac; \
@@ -64,9 +64,16 @@
 		    else ; \
 		    	print "## removing obsolete build directories in open-src/$(DIRNAME)$$i..."; \
 			(set -x ; cd $$i && rm -rf build_32 build_64 ) ; \
-			(set -x ; rmdir $$i ) ; \
+			(set -x ; rmdir $$i/SCCS $$i ) ; \
 		    fi ; \
 		fi ; \
 	    done ; \
 	fi ; \
 	return 0
+
+# Dummy target to force another target to always be run, even if a file
+# or directory with the same name already exists (as it will for subdirs)
+ALWAYS_RUN:
+
+# Tell dmake it can build subdirs in parallel
+.PARALLEL: $(OS_SUBDIRS)
--- a/open-src/data/workspace-patterns/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/data/workspace-patterns/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 ###############################################################################
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -36,6 +36,9 @@
 SOURCE_TARBALL_NAME=NONE
 SOURCE_TARBALL_NAME_SET=yes
 
+CONFIGURE_TARGETS =
+CONFIGURE_TARGETS_SET=yes
+
 BUILD_TARGETS =
 BUILD_TARGETS_SET=yes
 
--- a/open-src/doc/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/doc/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 # Makefile for X Consolidation Open Source Documentation tools & modules
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.4	08/08/08
+# ident	"@(#)Makefile	1.5	09/10/13 SMI"
 #
 ###############################################################################
 
@@ -44,6 +44,10 @@
 # work right.
 default_target: install
 
+# Dependencies for parallel make
+xorg-docs: docbook-utils xorg-sgml-doctools
+docbook-utils: xorg-sgml-doctools
+
 PWD:sh=pwd
 TOP=$(PWD)/..
 
--- a/open-src/doc/xorg-docs/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/doc/xorg-docs/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 ###############################################################################
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.5	08/08/08
+# ident	"@(#)Makefile	1.6	09/10/13 SMI"
 #
 
 # Package name used in tarballs
@@ -67,7 +67,7 @@
 MAN_DIR=$(PROTODIR)$(X11_MAN_DIR)
 
 install_gen::
-	mkdir -p $(DOC_DIR) $(MAN_DIR)
+	mkdir -p $(DOC_DIR) $(MAN_DIR)/man5
 	cp -p $(SGML_DIR)/LICENSE.txt		$(DOC_DIR)/LICENSE
 	cp -p $(SGML_DIR)/RELNOTES.txt		$(DOC_DIR)/RELNOTES
 	cp -p $(SGML_DIR)/input/XKB-Config.txt	$(DOC_DIR)/README.XKB-Config
--- a/open-src/driver/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/driver/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 # Makefile for X Consolidation Open Source Xorg driver modules
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.14	09/07/17
+# ident	"@(#)Makefile	1.15	09/10/13 SMI"
 #
 ###############################################################################
 
@@ -106,3 +106,7 @@
 ### Include common definitions
 DIRNAME="driver/"
 include $(TOP)/common/Makefile.subdirs
+
+# Dependencies between modules
+xf86-input-vmmouse: xf86-input-mouse
+
--- a/open-src/font/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/font/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 # Makefile for X Consolidation Open Source font modules
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -28,21 +28,23 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.10	09/02/26
+# ident	"@(#)Makefile	1.11	09/10/13 SMI"
 #
 ###############################################################################
 
-# encodings must be first, since it installs files used to build the rest
+# Need to install to proto area by default for inter-package dependencies to
+# work right.
+default_target: install
+
+# encodings & util must be first, since they install files used by the rest
 # catalogue-dirs must be last, since it remixes the results of the rest
 
-OS_SUBDIRS_common = \
-	encodings \
+FONT_SUBDIRS= \
 	sun-aliases \
 	bitstream-vera \
 	deja-vu \
 	google-droid \
 	liberation \
-	util \
 	adobe-75dpi \
 	adobe-100dpi \
 	adobe-utopia-75dpi \
@@ -78,8 +80,16 @@
 	sun-misc \
 	winitzki-cyrillic \
 	xfree86-type1 \
+
+OS_SUBDIRS_common = \
+	encodings \
+	util \
+	$(FONT_SUBDIRS) \
 	catalogue-dirs
 
+$(FONT_SUBDIRS): encodings util
+catalogue-dirs: $(FONT_SUBDIRS)
+
 OS_SUBDIRS_sparc = $(OS_SUBDIRS_common)
 OS_SUBDIRS_i386 = $(OS_SUBDIRS_common)
 
--- a/open-src/font/bitstream-vera/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/font/bitstream-vera/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -3,7 +3,7 @@
 # Bitstream Vera Fonts Makefile
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.7	09/02/26
+# ident	"@(#)Makefile	1.8	09/10/13 SMI"
 #
 
 # Package name used in tarballs
@@ -46,6 +46,10 @@
 # Patches to apply to source after unpacking, in order
 SOURCE_PATCHES=		# None
 
+# No configure script to run
+CONFIGURE_TARGETS=
+CONFIGURE_TARGETS_SET=yes
+
 # What to build
 BUILD_TARGETS=$(SOURCE_DIR)/fonts.scale
 BUILD_TARGETS_SET=yes
--- a/open-src/font/catalogue-dirs/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/font/catalogue-dirs/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 ###############################################################################
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -36,6 +36,10 @@
 SOURCE_TARBALL_NAME=NONE
 SOURCE_TARBALL_NAME_SET=yes
 
+# No configure script to run
+CONFIGURE_TARGETS=
+CONFIGURE_TARGETS_SET=yes
+
 SOURCE_TARGETS = 
 SOURCE_TARGETS_SET=yes
 
--- a/open-src/font/deja-vu/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/font/deja-vu/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -3,7 +3,7 @@
 # Deja Vu Fonts Makefile
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.10	09/08/17
+# ident	"@(#)Makefile	1.11	09/10/13 SMI"
 #
 
 # Package name used in tarballs
@@ -46,6 +46,10 @@
 # Patches to apply to source after unpacking, in order
 SOURCE_PATCHES=		# None
 
+# No configure script to run
+CONFIGURE_TARGETS=
+CONFIGURE_TARGETS_SET=yes
+
 # What to build
 BUILD_TARGETS=$(SOURCE_DIR)/ttf/fonts.scale
 BUILD_TARGETS_SET=yes
--- a/open-src/font/encodings/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/font/encodings/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 ###############################################################################
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.3	08/08/08
+# ident	"@(#)Makefile	1.4	09/10/13 SMI"
 #
 
 # Package name used in tarballs
@@ -45,6 +45,3 @@
 
 ### Include common rulesets
 include ../Makefile.inc
-
-install_gen::
-	(cd $(PROTODIR)/$(X11_DIR)/lib/X11/fonts/encodings && LD_LIBRARY_PATH=$(PROTODIR)$(X11_SERVERLIBS_DIR)$(ARCHLIBSUBDIR) $(PROTODIR)$(X11_DIR)/bin/mkfontscale -b -s -l -n -r -p $(X11_DIR)/lib/X11/fonts/encodings -e . -e large .)
--- a/open-src/font/google-droid/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/font/google-droid/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -3,7 +3,7 @@
 # Droid Fonts Makefile
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.1	09/02/26 SMI
+# ident	"@(#)Makefile	1.2	09/10/13 SMI"
 #
 
 # Package name used in tarballs
@@ -55,6 +55,10 @@
 # Patches to apply to source after unpacking, in order
 SOURCE_PATCHES=		# None
 
+# No configure script to run
+CONFIGURE_TARGETS=
+CONFIGURE_TARGETS_SET=yes
+
 # What to build
 BUILD_TARGETS=$(SOURCE_DIR)/fonts.scale
 BUILD_TARGETS_SET=yes
--- a/open-src/font/liberation/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/font/liberation/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -3,7 +3,7 @@
 # Liberation Fonts Makefile
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.6	09/02/26 SMI
+# ident	"@(#)Makefile	1.7	09/10/13 SMI"
 #
 
 # Package name used in tarballs
@@ -51,6 +51,10 @@
 # Patches to apply to source after unpacking, in order
 SOURCE_PATCHES=		# None
 
+# No configure script to run
+CONFIGURE_TARGETS=
+CONFIGURE_TARGETS_SET=yes
+
 # What to build
 BUILD_TARGETS=$(SOURCE_DIR)/fonts.scale
 BUILD_TARGETS_SET=yes
--- a/open-src/font/sun-aliases/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/font/sun-aliases/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 ###############################################################################
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -36,6 +36,9 @@
 SOURCE_TARBALL_NAME=NONE
 SOURCE_TARBALL_NAME_SET=yes
 
+CONFIGURE_TARGETS = 
+CONFIGURE_TARGETS_SET=yes
+
 BUILD_TARGETS = 
 BUILD_TARGETS_SET=yes
 
--- a/open-src/lib/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/lib/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -28,10 +28,14 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.31	09/07/14
+# ident	"@(#)Makefile	1.32	09/10/13 SMI"
 #
 ###############################################################################
 
+# Need to install to proto area by default for inter-package dependencies to
+# work right.
+default_target: install
+
 # Order copied from X.Org's util/modular/build.sh:
 # the libraries have a dependency order:
 # xtrans, Xau, Xdmcp before anything else
@@ -41,11 +45,43 @@
 # (X11 and SM) before Xt
 # Xt before Xmu and Xpm and Xtst
 # Xext before any other extension library, including mesa
-# Xfixes before Xcomposite
-# Xp before XprintUtil before XprintAppUtil
+# Xfixes before Xcomposite, Xcursor or Xdamage
 # libpthread-stubs before libdrm (and in the future, before xcb)
 # libdrm before mesa
 
+# Dependencies needed for parallel make:
+fontconfig: freetype
+libdrm: libpthread-stubs
+libFS: libxtrans
+libICE: libxtrans
+libSM: libxtrans libICE
+libX11: libxtrans libXau libXdmcp
+libXaw: libX11 libXt libXmu libXpm
+libXcomposite: libX11 libXext libXfixes
+libXcursor: libX11 libXfixes libXrender
+libXdamage: libXfixes
+libXevie: libX11 libXext
+libXext: libX11 libXau
+libXfont: libxtrans freetype libfontenc
+libXft: freetype fontconfig libXrender
+libXi: libX11 libXext
+libXinerama: libX11 libXext
+libXlg3d: libX11 libXfixes libXext
+libXmu: libX11 libXt libXext
+libXp: libX11 libXext
+libXpm: libX11 libXt
+libXrandr: libX11 libXext libXrender
+libXres: libX11 libXext
+libXt: libX11 libSM
+libXtst: libX11 libXext
+libXv: libX11 libXext
+libXvMC: libX11 libXext
+libXxf86misc: libX11 libXext
+libXxf86vm: libX11 libXext
+libxkbfile: libX11
+libxkbui: libX11 libXt libxkbfile
+mesa: libdrm libX11 libXext
+
 OS_SUBDIRS_common = \
 	freetype \
 	fontconfig \
@@ -109,3 +145,4 @@
 ### Include common definitions
 DIRNAME="lib/"
 include $(TOP)/common/Makefile.subdirs
+
--- a/open-src/lib/Makefile.inc	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/lib/Makefile.inc	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 # -*- Makefile -*- rules common to most X.Org library modules
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile.inc	1.13	09/05/15
+# ident	"@(#)Makefile.inc	1.14	09/10/13 SMI"
 #
 
 PWD:sh=pwd
@@ -81,7 +81,9 @@
 
 LIB_INST_DIR=$(PROTODIR)$(MODULE_PREFIX)/lib$(MODULE_ADD_LIB_SUBDIR)
 
-install_64::
-	-/bin/rm -f $(LIB_INST_DIR)/64
-	ln -s $(SUBDIR64) $(LIB_INST_DIR)/64
+install_64:: $(LIB_INST_DIR)/64
 
+$(LIB_INST_DIR)/64:
+	mkdir -p $(LIB_INST_DIR)
+	/bin/ln -s $(SUBDIR64) $(LIB_INST_DIR)/64 || true
+
--- a/open-src/lib/fontconfig/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/lib/fontconfig/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -3,7 +3,7 @@
 # Fontconfig 2.x Makefile
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.81	09/09/09
+# ident	"@(#)Makefile	1.82	09/10/13 SMI"
 #
 
 # Package name used in tarballs
@@ -114,7 +114,7 @@
 	( cd $(SOURCE_DIR) ; \
 	    ./config.status --file fonts.conf )
 
-install_gen:: $(SOURCE_DIR)/fonts.conf-SUNW
+install_gen:: default_install $(SOURCE_DIR)/fonts.conf-SUNW
 	rm $(PROTODIR)/etc/fonts/fonts.conf
 	cp $(SOURCE_DIR)/fonts.conf-SUNW $(PROTODIR)/etc/fonts/fonts.conf
 
@@ -133,7 +133,7 @@
 
 FC_MAN_DIR=$(PROTODIR)/usr/share/man
 
-fontconfig-sunman-install:
+fontconfig-sunman-install: default_install
 	mkdir -p $(FC_MAN_DIR)/man4 $(FC_MAN_DIR)/man3lib
 	sed -e 's/.TH "FONTS-CONF" "5"/.TH "fonts.conf" "4"/' 	\
 	    -e 's/SUNWfontconfig/SUNWfontconfig-root/' 		\
--- a/open-src/lib/freetype/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/lib/freetype/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -3,7 +3,7 @@
 # Freetype 2.x Makefile
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.79	09/08/30
+# ident	"@(#)Makefile	1.80	09/10/13 SMI"
 #
 
 PWD:sh=pwd
@@ -150,6 +150,7 @@
 
 install_64::
 	-/bin/rm -f $(BIN_INST_DIR)/64
+	mkdir -p $(BIN_INST_DIR)
 	ln -s $(SUBDIR64) $(BIN_INST_DIR)/64
 
 
--- a/open-src/lib/libX11/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/lib/libX11/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -3,7 +3,7 @@
 # X11 1.x Makefile
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.22	09/04/15
+# ident	"@(#)Makefile	1.23	09/10/13 SMI"
 #
 
 # Package name used in tarballs
@@ -144,14 +144,9 @@
 
 include ../Makefile.inc
 
-install_gen::
-	mkdir -p $(PROTODIR)/usr/X11/lib$(ARCHLIBSUBDIR)
-	-rm -f $(PROTODIR)/usr/X11/lib$(ARCHLIBSUBDIR)/libX11.so
-	ln -s libX11.so.4 $(PROTODIR)/usr/X11/lib$(ARCHLIBSUBDIR)/libX11.so
-
 # Install additional headers we need in other parts of the build or ship in
 # packages, but which X.Org doesn't
-install_32::
+install_32:: build_32
 	mkdir -p $(PROTODIR)/usr/X11/include/X11/extensions
 	cp -pf sun-src/include/X11/Xvarargs.h $(PROTODIR)/usr/X11/include/X11/
 	cp -pf sun-src/include/X11/extensions/XInteractive.h \
--- a/open-src/lib/libXaw/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/lib/libXaw/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.6	09/07/31
+# ident	"@(#)Makefile	1.7	09/10/15 SMI"
 #
 
 # Package name used in tarballs
@@ -63,10 +63,8 @@
 # started shipping the now-dropped-by-X.Org libXaw.so.8 (Xaw + Xprint)
 MODULE_CONFIG_OPTS= --disable-xaw6
 
-# Remove existing Xaw headers from proto area before build to avoid conflicts
-MODULE_BUILD_DEPS = remove-old-headers
-
 include ../Makefile.inc
 
-remove-old-headers:
+# Remove existing Xaw headers from proto area before build to avoid conflicts
+clean::
 	rm -rf $(PROTODIR)$(X11_INCLUDES_DIR)/X11/Xaw
--- a/open-src/lib/libpciaccess/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/lib/libpciaccess/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -3,7 +3,7 @@
 # libpciaccess Makefile
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -60,10 +60,14 @@
 # Activate additional debugging code in debug builds
 MODULE_DEBUG_FLAGS=-DDEBUG
 
+# Additional targets for scanpci
+MODULE_ADD_SOURCE_TARGETS = source_scanpci_man
+MODULE_ADD_INSTALL_TARGETS = install_scanpci
+
 include ../Makefile.inc
 
 # Update scanpci.man with program man page flags instead of library ones
-source_gen::
+source_scanpci_man:: default_source
 	(cd $(SOURCE_DIR) && \
 	 /usr/perl5/bin/perl $(TOP)/common/suntouch-manpages.pl \
 	        -a '{Availability, $(SUN_PACKAGE)}' \
@@ -74,7 +78,7 @@
 		src/scanpci.man > src/scanpci.1 )
 
 # We want to install scanpci, even though the upstream Makefile doesn't
-install_gen::
+install_scanpci:: default_install
 	mkdir -p $(PROTODIR)$(MODULE_PREFIX)/bin$(ARCHLIBSUBDIR) \
 		 $(PROTODIR)$(MODULE_PREFIX)/share/man/man1
 	$(INSTALL_SCRIPT) -m 755 $(SOURCE_DIR)/src/scanpci \
--- a/open-src/proto/Makefile.inc	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/proto/Makefile.inc	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 # -*- Makefile -*- rules common to most X.Org protocol modules
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile.inc	1.8	09/05/15
+# ident	"@(#)Makefile.inc	1.9	09/10/13 SMI"
 #
 
 PWD:sh=pwd
@@ -60,7 +60,7 @@
 # Install
 default_install::
 	(cd $(SOURCE_DIR) ; \
-	 $(MAKE) $(MFLAGS) -e DESTDIR=$(PROTODIR) pkgconfigdir=$(PKGCONFIG_DIR_64) install-pkgconfigDATA )
+	 $(BUILD_ENV) $(MAKE) $(MFLAGS) -e DESTDIR=$(PROTODIR) pkgconfigdir=$(PKGCONFIG_DIR_64) install-pkgconfigDATA )
 
 
 
--- a/open-src/proto/sun-ext-protos/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/proto/sun-ext-protos/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 ###############################################################################
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@
 # of the copyright holder.
 #
 #
-# ident "@(#)Makefile 1.3     09/05/15 SMI"
+# ident	"@(#)Makefile	1.4	09/10/13 SMI"
 #
 # Definitions of Solaris-specific X Server extensions
 
@@ -38,6 +38,8 @@
 SOURCE_TARBALL_NAME_SET=yes
 
 # Don't need to configure or build these or install pkg-config files for them
+CONFIGURE_TARGETS=
+CONFIGURE_TARGETS_SET=yes
 BUILD_TARGETS=
 BUILD_TARGETS_SET=yes
 INSTALL_TARGETS=
--- a/open-src/util/build-tools/find-build-errors	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/util/build-tools/find-build-errors	Thu Oct 15 20:19:43 2009 -0700
@@ -29,7 +29,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# ident "@(#)find-build-errors 1.3     09/05/13 SMI"
+# ident	"@(#)find-build-errors	1.4	09/10/13 SMI"
 #
 
 require 5.005;				# minimal Perl version required
@@ -90,6 +90,7 @@
 
     # Clear saved lines for each new module/subdir
     if (($l =~ m{^\#\# making \S+ in \S+\.\.\.$}ms) ||	# open-src pattern
+	($l =~ m{^dmake: Warning: Target `subdirs' not remade because of errors}ms) ||
 	($l =~ m{^\S+ing( \S+)* in \S+\.\.\.$}ms)) {	# xc pattern
       @steplines = ();
       $found_error = 0;
@@ -110,7 +111,7 @@
     next if ($l =~ m{\\\Z}ms);
 
     # Found a new error?
-    if ($l =~ m{\*\*\* }ms) {
+    if (($l =~ m{\*\*\* }ms) || ($l =~ m{^make: Fatal error}ms)) {
       $found_error = 1;
 
       # Print section header
@@ -125,13 +126,13 @@
 	my $sl = $steplines[$ln];
 
 	#      print "lastmake: $lastmake, lastcom: $lastcommand, lastplus: $lastplus, line #$ln: $sl\n";
-	if ($sl =~ m{\b(make|gmake)\b}ms) {
+	if ($sl =~ m{\b(make|dmake|gmake)\b}ms) {
 	  $lastmake = $ln;
 	}
 
 	if ($sl =~ m{\breturned\b}ms) {
 	  # don't treat this as a command
-	} elsif ($sl =~ m{\b(cc|gcc|CC|g\+\+|ld|gpatch|libtool)\s+}ms) {
+	} elsif ($sl =~ m{\b(cc|gcc|CC|g\+\+|ld|gpatch|libtool|GEN|CCLD)\s+}ms) {
 	  if ($sl !~ m{usage:}) {
 	    $lastcommand = $ln;
 	  }
--- a/open-src/util/build-tools/xmake	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/util/build-tools/xmake	Thu Oct 15 20:19:43 2009 -0700
@@ -1,7 +1,7 @@
 #! /usr/perl5/bin/perl -w
 
 #
-# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
@@ -13,7 +13,7 @@
 # copyright notice(s) and this permission notice appear in all copies of
 # the Software and that both the above copyright notice(s) and this
 # permission notice appear in supporting documentation.
-# 
+#
 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
@@ -23,23 +23,44 @@
 # FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
 # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
 # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-# 
+#
 # Except as contained in this notice, the name of a copyright holder
 # shall not be used in advertising or otherwise to promote the sale, use
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# ident "@(#)xmake 1.1     08/08/07 SMI"
+# ident	"@(#)xmake	1.2	09/10/13 SMI"
 #
 
 require 5.005;				# minimal Perl version required
 use strict;				#
 use diagnostics;			#
+use File::Path;
 use File::Spec;
 use English qw( -nomatchvars );
+use POSIX qw(uname);
 
-# Path to make sure we're running Solaris make instead of GNU make
-my $solaris_make = '/usr/ccs/bin/make';
+my $verbose = 0;
+if ((scalar(@ARGV) > 0) && ($ARGV[0] eq '-v')) {
+  shift @ARGV;
+  $verbose = 1;
+}
+
+# Arguments: (envvar, defval)
+# If environment variable 'envvar' is not set, set it to 'defval'
+sub setenv_default {
+  my ($envvar, $defval) = @_;
+
+  if (!exists $ENV{$envvar}) {
+    $ENV{$envvar} = $defval;
+  }
+
+  if ($verbose > 0) {
+    print $envvar, '=', $ENV{$envvar}, "\n";
+  }
+
+  return $ENV{$envvar};
+}
 
 # save full path to current directory
 my $startdir = File::Spec->rel2abs(File::Spec->curdir());
@@ -55,17 +76,79 @@
       last;
     }
   }
+  if ($dirtree[$n] eq 'closed-src') {
+    if (-f File::Spec->catfile( @dirtree[0..($n-1)],
+				'open-src/common/Makefile.inc')) {
+      $osdepth = $n;
+      last;
+    }
+  }
 }
 
 if (!defined($osdepth)) {
   die "$0: Cannot find path to open-src/common/Makefile.inc from here";
 }
 
+
+# Use dmake unless user environment overrides
+my $make_cmd = setenv_default('MAKE', 'dmake');
+
+if ($make_cmd =~ m/dmake/) {
+  # Set dmake environment for parallel builds by default
+  setenv_default('DMAKE_MODE', 'parallel');
+  setenv_default('DMAKE_OUTPUT_MODE', 'TXT2');
+
+  if (!exists $ENV{'DMAKE_MAX_JOBS'}) {
+    my $max_jobs;
+    my $machlist = join('/', $ENV{'HOME'}, '.make.machines');
+    if ( -f $machlist ) {
+      my $nodename = (POSIX::uname())[1];
+      if (open my $MACHLIST, '<', $machlist) {
+	while (my $m = <$MACHLIST>) {
+	  my ($hostname, $vars) = split ' ', $m, 2;
+
+	  next if (!defined($hostname) || !defined($vars));
+	  if ($hostname eq $nodename) {
+	    my @varlist = split /\s+/, $vars;
+	    foreach my $v (@varlist) {
+	      my ($var, $val) = split /=/, $v;
+	      if ($var eq 'max') {
+		$max_jobs = $val;
+		last;
+	      }
+	    }
+	    last;
+	  }
+	}
+	close $MACHLIST;
+      }
+    }
+    if (!defined($max_jobs)) {
+      $max_jobs = 0;
+
+      if (open my $PSRINFO, '-|', '/usr/sbin/psrinfo') {
+	while (my $p = <$PSRINFO>) {
+	  if ($p =~ m/on-line/) {
+	    $max_jobs++;
+	  }
+	}
+	close $PSRINFO;
+      }
+    }
+    setenv_default('DMAKE_MAX_JOBS', $max_jobs);
+  }
+
+  my $dmake_odir =
+    setenv_default('DMAKE_ODIR', File::Spec->catfile(@dirtree[0..($osdepth-1)],
+						     'log', '.dmake'));
+  mkpath($dmake_odir);
+}
+
 # if in top two levels, just run make
 if ($osdepth >= ($#dirtree - 2)) {
-  print join(' ', $solaris_make, @ARGV), "\n";
-  exec($solaris_make, @ARGV)
-    or die "$0: exec of $solaris_make failed: $OS_ERROR";
+  print join(' ', $make_cmd, @ARGV), "\n";
+  exec($make_cmd, @ARGV)
+    or die "$0: exec of $make_cmd failed: $OS_ERROR";
 }
 
 my $subdir_target = 'build-in-subdir';
@@ -80,14 +163,14 @@
 
 my @makeargs = ($subdir_target, qq{subdir='$startdir'});
 if (scalar(@ARGV) > 0) {
-  push @makeargs, join(q{}, q{subdir_cmd='}, @ARGV, q{'});
+  push @makeargs, join(q{ }, q{subdir_cmd=}, @ARGV);
 }
 
-print join(' ', "(cd $moduledir ;\\\n", $solaris_make, @makeargs), ")\n";
+print join(' ', "(cd $moduledir ;\\\n", $make_cmd, @makeargs), ")\n";
 chdir $moduledir
   or die "$0: Can't chdir $moduledir: $OS_ERROR";
-exec($solaris_make, @makeargs)
-    or die "$0: exec of $solaris_make failed: $OS_ERROR";
+exec($make_cmd, @makeargs)
+    or die "$0: exec of $make_cmd failed: $OS_ERROR";
 
 __END__
 
--- a/open-src/xserver/xorg/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/xserver/xorg/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.77	09/06/24
+# ident	"@(#)Makefile	1.78	09/10/13 SMI"
 #
 
 # Build 32-bit or 64-bit?
@@ -86,12 +86,14 @@
 # pkg-config files that need to have -R added
 FIX_PC_FILES=xorg-server.pc.in
 
+include ../Makefile.inc
+
 # Additional install targets beyond the defaults
+# - install_pc can't be in INSTALL_TARGETS or MODULE_ADD_INSTALL_TARGETS
+#   without causing a dependency loop that breaks dmake
 EXTRA_INSTALL_sparc=install_pc
 EXTRA_INSTALL_i386=
-MODULE_ADD_INSTALL_TARGETS=install_extras $(EXTRA_INSTALL_$(MACH))
-
-include ../Makefile.inc
+install_gen:: install_extras $(EXTRA_INSTALL_$(MACH))
 
 # Merge in additional sources from sun-src directory
 source_gen:: $(LNDIR)
--- a/open-src/xserver/xvnc/Makefile	Tue Oct 13 15:30:00 2009 -0700
+++ b/open-src/xserver/xvnc/Makefile	Thu Oct 15 20:19:43 2009 -0700
@@ -5,7 +5,7 @@
 # http://cvs.fedoraproject.org/viewvc/rpms/vnc/devel/vnc.spec
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.19 09/05/15
+# ident	"@(#)Makefile	1.20	09/10/13 SMI"
 #
 
 # Package name used in tarballs
@@ -140,7 +140,7 @@
 # Use layout from Fedora RPM so their patches apply
 # This step has to be done after including common/Makefile.inc since
 # it depends on files created in that stage
-source_gen:: 
+source_gen:: default_source
 	(cd $(SOURCE_DIR) ; \
 	cp -p unix/xc/programs/Xserver/vnc/Xvnc/xvnc.cc \
 		unix/xc/programs/Xserver/Xvnc.man \