Makefile revision 02e56f3f1bfc8d9977bafb8cb5202f576dcded27
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore# CDDL HEADER START
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# The contents of this file are subject to the terms of the
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# Common Development and Distribution License (the "License").
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# You may not use this file except in compliance with the License.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# or http://www.opensolaris.org/os/licensing.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# See the License for the specific language governing permissions
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# and limitations under the License.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# When distributing Covered Code, include this CDDL HEADER in each
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# If applicable, add the following below this CDDL HEADER, with the
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# fields enclosed by brackets "[]" replaced with your own identifying
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# information: Portions Copyright [yyyy] [name of copyright owner]
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# CDDL HEADER END
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# Use is subject to license terms.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# ident "%Z%%M% %I% %E% SMI"
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# This makefile drives the production of the generic
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore# unix kernel module.
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# x86 implementation architecture dependent
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore# Path to the base of the uts directory tree (usually /usr/src/uts).
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore#
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'AmoreUTSBASE = ../..
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore# Define the module and object file sets.
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreMODULE = genunix
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreGENUNIX = $(OBJS_DIR)/$(MODULE)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreOBJECTS = $(GENUNIX_OBJS:%=$(OBJS_DIR)/%) \
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore $(NOT_YET_KMODS:%=$(OBJS_DIR)/%)
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'AmoreLINTS = $(GENUNIX_OBJS:%.o=$(LINTS_DIR)/%.ln) \
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore $(NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreROOTMODULE = $(ROOT_KERN_DIR)/$(MODULE)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreLIBGEN = $(OBJS_DIR)/libgenunix.so
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'AmoreLIBSTUBS = $(GENSTUBS_OBJS:%=$(OBJS_DIR)/%)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore#
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore# Include common rules.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amoreinclude $(UTSBASE)/intel/Makefile.intel
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore# Define targets
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreALL_TARGET = $(LIBGEN)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreLINT_TARGET = $(MODULE).lint
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreINSTALL_TARGET = $(GENUNIX) $(ROOTMODULE)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore# Overrides
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreCLEANFILES += $(LIBSTUBS) $(LIBGEN)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreBINARY =
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore#
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore# Non-patch genunix builds merge a version of the ip module called ipctf. This
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore# is to ensure that the common network-related types are included in genunix and
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore# can thus be uniquified out of other modules. We don't want to do this for
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore# patch builds, since we can't guarantee that ip and genunix will be in the same
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore# patch.
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreIPCTF_TARGET = $(IPCTF)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore$(PATCH_BUILD)IPCTF_TARGET =
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'AmoreCPPFLAGS += -I$(SRC)/common
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
83ff55dcd7fc7c3356d7b2d3f67ec99970728d9bRichard Lowe# Default build targets.
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore#
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore.KEEP_STATE:
83ff55dcd7fc7c3356d7b2d3f67ec99970728d9bRichard Lowe
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore.PARALLEL: $(LIBSTUBS)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amoredef: $(DEF_DEPS)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amoreall: $(ALL_DEPS)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amoreclean: $(CLEAN_DEPS)
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amoreclobber: $(CLOBBER_DEPS)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amorelint: $(LINT_DEPS)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amoremodlintlib: $(MODLINTLIB_DEPS)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amoreclean.lint: $(CLEAN_LINT_DEPS)
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amoreinstall: $(INSTALL_DEPS)
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore$(LIBGEN): $(GENUNIX) $(LIBSTUBS)
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore $(BUILD.SO) $(GENUNIX) $(LIBSTUBS)
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore$(IPCTF_TARGET) ipctf_target: FRC
2d08521bd15501c8370ba2153b9cca4f094979d0Garrett D'Amore @cd $(IPDRV_DIR); pwd; $(MAKE) ipctf.$(OBJS_DIR)
@pwd
$(GENUNIX): $(IPCTF_TARGET) $(OBJECTS)
$(LD) -r $(LDFLAGS) -o $@ $(OBJECTS)
$(CTFMERGE_GENUNIX_MERGE)
$(POST_PROCESS)
#
# Include common targets.
#
include $(UTSBASE)/intel/Makefile.targ
#
# Software workarounds for hardware "features".
#
include $(UTSBASE)/i86pc/Makefile.workarounds
ALL_DEFS += $(WORKAROUND_DEFS)
#
# Override.
#
$(MODULE).lint := GEN_LINT_LIB =