Home | History | Annotate | Download | only in i86pc
      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 2008 Sun Microsystems, Inc.  All rights reserved.
     23 # Use is subject to license terms.
     24 #
     25 #	This makefile drives the production of all implementation architecture
     26 #	dependent modules for the i86pc architecture.
     27 #
     28 
     29 UTSBASE = ..
     30 
     31 include Makefile.i86pc
     32 
     33 #
     34 #	The following are x86 specific (rather than i86pc) specific modules
     35 #	which are required for the i86pc kernel to completely lint. They are
     36 #	not involved in the build in any other way. In order to minimize
     37 #	build time, it is assumed that they are up to date.
     38 #
     39 INTEL_LIB_DIR	 = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR)
     40 
     41 INTEL_LINTS	 = genunix
     42 
     43 LINT_LIBS	 = $(LINT_LIB) \
     44 		   $(GENUNIX_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
     45 		   $(PARALLEL_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
     46 		   $(CLOSED_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
     47 		   $(INTEL_LINTS:%=$(INTEL_LIB_DIR)/llib-l%.ln)
     48 
     49 #
     50 #
     51 #
     52 def		:=	TARGET= def
     53 all		:=	TARGET= all
     54 install		:=	TARGET= install
     55 install_h	:=	TARGET= install_h
     56 clean		:=	TARGET= clean
     57 clobber		:=	TARGET= clobber
     58 lint		:=	TARGET= lint
     59 lintlib		:=	TARGET= lintlib
     60 machmodlintlib	:=	TARGET= modlintlib
     61 modlist		:=	TARGET= modlist
     62 modlist	modlist.intel :=	NO_STATE= -K $$MODSTATE$$$$
     63 clean.lint	:=	TARGET= clean.lint
     64 check		:=	TARGET= check
     65 
     66 .KEEP_STATE:
     67 
     68 .PARALLEL:	$(PARALLEL_KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) \
     69 		modlist modlist.intel
     70 
     71 INITIAL_TARGETS = \
     72 	genassym \
     73 	unix \
     74 	cpu/scripts
     75 
     76 def all clean clobber clean.lint: setup genassym unix .WAIT \
     77 	$(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) $(IMPLEMENTATIONS)
     78 
     79 install: install_platforms setup genassym unix .WAIT \
     80 	$(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) $(IMPLEMENTATIONS)
     81 
     82 # list the modules under i86pc.
     83 modlist: unix $(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) \
     84 	$(IMPLEMENTATIONS)
     85 
     86 # list the modules for Install -k i86pc.
     87 modlist.karch: modlist modlist.intel
     88 
     89 modlist.intel:
     90 	@cd $(SRC)/uts/intel; pwd; $(MAKE) $(NO_STATE) modlist
     91 
     92 lintlib:	unix
     93 
     94 modlintlib:	$(KMODS) $(CLOSED_KMODS)
     95 
     96 genassym unix $(KMODS):	FRC
     97 	@cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
     98 
     99 setup: FRC
    100 	@cd cpu/scripts; pwd; $(MAKE) $(TARGET)
    101 
    102 $(IMPLEMENTATIONS):     FRC
    103 	@cd $@; pwd; THISIMPL=$@ $(MAKE) $(NO_STATE) $(TARGET)
    104 
    105 $(XMODS):	FRC
    106 	@if [ -f $@/Makefile  ]; then \
    107 		cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET); \
    108 	else \
    109 		true; \
    110 	fi
    111 
    112 $(CLOSED_KMODS):	FRC
    113 	cd $(CLOSED)/uts/i86pc/$@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
    114 
    115 $(CLOSED_XMODS):	FRC
    116 	@if [ -f $(CLOSED)/uts/i86pc/$@/Makefile  ]; then \
    117 		cd $(CLOSED)/uts/i86pc/$@; pwd; \
    118 		    $(MAKE) $(NO_STATE) $(TARGET); \
    119 	else \
    120 		true; \
    121 	fi
    122 
    123 install_h check:	$(IMPLEMENTATIONS) FRC
    124 	@cd sys; pwd; $(MAKE) $(TARGET)
    125 
    126 #
    127 # Definitions for the /platform directory aliases.
    128 # Currently none for i86pc.
    129 #
    130 PLAT_LINKS	=
    131 
    132 #
    133 # Make the /platform directories.  This is hardwired here because
    134 # the first stage of the project (KBI) only implements the userland
    135 # changes, but the only reasonable place to record the aliases is
    136 # here in kernel land.
    137 #
    138 install_platforms:	$(ROOT_PSM_DIR) $(USR_PSM_DIR) \
    139 			$(ROOT_PLAT_LINKS) $(USR_PLAT_LINKS) \
    140 			$(OEM_USR_PLAT_LINKS)
    141 
    142 #
    143 #	Full kernel lint target.
    144 #
    145 LINT_TARGET	= globallint
    146 
    147 # workaround for multiply defined errors
    148 globallint := LINTFLAGS += -erroff=E_NAME_MULTIPLY_DEF2
    149 
    150 globallint:
    151 	@-$(ECHO) "\nFULL KERNEL: global crosschecks:"
    152 	@-$(LINT) $(LINTFLAGS) $(LINT_LIBS) 2>&1 | $(LGREP.2)
    153 
    154 lint:	lintlib .WAIT modlintlib .WAIT $(INTEL_LINTS) $(LINT_DEPS) \
    155 	$(IMPLEMENTATIONS)
    156 
    157 $(INTEL_LINTS):	FRC
    158 	@cd $(UTSBASE)/intel/$@; pwd; $(MAKE) modlintlib
    159 
    160 include ../Makefile.targ
    161 
    162 #
    163 # Cross-reference customization: build a cross-reference over all of the
    164 # i86pc-related directories.
    165 #
    166 XRDIRS		= ../i86pc ../intel ../common
    167 $(CLOSED_BUILD)XRDIRS	+= ../../../closed/uts/intel ../../../closed/uts/common
    168 
    169 XRPRUNE	= sun4u sun4
    170 
    171 cscope.out tags: FRC
    172 	$(XREF) -x $@
    173