Allow per-file lex and yacc options.

In order to allow software with multiple (different) options
for lex and yacc add extra per-file options to the calls.
This is especially useful when one .l file needs -Pprefix.

Reviewed by:		imp
MFC after:		3 weeks
Differential Revision:	https://reviews.freebsd.org/D22337
This commit is contained in:
Bjoern A. Zeeb 2019-11-15 21:19:06 +00:00
parent 2e2844645f
commit 5a2899ac85

View File

@ -108,7 +108,7 @@ OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.o+= ${_S}
.for _LSRC in ${SRCS:M*.l:N*/*} .for _LSRC in ${SRCS:M*.l:N*/*}
.for _LC in ${_LSRC:R}.c .for _LC in ${_LSRC:R}.c
${_LC}: ${_LSRC} ${_LC}: ${_LSRC}
${LEX} ${LFLAGS} -o${.TARGET} ${.ALLSRC} ${LEX} ${LFLAGS} ${LFLAGS.${_LSRC}} -o${.TARGET} ${.ALLSRC}
OBJS_DEPEND_GUESS.${_LC:R}.o+= ${_LC} OBJS_DEPEND_GUESS.${_LC:R}.o+= ${_LC}
SRCS:= ${SRCS:S/${_LSRC}/${_LC}/} SRCS:= ${SRCS:S/${_LSRC}/${_LC}/}
CLEANFILES+= ${_LC} CLEANFILES+= ${_LC}
@ -129,7 +129,7 @@ y.tab.h: ${_YC} .NOMETA
${_YC}: .PHONY .META ${_YC}: .PHONY .META
.endif .endif
${_YC}: ${_YSRC} ${_YC}: ${_YSRC}
${YACC} ${YFLAGS} ${.ALLSRC} ${YACC} ${YFLAGS} ${YFLAGS.${_YSRC}} ${.ALLSRC}
cp y.tab.c ${_YC} cp y.tab.c ${_YC}
CLEANFILES+= y.tab.c y.tab.h CLEANFILES+= y.tab.c y.tab.h
.elif !empty(YFLAGS:M-d) .elif !empty(YFLAGS:M-d)
@ -142,13 +142,13 @@ ${_YH}: ${_YC} .NOMETA
${_YC}: .PHONY .META ${_YC}: .PHONY .META
.endif .endif
${_YC}: ${_YSRC} ${_YC}: ${_YSRC}
${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} ${YACC} ${YFLAGS} ${YFLAGS.${_YSRC}} -o ${_YC} ${.ALLSRC}
SRCS+= ${_YH} SRCS+= ${_YH}
CLEANFILES+= ${_YH} CLEANFILES+= ${_YH}
.endfor .endfor
.else .else
${_YC}: ${_YSRC} ${_YC}: ${_YSRC}
${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} ${YACC} ${YFLAGS} ${YFLAGS.${_YSRC}} -o ${_YC} ${.ALLSRC}
.endif .endif
OBJS_DEPEND_GUESS.${_YC:R}.o+= ${_YC} OBJS_DEPEND_GUESS.${_YC:R}.o+= ${_YC}
.endfor .endfor