Makefile revision 6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648
6c2a76b3e2ccd32c35814b6e0f54da00190749d7Evan Hunt# CDDL HEADER START
c7fd128f8ea8a527fe27c1b95ab46df7155bc8e4Tinderbox User# The contents of this file are subject to the terms of the
c7fd128f8ea8a527fe27c1b95ab46df7155bc8e4Tinderbox User# Common Development and Distribution License (the "License").
2fee8782a6fd57d86a67949092ab9197111af390Evan Hunt# You may not use this file except in compliance with the License.
969eaf7df8ac651946f76b6631ff5db568c11ef6Tinderbox User# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# See the License for the specific language governing permissions
f4ee48be3994797a8332b86c101db4d7b54799ceTinderbox User# and limitations under the License.
8de3f14f1c300c3e1ed99084cc03485b42c92bf1Tinderbox User# When distributing Covered Code, include this CDDL HEADER in each
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# If applicable, add the following below this CDDL HEADER, with the
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User# fields enclosed by brackets "[]" replaced with your own identifying
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# information: Portions Copyright [yyyy] [name of copyright owner]
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# CDDL HEADER END
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Note that the commands 'agents', 'lp', 'perl', and 'man' are first in
415d630b6309922caee8469384a6fab75cf05032Mark Andrews# the list, violating alphabetical order. This is because they are very
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# long-running and should be given the most wall-clock time for a
415d630b6309922caee8469384a6fab75cf05032Mark Andrews# parallel build.
30370d905e9be3be7d9b947fd432bacecbb13bb9Evan Hunt# Commands in the FIRST_SUBDIRS list are built before starting the build
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# of other commands. Currently this includes only 'isaexec' and
415d630b6309922caee8469384a6fab75cf05032Mark Andrews# 'platexec'. This is necessary because $(ROOT)/usr/lib/isaexec or
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews# $(ROOT)/usr/lib/platexec must exist when some other commands are built
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews# because their 'make install' creates a hard link to one of them.
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# Commands are listed one per line so that TeamWare can auto-merge most
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# Commands that are messaged. Note that 'lp' and 'man' come first
415d630b6309922caee8469384a6fab75cf05032Mark Andrews# (see previous comment about 'lp' and 'man').
34d1f3b65324f8fcf358fa2f47891441d4b1d2f0Tinderbox User# commands that use dcgettext for localized time, LC_TIME
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# commands that belong only to audit.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# commands not owned by the systems group
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews.PARALLEL: $(BWOSDIRS) $(SUBDIRS) $(MSGSUBDIRS) $(AUDITSUBDIRS)
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrewsall install clean clobber lint: $(FIRST_SUBDIRS) .WAIT $(SUBDIRS) \
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# Manifests cannot be checked in parallel, because we are using
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# the global repository that is in $(SRC)/cmd/svc/seed/global.db.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# For this reason, to avoid .PARALLEL and .NO_PARALLEL conflicts,
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# we spawn off a sub-make to perform the non-parallel 'make check'
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# The .WAIT directive works around an apparent bug in parallel make.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# Evidently make was getting the target _msg vs. _dc confused under
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# some level of parallelization, causing some of the _dc objects
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# not to be built.
dda78c0f84895c174ef7206dca6082939c030792Tinderbox User_msg: $(MSGSUBDIRS) $($(MACH)_MSGSUBDIRS) .WAIT _dc
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# Dependencies
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews$(FIRST_SUBDIRS) $(BWOSDIRS) $(SUBDIRS) $(AUDITSUBDIRS): FRC
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews @if [ -f $@/Makefile ]; then \