Makefile revision 5e3f545c431ec4bce3e1b52f3f81bc9befe501f2
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# CDDL HEADER START
b99dbaab171d91e1b664397cc40e039d0c087c65fielding# The contents of this file are subject to the terms of the
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# Common Development and Distribution License (the "License").
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# You may not use this file except in compliance with the License.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# See the License for the specific language governing permissions
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# and limitations under the License.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# When distributing Covered Code, include this CDDL HEADER in each
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# If applicable, add the following below this CDDL HEADER, with the
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# fields enclosed by brackets "[]" replaced with your own identifying
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# information: Portions Copyright [yyyy] [name of copyright owner]
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# CDDL HEADER END
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# Copyright 2011 Nexenta Systems, Inc. All rights reserved.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# Copyright (c) 2012 by Delphix. All rights reserved.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# Copyright (c) 2012, Joyent, Inc. All rights reserved.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# Copyright (c) 2013 Gary Mills
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# Note that libcurses installs commands along with its library.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# This is a minor bug which probably should be fixed.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# Note also that a few extra libraries are kept in cmd source.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# Certain libraries are linked with, hence depend on, other libraries.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# Although we have historically used .WAIT to express dependencies, it
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# reduces the amount of parallelism and thus lengthens the time it
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# takes to build the libraries. Thus, we now require that any new
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# libraries explicitly call out their dependencies. Eventually, all
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# the library dependencies will be called out explicitly. See
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# "Library interdependencies" near the end of this file.
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# Aside from explicit dependencies (and legacy .WAITs), all libraries
f3091cedd4abeda1026d9117c34e8f625754e8aefielding# are built in parallel.
c7fe488773cf6f50a1b2d9211c2f30a2ace8b67ccoar# Create a special version of $(SUBDIRS) with no .WAIT's, for use with the
c7fe488773cf6f50a1b2d9211c2f30a2ace8b67ccoar# clean and clobber targets (for more information, see those targets, below).
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# For the all and install targets, we clearly must respect library
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# dependencies so that the libraries link correctly. However, for
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# the remaining targets (check, clean, clobber, install_h, lint, _dc
d473a5990a4e7f45daa8818292df64db711fb39aaaron# and _msg), libraries do not have any dependencies on one another
d473a5990a4e7f45daa8818292df64db711fb39aaaron# and thus respecting dependencies just slows down the build.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# As such, for these rules, we use pattern replacement to explicitly
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# avoid triggering the dependency information. Note that for clean,
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# clobber and lint, we must use $(NOWAIT_SUBDIRS) rather than
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# $(SUBDIRS), to prevent `.WAIT' from expanding to `.WAIT-nodepend'.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# extra libraries kept in other source areas
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding# Library interdependencies are called out explicitly here
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinggss_mechs/mech_krb5: libgss libnsl libsocket libresolv pkcs11
d473a5990a4e7f45daa8818292df64db711fb39aaaronlibdhcpagent: libsocket libdhcputil libuuid libdlpi libcontract
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinglibdladm: libdevinfo libinetutil libsocket libscf librcm libnvpair \
bae64a3e5bf7b96d8379e24f13273f26b3b29e16coarlibipadm: libnsl libinetutil libsocket libdlpi libnvpair libdhcpagent \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinglibsldap: libldap5 libtsol libnsl libc libscf libresolv
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinglibzonecfg: libc libsocket libnsl libuuid libnvpair libsysevent libsec \
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinglibproc: ../cmd/sgs/librtld_db ../cmd/sgs/libelf libctf libsaveargs
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fieldinglibwanboot: libnvpair libresolv libnsl libsocket libdevinfo libinetutil \
# in certain situations (e.g., exportable source builds,
@if [ -f $@/Makefile ]; then \
FRC: