Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/share/mk - make the CTFCONVERT command lines consistent and ...



details:   https://anonhg.NetBSD.org/src/rev/07309d50bfbe
branches:  trunk
changeset: 945912:07309d50bfbe
user:      christos <christos%NetBSD.org@localhost>
date:      Mon Nov 09 16:15:05 2020 +0000

description:
- make the CTFCONVERT command lines consistent and concise by putting all
  the implementation stuff in a variable CTFCONVERT_RUN
- introduce an OBJECT_TARGET variable that contains the output object file
- when we need to run ctfconvert, go through an intermediate ${.TARGET}.o
  file, instead of writing directly to ${.TARGET} and then overwriting
  ${.TARGET} with ctfconvert. This avoids build failures after a build
  got interrupted (the "partially built from C" scourge).

diffstat:

 share/mk/bsd.lib.mk  |  62 +++++++++++++--------------------------
 share/mk/bsd.prog.mk |  14 +++-----
 share/mk/bsd.sys.mk  |  26 +++++-----------
 share/mk/sys.mk      |  79 ++++++++++++++++++++++++++++-----------------------
 4 files changed, 79 insertions(+), 102 deletions(-)

diffs (truncated from 401 to 300 lines):

diff -r e820a6b882ee -r 07309d50bfbe share/mk/bsd.lib.mk
--- a/share/mk/bsd.lib.mk       Mon Nov 09 12:12:08 2020 +0000
+++ b/share/mk/bsd.lib.mk       Mon Nov 09 16:15:05 2020 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.lib.mk,v 1.383 2020/06/01 14:39:14 christos Exp $
+#      $NetBSD: bsd.lib.mk,v 1.384 2020/11/09 16:15:05 christos Exp $
 #      @(#)bsd.lib.mk  8.3 (Berkeley) 4/22/94
 
 .include <bsd.init.mk>
@@ -221,20 +221,16 @@
 
 .c.o:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .if defined(LIBSTRIPCOBJS)
        ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
 .endif
 
 .c.po:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.c} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${PGFLAGS} ${.IMPSRC} -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.c} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${PGFLAGS} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .if defined(LIBSTRIPCOBJS)
        ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
 .endif
@@ -277,20 +273,16 @@
 
 .f.o:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.f} ${.IMPSRC} -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.f} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .if defined(LIBSTRIPFOBJS)
        ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
 .endif
 
 .f.po:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.f} ${PROFFLAGS} ${PGFLAGS} ${.IMPSRC} -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.f} ${PROFFLAGS} ${PGFLAGS} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .if defined(LIBSTRIPFOBJS)
        ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
 .endif
@@ -312,20 +304,16 @@
 
 .m.o:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.m} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.m} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .if defined(LIBSTRIPOBJCOBJS)
        ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
 .endif
 
 .m.po:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.m} ${PROFFLAGS} ${PGFLAGS} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.m} ${PROFFLAGS} ${PGFLAGS} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .if defined(LIBSTRIPOBJCOBJS)
        ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
 .endif
@@ -346,40 +334,32 @@
 
 .s.o:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.s} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.s} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .if defined(LIBSTRIPAOBJS)
        ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
 .endif
 
 .S.o:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.S} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.S} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .if defined(LIBSTRIPAOBJS)
        ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
 .endif
 
 .s.po:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.s} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.s} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .if defined(LIBSTRIPAOBJS)
        ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
 .endif
 
 .S.po:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.S} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.S} ${PROFFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .if defined(LIBSTRIPAOBJS)
        ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
 .endif
diff -r e820a6b882ee -r 07309d50bfbe share/mk/bsd.prog.mk
--- a/share/mk/bsd.prog.mk      Mon Nov 09 12:12:08 2020 +0000
+++ b/share/mk/bsd.prog.mk      Mon Nov 09 16:15:05 2020 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.prog.mk,v 1.334 2020/11/09 10:19:18 martin Exp $
+#      $NetBSD: bsd.prog.mk,v 1.335 2020/11/09 16:15:05 christos Exp $
 #      @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94
 
 .ifndef HOSTPROG
@@ -39,19 +39,15 @@
 CLEANFILES+=strings
 .c.o:
        ${CC} -E ${CPPFLAGS} ${CFLAGS} ${.IMPSRC} | xstr -c -
-       @${CC} ${CPPFLAGS} ${CFLAGS} -c x.c -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       @${CC} ${CPPFLAGS} ${CFLAGS} -c x.c ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
        @rm -f x.c
 
 .cc.o .cpp.o .cxx.o .C.o:
        ${CXX} -E ${CPPFLAGS} ${CXXFLAGS} ${.IMPSRC} | xstr -c -
        @${MV} x.c x.cc
-       @${CXX} ${CPPFLAGS} ${CXXFLAGS} -c x.cc -o ${.TARGET}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       @${CXX} ${CPPFLAGS} ${CXXFLAGS} -c x.cc ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
        @rm -f x.cc
 .endif
 
diff -r e820a6b882ee -r 07309d50bfbe share/mk/bsd.sys.mk
--- a/share/mk/bsd.sys.mk       Mon Nov 09 12:12:08 2020 +0000
+++ b/share/mk/bsd.sys.mk       Mon Nov 09 16:15:05 2020 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.sys.mk,v 1.303 2020/09/05 13:38:43 mrg Exp $
+#      $NetBSD: bsd.sys.mk,v 1.304 2020/11/09 16:15:05 christos Exp $
 #
 # Build definitions used for NetBSD source tree builds.
 
@@ -266,10 +266,8 @@
 # C
 .c.o:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.c} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 
 .c.ln:
        ${_MKTARGET_COMPILE}
