Annotation of src/etc/Makefile, Revision 1.141
1.141 ! thorpej 1: # $NetBSD: Makefile,v 1.140 2000/03/10 11:59:35 lukem Exp $
1.66 mikel 2: # from: @(#)Makefile 8.7 (Berkeley) 5/25/95
1.1 cgd 3:
1.96 cjs 4: # Environment variables without default values:
5: # DESTDIR must be set before anything in this file will work.
6: # RELEASEDIR is where the tarred up stuff for a snapshot or
7: # release will be placed.
8: #
9: # Environment variables with default values:
10: # LOCALTIME will set the default local time for the system you
11: # build; it determines what /etc/localtime is symlink'd to.
12: # KERNSRCDIR points to kernel source; it is set by default to ../sys,
13: # but can be overridden.
14: # KERNOBJDIR is the kernel build directory, it defaults to
15: # ${KERNSRCDIR}/arch/${MACHINE}/compile/KERNELNAME, but can be
16: # overridden.
17: # KERNCONFDIR is where the configuration files for kernels are found;
18: # default is ${KERNSRCDIR}/arch/${MACHINE}/conf but can be overridden.
1.97 cjs 19: # UPDATE is normally undefined; if defined, don't do a 'make clean'
20: # before kernel compile
1.96 cjs 21: # NO_SENDMAIL is normally undefined; if defined, it will not do a
22: # `make distribution' in the sendmail config file source directory.
23: # EXTRA_KERNELS has a machine-dependent list of kernels to build added
24: # to it, but you may also set this to have extra ones built.
1.119 ross 25: # BUILD_KERNELS are a machine-dependent list of kernels that should just
26: # be built in place but not made into sets or installed, e.g., an
27: # INSTALL kernel used later in src/distrib/.
1.134 erh 28: # CRYPTOPATH is automatically defined by bsd.crypto.mk to be either
29: # ../crypto-us or ../crypto-intl. It controls the building of
30: # the secr set, which can be disabled by setting CRYPTOPATH to
31: # "none".
1.96 cjs 32: #
33: # Targets:
34: # distribution: makes a full NetBSD distribution in DESTDIR. If
35: # INSTALL_DONE is set, it will not do a `make install.'
36: # distrib-dirs: creates an empty NetBSD directory tree in DESTDIR.
37: # Called by distribution.
38: # snapshot: calls distribution, above, and then tars up the files
39: # into a release(7) format in RELEASEDIR. Any port-dependent
40: # stuff for this target is found in etc.${MACHINE}/Makefile.inc.
1.106 cjs 41: # release: a synonym for `snapshot'
1.96 cjs 42:
1.134 erh 43: # For NO_SENDMAIL and INSTPRIV and CRYPTOPATH
1.90 kim 44: .include <bsd.own.mk>
1.134 erh 45: SRCTOP= ..
46: .include <bsd.crypto.mk>
1.90 kim 47:
1.23 cgd 48: TZDIR= /usr/share/zoneinfo
1.90 kim 49: LOCALTIME?= US/Pacific
1.19 deraadt 50:
1.55 perry 51: # setting NOOBJ prevents "make obj" from doing anything;
52: # an objdir would break the installation stuff below
1.101 lukem 53: MKOBJ= no
1.1 cgd 54:
1.80 jonathan 55: # MD Makefile.inc may append MD targets to BIN[123]. Make sure all
56: # are empty, to preserve the old semantics of setting them below with "=".
57: BIN1=
58: BIN2=
59: BIN3=
60:
1.117 simonb 61: # Directories to build in ${RELEASEDIR}. MD Makefile.inc files can
62: # add to this.
63: # NOTE: Parent directories must be listed before subdirectories.
64: INSTALLATION_DIRS= \
65: binary binary/sets binary/kernel binary/security installation
66:
1.71 cjs 67: .if exists(etc.${MACHINE}/Makefile.inc)
68: .include "etc.${MACHINE}/Makefile.inc"
69: .endif
1.32 jtc 70:
1.96 cjs 71: # Use multiple jobs for kernel builds, if NBUILDJOBS set.
72: # (Taken from src/Makefile.)
73: .if defined(NBUILDJOBS)
74: _J= -j${NBUILDJOBS}
75: .endif
76:
1.21 cgd 77: # -rw-r--r--
78: BINOWN= root
79: BINGRP= wheel
1.131 veego 80: BIN1+= bootptab changelist csh.cshrc csh.login csh.logout daily \
81: daily.conf dm.conf floppytab ftpchroot ftpusers ftpwelcome \
82: gettytab group hosts hosts.lpd inetd.conf lkm.conf \
83: mailer.conf man.conf monthly monthly.conf mrouted.conf \
84: netstart networks newsyslog.conf nsswitch.conf ntp.conf \
85: phones printcap profile protocols rbootd.conf rc rc.conf \
86: rc.lkm rc.local rc.subr rc.shutdown rc.wscons remote rpc \
87: security security.conf services shells syslog.conf weekly \
88: weekly.conf wscons.conf \
1.109 drochner 89: etc.${MACHINE}/ttys etc.${MACHINE}/disktab
1.105 mycroft 90:
1.121 fvdl 91: .if (${MACHINE_ARCH} == "m68k") || \
1.105 mycroft 92: (${MACHINE_ARCH} == "ns32k") || \
93: (${MACHINE_ARCH} == "vax") || \
94: (${MACHINE_ARCH} == "arm32")
1.129 christos 95: BIN1+= ld.so.conf
96: .elif exists(etc.${MACHINE_ARCH}/ld.so.conf)
1.132 jlam 97: BIN1+= etc.${MACHINE_ARCH}/ld.so.conf
1.105 mycroft 98: .endif
1.120 itojun 99:
100: # IPv6
101: BIN1+= rtadvd.conf
1.1 cgd 102:
1.46 deraadt 103: # -rw-rw-r--
1.80 jonathan 104: BIN2+= motd
1.1 cgd 105:
1.77 mycroft 106: # -rw-------
1.80 jonathan 107: BIN3+= hosts.equiv
1.77 mycroft 108:
1.138 itojun 109: NAMEDB= 127 root.cache named.conf loopback.v6
1.1 cgd 110: PCS= pcs750.bin
111:
1.88 lukem 112: all clean cleandir depend distclean etc includes install lint:
1.1 cgd 113:
1.34 cgd 114: .ifndef DESTDIR
1.106 cjs 115: distribution distrib-dirs release snapshot:
1.36 cgd 116: @echo setenv DESTDIR before doing that!
1.34 cgd 117: @false
118: .else
1.7 cgd 119: distribution: distrib-dirs
1.87 perry 120: .if !defined(INSTALL_DONE)
1.107 scottr 121: (cd ..; ${MAKE} _DISTRIB= includes)
122: (cd ..; ${MAKE} _DISTRIB= install)
1.87 perry 123: .endif
1.124 simonb 124: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 644 ${BIN1} \
125: ${DESTDIR}/etc
126: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 664 ${BIN2} \
127: ${DESTDIR}/etc
128: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 600 ${BIN3} \
129: ${DESTDIR}/etc
130: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 644 aliases \
131: ${DESTDIR}/etc
132: ${INSTALL} ${INSTPRIV} -c -o root -g wheel -m 600 crontab \
1.56 thorpej 133: ${DESTDIR}/var/cron/tabs/root
1.124 simonb 134: ${INSTALL} ${INSTPRIV} -c -o root -g wheel -m 600 master.passwd \
135: ${DESTDIR}/etc
1.68 perry 136: pwd_mkdb -p -d ${DESTDIR}/ ${DESTDIR}/etc/master.passwd
1.124 simonb 137: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 555 \
1.1 cgd 138: MAKEDEV.local etc.${MACHINE}/MAKEDEV ${DESTDIR}/dev
1.124 simonb 139: ${INSTALL} ${INSTPRIV} -c -o root -g wheel -m 600 minfree \
1.73 perry 140: ${DESTDIR}/var/crash
1.1 cgd 141: (cd root; \
1.124 simonb 142: ${INSTALL} ${INSTPRIV} -c -o root -g wheel -m 644 dot.cshrc \
1.1 cgd 143: ${DESTDIR}/root/.cshrc; \
1.124 simonb 144: ${INSTALL} ${INSTPRIV} -c -o root -g wheel -m 600 dot.klogin \
1.1 cgd 145: ${DESTDIR}/root/.klogin; \
1.124 simonb 146: ${INSTALL} ${INSTPRIV} -c -o root -g wheel -m 644 dot.login \
1.1 cgd 147: ${DESTDIR}/root/.login; \
1.124 simonb 148: ${INSTALL} ${INSTPRIV} -c -o root -g wheel -m 644 dot.profile \
1.1 cgd 149: ${DESTDIR}/root/.profile; \
1.128 mycroft 150: ${INSTALL} ${INSTPRIV} -c -o root -g wheel -m 644 dot.shrc \
151: ${DESTDIR}/root/.shrc; \
1.1 cgd 152: rm -f ${DESTDIR}/.cshrc ${DESTDIR}/.profile; \
153: ln ${DESTDIR}/root/.cshrc ${DESTDIR}/.cshrc; \
154: ln ${DESTDIR}/root/.profile ${DESTDIR}/.profile)
1.83 mrg 155: (cd mtree; ${MAKE} install)
1.63 mikel 156: (cd namedb; \
1.124 simonb 157: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 644 \
158: ${NAMEDB} ${DESTDIR}/etc/namedb)
1.140 lukem 159: (cd rc.d; ${MAKE} install)
1.19 deraadt 160: /bin/rm -f ${DESTDIR}/etc/localtime
161: ln -s ${TZDIR}/${LOCALTIME} ${DESTDIR}/etc/localtime
1.48 deraadt 162: /bin/rm -f ${DESTDIR}/etc/rmt
163: ln -s /usr/sbin/rmt ${DESTDIR}/etc/rmt
1.124 simonb 164: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g operator -m 664 /dev/null \
1.32 jtc 165: ${DESTDIR}/etc/dumpdates
1.124 simonb 166: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g operator -m 600 /dev/null \
1.44 deraadt 167: ${DESTDIR}/etc/skeykeys
1.127 perry 168: ${INSTALL} ${INSTPRIV} -c -o root -g wheel -m 600 /dev/null \
169: ${DESTDIR}/var/at/at.deny
1.124 simonb 170: ${INSTALL} ${INSTPRIV} -c -o root -g wheel -m 600 /dev/null \
1.38 cgd 171: ${DESTDIR}/var/cron/log
1.124 simonb 172: ${INSTALL} ${INSTPRIV} -c -o nobody -g ${BINGRP} -m 664 /dev/null \
1.32 jtc 173: ${DESTDIR}/var/db/locate.database
1.124 simonb 174: ${INSTALL} ${INSTPRIV} -c -o uucp -g dialer -m 640 /dev/null \
1.113 fair 175: ${DESTDIR}/var/log/aculog
1.124 simonb 176: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 600 /dev/null \
1.69 perry 177: ${DESTDIR}/var/log/authlog
1.124 simonb 178: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 664 /dev/null \
1.32 jtc 179: ${DESTDIR}/var/log/lastlog
1.124 simonb 180: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 640 /dev/null \
1.32 jtc 181: ${DESTDIR}/var/log/lpd-errs
1.124 simonb 182: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 600 /dev/null \
1.32 jtc 183: ${DESTDIR}/var/log/maillog
1.124 simonb 184: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \
1.32 jtc 185: ${DESTDIR}/var/log/messages
1.124 simonb 186: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 600 /dev/null \
1.58 lukem 187: ${DESTDIR}/var/log/secure
1.137 mycroft 188: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \
189: ${DESTDIR}/var/log/sendmail.st
1.124 simonb 190: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \
1.32 jtc 191: ${DESTDIR}/var/log/wtmp
1.124 simonb 192: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 600 /dev/null \
1.69 perry 193: ${DESTDIR}/var/log/xferlog
1.124 simonb 194: ${INSTALL} ${INSTPRIV} -c -o daemon -g staff -m 664 /dev/null \
1.39 cgd 195: ${DESTDIR}/var/msgs/bounds
1.124 simonb 196: ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} -g ${BINGRP} -m 664 /dev/null \
1.32 jtc 197: ${DESTDIR}/var/run/utmp
1.124 simonb 198: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 199: ${DESTDIR}/var/games/atc_scores
1.124 simonb 200: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 201: ${DESTDIR}/var/games/battlestar.log
1.124 simonb 202: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 203: ${DESTDIR}/var/games/cfscores
1.124 simonb 204: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.82 perry 205: ${DESTDIR}/var/games/criblog
1.124 simonb 206: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 207: ${DESTDIR}/var/games/robots_roll
1.124 simonb 208: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 209: ${DESTDIR}/var/games/rogue.scores
1.124 simonb 210: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 211: ${DESTDIR}/var/games/saillog
1.124 simonb 212: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 213: ${DESTDIR}/var/games/snakerawscores
1.124 simonb 214: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 215: ${DESTDIR}/var/games/snake.log
1.124 simonb 216: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 217: ${DESTDIR}/var/games/tetris.scores
1.124 simonb 218: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 219: ${DESTDIR}/var/games/larn/llog12.0
1.124 simonb 220: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 221: ${DESTDIR}/var/games/larn/lscore12.0
1.124 simonb 222: ${INSTALL} ${INSTPRIV} -c -o games -g games -m 664 /dev/null \
1.81 mrg 223: ${DESTDIR}/var/games/larn/playerids
1.124 simonb 224: (cd etc.${MACHINE}; ${INSTALL} ${INSTPRIV} -c -o ${BINOWN} \
225: -g ${BINGRP} -m 444 fstab.* ${DESTDIR}/etc)
1.49 tls 226: (cd ${DESTDIR}/dev; ./MAKEDEV all)
1.62 perry 227: (cd ../usr.bin/mail; ${MAKE} distribution)
1.90 kim 228: .ifndef NO_SENDMAIL
1.133 tron 229: (cd ../gnu/usr.sbin/sendmail/cf/cf; ${MAKE} distribution)
1.139 joda 230: ${DESTDIR}/usr/libexec/sendmail/sendmail -C ${DESTDIR}/etc/sendmail.cf -O AliasFile=${DESTDIR}/etc/aliases -O DontBlameSendmail=groupwritabledirpathsafe -bi
1.90 kim 231: .endif
1.112 perry 232: .ifdef BUILD_POSTFIX
1.110 mrg 233: (cd ../usr.sbin/postfix/etc; ${MAKE} distribution)
1.111 simonb 234: .endif
1.1 cgd 235:
236:
1.7 cgd 237: distrib-dirs:
1.124 simonb 238: ${INSTALL} ${INSTPRIV} -d -o root -g wheel -m 755 ${DESTDIR}
1.67 perry 239: -mtree -def mtree/NetBSD.dist -p ${DESTDIR}/ -u
1.28 jtc 240: cd ${DESTDIR}; rm -f sys; ln -s usr/src/sys sys
1.99 cjs 241:
1.96 cjs 242: .if !defined(RELEASEDIR)
1.117 simonb 243: release snapshot snap_pre snap_md_pre snap_md_post:
1.96 cjs 244: @echo setenv RELEASEDIR before doing that!
245: @false
246: .else
1.117 simonb 247: release snapshot: distribution snap_pre snap_md_pre snap_kern snap_md_post
1.141 ! thorpej 248: (cd ../distrib/sets; ${MAKE} sets)
1.123 is 249: sh ../distrib/sets/makesums -t ${RELEASEDIR}/binary/kernel '*.gz'
1.141 ! thorpej 250:
! 251: cryptoset: distribution snap_pre snap_md_pre snap_kern snap_md_post
! 252: (cd ../distrib/sets; ${MAKE} cryptoset)
1.41 cgd 253:
254: snap_pre:
1.96 cjs 255: /bin/rm -rf ${RELEASEDIR}
1.124 simonb 256: ${INSTALL} ${INSTPRIV} -d -o root -g wheel -m 755 ${RELEASEDIR}
1.117 simonb 257: .for dir in ${INSTALLATION_DIRS}
1.124 simonb 258: ${INSTALL} ${INSTPRIV} -d -o root -g wheel -m 755 ${RELEASEDIR}/${dir}
1.117 simonb 259: .endfor
1.96 cjs 260:
261: # the regular expression does a basename(1) on .CURDIR so that we don't
262: # have to keep looking up .. at compile time.
263: KERNSRCDIR?= ${.CURDIR:C/[^\/]+$//}sys
264: KERNOBJDIR?= ${KERNSRCDIR}/arch/${MACHINE}/compile
265: KERNCONFDIR?= ${KERNSRCDIR}/arch/${MACHINE}/conf
266:
267: # This target builds the GENERIC kernel (which must exist for all
268: # ports) and puts it in binary/sets/kern.tgz, and also builds any
1.114 fair 269: # kernels specified in EXTRA_KERNELS. Since NetBSD's kernel build
270: # system can create more than one kernel from a single configuration
271: # we figure out how many there are, what they're named, and move them
272: # to binary/kernel/${KERNEL}.${CONFIGFILE}.gz - most often KERNEL will
1.116 fair 273: # simply be "netbsd". If we don't find the "config" line, assume the
274: # kernel will be "netbsd" (some config files are simple additions on
275: # GENERIC, and just include it).
276: #
277: GETKERNELAWK= awk '/^config/ {print $$2; found=1} \
278: END{ if (found == 0) print "netbsd"; }'
1.96 cjs 279: #
1.118 gwr 280: .if !target(snap_kern)
1.96 cjs 281: snap_kern:
1.135 mycroft 282: .for configfile in GENERIC ${EXTRA_KERNELS} ${BUILD_KERNELS}
1.125 sommerfe 283: cd ${KERNCONFDIR} && ${CONFIG} \
1.135 mycroft 284: -b ${KERNOBJDIR}/${configfile} -s ${KERNSRCDIR} ${configfile}
1.97 cjs 285: .ifndef UPDATE
1.135 mycroft 286: cd ${KERNOBJDIR}/${configfile} && ${MAKE} clean
1.96 cjs 287: .endif
1.135 mycroft 288: cd ${KERNOBJDIR}/${configfile} && ${MAKE} depend && ${MAKE} ${_J}
289: .endfor # kernels
1.96 cjs 290: cd ${KERNOBJDIR}/GENERIC && \
1.116 fair 291: tar cf - `${GETKERNELAWK} ${KERNCONFDIR}/GENERIC` |\
1.96 cjs 292: gzip -c -9 > ${RELEASEDIR}/binary/sets/kern.tgz
1.135 mycroft 293: .for configfile in GENERIC ${EXTRA_KERNELS}
1.114 fair 294: cd ${KERNOBJDIR}/${configfile} && \
1.116 fair 295: for kernel in `${GETKERNELAWK} \
1.114 fair 296: ${KERNCONFDIR}/${configfile}` ; { \
297: gzip -c -9 < $${kernel} > \
298: ${RELEASEDIR}/binary/kernel/$${kernel}.${configfile}.gz ; }
1.96 cjs 299: .endfor # EXTRA_KERNELS
1.118 gwr 300: .endif # no target(snap_kern)
1.108 drochner 301:
1.96 cjs 302: .endif # RELEASEDIR check
1.41 cgd 303:
1.117 simonb 304: snap_md_pre:
305: # nothing here -- look in the machine-dependent Makefile.inc
306:
307: snap_md_post:
1.41 cgd 308: # nothing here -- look in the machine-dependent Makefile.inc
309:
1.34 cgd 310: .endif # DESTDIR check
1.7 cgd 311:
1.1 cgd 312: .include <bsd.prog.mk>
CVSweb <webmaster@jp.NetBSD.org>