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-head mailing list