4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
23 # Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
24 # Copyright 2016 Joyent, Inc.
25 # Copyright (c) 2012 by Delphix. All rights reserved.
26 # Copyright (c) 2013 DEY Storage Systems, Inc. All rights reserved.
27 # Copyright 2014 Garrett D'Amore <garrett@damore.org>
28 # Copyright 2016 Toomas Soome <tsoome@me.com>
29 # Copyright 2016 Nexenta Systems, Inc.
32 include ..
/Makefile.master
35 # Note that the command 'perl' is first in the list, violating
36 # alphabetical order. This is because it is very long-running and
37 # should be given the most wall-clock time for a parallel build.
39 # Commands in the FIRST_SUBDIRS list are built before starting the build
40 # of other commands. Currently this includes only 'isaexec' and
41 # 'platexec'. This is necessary because $(ROOT)/usr/lib/isaexec or
42 # $(ROOT)/usr/lib/platexec must exist when some other commands are built
43 # because their 'make install' creates a hard link to one of them.
438 # Commands that are messaged.
647 # commands that use dcgettext for localized time, LC_TIME
663 # commands that belong only to audit.
678 # commands not owned by the systems group
684 install := TARGET
= install
685 clean := TARGET
= clean
686 clobber := TARGET
= clobber
687 _msg
:= TARGET
= _msg
692 SUBDIRS
= $(COMMON_SUBDIRS
) $($(MACH
)_SUBDIRS
)
694 .PARALLEL
: $(BWOSDIRS
) $(SUBDIRS
) $(MSGSUBDIRS
) $(AUDITSUBDIRS
)
696 all install clean clobber: $(FIRST_SUBDIRS
) .WAIT
$(SUBDIRS
) \
700 # Manifests cannot be checked in parallel, because we are using
701 # the global repository that is in $(SRC)/cmd/svc/seed/global.db.
702 # For this reason, to avoid .PARALLEL and .NO_PARALLEL conflicts,
703 # we spawn off a sub-make to perform the non-parallel 'make check'
706 $(MAKE
) -f Makefile.
check check
709 # The .WAIT directive works around an apparent bug in parallel make.
710 # Evidently make was getting the target _msg vs. _dc confused under
711 # some level of parallelization, causing some of the _dc objects
714 _msg
: $(MSGSUBDIRS
) $($(MACH
)_MSGSUBDIRS
) .WAIT _dc
726 $(FIRST_SUBDIRS
) $(BWOSDIRS
) $(SUBDIRS
) $(AUDITSUBDIRS
): FRC
727 @if
[ -f
$@
/Makefile
]; then \
728 cd
$@
; pwd
; $(MAKE
) $(TARGET
); \