[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/Makefile

Version: -  FREEBSD  -  FREEBSD8  -  FREEBSD7  -  FREEBSD72  -  FREEBSD71  -  FREEBSD70  -  FREEBSD6  -  FREEBSD64  -  FREEBSD63  -  FREEBSD62  -  FREEBSD61  -  FREEBSD60  -  FREEBSD5  -  FREEBSD55  -  FREEBSD54  -  FREEBSD53  -  FREEBSD52  -  FREEBSD51  -  FREEBSD50  -  FREEBSD4  -  FREEBSD3  -  FREEBSD22  -  linux-2.6  -  linux-2.4.22  -  MK83  -  MK84  -  PLAN9  -  DFBSD  -  NETBSD  -  NETBSD5  -  NETBSD4  -  NETBSD3  -  NETBSD20  -  OPENBSD  -  xnu-517  -  xnu-792  -  xnu-792.6.70  -  xnu-1228  -  xnu-1456.1.26  -  OPENSOLARIS  -  minix-3-1-1  -  FREEBSD-LIBC  -  FREEBSD7-LIBC  -  FREEBSD6-LIBC  -  GLIBC27 
SearchContext: -  none  -  excerpts  -  bigexcerpts 

    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 2009 Sun Microsystems, Inc.  All rights reserved.
   23 # Use is subject to license terms.
   24 #
   25 # include global definitions
   26 include ../Makefile.master
   27 
   28 #
   29 # List of architectures to build as part of the standard build.
   30 #
   31 # Some of these architectures are built in parallel (see i386_PARALLEL and
   32 # sparc_PARALLEL). This requires building some parts first before parallel build
   33 # can start. Platform make files know what should be built as a prerequisite for
   34 # the parallel build to work. The i386_PREREQ and sparc_PREREQ variables tell
   35 # which platform directory to enter to start making prerequisite dependencies.
   36 #
   37 sparc_ARCHITECTURES = sun4v sun4u sparc
   38 
   39 i386_ARCHITECTURES = i86pc i86xpv intel
   40 
   41 #
   42 # For i386 all architectures can be compiled in parallel.
   43 #
   44 # intel/Makefile knows how to build prerequisites needed for parallel build.
   45 #
   46 i386_PREREQ = intel
   47 i386_PARALLEL = $(i386_ARCHITECTURES)
   48 
   49 #
   50 # For sparc all architectures can be compiled in parallel.
   51 #
   52 # sun4/Makefile knows how to build prerequisites needed for parallel build.
   53 # can start.
   54 #
   55 sparc_PREREQ = sun4
   56 sparc_PARALLEL = $(sparc_ARCHITECTURES)
   57 
   58 #
   59 # Platforms defined in $(MACH)_PARALLEL are built in parallel. DUMMY is placed
   60 # at the end in case $(MACH)_PARALLEL is empty to prevent everything going in
   61 # parallel.
   62 #
   63 .PARALLEL: $($(MACH)_PARALLEL) DUMMY
   64 
   65 #
   66 # For build prerequisites we use a special target which is constructed by adding
   67 # '.prereq' suffix to the $(MACH)_PREREQ.
   68 #
   69 PREREQ_TARGET = $($(MACH)_PREREQ:%=%.prereq)
   70 
   71 
   72 def             :=      TARGET= def
   73 all             :=      TARGET= all
   74 install         :=      TARGET= install
   75 install_h       :=      TARGET= install_h
   76 clean           :=      TARGET= clean
   77 clobber         :=      TARGET= clobber
   78 lint            :=      TARGET= lint
   79 clean.lint      :=      TARGET= clean.lint
   80 check           :=      TARGET= check
   81 modlist         :=      TARGET= modlist
   82 modlist         :=      NO_STATE= -K $$MODSTATE$$$$
   83 
   84 .KEEP_STATE:
   85 
   86 def all lint: all_h $(PMTMO_FILE) $($(MACH)_ARCHITECTURES)
   87 
   88 install: all_h install_dirs $(PMTMO_FILE) $($(MACH)_ARCHITECTURES)
   89 
   90 install_dirs:
   91         @cd ..; pwd; $(MAKE) rootdirs
   92         @pwd
   93 
   94 #
   95 # Rule to build prerequisites. The left part of the pattern will match
   96 # PREREQ_TARGET.
   97 #
   98 # The location of the Makefile is determined by strippinng '.prereq' suffix from
   99 # the target name. We add '.prereq' suffix to the target passed to the child
  100 # Makefile so that it can distinguish prerequisite build from the regular one.
  101 #
  102 #
  103 %.prereq:
  104         @cd $(@:%.prereq=%); pwd; $(MAKE) $(NO_STATE) $(TARGET).prereq
  105 
  106 #
  107 # Rule to build architecture files. Build all required prerequisites and then
  108 # build the rest (potentially in parallel).
  109 #
  110 $($(MACH)_ARCHITECTURES): $(PREREQ_TARGET) FRC
  111         @cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
  112 
  113 $(PMTMO_FILE) pmtmo_file: $(PATCH_MAKEUP_TABLE)
  114         @if [ -z "$(PATCH_MAKEUP_TABLE)" ] ; then \
  115                 echo 'ERROR: $$(PATCH_MAKEUP_TABLE) not set' \
  116                     'in environment' >&2 ; \
  117                 exit 1 ; \
  118         fi
  119         RELEASE="$(RELEASE)" MACH="$(MACH)" \
  120             $(CTFCVTPTBL) -o $(PMTMO_FILE) $(PATCH_MAKEUP_TABLE)
  121 
  122 #
  123 # The following is the list of directories which contain Makefiles with
  124 # targets to install header file. The machine independent headers are
  125 # installed by invoking the Makefile in the directory containing the
  126 # header files. Machine and architecture dependent headers are installed
  127 # by invoking the main makefile for that architecture/machine which,
  128 # in turn, is responsible for invoking the Makefiles which install headers.
  129 # It is done this way so as not to assume that all of the header files in
  130 # the architecture/machine dependent subdirectories are in completely
  131 # isomorphic locations.
  132 #
  133 COMMON_HDRDIRS= common/avs \
  134                 common/c2 \
  135                 common/des \
  136                 common/fs \
  137                 common/gssapi \
  138                 common/idmap \
  139                 common/inet \
  140                 common/inet/ipf/netinet \
  141                 common/inet/kssl \
  142                 common/inet/nca \
  143                 common/inet/sockmods/netpacket \
  144                 common/io/bpf/net \
  145                 common/ipp \
  146                 common/net \
  147                 common/netinet \
  148                 common/nfs \
  149                 common/pcmcia/sys \
  150                 common/rpc \
  151                 common/rpcsvc \
  152                 common/sharefs \
  153                 common/smbsrv \
  154                 common/sys \
  155                 common/vm
  156 
  157 
  158 # These aren't the only headers in closed.  But the other directories
  159 # are simple enough that they can be driven from the src tree.
  160 $(CLOSED_BUILD)COMMON_HDRDIRS += $(CLOSED)/uts/common/sys
  161 
  162 #
  163 # Subset of COMMON_HDRDIRS in which at least one header is generated
  164 # at runtime (e.g., rpcgen).  (This is a partial list; there are
  165 # other directories that should be included and do not yet have the
  166 # necessary Makefile support.  See 6414855.)
  167 #
  168 DYNHDRDIRS = common/rpcsvc common/idmap common/sys
  169 
  170 sparc_HDRDIRS= sun/sys
  171 i386_HDRDIRS= i86pc/vm i86xpv/vm
  172 
  173 HDRDIRS= $(COMMON_HDRDIRS) $($(MACH)_HDRDIRS)
  174 install_h check: $(HDRDIRS) $($(MACH)_ARCHITECTURES)
  175 
  176 $(HDRDIRS): FRC
  177         @cd $@; pwd; $(MAKE) $(TARGET)
  178 
  179 # ensures that headers made by rpcgen and others are available in uts source
  180 # for kernel builds to reference without building install_h
  181 #
  182 all_h: FRC
  183         @cd common/sys; pwd; $(MAKE) $@
  184         @cd common/rpc; pwd; $(MAKE) $@
  185         @cd common/rpcsvc; pwd; $(MAKE) $@
  186         @cd common/gssapi; pwd; $(MAKE) $@
  187         @cd common/idmap; pwd; $(MAKE) $@
  188 
  189 clean clobber: $($(MACH)_ARCHITECTURES) $(DYNHDRDIRS)
  190         @if [ '$(PATCH_BUILD)' != '#' ] ; then \
  191                 echo $(RM) $(PMTMO_FILE) ; \
  192                 $(RM) $(PMTMO_FILE) ; \
  193         fi
  194 
  195 EXTRA_CLOBBER_TARGETS= common/avs/ns/rdc
  196 clobber: $(EXTRA_CLOBBER_TARGETS)
  197 
  198 
  199 clean.lint modlist: $($(MACH)_ARCHITECTURES)
  200 
  201 ONC_FILES=      common/io/timod.c \
  202                 common/os/sig.c \
  203                 common/os/flock.c \
  204                 common/os/sysent.c \
  205                 common/os/swapgeneric.c \
  206                 common/syscall/fcntl.c 
  207 
  208 # edit onc plus source files. 
  209 ONC_PLUS:       $(ONC_FILES:%=%_onc_plus) 
  210 
  211 #
  212 # Cross-reference customization: build a cross-reference over all of
  213 # the supported architectures.  Although there's no correct way to set
  214 # the include path (since we don't know what architecture is the one
  215 # the user will be interested in), it's historically been set to
  216 # mirror the $(XRDIRS) list, and that works kinda sorta okay.
  217 #
  218 # We need to manually prune usr/closed/uts/{i86xpv|sfmmu|i86pc} since
  219 # none of them exist.
  220 #
  221 SHARED_XRDIRS = $(sparc_ARCHITECTURES) $(i386_ARCHITECTURES) sun4 sfmmu \
  222         sun common
  223 CLOSED_XRDIRS = $(SHARED_XRDIRS:%=% ../../closed/uts/%)
  224 XRDIRS = $(SHARED_XRDIRS)
  225 CLOSED_XRDIRS_XEN = $(CLOSED_XRDIRS:../../closed/uts/i86xpv=)
  226 CLOSED_XRDIRS_1 = $(CLOSED_XRDIRS_XEN:../../closed/uts/i86pc=)
  227 $(CLOSED_BUILD)XRDIRS = $(CLOSED_XRDIRS_1:../../closed/uts/sfmmu=)
  228 
  229 XRINCDIRS = $(XRDIRS)
  230 
  231 cscope.out tags: FRC
  232         $(XREF) -x $@
  233 
  234 FRC:

Cache object: 4a51a7b40100fdcd4d7feba6ddb0e503


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.