Makefile revision 80e2ca8596e3435bc3b76f3c597833ea0a87f85e
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# CDDL HEADER START
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# The contents of this file are subject to the terms of the
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# Common Development and Distribution License (the "License").
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# You may not use this file except in compliance with the License.
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# or http://www.opensolaris.org/os/licensing.
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# See the License for the specific language governing permissions
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# and limitations under the License.
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# When distributing Covered Code, include this CDDL HEADER in each
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# If applicable, add the following below this CDDL HEADER, with the
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# fields enclosed by brackets "[]" replaced with your own identifying
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# information: Portions Copyright [yyyy] [name of copyright owner]
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# CDDL HEADER END
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
8bf8c6b1914c9e7e60b1547888400668f1774497vboxsync# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
8d8dfc00d014a62894327907a04f148b00a08529vboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsync# This makefile drives the production of the kernel component of
8bf8c6b1914c9e7e60b1547888400668f1774497vboxsync# the N-1 Solaris brand
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsync
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsync# Path to the base of the uts directory tree (usually /usr/src/uts).
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsyncUTSBASE = ../..
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncSN1_BASE = $(UTSBASE)/common/brand/sn1
dfd576109cb676448a2c4574150060aa3d8626bavboxsync
9ab0743fd2e00994c4657ca9e67ab5dafa78e1afvboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsync# Define the module and object file sets.
8d8dfc00d014a62894327907a04f148b00a08529vboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncMODULE = sn1_brand
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncOBJECTS = $(SN1_BRAND_OBJS:%=$(OBJS_DIR)/%)
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncLINTS = $(SN1_BRAND_OBJS:%.o=$(LINTS_DIR)/%.ln)
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncROOTMODULE = $(USR_BRAND_DIR)/$(MODULE)
8d8dfc00d014a62894327907a04f148b00a08529vboxsync
8d8dfc00d014a62894327907a04f148b00a08529vboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsync# Include common rules.
8d8dfc00d014a62894327907a04f148b00a08529vboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncinclude $(UTSBASE)/intel/Makefile.intel
8d8dfc00d014a62894327907a04f148b00a08529vboxsync
8d8dfc00d014a62894327907a04f148b00a08529vboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsync# Define targets
8d8dfc00d014a62894327907a04f148b00a08529vboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncALL_TARGET = $(BINARY)
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncLINT_TARGET = $(MODULE).lint
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncINSTALL_TARGET = $(BINARY) $(ROOTMODULE)
8d8dfc00d014a62894327907a04f148b00a08529vboxsync
8d8dfc00d014a62894327907a04f148b00a08529vboxsync
8d8dfc00d014a62894327907a04f148b00a08529vboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsync# Update compiler variables.
8d8dfc00d014a62894327907a04f148b00a08529vboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncINC_PATH += -I$(SN1_BASE) -I$(OBJS_DIR)
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncAS_INC_PATH += -I$(UTSBASE)/i86pc/genassym/$(OBJS_DIR)
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncLDFLAGS += -dy -Nexec/elfexec
8d8dfc00d014a62894327907a04f148b00a08529vboxsync
8d8dfc00d014a62894327907a04f148b00a08529vboxsync#
8d8dfc00d014a62894327907a04f148b00a08529vboxsync# Ugh, this is a gross hack. Sn1_brand_asm.s uses lots of defines
8d8dfc00d014a62894327907a04f148b00a08529vboxsync# to simplify variable access. All these defines work fine for amd64
9ab0743fd2e00994c4657ca9e67ab5dafa78e1afvboxsync# compiles because when compiling for amd64 we use the GNU assembler,
8d8dfc00d014a62894327907a04f148b00a08529vboxsync# gas. For 32-bit code we use the Sun assembler, as. Unfortunatly
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# as does not handle certian constructs that gas does. So rather than
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# make our code less readable, we'll just use gas to compile our 32-bit
8d8dfc00d014a62894327907a04f148b00a08529vboxsync# code as well.
8d8dfc00d014a62894327907a04f148b00a08529vboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsynci386_AS = $(amd64_AS)
dfd576109cb676448a2c4574150060aa3d8626bavboxsync
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# Default build targets.
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsync.KEEP_STATE:
8d8dfc00d014a62894327907a04f148b00a08529vboxsync
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncdef: $(DEF_DEPS)
8d8dfc00d014a62894327907a04f148b00a08529vboxsync
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncall: $(ALL_DEPS)
8d8dfc00d014a62894327907a04f148b00a08529vboxsync
8d8dfc00d014a62894327907a04f148b00a08529vboxsyncclean: $(CLEAN_DEPS)
8d8dfc00d014a62894327907a04f148b00a08529vboxsync
dfd576109cb676448a2c4574150060aa3d8626bavboxsyncclobber: $(CLOBBER_DEPS)
dfd576109cb676448a2c4574150060aa3d8626bavboxsync
8d8dfc00d014a62894327907a04f148b00a08529vboxsynclint: $(LINT_DEPS)
dfd576109cb676448a2c4574150060aa3d8626bavboxsync
dfd576109cb676448a2c4574150060aa3d8626bavboxsyncmodlintlib: $(MODLINTLIB_DEPS)
dfd576109cb676448a2c4574150060aa3d8626bavboxsync
dfd576109cb676448a2c4574150060aa3d8626bavboxsyncclean.lint: $(CLEAN_LINT_DEPS)
dfd576109cb676448a2c4574150060aa3d8626bavboxsync
dfd576109cb676448a2c4574150060aa3d8626bavboxsyncinstall: $(INSTALL_DEPS)
dfd576109cb676448a2c4574150060aa3d8626bavboxsync
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsync# Include common targets.
dfd576109cb676448a2c4574150060aa3d8626bavboxsync#
dfd576109cb676448a2c4574150060aa3d8626bavboxsyncinclude $(UTSBASE)/intel/Makefile.targ
dfd576109cb676448a2c4574150060aa3d8626bavboxsync