| # |
| # 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 |
| # or http://www.opensolaris.org/os/licensing. |
| # 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 |
| # |
| # |
| # Copyright 2007 Sun Microsystems, Inc. All rights reserved. |
| # Use is subject to license terms. |
| # |
| # ident "%Z%%M% %I% %E% SMI" |
| # |
| # include global definitions |
| include ../Makefile.master |
| |
| # |
| # List of architectures to build as part of the standard build. |
| # |
| # Note that sparc must trail the individual platforms so that sparc |
| # lint targets will have the unix lint libraries to compare against. |
| # |
| sparc_ARCHITECTURES = sun4v sun4u sparc |
| |
| i386_ARCHITECTURES = i86pc |
| i386_ARCHITECTURES += intel |
| |
| def := TARGET= def |
| all := TARGET= all |
| install := TARGET= install |
| install_h := TARGET= install_h |
| clean := TARGET= clean |
| clobber := TARGET= clobber |
| lint := TARGET= lint |
| clean.lint := TARGET= clean.lint |
| check := TARGET= check |
| sis_check := TARGET= sis_check |
| modlist := TARGET= modlist |
| modlist := NO_STATE= -K $$MODSTATE$$$$ |
| |
| .KEEP_STATE: |
| |
| def all lint: all_h $(PMTMO_FILE) $($(MACH)_ARCHITECTURES) |
| |
| install: all_h install_dirs $(PMTMO_FILE) $($(MACH)_ARCHITECTURES) |
| |
| clean clobber: $($(MACH)_ARCHITECTURES) |
| @if [ '$(PATCH_BUILD)' != '#' ] ; then \ |
| echo $(RM) $(PMTMO_FILE) ; \ |
| $(RM) $(PMTMO_FILE) ; \ |
| fi |
| |
| clean.lint modlist: $($(MACH)_ARCHITECTURES) |
| |
| install_dirs: |
| @cd ..; pwd; $(MAKE) rootdirs |
| @pwd |
| |
| $($(MACH)_ARCHITECTURES): FRC |
| @cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET) |
| |
| $(PMTMO_FILE) pmtmo_file: $(PATCH_MAKEUP_TABLE) |
| @if [ -z "$(PATCH_MAKEUP_TABLE)" ] ; then \ |
| echo 'ERROR: $$(PATCH_MAKEUP_TABLE) not set' \ |
| 'in environment' >&2 ; \ |
| exit 1 ; \ |
| fi |
| RELEASE="$(RELEASE)" MACH="$(MACH)" \ |
| $(CTFCVTPTBL) -o $(PMTMO_FILE) $(PATCH_MAKEUP_TABLE) |
| |
| # |
| # The following is the list of directories which contain Makefiles with |
| # targets to install header file. The machine independent headers are |
| # installed by invoking the Makefile in the directory containing the |
| # header files. Machine and architecture dependent headers are installed |
| # by invoking the main makefile for that architecture/machine which, |
| # in turn, is responsible for invoking the Makefiles which install headers. |
| # It is done this way so as not to assume that all of the header files in |
| # the architecture/machine dependent subdirectories are in completely |
| # isomorphic locations. |
| # |
| COMMON_HDRDIRS= common/des common/fs common/gssapi common/inet common/net \ |
| common/netinet common/nfs common/rpc common/sys common/vm \ |
| common/c2 common/pcmcia/sys common/rpcsvc common/inet/kssl \ |
| common/inet/nca common/inet/ipf/netinet common/ipp |
| |
| # |
| # Kernel modules which support the sis_check target for symbol checking |
| # |
| i386_SIS_MODULES= intel/arp intel/hook intel/icmp intel/ip intel/ipf \ |
| intel/ipsecah intel/ipsecesp intel/keysock intel/neti \ |
| intel/rts intel/spdsock intel/tun |
| sparc_SIS_MODULES= sparc/arp sparc/hook sparc/icmp sparc/ip sparc/ipf \ |
| sparc/ipsecah sparc/ipsecesp sparc/keysock sparc/neti \ |
| sparc/rts sparc/spdsock sparc/tun |
| |
| SIS_MODULES=$($(MACH)_SIS_MODULES) |
| |
| # These aren't the only headers in closed. But the other directories |
| # are simple enough that they can be driven from the src tree. |
| $(CLOSED_BUILD)COMMON_HDRDIRS += $(CLOSED)/uts/common/sys |
| |
| sparc_HDRDIRS= sun/sys |
| i386_HDRDIRS= i86pc/vm |
| |
| HDRDIRS= $(COMMON_HDRDIRS) $($(MACH)_HDRDIRS) |
| install_h check: $(HDRDIRS) $($(MACH)_ARCHITECTURES) |
| |
| $(HDRDIRS): FRC |
| @cd $@; pwd; $(MAKE) $(TARGET) |
| |
| # ensures that headers made by rpcgen and others are available in uts source |
| # for kernel builds to reference without building install_h |
| # |
| all_h: FRC |
| @cd common/sys; pwd; $(MAKE) $@ |
| @cd common/rpc; pwd; $(MAKE) $@ |
| @cd common/rpcsvc; pwd; $(MAKE) $@ |
| @cd common/gssapi; pwd; $(MAKE) $@ |
| |
| # run stack instances global symbol checking to make sure |
| # you do intend to add a global variable |
| sis_check: $(SIS_MODULES) |
| $(SIS_MODULES): FRC |
| cd $@; pwd; $(MAKE) $(TARGET) |
| |
| ONC_FILES= common/io/timod.c \ |
| common/os/sig.c \ |
| common/os/flock.c \ |
| common/os/sysent.c \ |
| common/os/swapgeneric.c \ |
| common/syscall/fcntl.c |
| |
| # edit onc plus source files. |
| ONC_PLUS: $(ONC_FILES:%=%_onc_plus) |
| |
| # |
| # Cross-reference customization: build a cross-reference over all of |
| # the supported architectures. Although there's no correct way to set |
| # the include path (since we don't know what architecture is the one |
| # the user will be interested in), it's historically been set to |
| # mirror the $(XRDIRS) list, and that works kinda sorta okay. |
| # |
| SHARED_XRDIRS = $(sparc_ARCHITECTURES) $(i386_ARCHITECTURES) sun4 sfmmu \ |
| sun common |
| CLOSED_XRDIRS = $(SHARED_XRDIRS:%=% ../../closed/uts/%) |
| XRDIRS = $(SHARED_XRDIRS) |
| $(CLOSED_BUILD)XRDIRS = $(CLOSED_XRDIRS:../../closed/uts/sfmmu=) |
| |
| XRINCDIRS = $(XRDIRS) |
| |
| cscope.out tags: FRC |
| $(XREF) -x $@ |
| |
| FRC: |