Makefile revision 3e1bd7a2aaeb6188caef90679b98088cfef1edc6
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User# CDDL HEADER START
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# The contents of this file are subject to the terms of the
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater# Common Development and Distribution License, Version 1.0 only
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# (the "License"). You may not use this file except in compliance
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# with the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# or http://www.opensolaris.org/os/licensing.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# See the License for the specific language governing permissions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and limitations under the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# When distributing Covered Code, include this CDDL HEADER in each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# If applicable, add the following below this CDDL HEADER, with the
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User# fields enclosed by brackets "[]" replaced with your own identifying
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# information: Portions Copyright [yyyy] [name of copyright owner]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# CDDL HEADER END
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Use is subject to license terms.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# ident "%Z%%M% %I% %E% SMI"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude ../Makefile.master
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Note that libcurses installs commands along with its library.
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# This is a minor bug which probably should be fixed.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Note also that a few extra libraries are kept in cmd source.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Certain libraries are linked with, hence depend on, other libraries.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Although we have historically used .WAIT to express dependencies, it
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# reduces the amount of parallelism and thus lengthens the time it
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# takes to build the libraries. Thus, we now require that any new
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# libraries explicitly call out their dependencies. Eventually, all
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the library dependencies will be called out explicitly. See
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# "Library interdependencies" near the end of this file.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Aside from explicit dependencies (and legacy .WAITs), all libraries
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# are built in parallel.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein.PARALLEL:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUBDIRS= \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein common .WAIT \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein abi/apptrace .WAIT \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User ../cmd/abi/spectrans .WAIT \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ../cmd/sgs/libconv \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ../cmd/sgs/libdl .WAIT \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libc_i18n \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libc .WAIT \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libmapmalloc .WAIT \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ../cmd/sgs/libelf .WAIT \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libmd5 \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein librsm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libmp .WAIT \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libcmd \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libnsl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsecdb .WAIT \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User librpcsvc \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libsocket .WAIT \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libsctp \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libresolv \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libresolv2 .WAIT \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libw .WAIT \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libintl .WAIT \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User ../cmd/sgs/librtld_db \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libaio \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein librt \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libadm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libctf \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdtrace \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcurses \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libgen \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libgss \
a1ad6695ed6f988406cf155aa26376f84f73bcb9Automatic Updater libpam \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libuuid \
a1ad6695ed6f988406cf155aa26376f84f73bcb9Automatic Updater libthread \
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater libpthread .WAIT \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libslp \
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic Updater libbsdmalloc \
bec154197d3d640b0d5b416cd5218ea58dca5d3aTinderbox User libdoor \
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater libdevinfo \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdladm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdlpi \
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User libeti \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcrypt \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libefi \
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User libwanboot \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libwanbootutil \
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User libcryptoutil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libinetcfg \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libinetutil \
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User libipmp \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libkstat \
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User libkvm \
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User liblaadm \
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User liblm \
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews libmacadm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libmalloc \
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updater libmtmalloc \
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updater libnls \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsmbios \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libtecla \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libumem \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews libnvpair .WAIT \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews libexacct \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libplot \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews libldap4 \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews libsasl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libldap5 \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsldap .WAIT \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews libbsm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsys \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsysevent \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews libnisdb \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libpool \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libproc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libproject \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsendfile \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein nametoaddr \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ncad_addr \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein gss_mechs/mech_krb5 .WAIT \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein krb5 .WAIT \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews smartcard \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein passwdutil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein pam_modules \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein crypt_modules \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libadt_jni \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein auditd_plugins \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libvolmgt \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdevice \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdevid \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdhcpsvc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libc_db \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsec \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libtnfprobe \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libtnf \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libtnfctl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdhcpagent \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdhcpdu \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdhcputil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libipsecutil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libike \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein nsswitch \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein print \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libuutil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libscf \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libinetsvc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein librestart \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsched \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libelfsign \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein pkcs11 .WAIT \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libpctx .WAIT \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcpc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein watchmalloc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein madv \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein mpss \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libwrap \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libxcurses \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libxcurses2 \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libxnet \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libzonecfg \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews libzoneinfo \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews gss_mechs/mech_spnego \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews gss_mechs/mech_dummy \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews gss_mechs/mech_dh \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews rpcsec_gss \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews librcm .WAIT \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews libcfgadm .WAIT \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews libpicl .WAIT \
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews libpicltree .WAIT \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews cfgadm_plugins \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews libmail \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews lvm \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews libsmedia \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews libipp \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews openssl \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews libdiskmgt \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein liblgrp \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libfsmgt \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libavl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcmdutils \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcontract \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ../cmd/sendmail/libmilter \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein sasl_plugins \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein udapl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $($(MACH)_SUBDIRS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsparc_SUBDIRS= .WAIT \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein efcode \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater libc_psr .WAIT \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater libmd5_psr .WAIT \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater libprtdiag .WAIT \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater libprtdiag_psr \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater librsc \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater libfruutils .WAIT \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater libfru \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater libwrsmconf \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater storage \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater wrsm \
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater libpcp
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updaterfm: libexacct
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Create a special version of $(SUBDIRS) with no .WAIT's, for use with the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# clean and clobber targets (for more information, see those targets, below).
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinNOWAIT_SUBDIRS= $(SUBDIRS:.WAIT=)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinDCSUBDIRS = \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein lvm
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMSGSUBDIRS= \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein abi \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein auditd_plugins \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cfgadm_plugins \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein gss_mechs/mech_dh \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein gss_mechs/mech_krb5 \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein krb5 \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libbsm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcfgadm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcontract \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcurses \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdhcpsvc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdhcputil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libgss \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libinetcfg \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libipmp \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libnsl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libpam \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libpicl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libpool \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libscf \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsasl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libldap5 \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsecdb \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libsldap \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libslp \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libsmedia \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libuutil \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libwanboot \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libwanbootutil \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libzonecfg \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews lvm \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews madv \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein mpss \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews pam_modules \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews rpcsec_gss \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews smartcard \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $($(MACH)_MSGSUBDIRS)
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrewssparc_MSGSUBDIRS= \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libprtdiag \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libprtdiag_psr
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHDRSUBDIRS= libaio \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein auditd_plugins \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libbsm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libc_i18n \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcmdutils \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcontract \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcpc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libctf \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcurses \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libcryptoutil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdevice \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdevid \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdevinfo \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdiskmgt \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdladm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdlpi \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdhcpagent \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdhcpsvc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdhcputil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdtrace \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libeti \
bea931e17b7567f09107f93ab7e25c7f00abeb9cMark Andrews libgen \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libwanboot \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libwanbootutil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libipsecutil \
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews libike \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libinetcfg \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libinetsvc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libinetutil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libipmp \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libipp \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libkstat \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libkvm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein liblaadm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libmacadm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libmail \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libmtmalloc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libnvpair \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libpam \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libpctx \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libpicl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libpicltree \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libplot \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libpool \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libproc \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein librcm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libscf \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsmbios \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein librestart \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews librpcsvc \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews librsm \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libsasl \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libslp \
ceeb18e6907a10547859faa340ecad83bedae90cMark Andrews libsmedia \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libsysevent \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libtecla \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libtnf \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libtnfctl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libtnfprobe \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libvolmgt \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libumem \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libuutil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libwrap \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libxcurses2 \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libzoneinfo \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein lvm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein openssl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein pkcs11 \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein smartcard \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein passwdutil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ../cmd/sendmail/libmilter \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fm \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein udapl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $($(MACH)_HDRSUBDIRS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsparc_HDRSUBDIRS= \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libwrsmconf
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinall := TARGET= all
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck := TARGET= check
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean := TARGET= clean
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclobber := TARGET= clobber
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall := TARGET= install
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall_h := TARGET= install_h
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlint := TARGET= lint
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein_dc := TARGET= _dc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein_msg := TARGET= _msg
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein.KEEP_STATE:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# For the all and install targets, we clearly must respect library
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews# dependencies so that the libraries link correctly. However, for
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the remaining targets (check, clean, clobber, install_h, lint, _dc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and _msg), libraries do not have any dependencies on one another
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and thus respecting dependencies just slows down the build.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# As such, for these rules, we use pattern replacement to explicitly
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# avoid triggering the dependency information. Note that for clean,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# clobber and lint, we must use $(NOWAIT_SUBDIRS) rather than
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# $(SUBDIRS), to prevent `.WAIT' from expanding to `.WAIT-nodepend'.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinall: $(SUBDIRS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall: $(SUBDIRS) .WAIT install_extra
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# extra libraries kept in other source areas
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall_extra:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @cd ../cmd/sgs; pwd; $(MAKE) install_lib
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @pwd
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean clobber lint: $(NOWAIT_SUBDIRS:%=%-nodepend)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterinstall_h check: $(HDRSUBDIRS:%=%-nodepend)
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater_msg: $(MSGSUBDIRS:%=%-nodepend) .WAIT _dc
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater_dc: $(DCSUBDIRS:%=%-nodepend)
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater#
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater# Library interdependencies are called out explicitly here
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater#
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterauditd_plugins: libbsm libnsl libsecdb
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updatergss_mechs/mech_krb5: libgss libnsl libsocket libresolv pkcs11
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibadt_jni: libbsm
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibc: libc_i18n
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibcmdutils: libavl
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibcontract: libnvpair
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibdevid: libdevinfo
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibdevinfo: libnvpair
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibdhcpagent: libdhcputil libnsl libsocket
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibdhcpsvc: libinetutil
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibdhcputil: libinetutil
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibdladm: libdlpi libdevinfo
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibdtrace: libproc libgen libctf
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibefi: libuuid
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibelfsign: libike libcryptoutil pkcs11
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibinetcfg: libnsl libsocket libdevinfo
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibnsl: libmd5 libscf
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updaterlibmacadm: libdevinfo
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibuuid: libsocket
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibinetutil: libsocket
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibsecdb: libcmd libnsl
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibrt: libaio libmd5
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibsasl: libgss libsocket pkcs11 libmd5
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsasl_plugins: pkcs11 libgss libsocket libsasl
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibsctp: libsocket
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibsocket: libnsl
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibldap5: libsasl libsocket libnsl libmd5
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibsldap: libldap5
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewslibpool: libnvpair libexacct
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibproject: libpool libproc libsecdb
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibwrap: libnsl libsocket
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibwanboot: libnvpair libresolv libnsl libsocket libdevinfo libinetutil \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein libdhcputil openssl
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlibwanbootutil: libnsl
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinpam_modules: libproject smartcard
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewslibscf: libuutil
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewslibinetsvc: libscf
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewslibrestart: libuutil libscf
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews../cmd/sgs/libdl: ../cmd/sgs/libconv
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews../cmd/sgs/libelf: ../cmd/sgs/libconv
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewspkcs11: libcryptoutil
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinprint: libldap5
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinudapl/udapl_tavor: udapl/libdat
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# The reason this rule checks for the existence of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Makefile is that some of the directories do not exist
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# in our exportable source builds.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(SUBDIRS) abi: FRC
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @if [ -f $@/Makefile ]; then \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cd $@; pwd; $(MAKE) $(TARGET); \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein else \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein true; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fi
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(SUBDIRS:%=%-nodepend) abi-nodepend:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @if [ -f $(@:%-nodepend=%)/Makefile ]; then \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cd $(@:%-nodepend=%); pwd; $(MAKE) $(TARGET); \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein else \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein true; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fi
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinFRC:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein