Makefile revision f4b3ec61df05330d25f55a36b975b4d7519fdeb1
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
1fdd2470b625a58b57d0b155e6caf8c4fc0afe8aAutomatic Updater# CDDL HEADER START
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# The contents of this file are subject to the terms of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Common Development and Distribution License (the "License").
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You may not use this file except in compliance 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
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# fields enclosed by brackets "[]" replaced with your own identifying
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic Updater# information: Portions Copyright [yyyy] [name of copyright owner]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# CDDL HEADER END
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews# Copyright 2007 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 Austein# include global definitions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude ../Makefile.master
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# List of architectures to build as part of the standard build.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Note that sparc must trail the individual platforms so that sparc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# lint targets will have the unix lint libraries to compare against.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsparc_ARCHITECTURES = sun4v sun4u sparc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeini386_ARCHITECTURES = i86pc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeini386_ARCHITECTURES += intel
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindef := TARGET= def
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinall := TARGET= all
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall := TARGET= install
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrewsinstall_h := TARGET= install_h
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean := TARGET= clean
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclobber := TARGET= clobber
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlint := TARGET= lint
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean.lint := TARGET= clean.lint
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck := TARGET= check
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsis_check := TARGET= sis_check
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updatermodlist := TARGET= modlist
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmodlist := NO_STATE= -K $$MODSTATE$$$$
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein.KEEP_STATE:
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindef all lint: all_h $(PMTMO_FILE) $($(MACH)_ARCHITECTURES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updaterinstall: all_h install_dirs $(PMTMO_FILE) $($(MACH)_ARCHITECTURES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean clobber: $($(MACH)_ARCHITECTURES)
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater @if [ '$(PATCH_BUILD)' != '#' ] ; then \
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater echo $(RM) $(PMTMO_FILE) ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $(PMTMO_FILE) ; \
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater fi
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updaterclean.lint modlist: $($(MACH)_ARCHITECTURES)
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall_dirs:
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater @cd ..; pwd; $(MAKE) rootdirs
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater @pwd
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater$($(MACH)_ARCHITECTURES): FRC
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(PMTMO_FILE) pmtmo_file: $(PATCH_MAKEUP_TABLE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @if [ -z "$(PATCH_MAKEUP_TABLE)" ] ; then \
98b5a9d1099f72169c90de39712fc4f63e9d990eAutomatic Updater echo 'ERROR: $$(PATCH_MAKEUP_TABLE) not set' \
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic Updater 'in environment' >&2 ; \
c6d486af36165da7eb970354981d145249e342e4Mark Andrews exit 1 ; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fi
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein RELEASE="$(RELEASE)" MACH="$(MACH)" \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(CTFCVTPTBL) -o $(PMTMO_FILE) $(PATCH_MAKEUP_TABLE)
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic Updater
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic Updater#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# The following is the list of directories which contain Makefiles with
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# targets to install header file. The machine independent headers are
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic Updater# installed by invoking the Makefile in the directory containing the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# header files. Machine and architecture dependent headers are installed
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# by invoking the main makefile for that architecture/machine which,
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic Updater# in turn, is responsible for invoking the Makefiles which install headers.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# It is done this way so as not to assume that all of the header files in
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic Updater# the architecture/machine dependent subdirectories are in completely
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# isomorphic locations.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic UpdaterCOMMON_HDRDIRS= common/des common/fs common/gssapi common/inet common/net \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein common/netinet common/nfs common/rpc common/sys common/vm \
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic Updater common/c2 common/pcmcia/sys common/rpcsvc common/inet/kssl \
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic Updater common/inet/nca common/inet/ipf/netinet common/ipp
8ae3bbdd860f8abe3d47ec02d1f4d2008bf46f63Automatic Updater
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Kernel modules which support the sis_check target for symbol checking
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updater#
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updateri386_SIS_MODULES= intel/arp intel/hook intel/icmp intel/ip intel/ipf \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein intel/ipsecah intel/ipsecesp intel/keysock intel/neti \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein intel/rts intel/spdsock intel/tun
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsparc_SIS_MODULES= sparc/arp sparc/hook sparc/icmp sparc/ip sparc/ipf \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews sparc/ipsecah sparc/ipsecesp sparc/keysock sparc/neti \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews sparc/rts sparc/spdsock sparc/tun
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark AndrewsSIS_MODULES=$($(MACH)_SIS_MODULES)
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# These aren't the only headers in closed. But the other directories
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# are simple enough that they can be driven from the src tree.
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews$(CLOSED_BUILD)COMMON_HDRDIRS += $(CLOSED)/uts/common/sys
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsparc_HDRDIRS= sun/sys
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrewsi386_HDRDIRS= i86pc/vm
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinHDRDIRS= $(COMMON_HDRDIRS) $($(MACH)_HDRDIRS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall_h check: $(HDRDIRS) $($(MACH)_ARCHITECTURES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(HDRDIRS): FRC
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @cd $@; pwd; $(MAKE) $(TARGET)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# ensures that headers made by rpcgen and others are available in uts source
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# for kernel builds to reference without building install_h
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinall_h: FRC
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @cd common/sys; pwd; $(MAKE) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @cd common/rpc; pwd; $(MAKE) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @cd common/rpcsvc; pwd; $(MAKE) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @cd common/gssapi; pwd; $(MAKE) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# run stack instances global symbol checking to make sure
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# you do intend to add a global variable
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsis_check: $(SIS_MODULES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(SIS_MODULES): FRC
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cd $@; pwd; $(MAKE) $(TARGET)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinONC_FILES= common/io/timod.c \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein common/os/sig.c \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein common/os/flock.c \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein common/os/sysent.c \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein common/os/swapgeneric.c \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein common/syscall/fcntl.c
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# edit onc plus source files.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinONC_PLUS: $(ONC_FILES:%=%_onc_plus)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Cross-reference customization: build a cross-reference over all of
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the supported architectures. Although there's no correct way to set
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the include path (since we don't know what architecture is the one
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the user will be interested in), it's historically been set to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# mirror the $(XRDIRS) list, and that works kinda sorta okay.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSHARED_XRDIRS = $(sparc_ARCHITECTURES) $(i386_ARCHITECTURES) sun4 sfmmu \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein sun common
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLOSED_XRDIRS = $(SHARED_XRDIRS:%=% ../../closed/uts/%)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinXRDIRS = $(SHARED_XRDIRS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(CLOSED_BUILD)XRDIRS = $(CLOSED_XRDIRS:../../closed/uts/sfmmu=)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinXRINCDIRS = $(XRDIRS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewscscope.out tags: FRC
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(XREF) -x $@
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsFRC:
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews