Makefile revision 6e91bba0d6c6bdabbba62cefae583715a4a58e2a
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# CDDL HEADER START
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# The contents of this file are subject to the terms of the
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Common Development and Distribution License (the "License").
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# You may not use this file except in compliance with the License.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# or http://www.opensolaris.org/os/licensing.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# See the License for the specific language governing permissions
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# and limitations under the License.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# When distributing Covered Code, include this CDDL HEADER in each
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# If applicable, add the following below this CDDL HEADER, with the
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# fields enclosed by brackets "[]" replaced with your own identifying
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# information: Portions Copyright [yyyy] [name of copyright owner]
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# CDDL HEADER END
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# uts/intel/Makefile
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Use is subject to license terms.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# This makefile drives the production of all implementation architecture
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# independent modules for Intel processors.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserUTSBASE = ..
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userinclude Makefile.intel
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserLINT_KMODS_X1 = $(LINT_KMODS:nsmb=)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserLINT_KMODS_X2 = $(LINT_KMODS_X1:smbfs=)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserLINT_KMODLIBS = $(LINT_KMODS_X2:e1000g=)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserLINT_LIBS = $(LINT_LIB) $(GEN_LINT_LIB) \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(LINT_KMODLIBS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(CLOSED_LINT_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# EXPORT DELETE START
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User$(CLOSED_BUILD)LINT_LIBS += $(SVVS_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User$(CLOSED_BUILD)LINT_CLOSED_XMOD5 = $(CLOSED_XMODS:bnx=)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User$(CLOSED_BUILD)LINT_CLOSED_XMOD4 = $(LINT_CLOSED_XMOD5:bnxe=)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User$(CLOSED_BUILD)LINT_CLOSED_XMOD3 = $(LINT_CLOSED_XMOD4:lsimega=)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User$(CLOSED_BUILD)LINT_CLOSED_XMOD2 = $(LINT_CLOSED_XMOD3:spwr=)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User$(CLOSED_BUILD)LINT_CLOSED_XMOD1 = $(LINT_CLOSED_XMOD2:adpu320=)
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt$(CLOSED_BUILD)LINT_LIBS += $(LINT_XMODLIBS:%=$(LINT_LIB_DIR)/llib-l%.ln)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# dprov is delivered in the SUNWcryptoint package.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserDRV_KMODS += dprov
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# EXPORT DELETE END
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userdef := TARGET= def
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userdef.prereq := TARGET= def
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userall := TARGET= all
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userall.prereq := TARGET= all
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userinstall := TARGET= install
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userinstall.prereq := TARGET= all
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userclean := TARGET= clean
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userclobber := TARGET= clobber
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userlint := TARGET= lint
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userlint.prereq := TARGET= lint
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usermodlintlib := TARGET= modlintlib
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Usermodlist := TARGET= modlist
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Usermodlist := NO_STATE= -K $$MODSTATE$$$$
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userclean.lint := TARGET= clean.lint
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Usercheck := TARGET= check
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userinstall_h := TARGET= install_h
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userinstall_h.prereq := TARGET= install_h
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User.KEEP_STATE:
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User.PARALLEL: $(PARALLEL_KMODS) $(CLOSED_KMODS) $(SVVS) $(XMODS) \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $(CLOSED_XMODS) config $(LINT_DEPS)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userdef all install clean clobber modlist: genassym $(KMODS) $(CLOSED_KMODS) \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(SVVS) $(XMODS) $(CLOSED_XMODS) config
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Privilege constants
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# NOTE: The rules for generating priv_const.c file are shared between all
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# processor architectures and and should be kept in sync. If they are changed in
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# this file make sure that sparc rules are updated as well.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserPRIVS_C = $(SRC)/uts/common/os/priv_const.c
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User$(PRIVS_C): $(PRIVS_AWK) $(PRIVS_DEF)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(NAWK) -f $(PRIVS_AWK) < $(PRIVS_DEF) cfile=$@
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Prerequisites
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# The uts/Makefile defines build parallelism for x86 platforms such that i86pc,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# i86xpv and intel are all built in parallel. This requires building certain
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# parts before the parallel build can start. The uts/Makefile appends the
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# '.prereq' string to the original target and executes this Makefile to build
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# any prerequisites needed before the full parallel build can start. After that
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# make continues with normal targets.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Any build prerequisites for x86 builds should be described here.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# genassym is used to build intel/dtrace and genunix, so it should be built
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# first.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# priv_const.c is required to build genunix.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# genunix is used by everyone to ctf-merge with. Genunix is CTF-merged with
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# intel/ip so as a side effect this dependency builds intel/ip as part of the
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# prerequisites.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# intel/dtrace depends on i86pc/genassym, so we need to build both
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# i86pc/genassym and intel/genassym.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userall.prereq install.prereq def.prereq: genassym genunix FRC
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User @cd ../i86pc/genassym; pwd; $(MAKE) $(@:%.prereq=%)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# i86pc lint libraries should be built first
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntlint.prereq: FRC
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User @cd ../i86pc; pwd; $(MAKE) $(NO_STATE) lint
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Nothing to do for any other prerequisite targets.
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User%.prereq:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usergenunix: $(PRIVS_C)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usermodlintlib clean.lint: $(LINT_KMODS) $(CLOSED_LINT_KMODS) $(SVVS) \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $(XMODS) $(CLOSED_XMODS)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Usergenassym $(KMODS) $(SUBDIRS) config: FRC
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User @cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User$(CLOSED_KMODS): FRC
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User cd $(CLOSED)/uts/intel/$@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User$(XMODS): FRC
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User @if [ -f $@/Makefile ]; then \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET); \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User else \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User true; \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User fi
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User$(SVVS) $(CLOSED_XMODS): FRC
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User @if [ -f $(CLOSED)/uts/intel/$@/Makefile ]; then \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User cd $(CLOSED)/uts/intel/$@; pwd; \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(MAKE) $(NO_STATE) $(TARGET); \
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User else \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User true; \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User fi
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userinstall_h check: FRC
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User @cd sys; pwd; $(MAKE) $(TARGET)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User @cd asm; pwd; $(MAKE) $(TARGET)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User @cd ia32/sys; pwd; $(MAKE) $(TARGET)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User @cd amd64/sys; pwd; $(MAKE) $(TARGET)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Work-around to disable acpica global crosscheck lint warnings
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserLGREP.intel = grep -v 'intel/io/acpica'
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# Full kernel lint target.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserLINT_TARGET = globallint
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# workaround for multiply defined errors
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usergloballint := LINTFLAGS += -erroff=E_NAME_MULTIPLY_DEF2
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Usergloballint:
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User @pwd
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User @-$(ECHO) "\nFULL KERNEL: global crosschecks:"
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User @-$(LINT) $(LINTFLAGS) $(LINT_LIBS) 2>&1 | $(LGREP.intel) | $(LGREP.2)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userlint: modlintlib .WAIT $(LINT_DEPS)
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User# EXPORT DELETE START
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox UserEXPORT_SRC:
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(RM) Makefile+
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt sed -e "/^# EXPORT DELETE START/,/^# EXPORT DELETE END/d" \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User < Makefile > Makefile+
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $(MV) Makefile+ Makefile
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User $(CHMOD) 444 Makefile
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# EXPORT DELETE END
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox Userinclude ../Makefile.targ
fae13836a33b474a6aa2c147df8334f5b1ffae45Tinderbox User