Makefile revision 11838:32bb5d254240
197049Speter# 2166124Srafan# CDDL HEADER START 397049Speter# 497049Speter# The contents of this file are subject to the terms of the 597049Speter# Common Development and Distribution License (the "License"). 697049Speter# You may not use this file except in compliance with the License. 797049Speter# 897049Speter# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 997049Speter# or http://www.opensolaris.org/os/licensing. 1097049Speter# See the License for the specific language governing permissions 1197049Speter# and limitations under the License. 1297049Speter# 1397049Speter# When distributing Covered Code, include this CDDL HEADER in each 1497049Speter# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1597049Speter# If applicable, add the following below this CDDL HEADER, with the 1697049Speter# fields enclosed by brackets "[]" replaced with your own identifying 1797049Speter# information: Portions Copyright [yyyy] [name of copyright owner] 1897049Speter# 1997049Speter# CDDL HEADER END 2097049Speter# 2197049Speter# 2297049Speter# Copyright 2010 Sun Microsystems, Inc. All rights reserved. 2397049Speter# Use is subject to license terms. 2497049Speter# 2597049Speter# Makefile for system source 2697049Speter# 2797049Speter# include global definitions 2897049Speterinclude Makefile.master 2997049Speter# 3097049Speter# the Targetdirs file is the AT&T target.dirs file in a makefile format. 3197049Speter# it defines TARGETDIRS and ROOTDIRS. 32166124Srafaninclude Targetdirs 3397049Speter 3497049SpeterCOMMON_SUBDIRS= uts lib cmd ucblib ucbcmd 3597049Speter 3697049Speter# 3797049Speter# sparc needs to build both stand and psm, in that order 3897049Speter# x86 needs to build psm and GRUB 3997049Speter# 4097049Spetersparc_SUBDIRS= stand psm 4197049Speteri386_SUBDIRS= psm grub 4297049Speter 4397049SpeterSUBDIRS= $(COMMON_SUBDIRS) $($(MACH)_SUBDIRS) 4497049Speter 4597049SpeterHDRSUBDIRS= uts head lib cmd 4697049Speter 4797049Speter# UCB headers are bug-for-bug compatible and not checkable against the header 4897049Speter# standards. 4997049Speter# 5097049SpeterCHKHDRSUBDIRS= head uts lib 5197049Speter 5297049Speter# 5397049Speter# Headers that can be built in parallel 5497049Speter# 5597049SpeterPARALLEL_HEADERS = sysheaders userheaders libheaders cmdheaders 5697049Speter 5797049Speter# 5897049Speter# Directories that can be built in parallel 5997049Speter# 6097049SpeterPARALLEL_DIRS = uts lib 6197049Speter 6297049Speter# The check target also causes smf(5) service manifests to be validated. 6397049SpeterCHKMFSTSUBDIRS= cmd 6497049Speter 6597049SpeterMSGSUBDIRS= cmd ucbcmd lib 6697049SpeterDOMAINS= \ 6797049Speter SUNW_OST_ADMIN \ 6897049Speter SUNW_OST_NETRPC \ 6997049Speter SUNW_OST_OSCMD \ 7097049Speter SUNW_OST_OSLIB \ 7197049Speter SUNW_OST_UCBCMD \ 7297049Speter SUNW_OST_ZONEINFO 7397049Speter 7497049SpeterMSGDDIRS= $(DOMAINS:%=$(MSGROOT)/%) 7597049SpeterMSGDIRS= $(MSGROOT) $(MSGDDIRS) $(MSGROOT)/LC_TIME 7697049Speter 7797049Speterall all_xmod := TARGET= all 7897049Speterinstall install_xmod := TARGET= install 7997049Speterinstall_h := TARGET= install_h 8097049Speterclean := TARGET= clean 8197049Speterclobber := TARGET= clobber 8297049Spetercheck := TARGET= check 8397049Speter_msg := TARGET= _msg 8497049Speter 8597049Speter 8697049Speter.KEEP_STATE: 8797049Speter 8897049Speter# 8997049Speter# Note: install only builds the all target for the pkg 9097049Speter# directory. We are not yet ready to have an install 9197049Speter# build create 'packages' also. To build packages 9297049Speter# cd pkg and do a 'make install' 9397049Speter# 9497049Speterall: mapfiles closedbins sgs .WAIT $(SUBDIRS) pkg_all 9597049Speterinstall: mapfiles closedbins sgs .WAIT $(SUBDIRS) pkg_all .WAIT _msg 9697049Speter @cd msg; pwd; $(MAKE) _msg 9797049Speter @rm -rf "$(ROOT)/catalog" 9897049Speter 9997049Spetermapfiles: bldtools 10097049Speter @cd common/mapfiles; pwd; $(MAKE) install 10197049Speter 10297049Speterclean clobber: $(SUBDIRS) head pkg 10397049Speter_msg: _msgdirs rootdirs $(MSGSUBDIRS) 10497049Speter 10597049Speter# for a complete build from scratch 10697049Spetercrankturn: sgs uts pkg_all 10797049Speter @cd lib; pwd; $(MAKE) install 10897049Speter @cd cmd; pwd; $(MAKE) all 10997049Speter @cd ucblib; pwd; $(MAKE) install 11097049Speter @cd ucbcmd; pwd; $(MAKE) all 11197049Speter 11297049Speterpkg_all: 11397049Speter @cd pkg; pwd; $(MAKE) all 11497049Speter 11597049Speter# 11697049Speter# target for building a proto area for reference via the ROOT macro 11797049Speter# 11897049Speterprotolibs: rootlibs ucblibs 11997049Speter 12097049Speter# build all ucb libraries 12197049Speter# 12297049Speterucblibs: 12397049Speter @cd ucblib; pwd; $(MAKE) install 12497049Speter 12597049Speter# Base subset of rootproto, excluding ucb libraries 12697049Speter# 12797049Speterrootlibs: sgs 12897049Speter @cd lib; pwd; $(MAKE) install 12997049Speter 13097049Speterclosedbins: FRC $(ROOTDIRS) 13197049Speter @CLOSED_ROOT="$$ON_CLOSED_BINS/root_$(MACH)$${RELEASE_BUILD+-nd}"; \ 13297049Speter if [ "$$CLOSED_IS_PRESENT" = no ]; then \ 13397049Speter if [ ! -d "$$CLOSED_ROOT" ]; then \ 13497049Speter $(ECHO) "Error: if closed sources are not present," \ 13597049Speter "ON_CLOSED_BINS must point to closed binaries."; \ 13697049Speter $(ECHO) "root_$(MACH)$${RELEASE_BUILD+-nd} is not" \ 13797049Speter "present in $$ON_CLOSED_BINS."; \ 13897049Speter exit 1; \ 13997049Speter fi; \ 14097049Speter $(ECHO) "Copying closed binaries from $$CLOSED_ROOT"; \ 14197049Speter (cd $$CLOSED_ROOT; tar cf - .) | \ 14297049Speter (cd $(ROOT); tar xBpf -); \ 14397049Speter fi 14497049Speter 14597049Speter# 14697049Speter# Declare what parts can be build in parallel 14797049Speter# DUMMY at the end is used in case macro expansion produces an empty string to 14897049Speter# prevent everything going in parallel 14997049Speter# 15097049Speter.PARALLEL: $(PARALLEL_HEADERS) DUMMY 15197049Speter.PARALLEL: $(PARALLEL_DIRS) DUMMY 15297049Speter 15397049Speter$(SUBDIRS) head pkg: FRC 15497049Speter @cd $@; pwd; $(MAKE) $(TARGET) 15597049Speter 15697049Speter# librpcsvc has a dependency on headers installed by 15797049Speter# userheaders, hence the .WAIT before libheaders. 15897049Spetersgs: rootdirs .WAIT sysheaders userheaders .WAIT \ 15997049Speter libheaders cmdheaders 16097049Speter 16197049Speter# 16297049Speter# Top-level setup target to setup the development environment that includes 16397049Speter# headers, tools and generated mapfiles. For open-only builds (i.e.: source 16497049Speter# trees w/o usr/closed), this also depends on the closedbins target (above) 16597049Speter# in order to properly seed the proto area. Note, although the tools are 16697049Speter# dependent on a number of constant mapfiles, the tools themselves are 16797049Speter# required to build the generated mapfiles. 16897049Speter# 16997049Spetersetup: bldtools mapfiles 17097049Speter 17197049Speterbldtools: closedbins sgs 17297049Speter @cd tools; pwd; $(MAKE) install 17397049Speter 17497049Speter# /var/mail/:saved is a special case because of the colon in the name. 17597049Speter# 17697049Speterrootdirs: $(ROOTDIRS) 17797049Speter $(INS) -d -m 775 $(ROOT)/var/mail/:saved 17897049Speter 17997049Speterlint: FRC 18097049Speter $(MAKE) -f Makefile.lint 18197049Speter 18297049Speter_msgdirs: $(MSGDIRS) 18397049Speter 18497049Speter$(ROOTDIRS) $(MSGDIRS): 18597049Speter $(INS.dir) 18697049Speter 18797049Speteruserheaders: FRC 18897049Speter @cd head; pwd; $(MAKE) install_h 18997049Speter 19097049Speterlibheaders: FRC 19197049Speter @cd lib; pwd; $(MAKE) install_h 19297049Speter 19397049Spetersysheaders: FRC 19497049Speter @cd uts; pwd; $(MAKE) install_h 19597049Speter 19697049Spetercmdheaders: FRC 19797049Speter @cd cmd/fm; pwd; $(MAKE) install_h 19897049Speter @cd cmd/mdb; pwd; $(MAKE) install_h 19997049Speter 20097049Speter# each xmod target depends on a corresponding MACH-specific pseudotarget 20197049Speter# before doing common xmod work 20297049Speter# 20397049Speterall_xmod install_xmod: $$@_$(MACH) 20497049Speter @cd uts/common/sys; pwd; $(MAKE) svvs_h 20597049Speter 20697049Speterall_xmod_sparc install_xmod_sparc: FRC 20797049Speter @cd uts/sparc; pwd; \ 20897049Speter $(MAKE) TARGET=$(TARGET) svvs pm wsdrv 20997049Speter 21097049Speterall_xmod_i386 install_xmod_i386: FRC 21197049Speter @cd uts/i86; pwd; $(MAKE) TARGET=$(TARGET) svvs 21297049Speter 21397049Spetercheck: $(CHKHDRSUBDIRS) $(CHKMFSTSUBDIRS) 21497049Speter 21597049Speter# 21697049Speter# Cross-reference customization: skip all of the subdirectories that 21797049Speter# don't contain actual source code. 21897049Speter# 21997049Speter$(CLOSED_BUILD)XRDIRS += ../closed 22097049SpeterXRPRUNE = pkg prototypes xmod 22197049SpeterXRINCDIRS = uts/common head ucbhead 22297049Speter$(CLOSED_BUILD)XRINCDIRS = uts/common ../closed/uts/common head ucbhead 22397049Speter 22497049Spetercscope.out tags: FRC 22597049Speter $(XREF) -f -x $@ 22697049Speter 22797049SpeterFRC: 22897049Speter 22997049Speter# EXPORT DELETE START 23097049Speter 23197049SpeterXMOD_DELETE_FILES:sh = cat xmod/xmod_files 23297049Speter 23397049SpeterEXPORT_SRC: 23497049Speter @cd $(CLOSED)/cmd/cmd-inet/usr.lib/in.iked; pwd; $(MAKE) EXPORT_SRC 23597049Speter @cd $(CLOSED)/cmd/cmd-inet/usr.lib/ike-certutils; pwd; \ 23697049Speter $(MAKE) EXPORT_SRC 23797049Speter @cd cmd/cmd-inet/usr.sbin; pwd; $(MAKE) EXPORT_SRC 23897049Speter @cd $(CLOSED)/cmd/cmd-crypto/etc; pwd; $(MAKE) EXPORT_SRC 23997049Speter @cd cmd/crypt; pwd; $(MAKE) EXPORT_SRC 24097049Speter @cd cmd/gss/gssd; pwd; $(MAKE) EXPORT_SRC 24197049Speter @cd cmd/krb5/kadmin; pwd; $(MAKE) EXPORT_SRC 24297049Speter @cd cmd/sendmail/src; pwd; $(MAKE) EXPORT_SRC 24397049Speter @cd common/crypto/aes; pwd; $(MAKE) EXPORT_SRC 24497049Speter @cd common/crypto/arcfour; pwd; $(MAKE) EXPORT_SRC 24597049Speter @cd common/crypto/blowfish; pwd; $(MAKE) EXPORT_SRC 24697049Speter @cd common/crypto/des; pwd; $(MAKE) EXPORT_SRC 24797049Speter @cd common/crypto/rsa; pwd; $(MAKE) EXPORT_SRC 24897049Speter @cd lib/crypt_modules/bsdbf; pwd ; $(MAKE) EXPORT_SRC 24997049Speter @cd lib/gss_mechs/mech_dummy; pwd; $(MAKE) EXPORT_SRC 25097049Speter @cd lib/gss_mechs/mech_dh/backend; pwd; $(MAKE) EXPORT_SRC 25197049Speter @cd lib/gss_mechs/mech_krb5; pwd; $(MAKE) EXPORT_SRC 25297049Speter @cd lib/gss_mechs/mech_spnego; pwd; $(MAKE) EXPORT_SRC 25397049Speter @cd lib/libcrypt; pwd; $(MAKE) EXPORT_SRC 25497049Speter @cd lib/libgss; pwd; $(MAKE) EXPORT_SRC 25597049Speter @cd $(CLOSED)/lib/libike; pwd; $(MAKE) EXPORT_SRC 25697049Speter @cd lib/libnsl; pwd; $(MAKE) EXPORT_SRC 25797049Speter @cd lib/pkcs11/pkcs11_softtoken/common; pwd; $(MAKE) EXPORT_SRC 25897049Speter @cd lib/libsldap; pwd; $(MAKE) EXPORT_SRC 25997049Speter @cd lib/libsasl; pwd; $(MAKE) EXPORT_SRC 26097049Speter @cd lib/sasl_plugins; pwd; $(MAKE) EXPORT_SRC 26197049Speter @cd lib/pam_modules/krb5; pwd; $(MAKE) EXPORT_SRC 26297049Speter @cd psm/stand/boot; pwd; $(MAKE) EXPORT_SRC 26397049Speter @cd uts/common/crypto/io; pwd; $(MAKE) EXPORT_SRC 26497049Speter @cd uts/common/des; pwd; $(MAKE) EXPORT_SRC 26597049Speter @cd uts/common/rpc; pwd; $(MAKE) EXPORT_SRC 26697049Speter @cd uts/common/sys; pwd; $(MAKE) EXPORT_SRC 26797049Speter @cd uts/common/gssapi/include; pwd; $(MAKE) EXPORT_SRC 26897049Speter @cd uts/common/gssapi; pwd; $(MAKE) EXPORT_SRC 26997049Speter @cd uts/common/gssapi/mechs/dummy; pwd; $(MAKE) EXPORT_SRC 27097049Speter @cd uts/common/gssapi/mechs/krb5; pwd; $(MAKE) EXPORT_SRC 27197049Speter @cd uts/common; pwd; $(MAKE) EXPORT_SRC 27297049Speter @cd uts/sparc; pwd; $(MAKE) EXPORT_SRC 27397049Speter @cd $(CLOSED)/uts/sun4u/forthdebug; pwd; $(MAKE) EXPORT_SRC 27497049Speter @cd $(CLOSED)/uts/sun4v/forthdebug; pwd; $(MAKE) EXPORT_SRC 27597049Speter @cd uts/intel; pwd; $(MAKE) EXPORT_SRC 27697049Speter @cd uts/sun4u; pwd; $(MAKE) EXPORT_SRC 27797049Speter @cd $(CLOSED)/uts/sun4v/io/ncp; pwd; $(MAKE) EXPORT_SRC 27897049Speter @cd $(CLOSED)/uts/sun4v/io/n2cp; pwd; $(MAKE) EXPORT_SRC 27997049Speter @cd pkg; pwd; $(MAKE) EXPORT_SRC 28097049Speter $(RM) -r $(XMOD_DELETE_FILES) 28197049Speter $(RM) Targetdirs+ 28297049Speter sed -e "/^# EXPORT DELETE START/,/^# EXPORT DELETE END/d" \ 28397049Speter < Targetdirs > Targetdirs+ 28497049Speter $(MV) Targetdirs+ Targetdirs 28597049Speter $(CHMOD) 444 Targetdirs 28697049Speter $(RM) Makefile+ 28797049Speter sed -e "/^# EXPORT DELETE START/,/^# EXPORT DELETE END/d" \ 28897049Speter < Makefile > Makefile+ 28997049Speter $(MV) Makefile+ Makefile 29097049Speter $(CHMOD) 444 Makefile 29197049Speter $(RM) Makefile.master+ 29297049Speter sed -e "/^# EXPORT DELETE START/,/^# EXPORT DELETE END/d" \ 29397049Speter < Makefile.master > Makefile.master+ 29497049Speter $(MV) Makefile.master+ Makefile.master 29597049Speter $(CHMOD) 444 Makefile.master 29697049Speter 29797049SpeterCRYPT_SRC: 29897049Speter @cd $(CLOSED)/cmd/cmd-crypto/etc; pwd; $(MAKE) CRYPT_SRC 29997049Speter @cd $(CLOSED)/cmd/cmd-inet/usr.lib/in.iked; pwd; $(MAKE) CRYPT_SRC 30097049Speter @cd $(CLOSED)/cmd/cmd-inet/usr.lib/ike-certutils; pwd; \ 30197049Speter $(MAKE) CRYPT_SRC 30297049Speter @cd lib/crypt_modules/bsdbf; pwd ; $(MAKE) CRYPT_SRC 30397049Speter @cd lib/gss_mechs/mech_dummy; pwd; $(MAKE) CRYPT_SRC 30497049Speter @cd lib/gss_mechs/mech_dh/backend; pwd; $(MAKE) CRYPT_SRC 30597049Speter @cd lib/gss_mechs/mech_krb5; pwd; $(MAKE) CRYPT_SRC 30697049Speter @cd lib/gss_mechs/mech_spnego; pwd; $(MAKE) CRYPT_SRC 30797049Speter @cd $(CLOSED)/lib/libike; pwd; $(MAKE) CRYPT_SRC 30897049Speter @cd lib/libnsl; pwd; $(MAKE) CRYPT_SRC 30997049Speter @cd lib/libsasl; pwd; $(MAKE) CRYPT_SRC 31097049Speter @cd lib/sasl_plugins; pwd; $(MAKE) CRYPT_SRC 31197049Speter @cd lib/pam_modules/krb5; pwd; $(MAKE) CRYPT_SRC 31297049Speter @cd uts/common/gssapi; pwd; $(MAKE) CRYPT_SRC 31397049Speter @cd uts/common/gssapi/include; pwd; $(MAKE) CRYPT_SRC 31497049Speter @cd uts/common/gssapi/mechs/dummy; pwd; $(MAKE) CRYPT_SRC 31597049Speter @cd uts/common/gssapi/mechs/krb5; pwd; $(MAKE) CRYPT_SRC 31697049Speter @cd pkg; pwd; $(MAKE) CRYPT_SRC 31797049Speter $(RM) Makefile+ 31897049Speter sed -e "/^# EXPORT DELETE START/,/^# EXPORT DELETE END/d" \ 31997049Speter < Makefile > Makefile+ 32097049Speter $(MV) Makefile+ Makefile 32197049Speter $(CHMOD) 444 Makefile 32297049Speter $(RM) Makefile.master+ 32397049Speter sed -e "/^# EXPORT DELETE START/,/^# EXPORT DELETE END/d" \ 32497049Speter < Makefile.master > Makefile.master+ 32597049Speter $(MV) Makefile.master+ Makefile.master 32697049Speter $(CHMOD) 444 Makefile.master 32797049Speter 32897049Speter# EXPORT DELETE END 32997049Speter 33097049SpeterONC_PLUS: 33197049Speter @cd cmd/login; pwd; $(MAKE) ONC_PLUS 33297049Speter @cd uts; pwd; $(MAKE) ONC_PLUS 33397049Speter 33497049Speter# 33597049Speter# Targets for reporting compiler versions; nightly uses these. 33697049Speter# 33797049Speter 33897049Spetercc-version: 33997049Speter @if $($(MACH)_CC) -_versions >/dev/null 2>/dev/null; then \ 34097049Speter $(ECHO) 32-bit compiler; \ 34197049Speter $(ECHO) $($(MACH)_CC); \ 34297049Speter $($(MACH)_CC) -_versions 2>&1 | \ 34397049Speter $(EGREP) '^(cw|cc|gcc|primary|shadow)'; \ 34497049Speter else \ 34597049Speter __COMPILER=`$($(MACH)_CC) -_compiler 2>/dev/null || $(TRUE)`;\ 34697049Speter if [ -z "$$__COMPILER" ]; then \ 34797049Speter $(ECHO) No 32-bit compiler found; \ 34897049Speter exit 1; \ 34997049Speter else \ 35097049Speter $(ECHO) 32-bit compiler; \ 35197049Speter $(ECHO) $($(MACH)_CC); \ 35297049Speter $(ECHO) $$__COMPILER; \ 35397049Speter $($(MACH)_CC) -V 2>&1 | head -1; \ 35497049Speter fi; \ 35597049Speter fi 35697049Speter 35797049Spetercc64-version: 35897049Speter @if $($(MACH64)_CC) -_versions >/dev/null 2>/dev/null; then \ 35997049Speter $(ECHO) 64-bit compiler; \ 36097049Speter $(ECHO) $($(MACH64)_CC); \ 36197049Speter $($(MACH64)_CC) -_versions 2>&1 | \ 36297049Speter $(EGREP) '^(cw|cc|gcc|primary|shadow)'; \ 36397049Speter else \ 36497049Speter __COMPILER=`$($(MACH64)_CC) -_compiler 2>/dev/null || $(TRUE)`;\ 36597049Speter if [ -z "$$__COMPILER" ]; then \ 36697049Speter $(ECHO) No 64-bit compiler found; \ 36797049Speter exit 1; \ 36897049Speter else \ 36997049Speter $(ECHO) 64-bit compiler; \ 37097049Speter $(ECHO) $($(MACH64)_CC); \ 37197049Speter $(ECHO) $$__COMPILER; \ 37297049Speter $($(MACH64)_CC) -V 2>&1 | head -1; \ 37397049Speter fi; \ 37497049Speter fi 37597049Speter 37697049Speterjava-version: 37797049Speter @if [ -x "$(JAVAC)" ]; then \ 37897049Speter $(ECHO) $(JAVAC); \ 37997049Speter $(JAVA_ROOT)/bin/java -fullversion 2>&1 | head -1; \ 38097049Speter else \ 38197049Speter $(ECHO) No Java compiler found; \ 38297049Speter exit 1; \ 38397049Speter fi 38497049Speter