xref: /illumos-gate/usr/src/cmd/svc/seed/Makefile (revision 2269adc829a7137a530bfdc47ad411458c27185f)
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
57c478bd9Sstevel@tonic-gate# Common Development and Distribution License, Version 1.0 only
67c478bd9Sstevel@tonic-gate# (the "License").  You may not use this file except in compliance
77c478bd9Sstevel@tonic-gate# with the License.
87c478bd9Sstevel@tonic-gate#
97c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
117c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
127c478bd9Sstevel@tonic-gate# and limitations under the License.
137c478bd9Sstevel@tonic-gate#
147c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
157c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
177c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
187c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
197c478bd9Sstevel@tonic-gate#
207c478bd9Sstevel@tonic-gate# CDDL HEADER END
217c478bd9Sstevel@tonic-gate#
227c478bd9Sstevel@tonic-gate#
237c478bd9Sstevel@tonic-gate# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
247c478bd9Sstevel@tonic-gate# Use is subject to license terms.
257c478bd9Sstevel@tonic-gate#
267c478bd9Sstevel@tonic-gate#ident	"%Z%%M%	%I%	%E% SMI"
277c478bd9Sstevel@tonic-gate
287c478bd9Sstevel@tonic-gateinclude ../../Makefile.cmd
297c478bd9Sstevel@tonic-gate
307c478bd9Sstevel@tonic-gateETCSVC = $(ROOTETC)/svc
317c478bd9Sstevel@tonic-gateLIBSVCSEED = $(ROOT)/lib/svc/seed
32*2269adc8SszhouINSTALLSEED = $(ROOT)/usr/sadm/install
337c478bd9Sstevel@tonic-gate
347c478bd9Sstevel@tonic-gate#
357c478bd9Sstevel@tonic-gate# Because seed repository construction requires a functioning repository, a
367c478bd9Sstevel@tonic-gate# working svccfg(1) binary, and XML support, the following libraries must exist
377c478bd9Sstevel@tonic-gate# on the build system or in the proto area:  libscf, libuutil, and libxml2.
387c478bd9Sstevel@tonic-gate#
397c478bd9Sstevel@tonic-gate
407c478bd9Sstevel@tonic-gate#
41*2269adc8Sszhou# We build and deliver 3 seed repositories:
42*2269adc8Sszhou#	global.db	-- for a standalone Solaris (global zone)
43*2269adc8Sszhou#	nonglobal.db	-- for a Solaris Zone
44*2269adc8Sszhou#	miniroot.db	-- for the install miniroot
45*2269adc8Sszhou# COMMON_DESCRIPTIONS contains manifests needed by all 3 repositories.
46*2269adc8Sszhou# GLOBAL_ZONE_DESCRIPTIONS/NONGLOBAL_ZONE_DESCRIPTIONS/MINIROOT_DESCRIPTIONS
47*2269adc8Sszhou# contain additional manifests needed.
487c478bd9Sstevel@tonic-gate#
49*2269adc8Sszhou
50*2269adc8Sszhou#
51*2269adc8Sszhou# Manifests needed by all seed repositories. If you change this, you
52*2269adc8Sszhou# must test Solaris standalone, Solaris zone, and Install miniroot.
53*2269adc8Sszhou#
54*2269adc8SszhouCOMMON_DESCRIPTIONS = \
557c478bd9Sstevel@tonic-gate	../milestone/boot-archive.xml \
567c478bd9Sstevel@tonic-gate	../milestone/datalink.xml \
577c478bd9Sstevel@tonic-gate	../milestone/devices-local.xml \
587c478bd9Sstevel@tonic-gate	../milestone/identity.xml \
597c478bd9Sstevel@tonic-gate	../milestone/local-fs.xml \
607c478bd9Sstevel@tonic-gate	../milestone/manifest-import.xml \
617c478bd9Sstevel@tonic-gate	../milestone/minimal-fs.xml \
627c478bd9Sstevel@tonic-gate	../milestone/multi-user.xml \
637c478bd9Sstevel@tonic-gate	../milestone/name-services.xml \
647c478bd9Sstevel@tonic-gate	../milestone/network-initial.xml \
657c478bd9Sstevel@tonic-gate	../milestone/network-loopback.xml \
667c478bd9Sstevel@tonic-gate	../milestone/network-physical.xml \
677c478bd9Sstevel@tonic-gate	../milestone/restarter.xml \
687c478bd9Sstevel@tonic-gate	../milestone/root-fs.xml \
697c478bd9Sstevel@tonic-gate	../milestone/single-user.xml \
707c478bd9Sstevel@tonic-gate	../milestone/usr-fs.xml \
717c478bd9Sstevel@tonic-gate	../../rpcbind/bind.xml \
72*2269adc8Sszhou
73*2269adc8Sszhou#
74*2269adc8Sszhou# Additional manifests for standalone Solaris
75*2269adc8Sszhou#
76*2269adc8SszhouGLOBAL_ZONE_DESCRIPTIONS = \
77*2269adc8Sszhou	../milestone/console-login.xml \
78*2269adc8Sszhou	../milestone/datalink-init.xml \
79*2269adc8Sszhou	../milestone/multi-user-server.xml \
80*2269adc8Sszhou	../milestone/aggregation.xml \
817c478bd9Sstevel@tonic-gate	../../cmd-inet/usr.lib/inetd/inetd-upgrade.xml \
827c478bd9Sstevel@tonic-gate	../../utmpd/utmp.xml \
837c478bd9Sstevel@tonic-gate	../../lvm/util/metainit.xml \
847c478bd9Sstevel@tonic-gate	../../ipf/svc/pfil.xml
857c478bd9Sstevel@tonic-gate
86*2269adc8Sszhou#
87*2269adc8Sszhou# Additional manifests for a Solaris zone
88*2269adc8Sszhou#
897c478bd9Sstevel@tonic-gateNONGLOBAL_ZONE_DESCRIPTIONS = \
907c478bd9Sstevel@tonic-gate	../milestone/console-login.xml \
917c478bd9Sstevel@tonic-gate	../milestone/multi-user-server.xml \
927c478bd9Sstevel@tonic-gate	../milestone/aggregation.xml \
937c478bd9Sstevel@tonic-gate	../../utmpd/utmp.xml
947c478bd9Sstevel@tonic-gate
95*2269adc8Sszhou#
96*2269adc8Sszhou# Additional manifests for the install miniroot.
97*2269adc8Sszhou#
98*2269adc8SszhouMINIROOT_DESCRIPTIONS= \
99*2269adc8Sszhou	../milestone/datalink-init.xml \
100*2269adc8Sszhou	../milestone/sysconfig.xml \
101*2269adc8Sszhou	../../cmd-inet/usr.lib/inetd/inetd.xml \
102*2269adc8Sszhou	../../cmd-inet/usr.sbin/login.xml \
103*2269adc8Sszhou	../milestone/network-service.xml \
104*2269adc8Sszhou	../../cmd-inet/usr.sbin/telnet.xml \
105*2269adc8Sszhou	../../../lib/libresolv2/client.xml \
106*2269adc8Sszhou	../../ldapcachemgr/client.xml \
107*2269adc8Sszhou	../../ypcmd/client.xml \
108*2269adc8Sszhou	../../ypcmd/server.xml \
109*2269adc8Sszhou	../../keyserv/keyserv.xml \
110*2269adc8Sszhou	../../rpcsvc/nisplus.xml \
111*2269adc8Sszhou	../../cmd-crypto/scripts/cryptosvc.xml \
112*2269adc8Sszhou	../../nscd/name-service-cache.xml \
113*2269adc8Sszhou	../../syslogd/system-log.xml
114*2269adc8Sszhou
1157c478bd9Sstevel@tonic-gateOWNER = root
1167c478bd9Sstevel@tonic-gateGROUP = sys
1177c478bd9Sstevel@tonic-gateFILEMODE = 0600
1187c478bd9Sstevel@tonic-gateSEEDFILEMODE = 0444		# seeds are not intended for editing, but may
1197c478bd9Sstevel@tonic-gate				# be copied
1207c478bd9Sstevel@tonic-gate
1217c478bd9Sstevel@tonic-gateCONFIGD = ../configd/svc.configd-native
1227c478bd9Sstevel@tonic-gateSVCCFG = ../svccfg/svccfg-native
1237c478bd9Sstevel@tonic-gate
1247c478bd9Sstevel@tonic-gate.KEEP_STATE:
1257c478bd9Sstevel@tonic-gate
126*2269adc8Sszhouall: global.db nonglobal.db miniroot.db
1277c478bd9Sstevel@tonic-gate
1287c478bd9Sstevel@tonic-gate$(CONFIGD): FRC
1297c478bd9Sstevel@tonic-gate	@cd ../configd; pwd; $(MAKE) $(MFLAGS) native
1307c478bd9Sstevel@tonic-gate
1317c478bd9Sstevel@tonic-gate$(SVCCFG): FRC
1327c478bd9Sstevel@tonic-gate	@cd ../svccfg; pwd; $(MAKE) $(MFLAGS) native
1337c478bd9Sstevel@tonic-gate
1347c478bd9Sstevel@tonic-gate../milestone/console-login.xml:
1357c478bd9Sstevel@tonic-gate	@cd ../milestone; pwd; $(MAKE) $(MFLAGS) console-login.xml
1367c478bd9Sstevel@tonic-gate
137*2269adc8Sszhoucommon.db: $(COMMON_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
138*2269adc8Sszhou	$(RM) -f common.db common.db-journal
139*2269adc8Sszhou	for m in $(COMMON_DESCRIPTIONS); do \
140*2269adc8Sszhou		echo $$m; \
141*2269adc8Sszhou		SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
142*2269adc8Sszhou		SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/common.db \
143*2269adc8Sszhou		SVCCFG_CONFIGD_PATH=$(CONFIGD) \
144*2269adc8Sszhou		$(SVCCFG) import $$m; \
145*2269adc8Sszhou	done
146*2269adc8Sszhou
147*2269adc8Sszhouglobal.db: common.db $(GLOBAL_ZONE_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
1487c478bd9Sstevel@tonic-gate	$(RM) -f global.db global.db-journal
149*2269adc8Sszhou	$(CP) common.db global.db
1507c478bd9Sstevel@tonic-gate	for m in $(GLOBAL_ZONE_DESCRIPTIONS); do \
1517c478bd9Sstevel@tonic-gate		echo $$m; \
1527c478bd9Sstevel@tonic-gate		SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
1537c478bd9Sstevel@tonic-gate		SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/global.db \
1547c478bd9Sstevel@tonic-gate		SVCCFG_CONFIGD_PATH=$(CONFIGD) \
1557c478bd9Sstevel@tonic-gate		$(SVCCFG) import $$m; \
1567c478bd9Sstevel@tonic-gate	done
1577c478bd9Sstevel@tonic-gate
158*2269adc8Sszhounonglobal.db: common.db $(NONGLOBAL_ZONE_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
159*2269adc8Sszhou	$(RM) -f nonglobal.db nonglobal.db-journal
160*2269adc8Sszhou	$(CP) common.db nonglobal.db
1617c478bd9Sstevel@tonic-gate	for m in $(NONGLOBAL_ZONE_DESCRIPTIONS); do \
1627c478bd9Sstevel@tonic-gate		echo $$m; \
1637c478bd9Sstevel@tonic-gate		SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
1647c478bd9Sstevel@tonic-gate		SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/nonglobal.db \
1657c478bd9Sstevel@tonic-gate		SVCCFG_CONFIGD_PATH=$(CONFIGD) \
1667c478bd9Sstevel@tonic-gate		$(SVCCFG) import $$m; \
1677c478bd9Sstevel@tonic-gate	done
1687c478bd9Sstevel@tonic-gate
169*2269adc8Sszhouminiroot.db: common.db $(MINIROOT_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
170*2269adc8Sszhou	$(RM) -f miniroot.db miniroot.db-journal
171*2269adc8Sszhou	$(CP) common.db miniroot.db
172*2269adc8Sszhou	for m in $(MINIROOT_DESCRIPTIONS); do \
173*2269adc8Sszhou		echo $$m; \
174*2269adc8Sszhou		SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
175*2269adc8Sszhou		SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/miniroot.db \
176*2269adc8Sszhou		SVCCFG_CONFIGD_PATH=$(CONFIGD) \
177*2269adc8Sszhou		$(SVCCFG) import $$m; \
178*2269adc8Sszhou	done
179*2269adc8Sszhou
180*2269adc8Sszhouinstall: install_global install_nonglobal install_miniroot
1817c478bd9Sstevel@tonic-gate
1827c478bd9Sstevel@tonic-gateinstall_global: global.db
1837c478bd9Sstevel@tonic-gate	$(RM) $(LIBSVCSEED)/global.db
1847c478bd9Sstevel@tonic-gate	$(INS) -f $(LIBSVCSEED) -m $(SEEDFILEMODE) -s global.db
1857c478bd9Sstevel@tonic-gate
1867c478bd9Sstevel@tonic-gateinstall_nonglobal: nonglobal.db
1877c478bd9Sstevel@tonic-gate	$(RM) $(LIBSVCSEED)/nonglobal.db
1887c478bd9Sstevel@tonic-gate	$(INS) -f $(LIBSVCSEED) -m $(SEEDFILEMODE) -s nonglobal.db
1897c478bd9Sstevel@tonic-gate
190*2269adc8Sszhouinstall_miniroot: $(INSTALLSEED) miniroot.db
191*2269adc8Sszhou	$(RM) $(INSTALLSEED)/miniroot.db
192*2269adc8Sszhou	$(INS) -f $(INSTALLSEED) -m $(SEEDFILEMODE) -s miniroot.db
193*2269adc8Sszhou
194*2269adc8Sszhou$(INSTALLSEED):
195*2269adc8Sszhou	$(INS.dir)
196*2269adc8Sszhou
1977c478bd9Sstevel@tonic-gateclean lint:
198*2269adc8Sszhou	$(RM) common.db
1997c478bd9Sstevel@tonic-gate
2007c478bd9Sstevel@tonic-gateclobber:
201*2269adc8Sszhou	$(RM) common.db global.db nonglobal.db miniroot.db
2027c478bd9Sstevel@tonic-gate
2037c478bd9Sstevel@tonic-gateFRC:
204