Home | History | Annotate | Line # | Download | only in common
Makefile.crunch revision 1.6
      1 #	$NetBSD: Makefile.crunch,v 1.6 2002/04/02 05:36:23 lukem Exp $
      2 #
      3 # Makefile snippet to build a crunchgen(1)ed binary from the provided lists
      4 #
      5 
      6 #
      7 # Required variables:
      8 #	_SRC_TOP_	top level of src tree (set by <bsd.own.mk>)
      9 #	CRUNCHBIN	name of crunchgen(1)ed binary
     10 #	LISTS		list file(s) to use
     11 #
     12 # Optional variables:
     13 #	CRUNCHGEN_FLAGS	extra options to crunchgen(1)
     14 #	DESTDIR		destination directory
     15 #	PARSELISTENV	environment variables to set for parselist.awk
     16 #
     17 
     18 PARSELISTENV+=	_SRC_TOP_=${_SRC_TOP_:Q} \
     19 		CRUNCHBIN=${CRUNCHBIN:Q} \
     20 		CURDIR=${.CURDIR:Q} \
     21 		DESTDIR=${DESTDIR:Q} \
     22 		MACHINE=${MACHINE:Q} \
     23 		MACHINE_ARCH=${MACHINE_ARCH:Q} \
     24 		OBJDIR=${.OBJDIR:Q}
     25 
     26 _PARSELIST=	${_SRC_TOP_}/distrib/common/parselist.awk
     27 
     28 ${CRUNCHBIN}: ${CRUNCHBIN}.mk ${CRUNCHBIN}.cache ${CRUNCHBIN}.c
     29 	env SMALLPROG=1 ${MAKE} -f ${CRUNCHBIN}.mk all
     30 
     31 ${CRUNCHBIN}.mk ${CRUNCHBIN}.cache ${CRUNCHBIN}.c: ${CRUNCHBIN}.conf
     32 	env SMALLPROG=1 \
     33 	    ${CRUNCHGEN} -f -D ${_SRC_TOP_} -L ${DESTDIR}/usr/lib \
     34 			${CRUNCHGEN_FLAGS} ${.ALLSRC}
     35 
     36 ${CRUNCHBIN}.conf: ${LISTS} ${_PARSELIST}
     37 	-rm -f ${.TARGET} ${.TARGET}.tmp
     38 	${PARSELISTENV} awk -f ${_PARSELIST} -v mode=crunch \
     39 	    ${LISTS} > ${.TARGET}.tmp \
     40 	&& mv ${.TARGET}.tmp ${.TARGET}
     41 
     42 CLEANFILES+=	${CRUNCHBIN} ${CRUNCHBIN}.conf ${CRUNCHBIN}.conf.tmp \
     43 		${CRUNCHBIN}.cache *.o *.cro *.c
     44 
     45 clean cleandir distclean: cleancrunchgen
     46 
     47 .PHONY: cleancrunchgen
     48 
     49 cleancrunchgen:
     50 	if [ -f ${CRUNCHBIN}.mk ]; then \
     51 		${MAKE} -f ${CRUNCHBIN}.mk clean; \
     52 	fi
     53 	rm -f ${CRUNCHBIN}.mk
     54