xref: /illumos-gate/usr/src/tools/Makefile (revision 2aeafac3612e19716bf8164f89c3c9196342979c)
17c478bd9Sstevel@tonic-gate#
27c478bd9Sstevel@tonic-gate# CDDL HEADER START
37c478bd9Sstevel@tonic-gate#
47c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
5fb9f9b97Skupfer# Common Development and Distribution License (the "License").
6fb9f9b97Skupfer# You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate#
87c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate# and limitations under the License.
127c478bd9Sstevel@tonic-gate#
137c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate#
197c478bd9Sstevel@tonic-gate# CDDL HEADER END
207c478bd9Sstevel@tonic-gate#
212e02daeeSRainer Orth
227c478bd9Sstevel@tonic-gate#
2387ab3622SRichard Lowe# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
2495c635efSGarrett D'Amore# Copyright 2014 Garrett D'Amore <garrett@damore.org>
250cc5983cSToomas Soome# Copyright 2016 Toomas Soome <tsoome@me.com>
2689d58ee0SChris Fraire# Copyright (c) 2016, Chris Fraire <cfraire@me.com>.
27d8e4595bSJohn Levon# Copyright 2019 Joyent, Inc.
28ca13eaa5SAndy Fiddaman# Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
297c478bd9Sstevel@tonic-gate#
307c478bd9Sstevel@tonic-gate
317c478bd9Sstevel@tonic-gateinclude ../Makefile.master
327c478bd9Sstevel@tonic-gate
33391889ecSAndy Fiddaman# Bootstrap problem: some utilities are pre-requisites for building everything
34391889ecSAndy Fiddaman# else:
35391889ecSAndy Fiddaman#    - smatch - as it is a shadow compiler
36391889ecSAndy Fiddaman#    - cw - as it is used to drive builds
37391889ecSAndy Fiddaman#    - install.bin - being the 'install' target dependency
38391889ecSAndy Fiddaman#    - ctf - being used to generate CTF data
39c0855578SRichard Lowe#
40391889ecSAndy Fiddaman# Anything built before 'install.bin' is present must override binary
41391889ecSAndy Fiddaman# installation rules in their makefiles. This includes the Makefile for
42391889ecSAndy Fiddaman# 'install.bin' itself.
437c478bd9Sstevel@tonic-gateBOOT_SUBDIRS= \
441f5207b7SJohn Levon	smatch \
451f5207b7SJohn Levon	.WAIT \
46c0855578SRichard Lowe	cw \
47c0855578SRichard Lowe	.WAIT \
487079b4f8SToomas Soome	install.bin \
497079b4f8SToomas Soome	.WAIT \
507079b4f8SToomas Soome	ctf
517c478bd9Sstevel@tonic-gate
527c478bd9Sstevel@tonic-gateCOMMON_SUBDIRS= \
5323259b79Srotondo	codesign \
547c478bd9Sstevel@tonic-gate	cscope-fast \
557c478bd9Sstevel@tonic-gate	env \
567c478bd9Sstevel@tonic-gate	findunref \
5734c98957Smeem	lintdump \
5810d63b7dSRichard Lowe	make \
59e86c665fSToomas Soome	makesoftcore \
6010d63b7dSRichard Lowe	ndrgen \
6110d63b7dSRichard Lowe	onbld \
627c478bd9Sstevel@tonic-gate	protocmp \
637c478bd9Sstevel@tonic-gate	protolist \
6469b1fd3fSRichard Lowe	scripts \
6569b1fd3fSRichard Lowe	sgs
667c478bd9Sstevel@tonic-gate
677c478bd9Sstevel@tonic-gate#
687c478bd9Sstevel@tonic-gate#  special versions of commands for use only in build
697c478bd9Sstevel@tonic-gate#
70df8bdeb3SjohnzUNSHIPPED_SUBDIRS = \
7169b1fd3fSRichard Lowe	$(SGSMSG) \
7269b1fd3fSRichard Lowe	$(SGSLIBCONV) \
7369b1fd3fSRichard Lowe	$(SGSLIBELF) \
7469b1fd3fSRichard Lowe	$(SGSLIBLDDBG) \
7569b1fd3fSRichard Lowe	$(SGSLIBLD) \
7669b1fd3fSRichard Lowe	$(SGSLD) \
77503609a9SYuri Pankov	localedef \
78503609a9SYuri Pankov	mandoc \
79*2aeafac3SToomas Soome	rpcgen \
80503609a9SYuri Pankov	tic \
814b529e40SToomas Soome	vtfontcvt \
82503609a9SYuri Pankov	zic
837c478bd9Sstevel@tonic-gate
847c478bd9Sstevel@tonic-gatesparc_SUBDIRS= \
85b31b5de1SJerry Gilliam	chk4ubin \
867c478bd9Sstevel@tonic-gate	stabs \
877c478bd9Sstevel@tonic-gate	tokenize
887c478bd9Sstevel@tonic-gate
897c478bd9Sstevel@tonic-gatei386_SUBDIRS=		\
90ae115bc7Smrj	aw		\
917e3dbbacSRobert Mustacchi	cpcgen		\
92ae115bc7Smrj	elfextract	\
930cc5983cSToomas Soome	mbh_patch	\
940cc5983cSToomas Soome	btxld
957c478bd9Sstevel@tonic-gate
9669b1fd3fSRichard Lowe$(INTEL_BLD)sgs: aw
9769b1fd3fSRichard Lowe
98df8bdeb3SjohnzSUBDIRS= \
99df8bdeb3Sjohnz	$($(MACH)_SUBDIRS) \
100df8bdeb3Sjohnz	$(COMMON_SUBDIRS) \
101df8bdeb3Sjohnz	$(UNSHIPPED_SUBDIRS)
1027c478bd9Sstevel@tonic-gate
1037c478bd9Sstevel@tonic-gateinclude Makefile.tools
1047c478bd9Sstevel@tonic-gate
1057c478bd9Sstevel@tonic-gateROOTDIRS= \
1062e02daeeSRainer Orth	$(ROOTOPT) \
1077c478bd9Sstevel@tonic-gate	$(ROOTONBLD) \
1087c478bd9Sstevel@tonic-gate	$(ROOTONBLD)/bin \
1097c478bd9Sstevel@tonic-gate	$(ROOTONBLD)/bin/$(MACH) \
1107c478bd9Sstevel@tonic-gate	$(ROOTONBLD)/lib \
1117c478bd9Sstevel@tonic-gate	$(ROOTONBLD)/lib/$(MACH) \
11210d63b7dSRichard Lowe	$(ROOTONBLD)/lib/$(MACH)/64 \
11375ce41a5SAli Bahrami	$(ROOTONBLD)/lib/perl \
1147c478bd9Sstevel@tonic-gate	$(ROOTONBLD)/env \
1157c478bd9Sstevel@tonic-gate	$(ROOTONBLD)/etc \
11675ce41a5SAli Bahrami	$(ROOTONBLD)/etc/exception_lists \
11710d63b7dSRichard Lowe	$(ROOTONBLD)/share \
1187c478bd9Sstevel@tonic-gate	$(ROOTONBLD)/man \
1196cad8c54SRyan Zezeski	$(ROOTONBLD)/man/man1onbld
1207c478bd9Sstevel@tonic-gate
121ca13eaa5SAndy Fiddaman$(BUILDPY2TOOLS)ROOTDIRS += \
122ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON_VERSION) \
123ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON_VERSION)/onbld \
124ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON_VERSION)/onbld/Checks \
125ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON_VERSION)/onbld/Scm
126ca13eaa5SAndy Fiddaman
127ca13eaa5SAndy Fiddaman$(BUILDPY3TOOLS)ROOTDIRS += \
128ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON3_VERSION) \
129ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON3_VERSION)/onbld \
130ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON3_VERSION)/onbld/__pycache__ \
131ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON3_VERSION)/onbld/Checks \
132ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON3_VERSION)/onbld/Checks/__pycache__ \
133ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON3_VERSION)/onbld/Scm \
134ca13eaa5SAndy Fiddaman	$(ROOTONBLD)/lib/python$(PYTHON3_VERSION)/onbld/Scm/__pycache__
135ca13eaa5SAndy Fiddaman
1367c478bd9Sstevel@tonic-gateall :=		TARGET= install
1377c478bd9Sstevel@tonic-gateinstall :=	TARGET= install
1387c478bd9Sstevel@tonic-gateclean :=	TARGET= clean
1397c478bd9Sstevel@tonic-gateclobber :=	TARGET= clobber
1407c478bd9Sstevel@tonic-gate_msg :=		TARGET= _msg
1417c478bd9Sstevel@tonic-gate
1427c478bd9Sstevel@tonic-gate.KEEP_STATE:
1437c478bd9Sstevel@tonic-gate
144ead1f93eSLiane Praza#
145ead1f93eSLiane Praza# Only create directories in the tools proto area when doing an actual
146ead1f93eSLiane Praza# build, not a clean or clobber.
147ead1f93eSLiane Praza#
148ead1f93eSLiane PrazaDOROOTDIRS= $(ROOTDIRS)
149ead1f93eSLiane Prazaclobber:= DOROOTDIRS=
150ead1f93eSLiane Prazaclean:= DOROOTDIRS=
151ead1f93eSLiane Praza
152ca13eaa5SAndy Fiddaman$(BUILDPY2TOOLS)DOROOTONBLDLIBPY= $(ROOTONBLDLIBPY)
15389d58ee0SChris Fraireclobber:= DOROOTONBLDLIBPY=
15489d58ee0SChris Fraireclean:= DOROOTONBLDLIBPY=
15589d58ee0SChris Fraire
15698157a70Sakolball install: $(SUBDIRS)
1577c478bd9Sstevel@tonic-gate
158df8bdeb3Sjohnzclean: $(SUBDIRS)
1597c478bd9Sstevel@tonic-gate
160df8bdeb3Sjohnzclobber: $(SUBDIRS)
1617c478bd9Sstevel@tonic-gate	$(RM) -rf $(TOOLS_PROTO)
1627c478bd9Sstevel@tonic-gate
163391889ecSAndy Fiddamanbootstrap: $(BOOT_SUBDIRS)
1647c478bd9Sstevel@tonic-gate
1657c478bd9Sstevel@tonic-gate_msg: $(MSGSUBDIRS)
1667c478bd9Sstevel@tonic-gate
167ead1f93eSLiane Praza.PARALLEL: $(SUBDIRS) $(CLOSED_SUBDIRS)
16898157a70Sakolb
16903113b45Sakolb$(SUBDIRS) $(CLOSED_SUBDIRS): $(BOOT_SUBDIRS)
17003113b45Sakolb
17189d58ee0SChris Fraire$(BOOT_SUBDIRS) $(SUBDIRS): $$(DOROOTDIRS) $$(DOROOTONBLDLIBPY) FRC
1727c478bd9Sstevel@tonic-gate	@cd $@; pwd; $(MAKE) $(TARGET)
1737c478bd9Sstevel@tonic-gate
174c0855578SRichard Lowe# Assume we don't have the install.bin available yet
1757c478bd9Sstevel@tonic-gate$(ROOTDIRS):
176c0855578SRichard Lowe	$(MKDIR) -p -m $(DIRMODE) $@
177ead1f93eSLiane Praza
17887ab3622SRichard Lowe$(ROOTONBLDLIBPY): $(ROOTDIRS)
1799f923083SAlexander Pyhalov	$(RM) -r $@; $(SYMLINK) python$(PYTHON_VERSION) $@
18087ab3622SRichard Lowe
181ead1f93eSLiane PrazaFRC:
182