svn commit: r307075 - head/share/mk
Jonathan Anderson
jonathan at FreeBSD.org
Wed Oct 12 00:42:48 UTC 2016
Author: jonathan
Date: Wed Oct 12 00:42:46 2016
New Revision: 307075
URL: https://svnweb.freebsd.org/changeset/base/307075
Log:
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
Added:
head/share/mk/bsd.suffixes-posix.mk (contents, props changed)
head/share/mk/bsd.suffixes.mk (contents, props changed)
Modified:
head/share/mk/Makefile
head/share/mk/bsd.lib.mk
head/share/mk/sys.mk
Modified: head/share/mk/Makefile
==============================================================================
--- head/share/mk/Makefile Tue Oct 11 22:54:29 2016 (r307074)
+++ head/share/mk/Makefile Wed Oct 12 00:42:46 2016 (r307075)
@@ -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 \
Modified: head/share/mk/bsd.lib.mk
==============================================================================
--- head/share/mk/bsd.lib.mk Tue Oct 11 22:54:29 2016 (r307074)
+++ head/share/mk/bsd.lib.mk Wed Oct 12 00:42:46 2016 (r307075)
@@ -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}
Added: head/share/mk/bsd.suffixes-posix.mk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/share/mk/bsd.suffixes-posix.mk Wed Oct 12 00:42:46 2016 (r307075)
@@ -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
Added: head/share/mk/bsd.suffixes.mk
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/share/mk/bsd.suffixes.mk Wed Oct 12 00:42:46 2016 (r307075)
@@ -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}
Modified: head/share/mk/sys.mk
==============================================================================
--- head/share/mk/sys.mk Tue Oct 11 22:54:29 2016 (r307074)
+++ head/share/mk/sys.mk Wed Oct 12 00:42:46 2016 (r307075)
@@ -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
More information about the svn-src-all
mailing list