#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
# Note that libcurses installs commands along with its library.
# This is a minor bug which probably should be fixed.
# Note also that a few extra libraries are kept in cmd source.
#
# Certain libraries are linked with, hence depend on, other libraries.
#
# We have historically used .WAIT to express dependencies, with the
# undesirable effect of reducing the amount of parallelism achieved,
# and lengthening the time it takes to build the libraries. To minimize
# this, we would also express makefile dependencies between the objects
# that would otherwise have had .WAIT barriers between them. This approach
# was limiting:
#
# - The make rules are complex, change over time, and errors are not
# automatically detectable. As such, the rules at any given time are
# likely to be at best a close approximation to the real situation.
#
# - Requiring a build order means that objects cannot have a mutual
# dependency on each other, even in cases where the runtime linker
# would have no issue with them.
#
# - There is still serialization in the builds, though less than there
# would be otherwise.
#
# We therefore now use stub shared objects, which can be built very quickly,
# and which eliminate the need for ordering. Before starting to build the
# real objects, we create an alternative proto root containing stub versions
# of the shared objects built by this consolidation. Then, we proceed to build
# most of the real objects in the workspace in parallel, using the stub
# objects at link-time.
#
.PARALLEL:
#
# The $(CLOSED_BUILD) additions to SUBDIRS & MSGSUBDIRS are unfortunate,
# but required due to the "dependencies" of using .WAIT to barrier the
# parallel dmake builds. once 4631488 has been fixed, they can be
# consolidated into one $(CLOSED_BUILD)SUBDIRS += (all closed libs) as
# shown in HDRSUBDIRS
#
SUBDIRS= \
common \
$(CLOSED_BUILD)SUBDIRS += \
SUBDIRS += \
libc \
libmd \
libmd5 \
libmp \
libnsl \
libsecdb \
libsctp \
libsip \
libw \
libintl \
libaio \
libcmd \
librt \
libadm \
libctf \
libfuse \
libgen \
libgss \
libpam \
libuuid \
libslp \
libdoor \
libdladm \
libdlpi \
libeti \
libcrypt \
libefi \
libfstyp \
libipadm \
libipmp \
libkmf \
$(CLOSED_BUILD)SUBDIRS += \
SUBDIRS += \
libkstat \
libkvm \
liblm \
libnls \
libnwam \
libumem \
libplot \
libldap4 \
libsasl \
libldap5 \
libsldap \
libbsm \
libsys \
libnisdb \
libpool \
libproc \
hbaapi \
smhba \
sun_fc \
sun_sas \
libkrb5 \
krb5 \
libndr \
libsmb \
libsmbfs \
libsmbns \
libsmbrp \
libfcoe \
libsrpt \
libstmf \
libnsctl \
libdscfg \
librdc \
libpkg \
libiov \
SUBDIRS += \
abi \
libdevid \
libc_db \
libndmp \
libsec \
libxnet \
$(CLOSED_BUILD)SUBDIRS += \
SUBDIRS += \
nsswitch \
print \
libuutil \
libscf \
libsched \
pkcs11 \
libpctx \
libcpc \
madv \
mpss \
libwrap \
libbrand \
libadr \
rad \
libtsnet \
libtsol \
librcm \
libpicl \
libmail \
lvm \
libipp \
liblgrp \
liblldp \
libecp \
libvdp \
libfsmgt \
fm \
libavl \
udapl \
libzpool \
libzfs \
libbe \
pylibbe \
pyzfs \
libmapid \
brand \
hal \
libshare \
libidmap \
libipmi \
libvscan \
libilb \
scsi \
libima \
mpapi \
librstp \
libfru \
libsuri \
libfedfs \
libpower \
libxprop \
i386_SUBDIRS= \
libntfs \
libfdisk \
efcode \
libds \
libdscp \
libpri \
storage \
libpcp \
fm: \
libipmi \
libzfs \
scsi \
DCSUBDIRS = \
MSGSUBDIRS= \
abi \
brand \
krb5 \
libbsm \
libc \
libfuse \
libdladm \
libgss \
libidmap \
libipmp \
libilb \
libipadm \
libnsl \
libnwam \
libpam \
libpicl \
libpool \
libpkg \
libscf \
libsasl \
libldap5 \
libsecdb \
libshare \
libsldap \
libslp \
libsmbfs \
libtsol \
libuutil \
libvscan \
libzfs \
libadr \
rad \
lvm \
madv \
mpss \
pyzfs \
MSGSUBDIRS += \
HDRSUBDIRS= \
libbe \
libbrand \
libbsm \
libc \
libcpc \
libctf \
libdevid \
libdladm \
libdlpi \
libdscfg \
libeti \
libfru \
libfuse \
libfstyp \
libgen \
libipadm \
libipmi \
libipmp \
libipp \
libkmf \
libkstat \
libkvm \
liblldp \
libecp \
libvdp \
libmail \
libmd \
libndmp \
libnsctl \
libnsl \
libnwam \
libpam \
libpctx \
libpicl \
libplot \
libpool \
libpower \
libproc \
librcm \
librdc \
libscf \
libsip \
librstp \
libsasl \
libsec \
libslp \
libfcoe \
libsrpt \
libstmf \
libtsnet \
libtsol \
libumem \
libuutil \
libuvfs \
libwrap \
libxprop \
libzfs \
libadr \
rad \
hal \
pkcs11 \
fm \
udapl \
libmapid \
libkrb5 \
libndr \
libsmb \
libsmbfs \
libsmbns \
libsmbrp \
libshare \
libidmap \
libvscan \
libilb \
scsi \
hbaapi \
smhba \
libima \
libsuri \
mpapi \
libiov \
$(CLOSED_BUILD)HDRSUBDIRS += \
libfdisk \
libds \
libdscp \
libpri \
libv12n \
#
# Library interdependencies are called out explicitly here. Due to the
# use of stub objects, this should only be necessary when an object
# depends on something other than a shared object, such as compiled
#
#
# libc and libike depend on closed bits
#
#
# a few utility functions from libc_pic.a.
#
#
#
#
# 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).
#
@if [ -f $@/Makefile ]; then \
else \
true; \
fi
FRC: