NetBSD/distrib/common/Makefile.crunch
dsl c7c436e94e Fix breakage from yesterday!
Don't pass crunchgen the name of its own binary as an extra argument.
(make must have silently done this when the extra argument was .PHONY)
2005-09-05 20:14:08 +00:00

75 lines
2.2 KiB
Makefile

# $NetBSD: Makefile.crunch,v 1.21 2005/09/05 20:14:08 dsl Exp $
#
# Makefile snippet to build a crunchgen(1)ed binary from the provided lists
#
# Required variables:
# NETBSDSRCDIR top level of src tree (set by <bsd.own.mk>)
# CRUNCHBIN name of crunchgen(1)ed binary
# LISTS list file(s) to use
#
# Optional variables:
# SMALLPROG if != 0, add SMALLPROG=1 to CRUNCHENV. [default: 1]
# SMALLPROG_INET6 if != 0 and SMALLPROG != 0, and ${USE_INET6} != "no",
# add SMALLPROG_INET6=1 to CRUNCHENV. [default: 0]
# CRUNCHENV environment to pass to crunchgen(1) and when building
# the crunched program with make(1) (as command line
# variables, to override any user provided environment
# or make(1) cmdline vars).
# CRUNCHGEN_FLAGS extra options to crunchgen(1)
# DESTDIR destination directory
# PARSELISTENV environment variables to set for parselist.awk
#
# Variables modified by this:
# CRUNCHENV may get SMALLPROG=1 or SMALLPROG_INET6=1 added
#
.if !defined(_MAKEFILE_CRUNCH_)
_MAKEFILE_CRUNCH_=1
SMALLPROG?= 1
SMALLPROG_INET6?= 0
.if ${SMALLPROG} # {
CRUNCHENV+= SMALLPROG=1
.if ${SMALLPROG_INET6} && (${USE_INET6} != "no")
CRUNCHENV+= SMALLPROG_INET6=1
.endif
.endif # }
.include "${DISTRIBDIR}/common/Makefile.parselist"
.PHONY: ${CRUNCHBIN}
${CRUNCHBIN}: ${CRUNCHBIN}.mk ${CRUNCHBIN}.cache ${CRUNCHBIN}.c
${MAKE} ${CRUNCHENV} -f ${CRUNCHBIN}.mk ${CRUNCHBIN}.crunched
${CRUNCHBIN}.c: ${CRUNCHBIN}.mk
[ ! -f ${.TARGET} ] || touch ${.TARGET}
${CRUNCHBIN}.cache: ${CRUNCHBIN}.mk
[ ! -f ${.TARGET} ] || touch ${.TARGET}
${CRUNCHBIN}.mk: ${CRUNCHBIN}.conf ${TOOL_CRUNCHGEN:[-1]}
${CRUNCHENV} ${TOOL_CRUNCHGEN} -f -D ${NETBSDSRCDIR} \
-L ${DESTDIR}/usr/lib -q ${CRUNCHGEN_FLAGS} ${CRUNCHBIN}.conf
${CRUNCHBIN}.conf: ${LISTS} ${PARSELISTDEP}
-rm -f ${.TARGET} ${.TARGET}.tmp
${PARSELIST} -v mode=crunch ${LISTS} > ${.TARGET}.tmp \
&& mv ${.TARGET}.tmp ${.TARGET}
CLEANFILES+= ${CRUNCHBIN} ${CRUNCHBIN}.conf ${CRUNCHBIN}.conf.tmp \
${CRUNCHBIN}.cache *.o *.cro *.c
clean cleandir distclean: cleancrunchgen
.PHONY: cleancrunchgen
cleancrunchgen:
if [ -f ${CRUNCHBIN}.mk ]; then \
${MAKE} -f ${CRUNCHBIN}.mk clean; \
fi
rm -f ${CRUNCHBIN}.mk
.endif # _MAKEFILE_CRUNCH_