Makefile revision 80e2ca8596e3435bc3b76f3c597833ea0a87f85e
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
11e9368a226272085c337e9e74b79808c16fbdbaTinderbox User# CDDL HEADER START
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# The contents of this file are subject to the terms of the
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater# Common Development and Distribution License (the "License").
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You may not use this file except in compliance with the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# or http://www.opensolaris.org/os/licensing.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# See the License for the specific language governing permissions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and limitations under the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# When distributing Covered Code, include this CDDL HEADER in each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# If applicable, add the following below this CDDL HEADER, with the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# fields enclosed by brackets "[]" replaced with your own identifying
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User# information: Portions Copyright [yyyy] [name of copyright owner]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# CDDL HEADER END
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This makefile drives the production of the kernel component of
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the Solaris 10 brand
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Path to the base of the uts directory tree (usually /usr/src/uts).
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
71c66a876ecca77923638d3f94cc0783152b2f03Mark AndrewsUTSBASE = ../..
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinS10_BASE = $(UTSBASE)/common/brand/solaris10
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Define the module and object file sets.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE = s10_brand
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinOBJECTS = $(S10_BRAND_OBJS:%=$(OBJS_DIR)/%)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLINTS = $(S10_BRAND_OBJS:%.o=$(LINTS_DIR)/%.ln)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinROOTMODULE = $(USR_BRAND_DIR)/$(MODULE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Include common rules.
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude $(UTSBASE)/intel/Makefile.intel
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Define targets
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinALL_TARGET = $(BINARY)
d9184858dd5d7677050a813d444c281c56f697aaTinderbox UserLINT_TARGET = $(MODULE).lint
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinINSTALL_TARGET = $(BINARY) $(ROOTMODULE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Update compiler variables.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
d9184858dd5d7677050a813d444c281c56f697aaTinderbox UserINC_PATH += -I$(S10_BASE) -I$(OBJS_DIR)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinAS_INC_PATH += -I$(UTSBASE)/i86pc/genassym/$(OBJS_DIR)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLDFLAGS += -dy -Nexec/elfexec
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Ugh, this is a gross hack. s10_brand_asm.s uses lots of defines
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User# to simplify variable access. All these defines work fine for amd64
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User# compiles because when compiling for amd64 we use the GNU assembler,
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User# gas. For 32-bit code we use the Sun assembler, as. Unfortunatly
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User# as does not handle certian constructs that gas does. So rather than
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# make our code less readable, we'll just use gas to compile our 32-bit
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User# code as well.
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User#
d9184858dd5d7677050a813d444c281c56f697aaTinderbox Useri386_AS = $(amd64_AS)
5d564da348e890e42f63eebf2dced9a05b41f4fbTinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
5d564da348e890e42f63eebf2dced9a05b41f4fbTinderbox User# Default build targets.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein.KEEP_STATE:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindef: $(DEF_DEPS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
a1ad6695ed6f988406cf155aa26376f84f73bcb9Automatic Updaterall: $(ALL_DEPS)
81199ce5ba7bd719add38189b06987e0a6e583a1Tinderbox User
a1ad6695ed6f988406cf155aa26376f84f73bcb9Automatic Updaterclean: $(CLEAN_DEPS)
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater
81199ce5ba7bd719add38189b06987e0a6e583a1Tinderbox Userclobber: $(CLOBBER_DEPS)
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic Updater
81199ce5ba7bd719add38189b06987e0a6e583a1Tinderbox Userlint: $(LINT_DEPS)
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmodlintlib: $(MODLINTLIB_DEPS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
81199ce5ba7bd719add38189b06987e0a6e583a1Tinderbox Userclean.lint: $(CLEAN_LINT_DEPS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall: $(INSTALL_DEPS)
81199ce5ba7bd719add38189b06987e0a6e583a1Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
81199ce5ba7bd719add38189b06987e0a6e583a1Tinderbox User# Include common targets.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude $(UTSBASE)/intel/Makefile.targ
199045f81d2c312411fc0d6a6f8dc56968daa679Tinderbox User