Makefile revision 9acbbeaf2a1ffe5c14b244867d427714fab43c5c
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# CDDL HEADER START
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# The contents of this file are subject to the terms of the
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# Common Development and Distribution License (the "License").
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# You may not use this file except in compliance with the License.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# or http://www.opensolaris.org/os/licensing.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# See the License for the specific language governing permissions
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# and limitations under the License.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# When distributing Covered Code, include this CDDL HEADER in each
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# If applicable, add the following below this CDDL HEADER, with the
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# fields enclosed by brackets "[]" replaced with your own identifying
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# information: Portions Copyright [yyyy] [name of copyright owner]
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# CDDL HEADER END
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# Use is subject to license terms.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# ident "%Z%%M% %I% %E% SMI"
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pittinclude ../Makefile.master
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# Note that libcurses installs commands along with its library.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# This is a minor bug which probably should be fixed.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# Note also that a few extra libraries are kept in cmd source.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# Certain libraries are linked with, hence depend on, other libraries.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# Although we have historically used .WAIT to express dependencies, it
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# reduces the amount of parallelism and thus lengthens the time it
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# takes to build the libraries. Thus, we now require that any new
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# libraries explicitly call out their dependencies. Eventually, all
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# the library dependencies will be called out explicitly. See
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# "Library interdependencies" near the end of this file.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# Aside from explicit dependencies (and legacy .WAITs), all libraries
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# are built in parallel.
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt.PARALLEL:
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# The $(CLOSED_BUILD) additions to SUBDIRS & MSGSUBDIRS are unfortunate,
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# but required due to the "dependencies" of using .WAIT to barrier the
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# parallel dmake builds. once 4631488 has been fixed, they can be
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# consolidated into one $(CLOSED_BUILD)SUBDIRS += (all closed libs) as
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# shown in HDRSUBDIRS
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin PittSUBDIRS= \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt common .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt ../cmd/sgs/libconv \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt ../cmd/sgs/libdl .WAIT
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt$(CLOSED_BUILD)SUBDIRS += \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt $(CLOSED)/lib/libc_i18n
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin PittSUBDIRS += \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libc .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt ../cmd/sgs/libelf .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libmd \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libmd5 \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt librsm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libmp .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcmd \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libnsl \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsecdb .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt librpcsvc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsocket .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsctp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libresolv \
56401ac57a543395d06690768e63b92633ad15ddMartin Pitt libresolv2 .WAIT \
56401ac57a543395d06690768e63b92633ad15ddMartin Pitt libw .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libintl .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt ../cmd/sgs/librtld_db \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libaio \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt librt \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libadm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libctf \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdtrace \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdtrace_jni \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcurses \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libgen \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libgss \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libpam \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libuuid \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libthread \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libpthread .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libslp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libbsdmalloc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdoor \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdevinfo \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdladm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdlpi \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libeti \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcrypt \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libefi \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libfstyp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libwanboot \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libwanbootutil \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcryptoutil \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libinetcfg \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libinetutil \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libipmp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libkstat \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libkvm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt liblaadm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt liblm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libmacadm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libmalloc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libmapmalloc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libmtmalloc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libnls \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsmbios \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libtecla \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libumem \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libnvpair .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libexacct \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libplot \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libldap4 \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsasl \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libldap5 \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsldap .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libbsm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsys \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsysevent \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libnisdb \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libpool \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libproc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libproject \
eb89bc1d25086a1b4117683697f35c1398a98c02Martin Pitt libsendfile \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt nametoaddr \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt ncad_addr \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt gss_mechs/mech_krb5 .WAIT \
eb89bc1d25086a1b4117683697f35c1398a98c02Martin Pitt libkrb5 .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt krb5 .WAIT
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt$(CLOSED_BUILD)SUBDIRS += \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt $(CLOSED)/lib/smartcard
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin PittSUBDIRS += \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt passwdutil \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt pam_modules \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt crypt_modules \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libadt_jni \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt abi \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt auditd_plugins \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libvolmgt \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdevice \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdevid \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdhcpsvc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libc_db \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsec \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libtnfprobe \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libtnf \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libtnfctl \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdhcpagent \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdhcpdu \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdhcputil \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libipsecutil
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt$(CLOSED_BUILD)SUBDIRS += \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt $(CLOSED)/lib/libike
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin PittSUBDIRS += \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt nsswitch \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt print \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libuutil \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libscf \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libinetsvc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt librestart \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsched
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt$(CLOSED_BUILD)SUBDIRS += \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt $(CLOSED)/lib/libelfsign
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin PittSUBDIRS += \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt pkcs11 .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libpctx .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcpc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt watchmalloc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt extendedFILE \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt madv \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt mpss \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdisasm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libwrap \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libxcurses \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libxcurses2 \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libxnet \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libbrand .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libzonecfg \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libzoneinfo \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libtsnet \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libtsol \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt gss_mechs/mech_spnego \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt gss_mechs/mech_dummy \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt gss_mechs/mech_dh \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt rpcsec_gss \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt librcm .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcfgadm .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libpicl .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libpicltree .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt cfgadm_plugins \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libmail \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt lvm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsmedia \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libipp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt openssl \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdiskmgt \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt liblgrp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libfsmgt \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt fm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libavl \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcmdutils \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcontract \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt ../cmd/sendmail/libmilter \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt sasl_plugins \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt udapl \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libzpool \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libzfs \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libzfs_jni \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libmapid \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt brand \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt $($(MACH)_SUBDIRS)
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pittsparc_SUBDIRS= .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt efcode \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libc_psr .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdscp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libprtdiag .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libprtdiag_psr \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt librsc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libfruutils .WAIT \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libfru \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libwrsmconf \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt storage \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt wrsm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libpcp
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pittfm: libexacct
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# Create a special version of $(SUBDIRS) with no .WAIT's, for use with the
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt# clean and clobber targets (for more information, see those targets, below).
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt#
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin PittNOWAIT_SUBDIRS= $(SUBDIRS:.WAIT=)
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin PittDCSUBDIRS = \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt lvm
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin PittMSGSUBDIRS= \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt abi \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt auditd_plugins \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt brand \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt cfgadm_plugins \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt gss_mechs/mech_dh \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt gss_mechs/mech_krb5 \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt krb5 \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libbsm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcfgadm \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcontract \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libcurses \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdhcpsvc \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libdhcputil \
56401ac57a543395d06690768e63b92633ad15ddMartin Pitt libgss \
56401ac57a543395d06690768e63b92633ad15ddMartin Pitt libinetcfg \
56401ac57a543395d06690768e63b92633ad15ddMartin Pitt libipmp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libnsl \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libpam \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libpicl \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libpool \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libscf \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsasl \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libldap5 \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsecdb \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsldap \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libslp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libsmedia \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libtsol \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libuutil \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libwanboot \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libwanbootutil \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libzonecfg \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt lvm \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt madv \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt mpss \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt pam_modules \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt rpcsec_gss
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt$(CLOSED_BUILD)MSGSUBDIRS += \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt $(CLOSED)/lib/smartcard
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin PittMSGSUBDIRS += \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt $($(MACH)_MSGSUBDIRS)
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pittsparc_MSGSUBDIRS= \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libprtdiag \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libprtdiag_psr
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin PittHDRSUBDIRS= \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt auditd_plugins \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libbrand \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libbsm \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libc \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libcmdutils \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libcontract \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libcpc \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libctf \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libcurses \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libcryptoutil \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libdevice \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libdevid \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libdevinfo \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libdiskmgt \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libdladm \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libdlpi \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libdhcpagent \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libdhcpsvc \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libdhcputil \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libdisasm \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libdtrace \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libdtrace_jni \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libeti \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libfstyp \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libgen \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libwanboot \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libwanbootutil \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libipsecutil \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libinetcfg \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libinetsvc \
d816e2b7909e50ee887e1a0a825db760cf6fd3b0Martin Pitt libinetutil \
29e0e6d8c1f7f648b7c998880d034eaa3e58c53aMartin Pitt libipmp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libipp \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libkstat \
e28aa588f04ace17ca94e9e0667819bea265fbd9Martin Pitt libkvm \
liblaadm \
libmacadm \
libmail \
libmd \
libmtmalloc \
libnvpair \
libnsl \
libpam \
libpctx \
libpicl \
libpicltree \
libplot \
libpool \
libproc \
librcm \
libscf \
libsmbios \
librestart \
librpcsvc \
librsm \
libsasl \
libsec \
libslp \
libsmedia \
libsysevent \
libtecla \
libtnf \
libtnfctl \
libtnfprobe \
libtsnet \
libtsol \
libvolmgt \
libumem \
libuutil \
libwrap \
libxcurses2 \
libzfs \
libzfs_jni \
libzoneinfo \
lvm \
openssl \
pkcs11 \
passwdutil \
../cmd/sendmail/libmilter \
fm \
udapl \
libmapid \
libkrb5 \
$($(MACH)_HDRSUBDIRS)
$(CLOSED_BUILD)HDRSUBDIRS += \
$(CLOSED)/lib/libc_i18n \
$(CLOSED)/lib/libike \
$(CLOSED)/lib/smartcard
sparc_HDRSUBDIRS= \
libdscp \
libwrsmconf
all := TARGET= all
check := TARGET= check
clean := TARGET= clean
clobber := TARGET= clobber
install := TARGET= install
install_h := TARGET= install_h
lint := TARGET= lint
_dc := TARGET= _dc
_msg := TARGET= _msg
.KEEP_STATE:
#
# For the all and install targets, we clearly must respect library
# dependencies so that the libraries link correctly. However, for
# the remaining targets (check, clean, clobber, install_h, lint, _dc
# and _msg), libraries do not have any dependencies on one another
# and thus respecting dependencies just slows down the build.
# As such, for these rules, we use pattern replacement to explicitly
# avoid triggering the dependency information. Note that for clean,
# clobber and lint, we must use $(NOWAIT_SUBDIRS) rather than
# $(SUBDIRS), to prevent `.WAIT' from expanding to `.WAIT-nodepend'.
#
all: $(SUBDIRS)
install: $(SUBDIRS) .WAIT install_extra
# extra libraries kept in other source areas
install_extra:
@cd ../cmd/sgs; pwd; $(MAKE) install_lib
@pwd
clean clobber lint: $(NOWAIT_SUBDIRS:%=%-nodepend)
install_h check: $(HDRSUBDIRS:%=%-nodepend)
_msg: $(MSGSUBDIRS:%=%-nodepend) .WAIT _dc
_dc: $(DCSUBDIRS:%=%-nodepend)
# dependencies for pam_modules (see below)
$(CLOSED_BUILD)SMARTCARD= $(CLOSED)/lib/smartcard
#
# Library interdependencies are called out explicitly here
#
auditd_plugins: libbsm libnsl libsecdb
gss_mechs/mech_krb5: libgss libnsl libsocket libresolv pkcs11
libadt_jni: libbsm
$(CLOSED_BUILD)libc: $(CLOSED)/lib/libc_i18n
libbsm: libtsol
libcmdutils: libavl
libcontract: libnvpair
libdevid: libdevinfo
libdevinfo: libnvpair libsec
libdhcpagent: libdhcputil libnsl libsocket
libdhcpsvc: libinetutil
libdhcputil: libinetutil
libdladm: libdlpi libdevinfo
libdtrace: libproc libgen libctf
libdtrace_jni: libuutil libdtrace
libefi: libuuid
libfstyp: libnvpair
$(CLOSED_BUILD)$(CLOSED)/lib/libelfsign: \
$(CLOSED)/lib/libike libcryptoutil pkcs11
libinetcfg: libnsl libsocket libdevinfo
libnsl: libmd5 libscf
libmapid: libresolv libcmd
libmacadm: libdevinfo
libuuid: libsocket
libinetutil: libsocket
libsecdb: libcmd libnsl
libsasl: libgss libsocket pkcs11 libmd
sasl_plugins: pkcs11 libgss libsocket libsasl
libsctp: libsocket
libsocket: libnsl
libldap5: libsasl libsocket libnsl libmd
libsldap: libldap5 libtsol
libpool: libnvpair libexacct
libzonecfg: libc libsocket libnsl libuuid libnvpair libsysevent libsec \
libbrand
libproc: ../cmd/sgs/librtld_db libzonecfg ../cmd/sgs/libelf libctf \
libbrand
libproject: libpool libproc libsecdb
libtsnet: libnsl libtsol libsecdb
libwrap: libnsl libsocket
libwanboot: libnvpair libresolv libnsl libsocket libdevinfo libinetutil \
libdhcputil openssl
libwanbootutil: libnsl
pam_modules: libproject passwdutil $(SMARTCARD)
libscf: libuutil libmd
libinetsvc: libscf
librestart: libuutil libscf
../cmd/sgs/libdl: ../cmd/sgs/libconv
../cmd/sgs/libelf: ../cmd/sgs/libconv
pkcs11: libcryptoutil
print: libldap5
udapl/udapl_tavor: udapl/libdat
libzfs: libdevinfo libdevid libgen libnvpair libuutil
libzfs_jni: libdiskmgt libnvpair libzfs
libzpool: libavl libumem libnvpair
libsec: libavl
brand: libc libsocket
#
# The reason this rule checks for the existence of the
# Makefile is that some of the directories do not exist
# in certain situations (e.g., exportable source builds,
# OpenSolaris).
#
$(SUBDIRS): FRC
@if [ -f $@/Makefile ]; then \
cd $@; pwd; $(MAKE) $(TARGET); \
else \
true; \
fi
$(SUBDIRS:%=%-nodepend):
@if [ -f $(@:%-nodepend=%)/Makefile ]; then \
cd $(@:%-nodepend=%); pwd; $(MAKE) $(TARGET); \
else \
true; \
fi
FRC: