Makefile revision ad374758
1ad374758Smrg#	$NetBSD: Makefile,v 1.28 2001/08/19 17:26:42 mrg Exp $
23cbc2fa9Smrg#
3b1c0e358Sfredb# Targets & Variables
4b1c0e358Sfredb#
5b1c0e358Sfredb# build: Clean out xsrc, and build and install everything that goes
6b1c0e358Sfredb#	under /usr/X11R6.
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
13b1c0e358Sfredb#	them under the ${RELEASEDIR}/binary/sets directory.
14b1c0e358Sfredb#
15b1c0e358Sfredb#  DESTDIR -- Same as for build. Mandatory for building a release.
16b1c0e358Sfredb#  RELEASEDIR -- As explained above.
17b1c0e358Sfredb#  BUILD_DONE -- If set, assume build is already done.
18b1c0e358Sfredb#  INSTALL_DONE -- If set, assume binaries to tar up are to be found
19b1c0e358Sfredb#	in ${DESTDIR} already.
20b1c0e358Sfredb#  BSDSRCDIR -- Set to the full path to the main source tree, /usr/src
21b1c0e358Sfredb#	by default. Needed to find ./distrib/sets.
22b1c0e358Sfredb#
23b1c0e358Sfredb# cleandir distclean: Remove all generated files from under xsrc.
24b1c0e358Sfredb#
25b1c0e358Sfredb# clean: Remove object files, but keep imake generated makefiles.
26b1c0e358Sfredb
2719cf06cfShubertf.include <bsd.own.mk>
2819cf06cfShubertf
291ed2dcdcStron.if defined(USE_XF86_4) && (${USE_XF86_4} != no)
302acc5bd1StronXCDIR=	xfree/xc
312acc5bd1Stron.else
322acc5bd1StronXCDIR=	xc
332acc5bd1Stron.endif
342acc5bd1Stron
35a63b1a70Sfredb.MAIN: all
36456141b6Sthorpejall: all-xc all-contrib all-local
37b583040eStv
38b583040eStvall-xc:
392acc5bd1Stron.if exists(${XCDIR}/xmakefile) && defined(UPDATE)
402acc5bd1Stron	@cd ${XCDIR} && ${MAKE} Everything
41b583040eStv.else
422acc5bd1Stron	@-rm -f ${XCDIR}/xmakefile
432acc5bd1Stron	@cd ${XCDIR} && ${MAKE} World
44b583040eStv.endif
453cbc2fa9Smrg
463cbc2fa9Smrgall-contrib:
47f766d8bfSfredb	@if [ ! -f contrib/Makefile ]; then \
482acc5bd1Stron	  cd contrib && PATH=../${XCDIR}/config/imake:$$PATH \
4988a49676Stron	    sh ../${XCDIR}/config/util/xmkmf -a ../${XCDIR} \
5088a49676Stron	       ${.CURDIR}/contrib; \
51f766d8bfSfredb	fi
52b583040eStv	@cd contrib && ${MAKE}
533cbc2fa9Smrg
54456141b6Sthorpejall-local:
55456141b6Sthorpej	@if [ ! -f local/Makefile ]; then \
562acc5bd1Stron	  cd local && PATH=../${XCDIR}/config/imake:$$PATH \
5788a49676Stron	    sh ../${XCDIR}/config/util/xmkmf -a ../${XCDIR} \
5888a49676Stron	      ${.CURDIR}/local; \
59456141b6Sthorpej	fi
60456141b6Sthorpej	@cd local && ${MAKE}
61456141b6Sthorpej
62456141b6Sthorpejinstall: install-xc install-contrib install-local
633cbc2fa9Smrg
643cbc2fa9Smrginstall-xc:
6554c4591aSfredb	@cd ${XCDIR} && \
6654c4591aSfredb	  ${MAKE} DESTDIR="${DESTDIR}" install && \
6754c4591aSfredb	  ${MAKE} DESTDIR="${DESTDIR}" install.man
683cbc2fa9Smrg
693cbc2fa9Smrginstall-contrib:
7054c4591aSfredb	@cd contrib && \
7154c4591aSfredb	  ${MAKE} DESTDIR="${DESTDIR}" install && \
7254c4591aSfredb	  ${MAKE} DESTDIR="${DESTDIR}" install.man
735c5d6177Smrg
74456141b6Sthorpejinstall-local:
7554c4591aSfredb	@cd local && \
7654c4591aSfredb	  ${MAKE} DESTDIR="${DESTDIR}" install && \
7754c4591aSfredb	  ${MAKE} DESTDIR="${DESTDIR}" install.man
78456141b6Sthorpej
797e6ae19cStronclean:
802acc5bd1Stron	@-cd ${XCDIR} && ${MAKE} clean
81b583040eStv	@-cd contrib && ${MAKE} clean
8295c20adcStron	@-cd local && ${MAKE} clean
8390360741Stv
8434e496fbSfredbcleandir distclean: clean
852acc5bd1Stron	find ${XCDIR} contrib local -name .depend | xargs rm
862acc5bd1Stron	find ${XCDIR} contrib local -name 'Makefile*' | \
877c7a996aSsimonb	    xargs grep -l "Makefile generated by imake" | xargs rm
882acc5bd1Stron	-rmdir ${XCDIR}/exports
892acc5bd1Stron	rm -f ${XCDIR}/xmakefile
907e6ae19cStron
9190360741Stvbuild:
9234e496fbSfredb.if defined(UPDATE)
93ad374758Smrg	@${MAKE} all && ${MAKE} install
9434e496fbSfredb.else
95ad374758Smrg	@${MAKE} cleandir && ${MAKE} all && ${MAKE} install
9634e496fbSfredb.endif
97b1c0e358Sfredb
98b1c0e358Sfredb# release goo
99b1c0e358Sfredb#
100b1c0e358Sfredb.if !defined(DESTDIR)
101b1c0e358Sfredbrelease snapshot:
102b1c0e358Sfredb	@echo setenv DESTDIR before doing that!
103b1c0e358Sfredb	@false
104b1c0e358Sfredb.elif !defined(RELEASEDIR)
105b1c0e358Sfredbrelease snapshot:
106b1c0e358Sfredb	@echo setenv RELEASEDIR before doing that!
107b1c0e358Sfredb	@false
108b1c0e358Sfredb#
109b1c0e358Sfredb.else
110b1c0e358Sfredb#
111b1c0e358Sfredb.if defined(INSTALL_DONE)
112b1c0e358Sfredbrelease snapshot:
113b1c0e358Sfredb.elif defined(BUILD_DONE)
114b1c0e358Sfredbrelease snapshot: install
115b1c0e358Sfredb.else
116b1c0e358Sfredbrelease snapshot: build
117b1c0e358Sfredb#
118b1c0e358Sfredb.endif # INSTALL_DONE or BUILD_DONE
119b1c0e358Sfredb#
120b1c0e358Sfredb	${INSTALL} -d -m 755 -o root -g wheel ${RELEASEDIR}/binary/sets
121c1daac4bSwiz.if (${MACHINE} == "amiga") && !(defined(USE_XF86_4) && (${USE_XF86_4} != no))
1222acc5bd1Stron	cd ${XCDIR}/programs/Xserver/hw/netbsd/amiga && \
12399e715b7Sis		${INSTALL} -c -m 644 INSTALL.X11 ${RELEASEDIR}
124761ef8e1Sis.endif
125231ff5f5Sfredb	sh ${BSDSRCDIR}/distrib/sets/maketars -x -s ${BSDSRCDIR}/distrib/sets \
126b1c0e358Sfredb		-d ${DESTDIR} -t ${RELEASEDIR}/binary/sets
127b1c0e358Sfredb	cd ${RELEASEDIR}/binary/sets && \
128b1c0e358Sfredb		cksum -o 1 *.tgz >BSDSUM && \
129b1c0e358Sfredb		cksum *.tgz >CKSUM && \
130b1c0e358Sfredb		cksum -m *.tgz >MD5 && \
131b1c0e358Sfredb		cksum -o 2 *.tgz >SYSVSUM
132b1c0e358Sfredb#
133e99d7581Sfredb.endif # DESTDIR and RELEASEDIR check
134