1ff4f940dSabs#	$NetBSD: Makefile,v 1.45 2021/11/02 22:09:17 abs Exp $
23cbc2fa9Smrg#
3b1c0e358Sfredb# Targets & Variables
4b1c0e358Sfredb#
5b1c0e358Sfredb# build: Clean out xsrc, and build and install everything that goes
6ff4f940dSabs#	under /usr/X11R7.
7b1c0e358Sfredb#
8b1c0e358Sfredb#  DESTDIR -- Set to an alternative directory to install under.
9b1c0e358Sfredb#  UPDATE --  If set, don't make clean first, plus attempt to make
10b1c0e358Sfredb#	only the targets that are out of date.
11b1c0e358Sfredb#
12b1c0e358Sfredb# release snapshot: Same as build, plus tar up the X sets and install
1347e71ac4Stron#	them under the ${RELEASEDIR}/binary/sets directory (NetBSD <=1.6)
1447e71ac4Stron#	or the ${RELEASEDIR}/${MACHINE}/binary/sets directory (NetBSD >1.6).
15b1c0e358Sfredb#
16b1c0e358Sfredb#  DESTDIR -- Same as for build. Mandatory for building a release.
17b1c0e358Sfredb#  RELEASEDIR -- As explained above.
18b1c0e358Sfredb#  BUILD_DONE -- If set, assume build is already done.
19b1c0e358Sfredb#  INSTALL_DONE -- If set, assume binaries to tar up are to be found
20b1c0e358Sfredb#	in ${DESTDIR} already.
21d6a6307bSlukem#  NETBSDSRCDIR -- Set to the full path to the main source tree, /usr/src
22b1c0e358Sfredb#	by default. Needed to find ./distrib/sets.
23b1c0e358Sfredb#
24b1c0e358Sfredb# cleandir distclean: Remove all generated files from under xsrc.
25b1c0e358Sfredb#
26b1c0e358Sfredb# clean: Remove object files, but keep imake generated makefiles.
27b1c0e358Sfredb
2819cf06cfShubertf.include <bsd.own.mk>
2919cf06cfShubertf
3069ee051eStron# Backwards compatibility with NetBSD 1.5 and 1.5.x where NETBSDSRCDIR
3169ee051eStron# doesn't get defined by  "bsd.own.mk".
3269ee051eStronNETBSDSRCDIR?=	${BSDSRCDIR}
3369ee051eStron
342acc5bd1StronXCDIR=	xfree/xc
3581d95bffSlukem
36a63b1a70Sfredb.MAIN: all
37bf6f5851Sjwiseall: all-xc all-local
38b583040eStv
39b583040eStvall-xc:
402acc5bd1Stron.if exists(${XCDIR}/xmakefile) && defined(UPDATE)
412acc5bd1Stron	@cd ${XCDIR} && ${MAKE} Everything
42b583040eStv.else
432acc5bd1Stron	@-rm -f ${XCDIR}/xmakefile
442acc5bd1Stron	@cd ${XCDIR} && ${MAKE} World
45b583040eStv.endif
463cbc2fa9Smrg
47456141b6Sthorpejall-local:
48456141b6Sthorpej	@if [ ! -f local/Makefile ]; then \
492acc5bd1Stron	  cd local && PATH=../${XCDIR}/config/imake:$$PATH \
5088a49676Stron	    sh ../${XCDIR}/config/util/xmkmf -a ../${XCDIR} \
5188a49676Stron	      ${.CURDIR}/local; \
52456141b6Sthorpej	fi
53456141b6Sthorpej	@cd local && ${MAKE}
54456141b6Sthorpej
55bf6f5851Sjwiseinstall: install-xc install-local
563cbc2fa9Smrg
573cbc2fa9Smrginstall-xc:
5854c4591aSfredb	@cd ${XCDIR} && \
5954c4591aSfredb	  ${MAKE} DESTDIR="${DESTDIR}" install && \
6054c4591aSfredb	  ${MAKE} DESTDIR="${DESTDIR}" install.man
613cbc2fa9Smrg
62456141b6Sthorpejinstall-local:
6354c4591aSfredb	@cd local && \
6454c4591aSfredb	  ${MAKE} DESTDIR="${DESTDIR}" install && \
6554c4591aSfredb	  ${MAKE} DESTDIR="${DESTDIR}" install.man
66456141b6Sthorpej
677e6ae19cStronclean:
682acc5bd1Stron	@-cd ${XCDIR} && ${MAKE} clean
6995c20adcStron	@-cd local && ${MAKE} clean
7090360741Stv
7134e496fbSfredbcleandir distclean: clean
72012e3561Stron	find ${XCDIR} local -name .depend | xargs -n5 rm
73012e3561Stron	find ${XCDIR} local -name 'Makefile*' | \
74aea64ab2Sfredb	    xargs -n5 grep -l "Makefile generated by imake" | xargs rm
752acc5bd1Stron	-rmdir ${XCDIR}/exports
76e404178dStron	rm -f ${XCDIR}/xmakefile ${XCDIR}/config/cf/version.def \
77e404178dStron	   ${XCDIR}/config/cf/date.def
787e6ae19cStron
7990360741Stvbuild:
8034e496fbSfredb.if defined(UPDATE)
81ad374758Smrg	@${MAKE} all && ${MAKE} install
8234e496fbSfredb.else
83ad374758Smrg	@${MAKE} cleandir && ${MAKE} all && ${MAKE} install
8434e496fbSfredb.endif
85b1c0e358Sfredb
86b1c0e358Sfredb# release goo
87b1c0e358Sfredb#
88b1c0e358Sfredb.if !defined(DESTDIR)
89b1c0e358Sfredbrelease snapshot:
90b1c0e358Sfredb	@echo setenv DESTDIR before doing that!
91b1c0e358Sfredb	@false
92b1c0e358Sfredb.elif !defined(RELEASEDIR)
93b1c0e358Sfredbrelease snapshot:
94b1c0e358Sfredb	@echo setenv RELEASEDIR before doing that!
95b1c0e358Sfredb	@false
96b1c0e358Sfredb#
97b1c0e358Sfredb.else
98b1c0e358Sfredb#
99b1c0e358Sfredb.if defined(INSTALL_DONE)
100b1c0e358Sfredbrelease snapshot:
101b1c0e358Sfredb.elif defined(BUILD_DONE)
102b1c0e358Sfredbrelease snapshot: install
103b1c0e358Sfredb.else
104b1c0e358Sfredbrelease snapshot: build
105b1c0e358Sfredb#
106b1c0e358Sfredb.endif # INSTALL_DONE or BUILD_DONE
107b1c0e358Sfredb#
1082332351cSmatt	${INSTALL} -d -m 755 -o root -g wheel ${RELEASEDIR}/${MACHINE}/binary/sets
109dabe2211Stron	${INSTALL} -d -m 755 -o root -g wheel ${DESTDIR}/etc/mtree
110c60ab926Stron.if defined(METALOG.add) && !exists(${DESTDIR}/etc/master.passwd)
111eecca19eStron	cd ${NETBSDSRCDIR}/distrib/sets && \
1122332351cSmatt	    sh ./maketars -x -d ${DESTDIR:S,^$,/,} -N ${NETBSDSRCDIR}/etc -t ${RELEASEDIR}/${MACHINE}/binary/sets
113eecca19eStron.else
114d6a6307bSlukem	cd ${NETBSDSRCDIR}/distrib/sets && \
1152332351cSmatt	    sh ./maketars -x -d ${DESTDIR:S,^$,/,} -t ${RELEASEDIR}/${MACHINE}/binary/sets
116eecca19eStron.endif
1172332351cSmatt	cd ${RELEASEDIR}/${MACHINE}/binary/sets && \
118b1c0e358Sfredb		cksum -o 1 *.tgz >BSDSUM && \
119b1c0e358Sfredb		cksum *.tgz >CKSUM && \
120b1c0e358Sfredb		cksum -m *.tgz >MD5 && \
121b1c0e358Sfredb		cksum -o 2 *.tgz >SYSVSUM
122b1c0e358Sfredb#
123e99d7581Sfredb.endif # DESTDIR and RELEASEDIR check
124