Makefile revision c8343062f6e25afd9c2a31b65df357030e69fa55
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# CDDL HEADER START
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# The contents of this file are subject to the terms of the
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# Common Development and Distribution License, Version 1.0 only
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# (the "License"). You may not use this file except in compliance
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# with the License.
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# or http://www.opensolaris.org/os/licensing.
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# See the License for the specific language governing permissions
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# and limitations under the License.
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# When distributing Covered Code, include this CDDL HEADER in each
5886b388693aede815c0cf5262e123d4677cd72cGarrett D'Amore# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# If applicable, add the following below this CDDL HEADER, with the
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# fields enclosed by brackets "[]" replaced with your own identifying
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# information: Portions Copyright [yyyy] [name of copyright owner]
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# CDDL HEADER END
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Use is subject to license terms.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# ident "%Z%%M% %I% %E% SMI"
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# This makefile drives the production of all implementation architecture
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# dependent modules for the i86pc architecture.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovUTSBASE = ..
5886b388693aede815c0cf5262e123d4677cd72cGarrett D'Amore
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovinclude Makefile.i86pc
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# The following are x86 specific (rather than i86pc) specific modules
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# which are required for the i86pc kernel to completely lint. They are
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# not involved in the build in any other way. In order to minimize
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# build time, it is assumed that they are up to date.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovINTEL_LIB_DIR = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovINTEL_LINTS = genunix
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovLINT_LIBS = $(LINT_LIB) \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(INTEL_LINTS:%=$(INTEL_LIB_DIR)/llib-l%.ln)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovdef := TARGET= def
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovall := TARGET= all
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovinstall := TARGET= install
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovclean := TARGET= clean
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovclobber := TARGET= clobber
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovlint := TARGET= lint
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovlintlib := TARGET= lintlib
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovmachmodlintlib := TARGET= modlintlib
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovclean.lint := TARGET= clean.lint
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovcheck := TARGET= check
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov.KEEP_STATE:
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov.PARALLEL: $(KMODS) $(XMODS)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovdef all clean clobber clean.lint: genassym unix .WAIT $(KMODS) $(XMODS)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovinstall: install_platforms genassym unix .WAIT $(KMODS) $(XMODS)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovlintlib: unix
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovmodlintlib: $(KMODS)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovgenassym unix $(KMODS): FRC
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov @cd $@; pwd; $(MAKE) $(TARGET)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(XMODS): FRC
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov @if [ -f $@/Makefile ]; then \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov cd $@; pwd; $(MAKE) $(TARGET); \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov else \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov true; \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov fi
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovinstall_h check: FRC
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov @cd sys; pwd; $(MAKE) $(TARGET)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# For some x86 OEMs that deliver their own platform kernel modules but
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# will not deliver anything in usr/platform, they should add their platforms
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# here so a symlink will be created to the standard usr/platform/i86pc.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovOEM_LINKS = ncri86pc
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovOEM_USR_PLAT_LINKS = $(OEM_LINKS:%=$(USR_PLAT_DIR)/%)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(OEM_USR_PLAT_LINKS):
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(INS.slink1)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Definitions for the /platform directory aliases.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Currently none for i86pc.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovPLAT_LINKS =
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Make the /platform directories. This is hardwired here because
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# the first stage of the project (KBI) only implements the userland
86635a91ceb503bad0052c7a964ec3fd28d548dcGarrett D'Amore# changes, but the only reasonable place to record the aliases is
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# here in kernel land.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovinstall_platforms: $(ROOT_PSM_DIR) $(USR_PSM_DIR) \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(ROOT_PLAT_LINKS) $(USR_PLAT_LINKS) \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(OEM_USR_PLAT_LINKS)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Work-around to disable acpica global crosscheck lint warnings
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovLGREP.i86pc = grep -v 'i86pc/io/acpica'
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Full kernel lint target.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovLINT_TARGET = globallint
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# workaround for multiply defined errors
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovgloballint := LINTFLAGS += -erroff=E_NAME_MULTIPLY_DEF2
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovgloballint:
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov @-$(ECHO) "\nFULL KERNEL: global crosschecks:"
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov @-$(LINT) $(LINTFLAGS) $(LINT_LIBS) 2>&1 | $(LGREP.2) | $(LGREP.i86pc)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovlint: lintlib .WAIT modlintlib .WAIT $(INTEL_LINTS) $(LINT_DEPS)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(INTEL_LINTS): FRC
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov @cd $(UTSBASE)/intel/$@; pwd; $(MAKE) modlintlib
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovFRC:
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovinclude ../Makefile.targ
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Cross-reference customization: build a cross-reference over all of the
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# i86pc-related directories.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov#
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovXRDIRS = ../i86pc ../intel ../common
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovXRPRUNE = sun4u sun4
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankovcscope.out tags: FRC
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(XREF) -x $@
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov