Makefile revision 95c635efb7c3b86efc493e0447eaec7aecca3f0f
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# CDDL HEADER START
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# The contents of this file are subject to the terms of the
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu Prodescu# Common Development and Distribution License (the "License").
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# You may not use this file except in compliance with the License.
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# or http://www.opensolaris.org/os/licensing.
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# See the License for the specific language governing permissions
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# and limitations under the License.
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# When distributing Covered Code, include this CDDL HEADER in each
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# If applicable, add the following below this CDDL HEADER, with the
6c1f6e0b2f3a8d046525a8309e5448fdfb2d0714Christian Maeder# fields enclosed by brackets "[]" replaced with your own identifying
51f5e4646dd79be0844ceb0cc416e3fa3205a365Mihai Codescu# information: Portions Copyright [yyyy] [name of copyright owner]
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# CDDL HEADER END
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
54ea981a0503c396c2923a1c06421c6235baf27fChristian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
e6427435181f3dc24b3548593e60e6fcdd996d49Christian Maeder# Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
54ea981a0503c396c2923a1c06421c6235baf27fChristian Maeder# Copyright (c) 2012 by Delphix. All rights reserved.
c208973c890b8f993297720fd0247bc7481d4304Christian Maeder# Copyright 2014 Garrett D'Amore <garrett@damore.org>
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
55c5e901b5c3466300009135585bc70bd576dcb6Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# Makefile for system source
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# include global definitions
54ea981a0503c396c2923a1c06421c6235baf27fChristian Maederinclude Makefile.master
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# the Targetdirs file is the AT&T target.dirs file in a makefile format.
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# it defines TARGETDIRS and ROOTDIRS.
54ea981a0503c396c2923a1c06421c6235baf27fChristian Maederinclude Targetdirs
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian MaederCOMMON_SUBDIRS= uts lib cmd ucblib ucbcmd psm man test
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maedersparc_SUBDIRS= stand
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maederi386_SUBDIRS= grub
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# sparc needs to build stand before psm
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder$(SPARC_BLD)psm: stand
6c1f6e0b2f3a8d046525a8309e5448fdfb2d0714Christian Maeder
e49fd57c63845c7806860a9736ad09f6d44dbaedChristian MaederSUBDIRS= $(COMMON_SUBDIRS) $($(MACH)_SUBDIRS)
6c1f6e0b2f3a8d046525a8309e5448fdfb2d0714Christian Maeder
6c1f6e0b2f3a8d046525a8309e5448fdfb2d0714Christian MaederHDRSUBDIRS= uts head lib cmd
6c1f6e0b2f3a8d046525a8309e5448fdfb2d0714Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# UCB headers are bug-for-bug compatible and not checkable against the header
6c1f6e0b2f3a8d046525a8309e5448fdfb2d0714Christian Maeder# standards.
6c1f6e0b2f3a8d046525a8309e5448fdfb2d0714Christian Maeder#
e49fd57c63845c7806860a9736ad09f6d44dbaedChristian MaederCHKHDRSUBDIRS= head uts lib
6c1f6e0b2f3a8d046525a8309e5448fdfb2d0714Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# Headers that can be built in parallel
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian MaederPARALLEL_HEADERS = sysheaders userheaders libheaders cmdheaders
2e63df76296cdf828d87a2d03dd614219436e6f1Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# Directories that can be built in parallel
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian MaederPARALLEL_DIRS = uts lib man
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# The check target also causes smf(5) service manifests to be validated.
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian MaederCHKMFSTSUBDIRS= cmd
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder# And man page formats
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian MaederCHKMANSUBDIRS = man
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian MaederMSGSUBDIRS= cmd ucbcmd lib
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian MaederDOMAINS= \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder SUNW_OST_ADMIN \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder SUNW_OST_NETRPC \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder SUNW_OST_OSCMD \
e49fd57c63845c7806860a9736ad09f6d44dbaedChristian Maeder SUNW_OST_OSLIB \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder SUNW_OST_UCBCMD \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder SUNW_OST_ZONEINFO
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian MaederMSGDDIRS= $(DOMAINS:%=$(MSGROOT)/%)
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian MaederMSGDIRS= $(MSGROOT) $(MSGDDIRS) $(MSGROOT)/LC_TIME
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
3bcf8bbafdda23d3c6be2deec9e68f98223b78c1Christian Maederall := TARGET= all
3bcf8bbafdda23d3c6be2deec9e68f98223b78c1Christian Maederinstall := TARGET= install
3bcf8bbafdda23d3c6be2deec9e68f98223b78c1Christian Maederinstall1 := TARGET= install
3bcf8bbafdda23d3c6be2deec9e68f98223b78c1Christian Maederinstall2 := TARGET= install
3bcf8bbafdda23d3c6be2deec9e68f98223b78c1Christian Maederinstall_h := TARGET= install_h
3bcf8bbafdda23d3c6be2deec9e68f98223b78c1Christian Maederclean := TARGET= clean
e6427435181f3dc24b3548593e60e6fcdd996d49Christian Maederclobber := TARGET= clobber
e6427435181f3dc24b3548593e60e6fcdd996d49Christian Maedercheck := TARGET= check
e6427435181f3dc24b3548593e60e6fcdd996d49Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder.KEEP_STATE:
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# Note: install does not cause a build in pkg. To build packages,
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# cd pkg and do a 'make install'
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maederall: mapfiles closedbins sgs .WAIT $(SUBDIRS) pkg
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# The _msg build is a two-step process. First, the _msg dependency
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# causes recursive makes in $(MSGSUBDIRS), which stages raw message
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# files in $(ROOT)/catalog. Second, the action from the install
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# target rule causes those messages to be post-processed from where
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# they were staged in $(ROOT)/catalog, and the results placed into the
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# proto area.
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu# The stage-licenses target causes the license files needed for
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder# packaging to be pulled from $(SRC) and $(CLOSED) and staged in
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder# $(ROOT)/licenses.
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder#
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescuinstall: install1 install2 _msg stage-licenses
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu @cd msg; pwd; $(MAKE) _msg
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu @rm -rf "$(ROOT)/catalog"
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maederstage-licenses: install2
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu @cd pkg; pwd; $(MAKE) stage-licenses
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maederinstall1: mapfiles closedbins sgs
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder
b9b5d06589f3002243102600173551b8fdd1ac47cmaederinstall2: install1 $(SUBDIRS)
1a407f2bf5a43743b30acb439a8f90357d439420Mihai Codescu
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu_msg: _msgdirs rootdirs FRC
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu @for m in $(MSGSUBDIRS); do \
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu cd $$m; pwd; $(MAKE) _msg; cd ..; \
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maeder done
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maedermapfiles: bldtools
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maeder @cd common/mapfiles; pwd; $(MAKE) install
3bcf8bbafdda23d3c6be2deec9e68f98223b78c1Christian Maeder
3bcf8bbafdda23d3c6be2deec9e68f98223b78c1Christian Maederclean: $(SUBDIRS) head pkg
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maederclobber: $(SUBDIRS) head pkg clobber_local
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maederclobber_local:
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maeder @cd tools; pwd; $(MAKE) clobber
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maeder @cd common/mapfiles; pwd; $(MAKE) clobber
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder @cd msg; pwd; $(MAKE) clobber
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maeder
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maederclosedbins: bldtools $(ROOTDIRS) FRC
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maeder @CLOSED_ROOT="$$ON_CLOSED_BINS/root_$(MACH)$${RELEASE_BUILD+-nd}"; \
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maeder if [ ! -d "$$CLOSED_ROOT" ]; then \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder $(ECHO) "Error: ON_CLOSED_BINS must point to closed" \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder "binaries."; \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder $(ECHO) "root_$(MACH)$${RELEASE_BUILD+-nd} is not" \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder "present in $$ON_CLOSED_BINS."; \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder exit 1; \
d11391a2447a2005329a95b5d770f24e62bf5b63Christian Maeder fi; \
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder $(ECHO) "Copying closed binaries from $$CLOSED_ROOT"; \
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder (cd $$CLOSED_ROOT; \
1cd0e77046ce5b6923b86f4b4a69d8c663928f99Christian Maeder $(TAR) cfX - $(CODEMGR_WS)/exception_lists/closed-bins .) | \
e6427435181f3dc24b3548593e60e6fcdd996d49Christian Maeder (cd $(ROOT); $(TAR) xBpf -); \
e6427435181f3dc24b3548593e60e6fcdd996d49Christian Maeder ( cd $(ROOT); $(CTFSTRIP) $$(cd $$CLOSED_ROOT; $(FIND) \
e6427435181f3dc24b3548593e60e6fcdd996d49Christian Maeder ./kernel ./usr/kernel ./platform/*/kernel -type f -a -perm -u+x | \
e6427435181f3dc24b3548593e60e6fcdd996d49Christian Maeder $(EGREP) -vf $(CODEMGR_WS)/exception_lists/closed-bins) )
e6427435181f3dc24b3548593e60e6fcdd996d49Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# Declare what parts can be built in parallel
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# DUMMY at the end is used in case macro expansion produces an empty string to
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# prevent everything going in parallel
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder.PARALLEL: $(PARALLEL_HEADERS) DUMMY
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder.PARALLEL: $(PARALLEL_DIRS) DUMMY
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder$(SUBDIRS) head pkg: FRC
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder @cd $@; pwd; $(MAKE) $(TARGET)
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# librpcsvc has a dependency on headers installed by
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# userheaders, hence the .WAIT before libheaders.
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maedersgs: rootdirs .WAIT sysheaders userheaders .WAIT \
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder libheaders cmdheaders
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder#
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder# Top-level setup target to setup the development environment that includes
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder# headers, tools and generated mapfiles. For open-only builds (i.e.: source
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder# trees w/o usr/closed), this also depends on the closedbins target (above)
2e63df76296cdf828d87a2d03dd614219436e6f1Christian Maeder# in order to properly seed the proto area. Note, although the tools are
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder# dependent on a number of constant mapfiles, the tools themselves are
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# required to build the generated mapfiles.
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder#
2e63df76296cdf828d87a2d03dd614219436e6f1Christian Maedersetup: closedbins bldtools sgs mapfiles
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maederbldtools:
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder @cd tools; pwd; $(MAKE) install
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder# /var/mail/:saved is a special case because of the colon in the name.
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder#
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maederrootdirs: $(ROOTDIRS)
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder $(INS) -d -m 775 $(ROOT)/var/mail/:saved
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maederlint: FRC
f4651a172fa4d00037b061fbe4df71abc69f12b5Christian Maeder $(MAKE) -f Makefile.lint
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu_msgdirs: $(MSGDIRS)
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder$(ROOTDIRS) $(MSGDIRS):
6de4d50cfd65f199053142b05f812dddeeb9f9eaMihai Codescu $(INS.dir)
1a407f2bf5a43743b30acb439a8f90357d439420Mihai Codescu
b9b5d06589f3002243102600173551b8fdd1ac47cmaederuserheaders: FRC
b9b5d06589f3002243102600173551b8fdd1ac47cmaeder @cd head; pwd; $(MAKE) install_h
1a407f2bf5a43743b30acb439a8f90357d439420Mihai Codescu
1a407f2bf5a43743b30acb439a8f90357d439420Mihai Codesculibheaders: bldtools
1a407f2bf5a43743b30acb439a8f90357d439420Mihai Codescu @cd lib; pwd; $(MAKE) install_h
1a407f2bf5a43743b30acb439a8f90357d439420Mihai Codescu
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maedersysheaders: FRC
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder @cd uts; pwd; $(MAKE) install_h
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder
1a407f2bf5a43743b30acb439a8f90357d439420Mihai Codescucmdheaders: FRC
1a407f2bf5a43743b30acb439a8f90357d439420Mihai Codescu @cd cmd/fm; pwd; $(MAKE) install_h
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu @cd cmd/mdb; pwd; $(MAKE) install_h
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescucheck: $(CHKHDRSUBDIRS) $(CHKMFSTSUBDIRS) $(CHKMANSUBDIRS)
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu#
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu# Cross-reference customization: skip all of the subdirectories that
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu# don't contain actual source code.
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu#
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai CodescuXRPRUNE = pkg prototypes
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian MaederXRINCDIRS = uts/common head ucbhead
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescucscope.out tags: FRC
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu $(XREF) -f -x $@
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai CodescuFRC:
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu#
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder# Targets for reporting compiler versions; nightly uses these.
b9b5d06589f3002243102600173551b8fdd1ac47cmaeder#
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maedercc-version:
163ac7391de7fd3d6c46b22d291adaa7c766f105Christian Maeder @if $($(MACH)_CC) -_versions >/dev/null 2>/dev/null; then \
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu $(ECHO) 32-bit compiler; \
588aa1c4f05bd316cde3d7f93b24e3db3d1b6a0aMihai Codescu $(ECHO) $($(MACH)_CC); \
$($(MACH)_CC) -_versions 2>&1 | \
$(EGREP) '^(cw|cc|gcc|primary|shadow)'; \
else \
__COMPILER=`$($(MACH)_CC) -_compiler 2>/dev/null || $(TRUE)`;\
if [ -z "$$__COMPILER" ]; then \
$(ECHO) No 32-bit compiler found; \
exit 1; \
else \
$(ECHO) 32-bit compiler; \
$(ECHO) $($(MACH)_CC); \
$(ECHO) $$__COMPILER; \
$($(MACH)_CC) -V 2>&1 | head -1; \
fi; \
fi
cc64-version:
@if $($(MACH64)_CC) -_versions >/dev/null 2>/dev/null; then \
$(ECHO) 64-bit compiler; \
$(ECHO) $($(MACH64)_CC); \
$($(MACH64)_CC) -_versions 2>&1 | \
$(EGREP) '^(cw|cc|gcc|primary|shadow)'; \
else \
__COMPILER=`$($(MACH64)_CC) -_compiler 2>/dev/null || $(TRUE)`;\
if [ -z "$$__COMPILER" ]; then \
$(ECHO) No 64-bit compiler found; \
exit 1; \
else \
$(ECHO) 64-bit compiler; \
$(ECHO) $($(MACH64)_CC); \
$(ECHO) $$__COMPILER; \
$($(MACH64)_CC) -V 2>&1 | head -1; \
fi; \
fi
java-version:
@if [ -x "$(JAVAC)" ]; then \
$(ECHO) $(JAVAC); \
$(JAVA_ROOT)/bin/java -fullversion 2>&1 | head -1; \
else \
$(ECHO) No Java compiler found; \
exit 1; \
fi