xref: /titanic_52/usr/src/cmd/sgs/packages/Makefile (revision bdfc6d18da790deeec2e0eb09c625902defe2498)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License, Version 1.0 only
6# (the "License").  You may not use this file except in compliance
7# with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22#
23# ident	"%Z%%M%	%I%	%E% SMI"
24#
25# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
26# Use is subject to license terms.
27#
28# cmd/sgs/packages/Makefile
29
30include		$(SRC)/Makefile.master
31include		$(SRC)/cmd/sgs/Makefile.var
32
33BUILDLOG=	package_build.$(MACH).log
34
35MACHS:sh=	if [ "$MACH" = "sparc" ]; \
36		then echo "sparc sparcv9"; \
37		elif [ "$MACH" = "i386" ]; \
38		then echo "i386 amd64"; \
39		else echo "unknown"; \
40		fi
41
42RDBDIRS=	$(MACHS:%=../librtld_db/rdb_demo/%)
43LDMAKEDIRS=	$(MACHS:%=../libldmake/%)
44
45
46SUBDIRS1=	../libconv \
47		.WAIT \
48	 	../libdl \
49		.WAIT \
50		../libelf \
51		.WAIT \
52		../liblddbg \
53		../librtld_db \
54		.WAIT \
55		../librtld \
56		../libcrle
57
58SUBDIRS2 =	../rtld \
59		../rtld.4.x \
60		../libldstab \
61		../lari \
62		../ldprof \
63		../lddstub \
64		$(LDMAKEDIRS) \
65		../0@0 \
66		../tools \
67		$(RDBDIRS)
68
69#
70# Package dirs are directories which specifically
71# have a 'package' target.  This target is used to key
72# off of whether a system build is performed
73# or a SUNWonld build.
74#
75PKGDIRS=	../libcrle \
76		../libld \
77		../elfdump \
78		../crle \
79		../lari \
80		../ld \
81		../ldd \
82		../ldprof \
83		../mcs \
84		../moe \
85		../pvs
86
87$(SUBDIRS1) $(SUBDIRS2) :=	TARGET = install
88$(PKGDIRS) :=	TARGET = package
89
90
91M32:sh=		if [ "$MACH" = "sparc" ]; \
92			then echo sparc; \
93		elif [ "$MACH" = "i386" ]; \
94			then echo "$(VAR_I386_ARCH)"; \
95		else \
96			echo "unknown"; \
97		fi
98
99../%:		FRC
100		@ cd $@; pwd; $(MAKE) $(TARGET)
101
102.KEEP_STATE_FILE: .make.state.$(MACH)
103.KEEP_STATE:
104.PARALLEL:	$(SUBDIRS1) $(PKGDIRS) $(SUBDIRS2)
105
106all clean clobber install: FRC
107		@ cd $(MACH); pwd; $(MAKE) $@
108
109#
110# invoke `package' to build this package from scratch.  It will
111# perform make install in the directories that contains components
112# that this package is dependent upon
113#
114package:	FRC
115	@/bin/time $(MAKE) package_build 2>&1 | tee $(BUILDLOG)
116	@ echo "===BUILD COMPLETED  checking for warnings...==="
117	@ grep -i "warning:" $(BUILDLOG) | grep -v PSTAMP | cat
118	@ echo "==================done========================="
119
120package_build:	package_dep .WAIT package_chkmsg .WAIT install
121
122package_chkmsg:	FRC
123		@ cd ..; pwd; $(MAKE) chkmsg
124
125package_dep:	package_dep_ .WAIT $(SUBDIRS1) .WAIT \
126	$(PKGDIRS) .WAIT $(SUBDIRS2)
127
128package_dep_:	FRC
129		@ cd ../tools; pwd; $(MAKE) proto && ./proto
130		@ cd $(SRC)/head; pwd; $(MAKE) \
131			$(ROOT)/usr/include/dlfcn.h \
132			$(ROOT)/usr/include/gelf.h \
133			$(ROOT)/usr/include/libelf.h \
134			$(ROOT)/usr/include/proc_service.h \
135			$(ROOT)/usr/include/rtld_db.h \
136			$(ROOT)/usr/include/link.h
137		@ cd $(SRC)/lib/libproc; pwd; $(MAKE) install_h
138$(VAR_SPEC_ON)	@ cd $(SRC)/head; pwd;	$(MAKE) \
139$(VAR_SPEC_ON)		$(ROOT)/usr/include/apptrace.h \
140$(VAR_SPEC_ON)		$(ROOT)/usr/include/apptrace_impl.h
141		@ cd $(SRC)/uts/common/sys; pwd; $(MAKE) \
142			$(ROOT)/usr/include/sys/elf.h \
143			$(ROOT)/usr/include/sys/elf_386.h \
144			$(ROOT)/usr/include/sys/elf_M32.h \
145			$(ROOT)/usr/include/sys/elf_SPARC.h \
146			$(ROOT)/usr/include/sys/elf_notes.h \
147			$(ROOT)/usr/include/sys/elf_amd64.h \
148			$(ROOT)/usr/include/sys/elftypes.h \
149			$(ROOT)/usr/include/sys/auxv.h \
150			$(ROOT)/usr/include/sys/auxv_SPARC.h \
151			$(ROOT)/usr/include/sys/auxv_386.h \
152			$(ROOT)/usr/include/sys/link.h \
153			$(ROOT)/usr/include/sys/note.h \
154			$(ROOT)/usr/include/sys/systeminfo.h
155$(VAR_SPEC_ON)	@ cd $(SRC)/uts/common/sys; pwd; $(MAKE) \
156$(VAR_SPEC_ON)		$(ROOT)/usr/include/sys/elf_ia64.h
157		@ cd $(SRC)/uts/$(M32)/sys; pwd; $(MAKE) \
158			$(ROOT)/usr/include/sys/machelf.h
159$(VAR_SPEC_ON)	@ cd $(SRC)/lib/abi; pwd; $(MAKE) spec
160		@ cd ../tools/$(MACH); pwd; $(MAKE) sgsmsg piglatin
161		@ cd ..; pwd; $(MAKE) _msg_sgsmsg
162		@ cd ..; pwd; $(MAKE) native-add
163		@ cd ../libconv; pwd; $(MAKE) all
164		@ cd ../link_audit; pwd; $(MAKE) package
165		@ cd ../messages/$(MACH); pwd; $(MAKE) test
166		@ cd ../sgsdemangler; pwd; $(MAKE) all
167
168lint: FRC
169	$(MAKE) -f Makefile.lint lint
170
171FRC:
172