summaryrefslogtreecommitdiffstats
path: root/share/mk/bsd.dep.mk
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1998-05-08 06:31:05 +0000
committerbde <bde@FreeBSD.org>1998-05-08 06:31:05 +0000
commitea52868070d5191a4d4e1270d3cb9506a3b1a995 (patch)
tree360718b46ed9e6fe547a727b87d0ba715dc26aeb /share/mk/bsd.dep.mk
parent1baebded07d93a8b57872369b293ffad83860c95 (diff)
downloadFreeBSD-src-ea52868070d5191a4d4e1270d3cb9506a3b1a995.zip
FreeBSD-src-ea52868070d5191a4d4e1270d3cb9506a3b1a995.tar.gz
Moved lex and yacc source handling from bsd.prog.mk to bsd.dep.mk
so that it applies to libraries (and lkms) as well as programs.
Diffstat (limited to 'share/mk/bsd.dep.mk')
-rw-r--r--share/mk/bsd.dep.mk41
1 files changed, 40 insertions, 1 deletions
diff --git a/share/mk/bsd.dep.mk b/share/mk/bsd.dep.mk
index 040f14b..b98666e 100644
--- a/share/mk/bsd.dep.mk
+++ b/share/mk/bsd.dep.mk
@@ -1,4 +1,4 @@
-# $Id: bsd.dep.mk,v 1.19 1998/03/23 14:58:26 eivind Exp $
+# $Id: bsd.dep.mk,v 1.20 1998/05/06 18:43:58 bde Exp $
#
# The include file <bsd.dep.mk> handles Makefile dependencies.
#
@@ -74,6 +74,45 @@ afterdepend:
.endif
.endif
+.if defined(SRCS)
+CLEANFILES?=
+
+.for _LSRC in ${SRCS:M*.l:N*/*}
+.for _LC in ${_LSRC:S/.l/.c/}
+${_LC}: ${_LSRC}
+ ${LEX} -t ${LFLAGS} ${.ALLSRC} > ${.TARGET}
+SRCS:= ${SRCS:S/${_LSRC}/${_LC}/}
+CLEANFILES:= ${CLEANFILES} ${_LC}
+.endfor
+.endfor
+
+.for _YSRC in ${SRCS:M*.y:N*/*}
+.for _YC in ${_YSRC:S/.y/.c/}
+SRCS:= ${SRCS:S/${_YSRC}/${_YC}/}
+CLEANFILES:= ${CLEANFILES} ${_YC}
+.if ${YFLAGS:M-d} != "" && ${SRCS:My.tab.h}
+.ORDER: ${_YC} y.tab.h
+${_YC} y.tab.h: ${_YSRC}
+ ${YACC} ${YFLAGS} ${.ALLSRC}
+ cp y.tab.c ${_YC}
+SRCS:= ${SRCS} y.tab.h
+CLEANFILES:= ${CLEANFILES} y.tab.c y.tab.h
+.elif ${YFLAGS:M-d} != ""
+.for _YH in ${_YC:S/.c/.h/}
+.ORDER: ${_YC} ${_YH}
+${_YC} ${_YH}: ${_YSRC}
+ ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC}
+SRCS:= ${SRCS} ${_YH}
+CLEANFILES:= ${CLEANFILES} ${_YH}
+.endfor
+.else
+${_YC}: ${_YSRC}
+ ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC}
+.endif
+.endfor
+.endfor
+.endif
+
.if defined(NOTAGS)
tags:
.endif
OpenPOWER on IntegriCloud