11195Srgrimes#	from: @(#)Makefile	5.11 (Berkeley) 5/21/91
250472Speter# $FreeBSD$
337Srgrimes
4156813Sru.include <bsd.own.mk>
5156813Sru
6156813Sru.if ${MK_SENDMAIL} != "no"
738103SpeterSUBDIR=	sendmail
873251Sgshapiro.endif
938103Speter
10265037Sjmmv.if ${MK_TESTS} != "no"
11265037SjmmvSUBDIR+=tests
12265037Sjmmv.endif
13265037Sjmmv
14270892StraszBIN1=	auto_master \
15270892Strasz	crontab \
16231849Seadler	devd.conf \
17231849Seadler	devfs.conf \
18231849Seadler	ddb.conf \
19231849Seadler	dhclient.conf \
20231849Seadler	disktab \
21231849Seadler	fbtab \
22231849Seadler	ftpusers \
23231849Seadler	gettytab \
24231849Seadler	group \
25231849Seadler	hosts \
26231849Seadler	hosts.allow \
27231849Seadler	hosts.equiv \
28231849Seadler	inetd.conf \
29231849Seadler	libalias.conf \
30253853Sjlh	libmap.conf \
31231849Seadler	login.access \
32231849Seadler	login.conf \
33231849Seadler	mac.conf \
34231849Seadler	motd \
35231849Seadler	netconfig \
36231849Seadler	network.subr \
37231849Seadler	networks \
38231849Seadler	newsyslog.conf \
39231849Seadler	nsswitch.conf \
40231849Seadler	phones \
41231849Seadler	profile \
42231849Seadler	protocols \
43231849Seadler	rc \
44231849Seadler	rc.bsdextended \
45231849Seadler	rc.firewall \
46231849Seadler	rc.initdiskless \
47231849Seadler	rc.sendmail \
48231849Seadler	rc.shutdown \
49231849Seadler	rc.subr \
50231849Seadler	remote \
51231849Seadler	rpc \
52231849Seadler	services \
53231849Seadler	shells \
54231849Seadler	sysctl.conf \
55231849Seadler	syslog.conf \
56231849Seadler	termcap.small
57155210Srwatson
58255425Sdes.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "powerpc64"
59255413SdesBIN1+=	libmap32.conf
60255385Sdes.endif
61255385Sdes
62199249Sed.if exists(${.CURDIR}/etc.${MACHINE}/ttys)
63199249SedBIN1+=	etc.${MACHINE}/ttys
64209134Simp.elif exists(${.CURDIR}/etc.${MACHINE_ARCH}/ttys)
65209134SimpBIN1+=	etc.${MACHINE_ARCH}/ttys
66209134Simp.elif exists(${.CURDIR}/etc.${MACHINE_CPUARCH}/ttys)
67209134SimpBIN1+=	etc.${MACHINE_CPUARCH}/ttys
68199249Sed.else
69209134Simp.error etc.MACHINE/ttys missing
70199249Sed.endif
71199249Sed
72155210SrwatsonOPENBSMDIR=			${.CURDIR}/../contrib/openbsm
73155210SrwatsonBSM_ETC_OPEN_FILES=		${OPENBSMDIR}/etc/audit_class \
74155210Srwatson				${OPENBSMDIR}/etc/audit_event
75155210SrwatsonBSM_ETC_RESTRICTED_FILES=	${OPENBSMDIR}/etc/audit_control \
76155210Srwatson				${OPENBSMDIR}/etc/audit_user
77155210SrwatsonBSM_ETC_EXEC_FILES=		${OPENBSMDIR}/etc/audit_warn
78155210SrwatsonBSM_ETC_DIR=			${DESTDIR}/etc/security
79155210Srwatson
80183242Ssam# NB: keep these sorted by MK_* knobs
81183242Ssam
82183242Ssam.if ${MK_AMD} != "no"
83183242SsamBIN1+= amd.map
84183242Ssam.endif
85183242Ssam
86183242Ssam.if ${MK_APM} != "no"
87183242SsamBIN1+= apmd.conf
88183242Ssam.endif
89183242Ssam
90183242Ssam.if ${MK_FREEBSD_UPDATE} != "no"
91183242SsamBIN1+= freebsd-update.conf
92183242Ssam.endif
93183242Ssam
94183242Ssam.if ${MK_LOCATE} != "no"
95183242SsamBIN1+=	${.CURDIR}/../usr.bin/locate/locate/locate.rc
96183242Ssam.endif
97183242Ssam
98156813Sru.if ${MK_LPR} != "no"
99183242SsamBIN1+=	hosts.lpd printcap
100121911Smarkm.endif
10137Srgrimes
102183242Ssam.if ${MK_MAIL} != "no"
103183242SsamBIN1+=	${.CURDIR}/../usr.bin/mail/misc/mail.rc
104158115Sume.endif
105158115Sume
106193635Sedwin.if ${MK_NTP} != "no"
107193635SedwinBIN1+=	ntp.conf
108193635Sedwin.endif
109193635Sedwin
110156813Sru.if ${MK_OPENSSH} != "no"
11157488SpeterSSH=	${.CURDIR}/../crypto/openssh/ssh_config \
11274837Sgreen	${.CURDIR}/../crypto/openssh/sshd_config \
113124214Sdes	${.CURDIR}/../crypto/openssh/moduli
11457459Smarkm.endif
115156813Sru.if ${MK_OPENSSL} != "no"
11660677SkrisSSL=	${.CURDIR}/../crypto/openssl/apps/openssl.cnf
11760677Skris.endif
11860677Skris
119183242Ssam.if ${MK_NS_CACHING} != "no"
120183242SsamBIN1+= nscd.conf
121183242Ssam.endif
122183242Ssam
123183242Ssam.if ${MK_PORTSNAP} != "no"
124183242SsamBIN1+= portsnap.conf
125183242Ssam.endif
126183242Ssam
127183242Ssam.if ${MK_PF} != "no"
128183242SsamBIN1+= pf.os
129183242Ssam.endif
130183242Ssam
131184343Ssam.if ${MK_TCSH} != "no"
132184343SsamBIN1+= csh.cshrc csh.login csh.logout
133184343Ssam.endif
134184343Ssam
135183268Ssam.if ${MK_WIRELESS} != "no"
136183268SsamBIN1+= regdomain.xml
137183268Ssam.endif
138183268Ssam
13982521Salex# -rwxr-xr-x root:wheel, for the new cron root:wheel
140108002SgreenBIN2=	netstart pccard_ether rc.suspend rc.resume
141147Srgrimes
142196767SflzMTREE=	BSD.include.dist BSD.root.dist BSD.usr.dist BSD.var.dist
143260013Sjmmv.if ${MK_TESTS} != "no"
144260013SjmmvMTREE+=	BSD.tests.dist
145260013Sjmmv.endif
146156813Sru.if ${MK_SENDMAIL} != "no"
14795144SgshapiroMTREE+=	BSD.sendmail.dist
14895144Sgshapiro.endif
149251512Semaste.if ${MK_DEBUG_FILES} != "no"
150251512SemasteMTREE+=	BSD.debug.dist
151251512Semaste.endif
15299451Sru
15399451SruPPPCNF=	ppp.conf
15499451Sru
155156813Sru.if ${MK_SENDMAIL} == "no"
156117292SgshapiroETCMAIL=mailer.conf aliases
157117292Sgshapiro.else
15864598SgshapiroETCMAIL=Makefile README mailer.conf access.sample virtusertable.sample \
15964598Sgshapiro	mailertable.sample aliases
160117292Sgshapiro.endif
16137Srgrimes
162263Srgrimes# Special top level files for FreeBSD
16399449SruFREEBSD=COPYRIGHT
164263Srgrimes
165245825Sbrooks# Sanitize DESTDIR
166245825SbrooksDESTDIR:=	${DESTDIR:C://*:/:g}
167245825Sbrooks
168124831Sruafterinstall:
169156813Sru.if ${MK_MAN} != "no"
170173135Syar	${_+_}cd ${.CURDIR}/../share/man; ${MAKE} makedb
171124831Sru.endif
172124831Sru
1734487Sphkdistribute:
174270187Sian	# Avoid installing tests here; "make distribution" will do this and
175270187Sian	# correctly place them in the right location.
176271605Sgjb	${_+_}cd ${.CURDIR} ; ${MAKE} -DNO_TESTS install \
177270187Sian	    DESTDIR=${DISTDIR}/${DISTRIBUTION}
178173135Syar	${_+_}cd ${.CURDIR} ; ${MAKE} distribution DESTDIR=${DISTDIR}/${DISTRIBUTION}
1795948Sjkh
180142794Sru.include <bsd.endian.mk>
181142794Sru.if ${TARGET_ENDIANNESS} == "1234"
182152471SruCAP_MKDB_ENDIAN?= -l
183152471SruPWD_MKDB_ENDIAN?= -L
184142794Sru.elif ${TARGET_ENDIANNESS} == "4321"
185152471SruCAP_MKDB_ENDIAN?= -b
186152471SruPWD_MKDB_ENDIAN?= -B
187142794Sru.else
188149515SimpCAP_MKDB_ENDIAN?=
189149515SimpPWD_MKDB_ENDIAN?=
190142794Sru.endif
191142794Sru
192246097Sbrooks.if defined(NO_ROOT)
193246097SbrooksMETALOG.add?=	cat -l >> ${METALOG}
194246097Sbrooks.endif
195246097Sbrooks
1964487Sphkdistribution:
197148282Sru.if !defined(DESTDIR)
198148282Sru	@echo "set DESTDIR before running \"make ${.TARGET}\""
199148282Sru	@false
200148282Sru.endif
20199449Sru	cd ${.CURDIR}; \
202100872Sru	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
20399451Sru		${BIN1} ${DESTDIR}/etc; \
204142794Sru	    cap_mkdb ${CAP_MKDB_ENDIAN} ${DESTDIR}/etc/login.conf; \
205100872Sru	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 755 \
20699451Sru		${BIN2} ${DESTDIR}/etc; \
207100872Sru	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \
208184343Ssam		master.passwd nsmb.conf opieaccess ${DESTDIR}/etc;
209293894Sglebius.if ${MK_BSNMP} != "no"
210293894Sglebius	cd ${.CURDIR}; \
211293894Sglebius	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \
212293894Sglebius		snmpd.config ${DESTDIR}/etc;
213293894Sglebius.endif
214205329Sed.if ${MK_AT} == "no"
215205335Sed	sed -i "" -e 's;.*/usr/libexec/atrun;#&;' ${DESTDIR}/etc/crontab
216205329Sed.endif
217184343Ssam.if ${MK_TCSH} == "no"
218184443Smp	sed -i "" -e 's;/bin/csh;/bin/sh;' ${DESTDIR}/etc/master.passwd
219184343Ssam.endif
220184343Ssam	pwd_mkdb ${PWD_MKDB_ENDIAN} -i -p -d ${DESTDIR}/etc \
221184343Ssam	    ${DESTDIR}/etc/master.passwd
222246097Sbrooks.if defined(NO_ROOT)
223246097Sbrooks	( \
224246097Sbrooks		echo "./etc/login.conf.db type=file mode=0644 uname=root gname=wheel"; \
225246097Sbrooks		echo "./etc/passwd type=file mode=0644 uname=root gname=wheel"; \
226246097Sbrooks		echo "./etc/pwd.db type=file mode=0644 uname=root gname=wheel"; \
227246097Sbrooks		echo "./etc/spwd.db type=file mode=0600 uname=root gname=wheel"; \
228246097Sbrooks	) | ${METALOG.add}
229246097Sbrooks.endif
230270892Strasz	${_+_}cd ${.CURDIR}/autofs; ${MAKE} install
231183242Ssam.if ${MK_BLUETOOTH} != "no"
232173135Syar	${_+_}cd ${.CURDIR}/bluetooth; ${MAKE} install
233183242Ssam.endif
234173135Syar	${_+_}cd ${.CURDIR}/defaults; ${MAKE} install
235186249Sthompsa	${_+_}cd ${.CURDIR}/devd; ${MAKE} install
236173135Syar	${_+_}cd ${.CURDIR}/gss; ${MAKE} install
237173135Syar	${_+_}cd ${.CURDIR}/periodic; ${MAKE} install
238257353Sbdrewery	${_+_}cd ${.CURDIR}/pkg; ${MAKE} install
239173135Syar	${_+_}cd ${.CURDIR}/rc.d; ${MAKE} install
240173135Syar	${_+_}cd ${.CURDIR}/../share/termcap; ${MAKE} etc-termcap
241173135Syar	${_+_}cd ${.CURDIR}/../usr.sbin/rmt; ${MAKE} etc-rmt
242173135Syar	${_+_}cd ${.CURDIR}/pam.d; ${MAKE} install
243155210Srwatson	cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 0444 \
244155210Srwatson	    ${BSM_ETC_OPEN_FILES} ${BSM_ETC_DIR}
245155571Srwatson	cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 0600 \
246155210Srwatson	    ${BSM_ETC_RESTRICTED_FILES} ${BSM_ETC_DIR}
247155210Srwatson	cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 0500 \
248155210Srwatson	    ${BSM_ETC_EXEC_FILES} ${BSM_ETC_DIR}
249255841Sdes.if ${MK_UNBOUND} != "no"
250255841Sdes	if [ ! -e ${DESTDIR}/etc/unbound ]; then \
251255841Sdes		${INSTALL_SYMLINK} ../var/unbound ${DESTDIR}/etc/unbound; \
252255841Sdes	fi
253255841Sdes.endif
254156813Sru.if ${MK_SENDMAIL} != "no"
255173135Syar	${_+_}cd ${.CURDIR}/sendmail; ${MAKE} distribution
25673251Sgshapiro.endif
257156813Sru.if ${MK_OPENSSH} != "no"
258100872Sru	cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
25999451Sru	    ${SSH} ${DESTDIR}/etc/ssh
26057488Speter.endif
261156813Sru.if ${MK_OPENSSL} != "no"
262100872Sru	cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
26399451Sru	    ${SSL} ${DESTDIR}/etc/ssl
26460677Skris.endif
265156813Sru.if ${MK_KERBEROS} != "no"
26699449Sru	cd ${.CURDIR}/root; \
267100872Sru	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
268120709Sphk		dot.k5login ${DESTDIR}/root/.k5login;
269120709Sphk.endif
270120709Sphk	cd ${.CURDIR}/root; \
271120709Sphk	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
272184343Ssam		dot.profile ${DESTDIR}/root/.profile; \
273184343Ssam	    rm -f ${DESTDIR}/.profile; \
274184343Ssam	    ln ${DESTDIR}/root/.profile ${DESTDIR}/.profile
275184343Ssam.if ${MK_TCSH} != "no"
276184343Ssam	cd ${.CURDIR}/root; \
277184343Ssam	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
27899451Sru		dot.cshrc ${DESTDIR}/root/.cshrc; \
279100872Sru	    ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
28099451Sru		dot.login ${DESTDIR}/root/.login; \
281184343Ssam	    rm -f ${DESTDIR}/.cshrc; \
282184343Ssam	    ln ${DESTDIR}/root/.cshrc ${DESTDIR}/.cshrc
283184343Ssam.endif
284100872Sru	cd ${.CURDIR}/mtree; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
2851731Sjkh	    ${MTREE} ${DESTDIR}/etc/mtree
286183242Ssam.if ${MK_PPP} != "no"
287119058Sobrien	cd ${.CURDIR}/ppp; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \
2886177Samurai	    ${PPPCNF} ${DESTDIR}/etc/ppp
289183242Ssam.endif
290183242Ssam.if ${MK_MAIL} != "no"
291100872Sru	cd ${.CURDIR}/mail; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
29264598Sgshapiro	    ${ETCMAIL} ${DESTDIR}/etc/mail
293243101Seadler	if [ -d ${DESTDIR}/etc/mail -a -f ${DESTDIR}/etc/mail/aliases -a \
29464629Sgshapiro	      ! -f ${DESTDIR}/etc/aliases ]; then \
29564629Sgshapiro		ln -s mail/aliases ${DESTDIR}/etc/aliases; \
29664629Sgshapiro	fi
297183242Ssam.endif
298100872Sru	${INSTALL} -o ${BINOWN} -g operator -m 664 /dev/null \
29937Srgrimes	    ${DESTDIR}/etc/dumpdates
300100872Sru	${INSTALL} -o nobody -g ${BINGRP} -m 644 /dev/null \
301147Srgrimes	    ${DESTDIR}/var/db/locate.database
302100872Sru	${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 ${.CURDIR}/minfree \
3031759Sjkh	    ${DESTDIR}/var/crash
304100872Sru	cd ${.CURDIR}/..; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
30599451Sru		${FREEBSD} ${DESTDIR}/
306209228Savg.if ${MK_BOOT} != "no"
307171427Simp.if exists(${.CURDIR}/../sys/${MACHINE}/conf/GENERIC.hints)
308126977Sru	${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
309126977Sru	    ${.CURDIR}/../sys/${MACHINE}/conf/GENERIC.hints \
310126977Sru	    ${DESTDIR}/boot/device.hints
311171427Simp.endif
312209228Savg.endif
313224765Sdougb.if ${MK_NIS} == "no"
314224765Sdougb	sed -i "" -e 's/.*_compat:/# &/' -e 's/compat$$/files/' \
315224765Sdougb		${DESTDIR}/etc/nsswitch.conf
316224765Sdougb.endif
31737Srgrimes
318245440SbrooksMTREE_CMD?=	mtree
319245440Sbrooks
320245565SbrooksMTREES=		mtree/BSD.root.dist		/		\
321245565Sbrooks		mtree/BSD.var.dist		/var		\
322245565Sbrooks		mtree/BSD.usr.dist		/usr		\
323245565Sbrooks		mtree/BSD.include.dist		/usr/include
324251512Semaste.if ${MK_DEBUG_FILES} != "no"
325251512SemasteMTREES+=	mtree/BSD.debug.dist		/usr/lib
326251512Semaste.endif
327218941Suqs.if ${MK_GROFF} != "no"
328245565SbrooksMTREES+=	mtree/BSD.groff.dist		/usr
329218941Suqs.endif
330260013Sjmmv.if ${MK_TESTS} != "no"
331260024SjmmvMTREES+=	mtree/BSD.tests.dist		/usr
332260013Sjmmv.endif
333156813Sru.if ${MK_SENDMAIL} != "no"
334245565SbrooksMTREES+=	mtree/BSD.sendmail.dist		/
33595144Sgshapiro.endif
336245565Sbrooks.for mtree in ${LOCAL_MTREE}
337245565SbrooksMTREES+=	../${mtree}			/
338245565Sbrooks.endfor
339245565Sbrooks
340250116Sbrooksdistrib-dirs: ${MTREES:N/*}
341245565Sbrooks	@set ${MTREES}; \
342245565Sbrooks	while test $$# -ge 2; do \
343245565Sbrooks		m=${.CURDIR}/$$1; \
344245565Sbrooks		shift; \
345245565Sbrooks		d=${DESTDIR}$$1; \
346245565Sbrooks		shift; \
347245565Sbrooks		${ECHO} ${MTREE_CMD} -deU ${MTREE_FOLLOWS_SYMLINKS} \
348245565Sbrooks		    -f $$m -p $$d; \
349245565Sbrooks		${MTREE_CMD} -deU ${MTREE_FOLLOWS_SYMLINKS} -f $$m -p $$d; \
350245565Sbrooks	done; true
351245825Sbrooks.if defined(NO_ROOT)
352245825Sbrooks	@set ${MTREES}; \
353245825Sbrooks	while test $$# -ge 2; do \
354245825Sbrooks		m=${.CURDIR}/$$1; \
355245825Sbrooks		shift; \
356245825Sbrooks		d=$$1; \
357245825Sbrooks		test "$$d" == "/" && d=""; \
358245825Sbrooks		d=${DISTBASE}$$d; \
359245825Sbrooks		shift; \
360246127Sbrooks		${ECHO} "${MTREE_CMD:N-W} -C -f $$m -K uname,gname | " \
361246127Sbrooks		    "sed s#^\.#.$$d# | ${METALOG.add}" ; \
362246127Sbrooks		${MTREE_CMD:N-W} -C -f $$m -K uname,gname | sed s#^\.#.$$d# | \
363246127Sbrooks		    ${METALOG.add} ; \
364245825Sbrooks	done; true
365245825Sbrooks.endif
366247162Sache	${INSTALL_SYMLINK} usr/src/sys ${DESTDIR}/sys
36777993Sache	cd ${DESTDIR}/usr/share/man; \
368245571Sbrooks	for mandir in man*; do \
369245752Sbrooks		${INSTALL_SYMLINK} ../$$mandir \
370245752Sbrooks		    ${DESTDIR}/usr/share/man/en.ISO8859-1/; \
371245752Sbrooks		${INSTALL_SYMLINK} ../$$mandir \
372245752Sbrooks		    ${DESTDIR}/usr/share/man/en.UTF-8/; \
37377993Sache	done
374110663Sache	cd ${DESTDIR}/usr/share/openssl/man; \
375245571Sbrooks	for mandir in man*; do \
376245752Sbrooks		${INSTALL_SYMLINK} ../$$mandir \
377245571Sbrooks		    ${DESTDIR}/usr/share/openssl/man/en.ISO8859-1/; \
378245571Sbrooks	done
379110663Sache	set - `grep "^[a-zA-Z]" ${.CURDIR}/man.alias`; \
380245571Sbrooks	while [ $$# -gt 0 ] ; do \
381245752Sbrooks		${INSTALL_SYMLINK} "$$2" "${DESTDIR}/usr/share/man/$$1"; \
382245752Sbrooks		${INSTALL_SYMLINK} "$$2" \
383245752Sbrooks		    "${DESTDIR}/usr/share/openssl/man/$$1"; \
384110663Sache		shift; shift; \
385110663Sache	done
38677999Sache	set - `grep "^[a-zA-Z]" ${.CURDIR}/nls.alias`; \
387245571Sbrooks	while [ $$# -gt 0 ] ; do \
388245752Sbrooks		${INSTALL_SYMLINK} "$$2" "${DESTDIR}/usr/share/nls/$$1"; \
38911635Sache		shift; shift; \
39077999Sache	done
391147Srgrimes
39248185Ssheldonhetc-examples:
393100872Sru	cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
39499451Sru	    ${BIN1} ${BIN2} nsmb.conf opieaccess \
39599451Sru	    ${DESTDIR}/usr/share/examples/etc
396173135Syar	${_+_}cd ${.CURDIR}/defaults; ${MAKE} install \
397119385Smtm	    DESTDIR=${DESTDIR}/usr/share/examples
39848185Ssheldonh
39937Srgrimes.include <bsd.prog.mk>
400