Makefile revision b31b5de1357c915fe7dab4d9646d9d84f9fe69bc
4d237bbe075b1d2c19428cd954d721d65b31f67cwrowe#
0e2a2eae9b72ac099aa25d7419e55af13b004be9minfrin# CDDL HEADER START
1a5f954324f2584984fc9cee7a7a8ebe8ef39aeajim#
7f4ac5a4cd99a9cae866b5908e358bd932736307chrisd# The contents of this file are subject to the terms of the
a5cce34e21a5b472f3806b4526043887bcb7e9eajim# Common Development and Distribution License (the "License").
a5cce34e21a5b472f3806b4526043887bcb7e9eajim# You may not use this file except in compliance with the License.
a5cce34e21a5b472f3806b4526043887bcb7e9eajim#
a5cce34e21a5b472f3806b4526043887bcb7e9eajim# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8c3667cd1d0db08647793137c0d1aa7f6526bebfniq# or http://www.opensolaris.org/os/licensing.
8c3667cd1d0db08647793137c0d1aa7f6526bebfniq# See the License for the specific language governing permissions
8c3667cd1d0db08647793137c0d1aa7f6526bebfniq# and limitations under the License.
8c3667cd1d0db08647793137c0d1aa7f6526bebfniq#
8c3667cd1d0db08647793137c0d1aa7f6526bebfniq# When distributing Covered Code, include this CDDL HEADER in each
8c3667cd1d0db08647793137c0d1aa7f6526bebfniq# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6824182b3b8e045db97a228d3127bdfcbdfeb0bcniq# If applicable, add the following below this CDDL HEADER, with the
6824182b3b8e045db97a228d3127bdfcbdfeb0bcniq# fields enclosed by brackets "[]" replaced with your own identifying
6824182b3b8e045db97a228d3127bdfcbdfeb0bcniq# information: Portions Copyright [yyyy] [name of copyright owner]
0c26d213d85bc40fc05963c63bf670b42b352d25niq#
0c26d213d85bc40fc05963c63bf670b42b352d25niq# CDDL HEADER END
0c26d213d85bc40fc05963c63bf670b42b352d25niq#
0c26d213d85bc40fc05963c63bf670b42b352d25niq
92357fb76d3ad043e29ba2ba2041a7bdb8d13390niq#
92357fb76d3ad043e29ba2ba2041a7bdb8d13390niq# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
92357fb76d3ad043e29ba2ba2041a7bdb8d13390niq# Use is subject to license terms.
9f07b6dc343a4e3eba5f4c47050a77441723ce89nd#
9f07b6dc343a4e3eba5f4c47050a77441723ce89nd
f7cec4a86292b160401472286a17497ae0d4df18covener#
f7cec4a86292b160401472286a17497ae0d4df18covener# This makefile drives the production of unix (and unix.o).
f7cec4a86292b160401472286a17497ae0d4df18covener#
f7cec4a86292b160401472286a17497ae0d4df18covener# sun4u starfire implementation architecture dependent
1464434c2c104e0ba224644c42552330f5158537covener#
1464434c2c104e0ba224644c42552330f5158537covener
1464434c2c104e0ba224644c42552330f5158537covener#
1464434c2c104e0ba224644c42552330f5158537covener# Path to the base of the uts directory tree (usually /usr/src/uts).
1464434c2c104e0ba224644c42552330f5158537covener#
8d574b3ac4185e4f71c8b9aae76e7122a78201c4rpluemUTSBASE = ../../..
8d574b3ac4185e4f71c8b9aae76e7122a78201c4rpluem
8d574b3ac4185e4f71c8b9aae76e7122a78201c4rpluem#
7f4ac5a4cd99a9cae866b5908e358bd932736307chrisd# Define the module and object file sets.
92357fb76d3ad043e29ba2ba2041a7bdb8d13390niq#
8d574b3ac4185e4f71c8b9aae76e7122a78201c4rpluemUNIX = unix
509111f5f58a9effd4c832f6a0cbd6ad9d549188jortonOBJECTS = $(SPECIAL_OBJS:%=$(OBJS_DIR)/%) \
509111f5f58a9effd4c832f6a0cbd6ad9d549188jorton $(CORE_OBJS:%=$(OBJS_DIR)/%) \
509111f5f58a9effd4c832f6a0cbd6ad9d549188jorton $(MACH_NOT_YET_KMODS:%=$(OBJS_DIR)/%)
0e2a2eae9b72ac099aa25d7419e55af13b004be9minfrinLINTS = $(SPECIAL_OBJS:%.o=$(LINTS_DIR)/%.ln) \
235b900b78cf6849f8344e377a91ded37d9cc9depquerna $(CORE_OBJS:%.o=$(LINTS_DIR)/%.ln) \
235b900b78cf6849f8344e377a91ded37d9cc9depquerna $(MACH_NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln) \
235b900b78cf6849f8344e377a91ded37d9cc9depquerna $(LINTS_DIR)/vers.ln \
66b8ec445dced7a2036bcd3b87b6fc3f08a1ab24jorton $(LINTS_DIR)/modstubs.ln
66b8ec445dced7a2036bcd3b87b6fc3f08a1ab24jorton
66b8ec445dced7a2036bcd3b87b6fc3f08a1ab24jortonKRTLD_MAPFILE = $(UTSBASE)/sparc/krtld/mapfile
66b8ec445dced7a2036bcd3b87b6fc3f08a1ab24jortonKRTLD_OBJECTS = $(KRTLD_OBJS:%=$(OBJS_DIR)/%)
0e2a2eae9b72ac099aa25d7419e55af13b004be9minfrinKRTLD_O = $(OBJS_DIR)/krtld.o
0e2a2eae9b72ac099aa25d7419e55af13b004be9minfrin
0e2a2eae9b72ac099aa25d7419e55af13b004be9minfrinROOTMODULE = $(ROOT_STARFIRE_KERN_DIR)/$(UNIX)
0e2a2eae9b72ac099aa25d7419e55af13b004be9minfrinUNIX32_LINK = $(ROOT_STARFIRE_KERN_DIR_32)/$(UNIX)
0e2a2eae9b72ac099aa25d7419e55af13b004be9minfrinUNIX_BIN = $(OBJS_DIR)/$(UNIX)
8d574b3ac4185e4f71c8b9aae76e7122a78201c4rpluem
6f33babce8f8bc723f0b2c755aef049cd509504fpquernaLIBS = $(GENLIB) $(PLATLIB) $(CPULIB)
6f33babce8f8bc723f0b2c755aef049cd509504fpquerna
0a12339f39799193ac6866fce812a1deb8f4a1abpquernaGENUNIX = genunix
0a12339f39799193ac6866fce812a1deb8f4a1abpquernaGENUNIX_DIR = ../../$(GENUNIX)
0a12339f39799193ac6866fce812a1deb8f4a1abpquernaGENOPTS = -L $(GENUNIX_DIR)/$(OBJS_DIR) -l $(GENUNIX)
3fb118bc4e1a634f71c1fa509819ceac36c79dcbpquerna
3fb118bc4e1a634f71c1fa509819ceac36c79dcbpquernaCPU_DIR = .
3fb118bc4e1a634f71c1fa509819ceac36c79dcbpquernaCPUOPTS = -L $(CPU_DIR)/$(OBJS_DIR) -l $(CPUNAME)
fb59af4ce3fcdd314b848359faeddf1e51bb24c5jim
fb59af4ce3fcdd314b848359faeddf1e51bb24c5jimPLAT_DIR = ../../platmod
fb59af4ce3fcdd314b848359faeddf1e51bb24c5jimPLATOPTS = -L $(PLAT_DIR)/$(OBJS_DIR) -l $(PLATMOD)
fb59af4ce3fcdd314b848359faeddf1e51bb24c5jim
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquernaLIBOPTS = $(GENOPTS) $(PLATOPTS) $(CPUOPTS)
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquerna
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquernaCTFEXTRAOBJS = $(OBJS_DIR)/vers.o
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquerna
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquerna#
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquerna# Include common rules.
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquerna#
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquernainclude $(UTSBASE)/sun4u/starfire/Makefile.starfire
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquerna
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquerna#
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquerna# Define targets
a91a59d0b0ceed7cd5621fe8757eda5ff6a043a8pquerna#
19e5deda3a29d71ac1cc4bfecce39f96ea3ab55dcovenerALL_TARGET = $(UNIX_BIN)
19e5deda3a29d71ac1cc4bfecce39f96ea3ab55dcovenerLINT_TARGET = $(LINT_LIB)
19e5deda3a29d71ac1cc4bfecce39f96ea3ab55dcovenerINSTALL_TARGET = $(UNIX_BIN) $(ROOTMODULE) $(UNIX32_LINK)
19e5deda3a29d71ac1cc4bfecce39f96ea3ab55dcovener
19e5deda3a29d71ac1cc4bfecce39f96ea3ab55dcovener#
3ec1e3a35106ec4c8bcf8fae6a20cb623aed0b62pquerna# This is UNIX_DIR. Use a short path.
3ec1e3a35106ec4c8bcf8fae6a20cb623aed0b62pquerna#
3ec1e3a35106ec4c8bcf8fae6a20cb623aed0b62pquernaUNIX_DIR = .
97f7daaffd9b6c1031302d7e551d5279fa0d0d72pquerna
97f7daaffd9b6c1031302d7e551d5279fa0d0d72pquerna#
97f7daaffd9b6c1031302d7e551d5279fa0d0d72pquerna# Overrides
847db8b2f0188cd9c840acbe4fea77a32748b2edpquerna#
97f7daaffd9b6c1031302d7e551d5279fa0d0d72pquernaCLEANFILES += $(UNIX_O) $(MODSTUBS_O) $(KRTLD_O) $(KRTLD_OBJECTS) \
97f7daaffd9b6c1031302d7e551d5279fa0d0d72pquerna $(OBJS_DIR)/vers.c $(OBJS_DIR)/vers.o \
527fc83e2bf315b2026a9ac6b1e6ce83143609bbcovener $(CPU_OBJ) $(CPULIB) \
527fc83e2bf315b2026a9ac6b1e6ce83143609bbcovener $(DTRACESTUBS_O) $(DTRACESTUBS)
527fc83e2bf315b2026a9ac6b1e6ce83143609bbcovener
527fc83e2bf315b2026a9ac6b1e6ce83143609bbcovenerCLOBBERFILES = $(CLEANFILES) $(UNIX_BIN)
527fc83e2bf315b2026a9ac6b1e6ce83143609bbcovenerCLEANLINTFILES += $(LINT_LIB)
99c8705f69fae71940ad9b091bd2f588a7b9f484minfrin
99c8705f69fae71940ad9b091bd2f588a7b9f484minfrin#
99c8705f69fae71940ad9b091bd2f588a7b9f484minfrin# lint pass one enforcement
99c8705f69fae71940ad9b091bd2f588a7b9f484minfrin# Turn on doubleword alignment for 64 bit counter timer registers
9376e7dc573bb2721491c79b92f9c06fdfacebe6minfrin#
9376e7dc573bb2721491c79b92f9c06fdfacebe6minfrinCFLAGS += $(CCVERBOSE) -dalign
9376e7dc573bb2721491c79b92f9c06fdfacebe6minfrin
9376e7dc573bb2721491c79b92f9c06fdfacebe6minfrin#
edaefb8bf78debc86ef7de441c7983d8b05517e1minfrin# Default build targets.
edaefb8bf78debc86ef7de441c7983d8b05517e1minfrin#
edaefb8bf78debc86ef7de441c7983d8b05517e1minfrin.KEEP_STATE:
edaefb8bf78debc86ef7de441c7983d8b05517e1minfrin
edaefb8bf78debc86ef7de441c7983d8b05517e1minfrindef: $(DEF_DEPS)
b5cbd7bc65a5c0eda246b0cd32e7d9ed124d66c4niq
b5cbd7bc65a5c0eda246b0cd32e7d9ed124d66c4niqall: $(ALL_DEPS)
b5cbd7bc65a5c0eda246b0cd32e7d9ed124d66c4niq
b5cbd7bc65a5c0eda246b0cd32e7d9ed124d66c4niqclean: $(CLEAN_DEPS)
6ad55f63504cf5fe5205ed9495664519afeadcd9chrisd
6ad55f63504cf5fe5205ed9495664519afeadcd9chrisdclobber: $(CLOBBER_DEPS)
6ad55f63504cf5fe5205ed9495664519afeadcd9chrisd
809ec9d7cc8bc12d7dc6fafba24f3acad3e49d81chrisdlint: $(LINT_DEPS)
809ec9d7cc8bc12d7dc6fafba24f3acad3e49d81chrisd
809ec9d7cc8bc12d7dc6fafba24f3acad3e49d81chrisdclean.lint: $(CLEAN_LINT_DEPS)
809ec9d7cc8bc12d7dc6fafba24f3acad3e49d81chrisd
809ec9d7cc8bc12d7dc6fafba24f3acad3e49d81chrisdinstall: $(INSTALL_DEPS)
f436f5cf34615c3c7d49dd229560ba658033f9eachrisd
f436f5cf34615c3c7d49dd229560ba658033f9eachrisd$(UNIX_BIN): $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(MAPFILE) $(LIBS) \
f436f5cf34615c3c7d49dd229560ba658033f9eachrisd $(DTRACESTUBS)
ce6098001014d149e90e56ab0e89c1b4aab30136chrisd $(LD) -dy -b -o $@ -e _start -M $(MAPFILE) \
ce6098001014d149e90e56ab0e89c1b4aab30136chrisd $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
ce6098001014d149e90e56ab0e89c1b4aab30136chrisd $(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
7245e9b991db85d9d9a587fe5f4051f642ebdc3cchrisd $(POST_PROCESS)
7245e9b991db85d9d9a587fe5f4051f642ebdc3cchrisd $(CHK4UBINARY)
7245e9b991db85d9d9a587fe5f4051f642ebdc3cchrisd
7245e9b991db85d9d9a587fe5f4051f642ebdc3cchrisd$(UNIX32_LINK): $(ROOT_PSM_KERN_DIR_32) $(UNIX_BIN)
38b062650152074931a68e933461762c5e233cfcniq -$(RM) $@; ln -s $(SUBDIR64)/$(UNIX) $@
38b062650152074931a68e933461762c5e233cfcniq
38b062650152074931a68e933461762c5e233cfcniqsymcheck: $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(LIBS)
9257af3c6aaeaf201fccb3e3c87cf8c41783fdb7rpluem $(LD) -dy -b -o $(SYM_MOD) -M $(MAPFILE) \
9257af3c6aaeaf201fccb3e3c87cf8c41783fdb7rpluem $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
d1c1b82647a997922859ec76b82e62a956078dbccovener
63de18ba5e922ffaab500317d7d1d0ad6b27b7e2covener$(UNIX_O): $(OBJECTS) $(OBJS_DIR)/vers.o
63de18ba5e922ffaab500317d7d1d0ad6b27b7e2covener $(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
91ef999a69527d2a64983681c92aaef9270697b4rpluem
91ef999a69527d2a64983681c92aaef9270697b4rpluem$(KRTLD_O): $(KRTLD_OBJECTS)
91ef999a69527d2a64983681c92aaef9270697b4rpluem $(LD) -r -o $@ -M$(KRTLD_MAPFILE) $(KRTLD_OBJECTS)
cf95511601acd18c75339ef5d90a298e070617ccminfrin
cf95511601acd18c75339ef5d90a298e070617ccminfrin#
cf95511601acd18c75339ef5d90a298e070617ccminfrin# CPU_OBJ now comprises of 2 object files which come from sun4 common
cf95511601acd18c75339ef5d90a298e070617ccminfrin# and from architecture dependent code. OBJS_DIR is prepended where
e82c197ca8872669af89367746826fe6b9955bb3niq# CPU_OBJ is defined to allow for building multiple CPU_OBJ's
e82c197ca8872669af89367746826fe6b9955bb3niq#
e82c197ca8872669af89367746826fe6b9955bb3niq$(CPULIB): $(CPU_OBJ)
baef4b5261d84ad9bacb2f4e745b33f35534c25aniq $(BUILD.SO) $(CPU_OBJ)
baef4b5261d84ad9bacb2f4e745b33f35534c25aniq
baef4b5261d84ad9bacb2f4e745b33f35534c25aniq#
baef4b5261d84ad9bacb2f4e745b33f35534c25aniq# The global lint target builds the kernel lint library (llib-lunix.ln)
742ec45ed2ac00ab03080e898332352220cc1f13niq# which is equivalent to a lint of /unix.o. Then all kernel modules for
742ec45ed2ac00ab03080e898332352220cc1f13niq# this architecture are linted against the kernel lint library.
a5e068c4aa3d0084a41e178c7c0c1b1ae2f28125jim#
742ec45ed2ac00ab03080e898332352220cc1f13niq# Note: lint errors in the kernel lint library will be repeated for
f82568a780e35e8786958c49a1259434e2088b9cniq# each module. It is important that the kernel lint library
f82568a780e35e8786958c49a1259434e2088b9cniq# be clean to keep the textual output to a reasonable level.
f82568a780e35e8786958c49a1259434e2088b9cniq#
56b7c92bac48127bda06d80bf94952258f7e0bd3minfrin
56b7c92bac48127bda06d80bf94952258f7e0bd3minfrin$(LINT_LIB): $(LINT_LIB_DIR) $(LINTS)
56b7c92bac48127bda06d80bf94952258f7e0bd3minfrin @-$(ECHO) "\n$(UNIX): (library construction):"
41abbbf0cbaef202fe1ba2dd671ea48990d6e012minfrin @$(LINT) -o $(UNIX) $(LINTFLAGS) $(LINTS)
41abbbf0cbaef202fe1ba2dd671ea48990d6e012minfrin @$(MV) $(@F) $@
41abbbf0cbaef202fe1ba2dd671ea48990d6e012minfrin
41abbbf0cbaef202fe1ba2dd671ea48990d6e012minfrinlintlib: $(LINT_DEPS)
6aa239b3d12f531ad9e305b1a81ad5fd671a3493minfrin
6aa239b3d12f531ad9e305b1a81ad5fd671a3493minfrin#
6aa239b3d12f531ad9e305b1a81ad5fd671a3493minfrin# Include common targets.
6aa239b3d12f531ad9e305b1a81ad5fd671a3493minfrin#
d05e6175473332a8433e4ac85edda0d5a33c94b5minfrininclude $(UTSBASE)/sun4u/starfire/Makefile.targ
d05e6175473332a8433e4ac85edda0d5a33c94b5minfrin