2N/A#
2N/A# CDDL HEADER START
2N/A#
2N/A# The contents of this file are subject to the terms of the
2N/A# Common Development and Distribution License (the "License").
2N/A# You may not use this file except in compliance with the License.
2N/A#
2N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A# or http://www.opensolaris.org/os/licensing.
2N/A# See the License for the specific language governing permissions
2N/A# and limitations under the License.
2N/A#
2N/A# When distributing Covered Code, include this CDDL HEADER in each
2N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A# If applicable, add the following below this CDDL HEADER, with the
2N/A# fields enclosed by brackets "[]" replaced with your own identifying
2N/A# information: Portions Copyright [yyyy] [name of copyright owner]
2N/A#
2N/A# CDDL HEADER END
2N/A#
2N/A#
2N/A# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
2N/A#
2N/A# This makefile drives the production of the kernel component of
2N/A# the Solaris 10 brand
2N/A#
2N/A
2N/A#
2N/A# Path to the base of the uts directory tree (usually /usr/src/uts).
2N/A#
2N/AUTSBASE = ../..
2N/AS10_BASE = $(UTSBASE)/common/brand/solaris10
2N/A
2N/A#
2N/A# Define the module and object file sets.
2N/A#
2N/AMODULE = s10_brand
2N/AOBJECTS = $(S10_BRAND_OBJS:%=$(OBJS_DIR)/%)
2N/ALINTS = $(S10_BRAND_OBJS:%.o=$(LINTS_DIR)/%.ln)
2N/AROOTMODULE = $(USR_BRAND_DIR)/$(MODULE)
2N/A
2N/A#
2N/A# Include common rules.
2N/A#
2N/Ainclude $(UTSBASE)/intel/Makefile.intel
2N/A
2N/A#
2N/A# Define targets
2N/A#
2N/AALL_TARGET = $(BINARY)
2N/ALINT_TARGET = $(MODULE).lint
2N/AINSTALL_TARGET = $(BINARY) $(ROOTMODULE)
2N/A
2N/A
2N/A#
2N/A# Update compiler variables.
2N/A#
2N/AINC_PATH += -I$(S10_BASE) -I$(OBJS_DIR)
2N/AAS_INC_PATH += -I$(UTSBASE)/i86pc/genassym/$(OBJS_DIR)
2N/ALDFLAGS += -dy -Nexec/elfexec
2N/A
2N/A#
2N/A# Ugh, this is a gross hack. s10_brand_asm.s uses lots of defines
2N/A# to simplify variable access. All these defines work fine for amd64
2N/A# compiles because when compiling for amd64 we use the GNU assembler,
2N/A# gas. For 32-bit code we use the Sun assembler, as. Unfortunatly
2N/A# as does not handle certian constructs that gas does. So rather than
2N/A# make our code less readable, we'll just use gas to compile our 32-bit
2N/A# code as well.
2N/A#
2N/Ai386_AS = $(amd64_AS)
2N/A
2N/A#
2N/A# Default build targets.
2N/A#
2N/A.KEEP_STATE:
2N/A
2N/Adef: $(DEF_DEPS)
2N/A
2N/Aall: $(ALL_DEPS)
2N/A
2N/Aclean: $(CLEAN_DEPS)
2N/A
2N/Aclobber: $(CLOBBER_DEPS)
2N/A
2N/Alint: $(LINT_DEPS)
2N/A
2N/Amodlintlib: $(MODLINTLIB_DEPS)
clean.lint: $(CLEAN_LINT_DEPS)
install: $(INSTALL_DEPS)
#
# Include common targets.
#
include $(UTSBASE)/intel/Makefile.targ