Home | History | Annotate | Line # | Download | only in xsrc
      1 #	$NetBSD: Makefile,v 1.45 2021/11/02 22:09:17 abs Exp $
      2 #
      3 # Targets & Variables
      4 #
      5 # build: Clean out xsrc, and build and install everything that goes
      6 #	under /usr/X11R7.
      7 #
      8 #  DESTDIR -- Set to an alternative directory to install under.
      9 #  UPDATE --  If set, don't make clean first, plus attempt to make
     10 #	only the targets that are out of date.
     11 #
     12 # release snapshot: Same as build, plus tar up the X sets and install
     13 #	them under the ${RELEASEDIR}/binary/sets directory (NetBSD <=1.6)
     14 #	or the ${RELEASEDIR}/${MACHINE}/binary/sets directory (NetBSD >1.6).
     15 #
     16 #  DESTDIR -- Same as for build. Mandatory for building a release.
     17 #  RELEASEDIR -- As explained above.
     18 #  BUILD_DONE -- If set, assume build is already done.
     19 #  INSTALL_DONE -- If set, assume binaries to tar up are to be found
     20 #	in ${DESTDIR} already.
     21 #  NETBSDSRCDIR -- Set to the full path to the main source tree, /usr/src
     22 #	by default. Needed to find ./distrib/sets.
     23 #
     24 # cleandir distclean: Remove all generated files from under xsrc.
     25 #
     26 # clean: Remove object files, but keep imake generated makefiles.
     27 
     28 .include <bsd.own.mk>
     29 
     30 # Backwards compatibility with NetBSD 1.5 and 1.5.x where NETBSDSRCDIR
     31 # doesn't get defined by  "bsd.own.mk".
     32 NETBSDSRCDIR?=	${BSDSRCDIR}
     33 
     34 XCDIR=	xfree/xc
     35 
     36 .MAIN: all
     37 all: all-xc all-local
     38 
     39 all-xc:
     40 .if exists(${XCDIR}/xmakefile) && defined(UPDATE)
     41 	@cd ${XCDIR} && ${MAKE} Everything
     42 .else
     43 	@-rm -f ${XCDIR}/xmakefile
     44 	@cd ${XCDIR} && ${MAKE} World
     45 .endif
     46 
     47 all-local:
     48 	@if [ ! -f local/Makefile ]; then \
     49 	  cd local && PATH=../${XCDIR}/config/imake:$$PATH \
     50 	    sh ../${XCDIR}/config/util/xmkmf -a ../${XCDIR} \
     51 	      ${.CURDIR}/local; \
     52 	fi
     53 	@cd local && ${MAKE}
     54 
     55 install: install-xc install-local
     56 
     57 install-xc:
     58 	@cd ${XCDIR} && \
     59 	  ${MAKE} DESTDIR="${DESTDIR}" install && \
     60 	  ${MAKE} DESTDIR="${DESTDIR}" install.man
     61 
     62 install-local:
     63 	@cd local && \
     64 	  ${MAKE} DESTDIR="${DESTDIR}" install && \
     65 	  ${MAKE} DESTDIR="${DESTDIR}" install.man
     66 
     67 clean:
     68 	@-cd ${XCDIR} && ${MAKE} clean
     69 	@-cd local && ${MAKE} clean
     70 
     71 cleandir distclean: clean
     72 	find ${XCDIR} local -name .depend | xargs -n5 rm
     73 	find ${XCDIR} local -name 'Makefile*' | \
     74 	    xargs -n5 grep -l "Makefile generated by imake" | xargs rm
     75 	-rmdir ${XCDIR}/exports
     76 	rm -f ${XCDIR}/xmakefile ${XCDIR}/config/cf/version.def \
     77 	   ${XCDIR}/config/cf/date.def
     78 
     79 build:
     80 .if defined(UPDATE)
     81 	@${MAKE} all && ${MAKE} install
     82 .else
     83 	@${MAKE} cleandir && ${MAKE} all && ${MAKE} install
     84 .endif
     85 
     86 # release goo
     87 #
     88 .if !defined(DESTDIR)
     89 release snapshot:
     90 	@echo setenv DESTDIR before doing that!
     91 	@false
     92 .elif !defined(RELEASEDIR)
     93 release snapshot:
     94 	@echo setenv RELEASEDIR before doing that!
     95 	@false
     96 #
     97 .else
     98 #
     99 .if defined(INSTALL_DONE)
    100 release snapshot:
    101 .elif defined(BUILD_DONE)
    102 release snapshot: install
    103 .else
    104 release snapshot: build
    105 #
    106 .endif # INSTALL_DONE or BUILD_DONE
    107 #
    108 	${INSTALL} -d -m 755 -o root -g wheel ${RELEASEDIR}/${MACHINE}/binary/sets
    109 	${INSTALL} -d -m 755 -o root -g wheel ${DESTDIR}/etc/mtree
    110 .if defined(METALOG.add) && !exists(${DESTDIR}/etc/master.passwd)
    111 	cd ${NETBSDSRCDIR}/distrib/sets && \
    112 	    sh ./maketars -x -d ${DESTDIR:S,^$,/,} -N ${NETBSDSRCDIR}/etc -t ${RELEASEDIR}/${MACHINE}/binary/sets
    113 .else
    114 	cd ${NETBSDSRCDIR}/distrib/sets && \
    115 	    sh ./maketars -x -d ${DESTDIR:S,^$,/,} -t ${RELEASEDIR}/${MACHINE}/binary/sets
    116 .endif
    117 	cd ${RELEASEDIR}/${MACHINE}/binary/sets && \
    118 		cksum -o 1 *.tgz >BSDSUM && \
    119 		cksum *.tgz >CKSUM && \
    120 		cksum -m *.tgz >MD5 && \
    121 		cksum -o 2 *.tgz >SYSVSUM
    122 #
    123 .endif # DESTDIR and RELEASEDIR check
    124