Makefile revision 231ff5f5
1231ff5f5Sfredb#	$NetBSD: Makefile,v 1.11 2000/02/05 00:56:16 fredb 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
27b1c0e358SfredbBSDSRCDIR?=	/usr/src
283cbc2fa9Smrg
29b583040eStvall: all-xc all-contrib
30b583040eStv
31b583040eStvall-xc:
3234e496fbSfredb.if exists(xc/xmakefile) && defined(UPDATE)
3334e496fbSfredb	@cd xc && ${MAKE} Everything
34b583040eStv.else
3534e496fbSfredb	@-rm -f xc/xmakefile
36b583040eStv	@cd xc && ${MAKE} World
37b583040eStv.endif
383cbc2fa9Smrg
393cbc2fa9Smrgall-contrib:
40f766d8bfSfredb	@if [ ! -f contrib/Makefile ]; then \
41f766d8bfSfredb	  cd contrib && PATH=../xc/config/imake:$$PATH \
42f766d8bfSfredb	    sh ../xc/config/util/xmkmf -a ../xc ../contrib; \
43f766d8bfSfredb	fi
44b583040eStv	@cd contrib && ${MAKE}
453cbc2fa9Smrg
463cbc2fa9Smrginstall: install-xc install-contrib
473cbc2fa9Smrg
483cbc2fa9Smrginstall-xc:
49b583040eStv	@cd xc && ${MAKE} install && ${MAKE} install.man
503cbc2fa9Smrg
513cbc2fa9Smrginstall-contrib:
52b583040eStv	@cd contrib && ${MAKE} install && ${MAKE} install.man
535c5d6177Smrg
547e6ae19cStronclean:
5534e496fbSfredb	@-cd xc && ${MAKE} clean
56b583040eStv	@-cd contrib && ${MAKE} clean
5790360741Stv
5834e496fbSfredbcleandir distclean: clean
597e6ae19cStron	find xc contrib -name .depend | xargs rm
607e6ae19cStron	find xc contrib -name 'Makefile*' | \
617e6ae19cStron	xargs grep -l "Makefile generated by imake" | xargs rm
627e6ae19cStron	-rmdir xc/exports
637e6ae19cStron	rm -f xc/xmakefile
647e6ae19cStron
6590360741Stvbuild:
6634e496fbSfredb.if defined(UPDATE)
6790360741Stv	@${MAKE} all install
6834e496fbSfredb.else
6934e496fbSfredb	@${MAKE} cleandir all install
7034e496fbSfredb.endif
71b1c0e358Sfredb
72b1c0e358Sfredb# release goo
73b1c0e358Sfredb#
74b1c0e358Sfredb.if !defined(DESTDIR)
75b1c0e358Sfredbrelease snapshot:
76b1c0e358Sfredb	@echo setenv DESTDIR before doing that!
77b1c0e358Sfredb	@false
78b1c0e358Sfredb.elif !defined(RELEASEDIR)
79b1c0e358Sfredbrelease snapshot:
80b1c0e358Sfredb	@echo setenv RELEASEDIR before doing that!
81b1c0e358Sfredb	@false
82b1c0e358Sfredb#
83b1c0e358Sfredb.else
84b1c0e358Sfredb#
85b1c0e358Sfredb.if defined(INSTALL_DONE)
86b1c0e358Sfredbrelease snapshot:
87b1c0e358Sfredb.elif defined(BUILD_DONE)
88b1c0e358Sfredbrelease snapshot: install
89b1c0e358Sfredb.else
90b1c0e358Sfredbrelease snapshot: build
91b1c0e358Sfredb#
92b1c0e358Sfredb.endif # INSTALL_DONE or BUILD_DONE
93b1c0e358Sfredb#
94b1c0e358Sfredb	${INSTALL} -d -m 755 -o root -g wheel ${RELEASEDIR}/binary/sets
95231ff5f5Sfredb	sh ${BSDSRCDIR}/distrib/sets/maketars -x -s ${BSDSRCDIR}/distrib/sets \
96b1c0e358Sfredb		-d ${DESTDIR} -t ${RELEASEDIR}/binary/sets
97b1c0e358Sfredb	cd ${RELEASEDIR}/binary/sets && \
98b1c0e358Sfredb		cksum -o 1 *.tgz >BSDSUM && \
99b1c0e358Sfredb		cksum *.tgz >CKSUM && \
100b1c0e358Sfredb		cksum -m *.tgz >MD5 && \
101b1c0e358Sfredb		cksum -o 2 *.tgz >SYSVSUM
102b1c0e358Sfredb#
103b1c0e358Sfredb.endif # maketars exists and DESTDIR and RELEASEDIR check
104b1c0e358Sfredb
105b1c0e358Sfredb.include "/etc/mk.conf"
106