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