Date: Wed, 12 Oct 2016 00:42:47 +0000 (UTC) From: Jonathan Anderson <jonathan@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r307075 - head/share/mk Message-ID: <201610120042.u9C0glMP006629@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201610120042.u9C0glMP006629>