1 0 stevel # 2 0 stevel # CDDL HEADER START 3 0 stevel # 4 0 stevel # The contents of this file are subject to the terms of the 5 2228 krishna # Common Development and Distribution License (the "License"). 6 2228 krishna # You may not use this file except in compliance with the License. 7 0 stevel # 8 0 stevel # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 0 stevel # or http://www.opensolaris.org/os/licensing. 10 0 stevel # See the License for the specific language governing permissions 11 0 stevel # and limitations under the License. 12 0 stevel # 13 0 stevel # When distributing Covered Code, include this CDDL HEADER in each 14 0 stevel # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 0 stevel # If applicable, add the following below this CDDL HEADER, with the 16 0 stevel # fields enclosed by brackets "[]" replaced with your own identifying 17 0 stevel # information: Portions Copyright [yyyy] [name of copyright owner] 18 0 stevel # 19 0 stevel # CDDL HEADER END 20 0 stevel # 21 0 stevel # 22 5855 ml29623 # Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23 0 stevel # Use is subject to license terms. 24 0 stevel # 25 0 stevel # This makefile drives the production of all implementation architecture 26 0 stevel # dependent modules for the i86pc architecture. 27 0 stevel # 28 0 stevel 29 0 stevel UTSBASE = .. 30 0 stevel 31 0 stevel include Makefile.i86pc 32 0 stevel 33 0 stevel # 34 0 stevel # The following are x86 specific (rather than i86pc) specific modules 35 0 stevel # which are required for the i86pc kernel to completely lint. They are 36 0 stevel # not involved in the build in any other way. In order to minimize 37 0 stevel # build time, it is assumed that they are up to date. 38 0 stevel # 39 0 stevel INTEL_LIB_DIR = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR) 40 0 stevel 41 0 stevel INTEL_LINTS = genunix 42 0 stevel 43 0 stevel LINT_LIBS = $(LINT_LIB) \ 44 3446 mrj $(GENUNIX_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \ 45 5855 ml29623 $(PARALLEL_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \ 46 1167 kupfer $(CLOSED_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \ 47 0 stevel $(INTEL_LINTS:%=$(INTEL_LIB_DIR)/llib-l%.ln) 48 0 stevel 49 0 stevel # 50 0 stevel # 51 0 stevel # 52 0 stevel def := TARGET= def 53 0 stevel all := TARGET= all 54 0 stevel install := TARGET= install 55 6456 edp install_h := TARGET= install_h 56 0 stevel clean := TARGET= clean 57 0 stevel clobber := TARGET= clobber 58 0 stevel lint := TARGET= lint 59 0 stevel lintlib := TARGET= lintlib 60 0 stevel machmodlintlib := TARGET= modlintlib 61 1167 kupfer modlist := TARGET= modlist 62 1167 kupfer modlist modlist.intel := NO_STATE= -K $$MODSTATE$$$$ 63 0 stevel clean.lint := TARGET= clean.lint 64 0 stevel check := TARGET= check 65 0 stevel 66 0 stevel .KEEP_STATE: 67 0 stevel 68 3446 mrj .PARALLEL: $(PARALLEL_KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) \ 69 1167 kupfer modlist modlist.intel 70 0 stevel 71 1414 cindi INITIAL_TARGETS = \ 72 1414 cindi genassym \ 73 1414 cindi unix \ 74 1414 cindi cpu/scripts 75 1414 cindi 76 1414 cindi def all clean clobber clean.lint: setup genassym unix .WAIT \ 77 6451 edp $(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) $(IMPLEMENTATIONS) 78 0 stevel 79 1414 cindi install: install_platforms setup genassym unix .WAIT \ 80 6451 edp $(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) $(IMPLEMENTATIONS) 81 1167 kupfer 82 1167 kupfer # list the modules under i86pc. 83 6451 edp modlist: unix $(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) \ 84 6451 edp $(IMPLEMENTATIONS) 85 1167 kupfer 86 1167 kupfer # list the modules for Install -k i86pc. 87 1167 kupfer modlist.karch: modlist modlist.intel 88 1167 kupfer 89 1167 kupfer modlist.intel: 90 1167 kupfer @cd $(SRC)/uts/intel; pwd; $(MAKE) $(NO_STATE) modlist 91 0 stevel 92 0 stevel lintlib: unix 93 0 stevel 94 1167 kupfer modlintlib: $(KMODS) $(CLOSED_KMODS) 95 0 stevel 96 0 stevel genassym unix $(KMODS): FRC 97 1167 kupfer @cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET) 98 1414 cindi 99 1414 cindi setup: FRC 100 3164 gavinm @cd cpu/scripts; pwd; $(MAKE) $(TARGET) 101 6451 edp 102 6451 edp $(IMPLEMENTATIONS): FRC 103 6451 edp @cd $@; pwd; THISIMPL=$@ $(MAKE) $(NO_STATE) $(TARGET) 104 0 stevel 105 0 stevel $(XMODS): FRC 106 0 stevel @if [ -f $@/Makefile ]; then \ 107 1167 kupfer cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET); \ 108 1167 kupfer else \ 109 1167 kupfer true; \ 110 1167 kupfer fi 111 1167 kupfer 112 1167 kupfer $(CLOSED_KMODS): FRC 113 1167 kupfer cd $(CLOSED)/uts/i86pc/$@; pwd; $(MAKE) $(NO_STATE) $(TARGET) 114 1167 kupfer 115 1167 kupfer $(CLOSED_XMODS): FRC 116 1167 kupfer @if [ -f $(CLOSED)/uts/i86pc/$@/Makefile ]; then \ 117 1167 kupfer cd $(CLOSED)/uts/i86pc/$@; pwd; \ 118 1167 kupfer $(MAKE) $(NO_STATE) $(TARGET); \ 119 0 stevel else \ 120 0 stevel true; \ 121 0 stevel fi 122 0 stevel 123 6451 edp install_h check: $(IMPLEMENTATIONS) FRC 124 0 stevel @cd sys; pwd; $(MAKE) $(TARGET) 125 0 stevel 126 0 stevel # 127 0 stevel # Definitions for the /platform directory aliases. 128 0 stevel # Currently none for i86pc. 129 0 stevel # 130 0 stevel PLAT_LINKS = 131 0 stevel 132 0 stevel # 133 0 stevel # Make the /platform directories. This is hardwired here because 134 0 stevel # the first stage of the project (KBI) only implements the userland 135 0 stevel # changes, but the only reasonable place to record the aliases is 136 0 stevel # here in kernel land. 137 0 stevel # 138 0 stevel install_platforms: $(ROOT_PSM_DIR) $(USR_PSM_DIR) \ 139 0 stevel $(ROOT_PLAT_LINKS) $(USR_PLAT_LINKS) \ 140 0 stevel $(OEM_USR_PLAT_LINKS) 141 0 stevel 142 0 stevel # 143 0 stevel # Full kernel lint target. 144 0 stevel # 145 0 stevel LINT_TARGET = globallint 146 0 stevel 147 0 stevel # workaround for multiply defined errors 148 0 stevel globallint := LINTFLAGS += -erroff=E_NAME_MULTIPLY_DEF2 149 0 stevel 150 0 stevel globallint: 151 0 stevel @-$(ECHO) "\nFULL KERNEL: global crosschecks:" 152 3446 mrj @-$(LINT) $(LINTFLAGS) $(LINT_LIBS) 2>&1 | $(LGREP.2) 153 0 stevel 154 6451 edp lint: lintlib .WAIT modlintlib .WAIT $(INTEL_LINTS) $(LINT_DEPS) \ 155 6451 edp $(IMPLEMENTATIONS) 156 0 stevel 157 0 stevel $(INTEL_LINTS): FRC 158 0 stevel @cd $(UTSBASE)/intel/$@; pwd; $(MAKE) modlintlib 159 0 stevel 160 0 stevel include ../Makefile.targ 161 0 stevel 162 0 stevel # 163 0 stevel # Cross-reference customization: build a cross-reference over all of the 164 0 stevel # i86pc-related directories. 165 0 stevel # 166 7612 Sean XRDIRS = ../i86pc ../intel ../common 167 7612 Sean $(CLOSED_BUILD)XRDIRS += ../../../closed/uts/intel ../../../closed/uts/common 168 7612 Sean 169 0 stevel XRPRUNE = sun4u sun4 170 0 stevel 171 0 stevel cscope.out tags: FRC 172 0 stevel $(XREF) -x $@ 173