@@ -288,10 +286,8 @@
 #  used for Objective C source)
 .m.o:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.m} ${OBJCOPTS} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.m} ${OBJCOPTS} ${OBJCOPTS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 
 # Host-compiled C objects
 # The intermediate step is necessary for Sun CC, which objects to calling
@@ -310,17 +306,13 @@
 # Assembly
 .s.o:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.s} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.s} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 
 .S.o:
        ${_MKTARGET_COMPILE}
-       ${COMPILE.S} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
-.if defined(CTFCONVERT)
-       ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.endif
+       ${COMPILE.S} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 
 # Lex
 LFLAGS+=       ${LPREFIX.${.IMPSRC:T}:D-P${LPREFIX.${.IMPSRC:T}}}
diff -r e820a6b882ee -r 07309d50bfbe share/mk/sys.mk
--- a/share/mk/sys.mk   Mon Nov 09 12:12:08 2020 +0000
+++ b/share/mk/sys.mk   Mon Nov 09 16:15:05 2020 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: sys.mk,v 1.143 2020/02/08 21:16:53 maya Exp $
+#      $NetBSD: sys.mk,v 1.144 2020/11/09 16:15:05 christos Exp $
 #      @(#)sys.mk      8.2 (Berkeley) 3/21/94
 #
 # This file contains the basic rules for make(1) and is read first
@@ -47,6 +47,8 @@
 # C Type Format data is required for DTrace
 CTFFLAGS       ?=      -g -L VERSION
 CTFMFLAGS      ?=      -t -g -L VERSION
+OBJECT_TARGET  ?= -o ${.TARGET}${defined(CTFCONVERT):?.o:}
+CTFCONVERT_RUN ?= ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} -o ${.TARGET} ${.TARGET}.o && rm -f ${.TARGET}.o:}
 
 CXX?=          c++
 # Strip flags unsupported by C++ compilers
@@ -119,12 +121,12 @@
 
 # C
 .c:
-       ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
+       ${LINK.c} ${OBJECT_TARGET} ${.IMPSRC} ${LDLIBS}
 # XXX: disable for now
-#      ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
+#      ${CTFCONVERT_RUN}
 .c.o:
-       ${COMPILE.c} ${.IMPSRC}
-       ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
+       ${COMPILE.c} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .c.a:
        ${COMPILE.c} ${.IMPSRC}
        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
@@ -136,9 +138,12 @@
 
 # C++
 .cc .cpp .cxx .C:
-       ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
+       ${LINK.cc} ${OBJECT_TARGET} ${.IMPSRC} ${LDLIBS}
+# XXX: disable for now
+#      ${CTFCONVERT_RUN}
 .cc.o .cpp.o .cxx.o .C.o:
-       ${COMPILE.cc} ${.IMPSRC}
+       ${COMPILE.cc} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .cc.a .cpp.a .cxx.a .C.a:
        ${COMPILE.cc} ${.IMPSRC}
        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
@@ -146,31 +151,33 @@
 
 # Fortran/Ratfor
 .f:
-       ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
+       ${LINK.f} ${OBJECT_TARGET} ${.IMPSRC} ${LDLIBS}
+       ${CTFCONVERT_RUN}
 .f.o:
-       ${COMPILE.f} ${.IMPSRC}
-       ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
+       ${COMPILE.f} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}
 .f.a:
        ${COMPILE.f} ${.IMPSRC}
        ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
        rm -f ${.PREFIX}.o
 
 .F:
-       ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
-       ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
+       ${LINK.F} ${OBJECT_TARGET} ${.IMPSRC} ${LDLIBS}
+       ${CTFCONVERT_RUN}
 .F.o:
-       ${COMPILE.F} ${.IMPSRC}
-       ${defined(CTFCONVERT):?${CTFCONVERT} ${CTFFLAGS} ${.TARGET}:}
+       ${COMPILE.F} ${.IMPSRC} ${OBJECT_TARGET}
+       ${CTFCONVERT_RUN}



Home | Main Index | Thread Index | Old Index