Extract suffix rules into bsd.suffixes[-posix].mk.
Refactor make suffix rules into separate files (one for POSIX and one not), and rationalise the rules so that bsd.lib.mk can contain only those rules that are library-specific (.c.po and .c.pico). This can be accomplished by adding ${STATIC_CFLAGS} to the .c.o rule unconditionally. STATIC_CFLAGS are only defined for use by sys.mk rules in lib/libpam/Makefile.inc (see r227797), so it should be safe to include them unconditionally in sys.mk's .c.o rule (tested by make universe and a ports exp-run). Reviewed by: bdrewery, sjg Approved by: rwatson (mentor) Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D6805
This commit is contained in:
parent
d3cf557732
commit
b0c96bd536
@ -49,6 +49,8 @@ FILES= \
|
||||
bsd.progs.mk \
|
||||
bsd.snmpmod.mk \
|
||||
bsd.subdir.mk \
|
||||
bsd.suffixes-posix.mk \
|
||||
bsd.suffixes.mk \
|
||||
bsd.symver.mk \
|
||||
bsd.sys.mk \
|
||||
bsd.test.mk \
|
||||
|
@ -78,7 +78,6 @@ CTFFLAGS+= -g
|
||||
|
||||
# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
|
||||
# .pico used for PIC object files
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .out .o .po .pico .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln
|
||||
|
||||
.if !defined(PICFLAG)
|
||||
@ -91,10 +90,6 @@ PICFLAG=-fpic
|
||||
|
||||
PO_FLAG=-pg
|
||||
|
||||
.c.o:
|
||||
${CC} ${STATIC_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.c.po:
|
||||
${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
@ -103,9 +98,6 @@ PO_FLAG=-pg
|
||||
${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.cc.o .C.o .cpp.o .cxx.o:
|
||||
${CXX} ${STATIC_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
|
||||
.cc.po .C.po .cpp.po .cxx.po:
|
||||
${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
|
||||
|
56
share/mk/bsd.suffixes-posix.mk
Normal file
56
share/mk/bsd.suffixes-posix.mk
Normal file
@ -0,0 +1,56 @@
|
||||
# $FreeBSD$
|
||||
|
||||
# Posix 1003.2 mandated rules
|
||||
#
|
||||
# Quoted directly from the Posix 1003.2 draft, only the macros
|
||||
# $@, $< and $* have been replaced by ${.TARGET}, ${.IMPSRC}, and
|
||||
# ${.PREFIX}, resp.
|
||||
|
||||
# SINGLE SUFFIX RULES
|
||||
.c:
|
||||
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC}
|
||||
|
||||
.f:
|
||||
${FC} ${FFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC}
|
||||
|
||||
.sh:
|
||||
cp -f ${.IMPSRC} ${.TARGET}
|
||||
chmod a+x ${.TARGET}
|
||||
|
||||
# DOUBLE SUFFIX RULES
|
||||
|
||||
.c.o:
|
||||
${CC} ${CFLAGS} -c ${.IMPSRC}
|
||||
|
||||
.f.o:
|
||||
${FC} ${FFLAGS} -c ${.IMPSRC}
|
||||
|
||||
.y.o:
|
||||
${YACC} ${YFLAGS} ${.IMPSRC}
|
||||
${CC} ${CFLAGS} -c y.tab.c
|
||||
rm -f y.tab.c
|
||||
mv y.tab.o ${.TARGET}
|
||||
|
||||
.l.o:
|
||||
${LEX} ${LFLAGS} ${.IMPSRC}
|
||||
${CC} ${CFLAGS} -c lex.yy.c
|
||||
rm -f lex.yy.c
|
||||
mv lex.yy.o ${.TARGET}
|
||||
|
||||
.y.c:
|
||||
${YACC} ${YFLAGS} ${.IMPSRC}
|
||||
mv y.tab.c ${.TARGET}
|
||||
|
||||
.l.c:
|
||||
${LEX} ${LFLAGS} ${.IMPSRC}
|
||||
mv lex.yy.c ${.TARGET}
|
||||
|
||||
.c.a:
|
||||
${CC} ${CFLAGS} -c ${.IMPSRC}
|
||||
${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
|
||||
rm -f ${.PREFIX}.o
|
||||
|
||||
.f.a:
|
||||
${FC} ${FFLAGS} -c ${.IMPSRC}
|
||||
${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
|
||||
rm -f ${.PREFIX}.o
|
99
share/mk/bsd.suffixes.mk
Normal file
99
share/mk/bsd.suffixes.mk
Normal file
@ -0,0 +1,99 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.sh:
|
||||
cp -f ${.IMPSRC} ${.TARGET}
|
||||
chmod a+x ${.TARGET}
|
||||
|
||||
.c.ln:
|
||||
${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \
|
||||
touch ${.TARGET}
|
||||
|
||||
.cc.ln .C.ln .cpp.ln .cxx.ln:
|
||||
${LINT} ${LINTOBJFLAGS} ${CXXFLAGS:M-[DIU]*} ${.IMPSRC} || \
|
||||
touch ${.TARGET}
|
||||
|
||||
.c:
|
||||
${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.c.o:
|
||||
${CC} ${STATIC_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.cc .cpp .cxx .C:
|
||||
${CXX} ${CXXFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
|
||||
|
||||
.cc.o .cpp.o .cxx.o .C.o:
|
||||
${CXX} ${STATIC_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
|
||||
.m.o:
|
||||
${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.p.o:
|
||||
${PC} ${PFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.e .r .F .f:
|
||||
${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} \
|
||||
-o ${.TARGET}
|
||||
|
||||
.e.o .r.o .F.o .f.o:
|
||||
${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
|
||||
.S.o:
|
||||
${CC:N${CCACHE_BIN}} ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.asm.o:
|
||||
${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \
|
||||
-o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.s.o:
|
||||
${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
# XXX not -j safe
|
||||
.y.o:
|
||||
${YACC} ${YFLAGS} ${.IMPSRC}
|
||||
${CC} ${CFLAGS} -c y.tab.c -o ${.TARGET}
|
||||
rm -f y.tab.c
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.l.o:
|
||||
${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c
|
||||
${CC} ${CFLAGS} -c ${.PREFIX}.tmp.c -o ${.TARGET}
|
||||
rm -f ${.PREFIX}.tmp.c
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
# XXX not -j safe
|
||||
.y.c:
|
||||
${YACC} ${YFLAGS} ${.IMPSRC}
|
||||
mv y.tab.c ${.TARGET}
|
||||
|
||||
.l.c:
|
||||
${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.TARGET}
|
||||
|
||||
.s.out .c.out .o.out:
|
||||
${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.f.out .F.out .r.out .e.out:
|
||||
${FC} ${EFLAGS} ${RFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} \
|
||||
${LDLIBS} -o ${.TARGET}
|
||||
rm -f ${.PREFIX}.o
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
# XXX not -j safe
|
||||
.y.out:
|
||||
${YACC} ${YFLAGS} ${.IMPSRC}
|
||||
${CC} ${CFLAGS} ${LDFLAGS} y.tab.c ${LDLIBS} -ly -o ${.TARGET}
|
||||
rm -f y.tab.c
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.l.out:
|
||||
${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c
|
||||
${CC} ${CFLAGS} ${LDFLAGS} ${.PREFIX}.tmp.c ${LDLIBS} -ll -o ${.TARGET}
|
||||
rm -f ${.PREFIX}.tmp.c
|
||||
${CTFCONVERT_CMD}
|
154
share/mk/sys.mk
154
share/mk/sys.mk
@ -259,162 +259,12 @@ YFLAGS ?= -d
|
||||
|
||||
.if defined(%POSIX)
|
||||
|
||||
# Posix 1003.2 mandated rules
|
||||
#
|
||||
# Quoted directly from the Posix 1003.2 draft, only the macros
|
||||
# $@, $< and $* have been replaced by ${.TARGET}, ${.IMPSRC}, and
|
||||
# ${.PREFIX}, resp.
|
||||
|
||||
# SINGLE SUFFIX RULES
|
||||
.c:
|
||||
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC}
|
||||
|
||||
.f:
|
||||
${FC} ${FFLAGS} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC}
|
||||
|
||||
.sh:
|
||||
cp -f ${.IMPSRC} ${.TARGET}
|
||||
chmod a+x ${.TARGET}
|
||||
|
||||
# DOUBLE SUFFIX RULES
|
||||
|
||||
.c.o:
|
||||
${CC} ${CFLAGS} -c ${.IMPSRC}
|
||||
|
||||
.f.o:
|
||||
${FC} ${FFLAGS} -c ${.IMPSRC}
|
||||
|
||||
.y.o:
|
||||
${YACC} ${YFLAGS} ${.IMPSRC}
|
||||
${CC} ${CFLAGS} -c y.tab.c
|
||||
rm -f y.tab.c
|
||||
mv y.tab.o ${.TARGET}
|
||||
|
||||
.l.o:
|
||||
${LEX} ${LFLAGS} ${.IMPSRC}
|
||||
${CC} ${CFLAGS} -c lex.yy.c
|
||||
rm -f lex.yy.c
|
||||
mv lex.yy.o ${.TARGET}
|
||||
|
||||
.y.c:
|
||||
${YACC} ${YFLAGS} ${.IMPSRC}
|
||||
mv y.tab.c ${.TARGET}
|
||||
|
||||
.l.c:
|
||||
${LEX} ${LFLAGS} ${.IMPSRC}
|
||||
mv lex.yy.c ${.TARGET}
|
||||
|
||||
.c.a:
|
||||
${CC} ${CFLAGS} -c ${.IMPSRC}
|
||||
${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
|
||||
rm -f ${.PREFIX}.o
|
||||
|
||||
.f.a:
|
||||
${FC} ${FFLAGS} -c ${.IMPSRC}
|
||||
${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
|
||||
rm -f ${.PREFIX}.o
|
||||
.include "bsd.suffixes-posix.mk"
|
||||
|
||||
.else
|
||||
|
||||
# non-Posix rule set
|
||||
|
||||
.sh:
|
||||
cp -f ${.IMPSRC} ${.TARGET}
|
||||
chmod a+x ${.TARGET}
|
||||
|
||||
.c.ln:
|
||||
${LINT} ${LINTOBJFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} || \
|
||||
touch ${.TARGET}
|
||||
|
||||
.cc.ln .C.ln .cpp.ln .cxx.ln:
|
||||
${LINT} ${LINTOBJFLAGS} ${CXXFLAGS:M-[DIU]*} ${.IMPSRC} || \
|
||||
touch ${.TARGET}
|
||||
|
||||
.c:
|
||||
${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.c.o:
|
||||
${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.cc .cpp .cxx .C:
|
||||
${CXX} ${CXXFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
|
||||
|
||||
.cc.o .cpp.o .cxx.o .C.o:
|
||||
${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
|
||||
.m.o:
|
||||
${OBJC} ${OBJCFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.p.o:
|
||||
${PC} ${PFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.e .r .F .f:
|
||||
${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} \
|
||||
-o ${.TARGET}
|
||||
|
||||
.e.o .r.o .F.o .f.o:
|
||||
${FC} ${RFLAGS} ${EFLAGS} ${FFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
|
||||
.S.o:
|
||||
${CC:N${CCACHE_BIN}} ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.asm.o:
|
||||
${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \
|
||||
-o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.s.o:
|
||||
${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
# XXX not -j safe
|
||||
.y.o:
|
||||
${YACC} ${YFLAGS} ${.IMPSRC}
|
||||
${CC} ${CFLAGS} -c y.tab.c -o ${.TARGET}
|
||||
rm -f y.tab.c
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.l.o:
|
||||
${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c
|
||||
${CC} ${CFLAGS} -c ${.PREFIX}.tmp.c -o ${.TARGET}
|
||||
rm -f ${.PREFIX}.tmp.c
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
# XXX not -j safe
|
||||
.y.c:
|
||||
${YACC} ${YFLAGS} ${.IMPSRC}
|
||||
mv y.tab.c ${.TARGET}
|
||||
|
||||
.l.c:
|
||||
${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.TARGET}
|
||||
|
||||
.s.out .c.out .o.out:
|
||||
${CC} ${CFLAGS} ${LDFLAGS} ${.IMPSRC} ${LDLIBS} -o ${.TARGET}
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.f.out .F.out .r.out .e.out:
|
||||
${FC} ${EFLAGS} ${RFLAGS} ${FFLAGS} ${LDFLAGS} ${.IMPSRC} \
|
||||
${LDLIBS} -o ${.TARGET}
|
||||
rm -f ${.PREFIX}.o
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
# XXX not -j safe
|
||||
.y.out:
|
||||
${YACC} ${YFLAGS} ${.IMPSRC}
|
||||
${CC} ${CFLAGS} ${LDFLAGS} y.tab.c ${LDLIBS} -ly -o ${.TARGET}
|
||||
rm -f y.tab.c
|
||||
${CTFCONVERT_CMD}
|
||||
|
||||
.l.out:
|
||||
${LEX} -t ${LFLAGS} ${.IMPSRC} > ${.PREFIX}.tmp.c
|
||||
${CC} ${CFLAGS} ${LDFLAGS} ${.PREFIX}.tmp.c ${LDLIBS} -ll -o ${.TARGET}
|
||||
rm -f ${.PREFIX}.tmp.c
|
||||
${CTFCONVERT_CMD}
|
||||
.include "bsd.suffixes.mk"
|
||||
|
||||
# Pull in global settings.
|
||||
__MAKE_CONF?=/etc/make.conf
|
||||
|
Loading…
Reference in New Issue
Block a user