Home | History | Annotate | Download | only in uts
      1 #
      2 # CDDL HEADER START
      3 #
      4 # The contents of this file are subject to the terms of the
      5 # Common Development and Distribution License (the "License").
      6 # You may not use this file except in compliance with the License.
      7 #
      8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
      9 # or http://www.opensolaris.org/os/licensing.
     10 # See the License for the specific language governing permissions
     11 # and limitations under the License.
     12 #
     13 # When distributing Covered Code, include this CDDL HEADER in each
     14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     15 # If applicable, add the following below this CDDL HEADER, with the
     16 # fields enclosed by brackets "[]" replaced with your own identifying
     17 # information: Portions Copyright [yyyy] [name of copyright owner]
     18 #
     19 # CDDL HEADER END
     20 #
     21 #
     22 # Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
     23 # Use is subject to license terms.
     24 #
     25 # ident	"@(#)Makefile	1.113	07/10/25 SMI"
     26 #
     27 # include global definitions
     28 include ../Makefile.master
     29 
     30 #
     31 # List of architectures to build as part of the standard build.
     32 #
     33 # Note that sparc must trail the individual platforms so that sparc
     34 # lint targets will have the unix lint libraries to compare against.
     35 #
     36 sparc_ARCHITECTURES = sun4v sun4u sparc
     37 
     38 i386_ARCHITECTURES = i86pc
     39 i386_ARCHITECTURES += i86xpv
     40 i386_ARCHITECTURES += intel
     41 
     42 def		:=	TARGET= def
     43 all		:=	TARGET= all
     44 install		:=	TARGET= install
     45 install_h	:=	TARGET= install_h
     46 clean		:=	TARGET= clean
     47 clobber		:=	TARGET= clobber
     48 lint		:=	TARGET= lint
     49 clean.lint	:=	TARGET= clean.lint
     50 check		:=	TARGET= check
     51 modlist		:=	TARGET= modlist
     52 modlist		:=	NO_STATE= -K $$MODSTATE$$$$
     53 
     54 .KEEP_STATE:
     55 
     56 def all lint: all_h $(PMTMO_FILE) $($(MACH)_ARCHITECTURES)
     57 
     58 install: all_h install_dirs $(PMTMO_FILE) $($(MACH)_ARCHITECTURES)
     59 
     60 clean clobber: $($(MACH)_ARCHITECTURES)
     61 	@if [ '$(PATCH_BUILD)' != '#' ] ; then \
     62 		echo $(RM) $(PMTMO_FILE) ; \
     63 		$(RM) $(PMTMO_FILE) ; \
     64 	fi
     65 
     66 clean.lint modlist: $($(MACH)_ARCHITECTURES)
     67 
     68 install_dirs:
     69 	@cd ..; pwd; $(MAKE) rootdirs
     70 	@pwd
     71 
     72 $($(MACH)_ARCHITECTURES): FRC
     73 	@cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
     74 
     75 $(PMTMO_FILE) pmtmo_file: $(PATCH_MAKEUP_TABLE)
     76 	@if [ -z "$(PATCH_MAKEUP_TABLE)" ] ; then \
     77 		echo 'ERROR: $$(PATCH_MAKEUP_TABLE) not set' \
     78 		    'in environment' >&2 ; \
     79 		exit 1 ; \
     80 	fi
     81 	RELEASE="$(RELEASE)" MACH="$(MACH)" \
     82 	    $(CTFCVTPTBL) -o $(PMTMO_FILE) $(PATCH_MAKEUP_TABLE)
     83 
     84 #
     85 # The following is the list of directories which contain Makefiles with
     86 # targets to install header file. The machine independent headers are
     87 # installed by invoking the Makefile in the directory containing the
     88 # header files. Machine and architecture dependent headers are installed
     89 # by invoking the main makefile for that architecture/machine which,
     90 # in turn, is responsible for invoking the Makefiles which install headers.
     91 # It is done this way so as not to assume that all of the header files in
     92 # the architecture/machine dependent subdirectories are in completely
     93 # isomorphic locations.
     94 #
     95 COMMON_HDRDIRS= common/des common/fs common/gssapi common/inet common/net \
     96 	common/netinet common/nfs common/rpc common/sys common/vm \
     97 	common/c2 common/pcmcia/sys common/rpcsvc common/inet/kssl \
     98 	common/inet/nca common/inet/ipf/netinet common/ipp common/idmap \
     99 	common/sharefs common/smbsrv
    100 
    101 # These aren't the only headers in closed.  But the other directories
    102 # are simple enough that they can be driven from the src tree.
    103 $(CLOSED_BUILD)COMMON_HDRDIRS += $(CLOSED)/uts/common/sys
    104 
    105 sparc_HDRDIRS= sun/sys
    106 i386_HDRDIRS= i86pc/vm i86xpv/vm
    107 
    108 HDRDIRS= $(COMMON_HDRDIRS) $($(MACH)_HDRDIRS)
    109 install_h check: $(HDRDIRS) $($(MACH)_ARCHITECTURES)
    110 
    111 $(HDRDIRS): FRC
    112 	@cd $@; pwd; $(MAKE) $(TARGET)
    113 
    114 # ensures that headers made by rpcgen and others are available in uts source
    115 # for kernel builds to reference without building install_h
    116 #
    117 all_h: FRC
    118 	@cd common/sys; pwd; $(MAKE) $@
    119 	@cd common/rpc; pwd; $(MAKE) $@
    120 	@cd common/rpcsvc; pwd; $(MAKE) $@
    121 	@cd common/gssapi; pwd; $(MAKE) $@
    122 	@cd common/idmap; pwd; $(MAKE) $@
    123 
    124 ONC_FILES=	common/io/timod.c \
    125 		common/os/sig.c \
    126 		common/os/flock.c \
    127 		common/os/sysent.c \
    128 		common/os/swapgeneric.c \
    129 		common/syscall/fcntl.c 
    130 
    131 # edit onc plus source files. 
    132 ONC_PLUS:	$(ONC_FILES:%=%_onc_plus) 
    133 
    134 #
    135 # Cross-reference customization: build a cross-reference over all of
    136 # the supported architectures.  Although there's no correct way to set
    137 # the include path (since we don't know what architecture is the one
    138 # the user will be interested in), it's historically been set to
    139 # mirror the $(XRDIRS) list, and that works kinda sorta okay.
    140 #
    141 # We need to manually prune usr/closed/uts/{i86xpv|sfmmu} since neither
    142 # of them exist.
    143 #
    144 SHARED_XRDIRS = $(sparc_ARCHITECTURES) $(i386_ARCHITECTURES) sun4 sfmmu	\
    145 	sun common
    146 CLOSED_XRDIRS = $(SHARED_XRDIRS:%=% ../../closed/uts/%)
    147 XRDIRS = $(SHARED_XRDIRS)
    148 CLOSED_XRDIRS_XEN = $(CLOSED_XRDIRS:../../closed/uts/i86xpv=)
    149 $(CLOSED_BUILD)XRDIRS = $(CLOSED_XRDIRS_XEN:../../closed/uts/sfmmu=)
    150 
    151 XRINCDIRS = $(XRDIRS)
    152 
    153 cscope.out tags: FRC
    154 	$(XREF) -x $@
    155 
    156 FRC:
    157