summaryrefslogtreecommitdiff
path: root/share/mk
diff options
context:
space:
mode:
authorlukem <lukem@NetBSD.org>2003-08-01 17:03:41 +0000
committerlukem <lukem@NetBSD.org>2003-08-01 17:03:41 +0000
commita93ea220fcb3e34cdfdcd4d7a5d391e0b2b4f2ba (patch)
treec9adfc000f1b3f310cf2f812f02823dbff7766ca /share/mk
parent5aa077f5cfe13c86bb3596f0e709337147ffc49c (diff)
Rework how dependency generation is performed:
* DPSRCS contains extra dependencies, but is _NOT_ added to CLEANFILES. This is a change of behaviour. If a Makefile wants the clean semantics it must specifically append to CLEANFILES. Resolves PR toolchain/5204. * To recap: .d (depend) files are generated for all files in SRCS and DPSRCS that have a suffix of: .c .m .s .S .C .cc .cpp .cxx * If YHEADER is set, automatically add the .y->.h to DPSRCS & CLEANFILES * Ensure that ${OBJS} ${POBJS} ${LOBJS} ${SOBJS} *.d depend upon ${DPSRCS} * Deprecate the (short lived) DEPENDSRCS Update the various Makefiles to these new semantics; generally either adding to CLEANFILES (because DPSRCS doesn't do that anymore), or replacing specific .o dependencies with DPSRCS entries. Tested with "make -j 8 distribution" and "make distribution".
Diffstat (limited to 'share/mk')
-rw-r--r--share/mk/bsd.dep.mk27
-rw-r--r--share/mk/bsd.hostlib.mk9
-rw-r--r--share/mk/bsd.hostprog.mk8
-rw-r--r--share/mk/bsd.kmod.mk9
-rw-r--r--share/mk/bsd.lib.mk7
-rw-r--r--share/mk/bsd.prog.mk10
6 files changed, 39 insertions, 31 deletions
diff --git a/share/mk/bsd.dep.mk b/share/mk/bsd.dep.mk
index 3f1eb602de7..4af60ff2dcb 100644
--- a/share/mk/bsd.dep.mk
+++ b/share/mk/bsd.dep.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.dep.mk,v 1.54 2003/08/01 00:55:43 lukem Exp $
+# $NetBSD: bsd.dep.mk,v 1.55 2003/08/01 17:04:01 lukem Exp $
##### Basic targets
.PHONY: cleandepend
@@ -17,23 +17,18 @@ MKDEP?= mkdep
.if defined(SRCS) # {
__acpp_flags= -traditional-cpp
-DEPENDSRCS.src= ${SRCS:M*.c} ${DPSRCS:M*.c} \
- ${SRCS:M*.m} ${DPSRCS:M*.m} \
- ${SRCS:M*.[sS]} ${DPSRCS:M*.[sS]} \
- ${SRCS:M*.C} ${DPSRCS:M*.C} \
- ${SRCS:M*.cc} ${DPSRCS:M*.cc} \
- ${SRCS:M*.cpp} ${DPSRCS:M*.cpp} \
- ${SRCS:M*.cxx} ${DPSRCS:M*.cxx}
-DEPENDSRCS.d= ${DEPENDSRCS.src:R:S/$/.d/g}
-DEPENDSRCS= .depend ${DEPENDSRCS.d}
+__DPSRCS.all= ${SRCS:C/\.(c|m|s|S|C|cc|cpp|cxx)$/.d/} \
+ ${DPSRCS:C/\.(c|m|s|S|C|cc|cpp|cxx)$/.d/}
+__DPSRCS.d= ${__DPSRCS.all:O:u:M*.d}
+__DPSRCS.notd= ${__DPSRCS.all:O:u:N*.d}
-${DEPENDSRCS.d}: ${DPSRCS}
+.NOPATH: .depend ${__DPSRCS.d}
-.depend: ${DEPENDSRCS.d}
- @rm -f .depend
- cat ${DEPENDSRCS.d} > .depend
+${__DPSRCS.d}: ${__DPSRCS.notd} ${DPSRCS}
-.NOPATH: ${DEPENDSRCS}
+.depend: ${__DPSRCS.d}
+ @rm -f .depend
+ cat ${__DPSRCS.d} > .depend
.SUFFIXES: .d .c .m .s .S .C .cc .cpp .cxx
@@ -60,7 +55,7 @@ ${DEPENDSRCS.d}: ${DPSRCS}
##### Clean rules
cleandepend:
.if defined(SRCS)
- rm -f ${DEPENDSRCS} ${.CURDIR}/tags ${CLEANDEPEND}
+ rm -f .depend ${__DPSRCS.d} ${.CURDIR}/tags ${CLEANDEPEND}
.endif
##### Custom rules
diff --git a/share/mk/bsd.hostlib.mk b/share/mk/bsd.hostlib.mk
index e2136c1eaaa..d9a856159ff 100644
--- a/share/mk/bsd.hostlib.mk
+++ b/share/mk/bsd.hostlib.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.hostlib.mk,v 1.6 2003/07/31 13:47:32 lukem Exp $
+# $NetBSD: bsd.hostlib.mk,v 1.7 2003/08/01 17:04:01 lukem Exp $
.include <bsd.init.mk>
.include <bsd.sys.mk>
@@ -21,7 +21,8 @@ OBJHOSTMACHINE= # set
##### Build rules
.if defined(HOSTLIB)
DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
-CLEANFILES+= ${DPSRCS} ${YHEADER:D${SRCS:M*.y:.y=.h}}
+CLEANFILES+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
+CLEANFILES+= ${YHEADER:D${SRCS:M*.y:.y=.h}}
.endif # defined(HOSTLIB)
.if !empty(SRCS:N*.h:N*.sh)
@@ -31,7 +32,9 @@ OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.lo/g}
.if defined(OBJS) && !empty(OBJS)
.NOPATH: ${OBJS} ${HOSTPROG} ${SRCS:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS:M*.y:.y=.h}}
-lib${HOSTLIB}.a: ${DPSRCS} ${OBJS} ${DPADD}
+${OBJS}: ${DPSRCS}
+
+lib${HOSTLIB}.a: ${OBJS} ${DPADD}
-rm -f ${.TARGET}
${HOST_AR} cq ${.TARGET} ${OBJS}
@${HOST_RANLIB} ${.TARGET}
diff --git a/share/mk/bsd.hostprog.mk b/share/mk/bsd.hostprog.mk
index cff924fd887..759f59b48da 100644
--- a/share/mk/bsd.hostprog.mk
+++ b/share/mk/bsd.hostprog.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.hostprog.mk,v 1.31 2003/07/28 23:54:24 lukem Exp $
+# $NetBSD: bsd.hostprog.mk,v 1.32 2003/08/01 17:04:01 lukem Exp $
# @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94
.include <bsd.init.mk>
@@ -63,7 +63,8 @@ OBJHOSTMACHINE= # set
SRCS?= ${HOSTPROG}.c
DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
-CLEANFILES+= ${DPSRCS} ${YHEADER:D${SRCS:M*.y:.y=.h}}
+CLEANFILES+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
+CLEANFILES+= ${YHEADER:D${SRCS:M*.y:.y=.h}}
.if !empty(SRCS:N*.h:N*.sh)
OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.lo/g}
@@ -73,7 +74,8 @@ LOBJS+= ${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln}
.if defined(OBJS) && !empty(OBJS)
.NOPATH: ${OBJS} ${HOSTPROG} ${SRCS:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS:M*.y:.y=.h}}
-${HOSTPROG}: ${DPSRCS} ${OBJS} ${DPADD}
+${OBJS} ${LOBJS}: ${DPSRCS}
+${HOSTPROG}: ${OBJS} ${DPADD}
${HOST_LINK.c} ${HOST_LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD}
.endif # defined(OBJS) && !empty(OBJS)
diff --git a/share/mk/bsd.kmod.mk b/share/mk/bsd.kmod.mk
index c2c1b9be5b7..e7d51b0da7a 100644
--- a/share/mk/bsd.kmod.mk
+++ b/share/mk/bsd.kmod.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.kmod.mk,v 1.66 2003/07/31 13:47:32 lukem Exp $
+# $NetBSD: bsd.kmod.mk,v 1.67 2003/08/01 17:04:01 lukem Exp $
.include <bsd.init.mk>
@@ -16,8 +16,9 @@ CPPFLAGS+= -nostdinc -I. -I${.CURDIR} -isystem $S -isystem $S/arch
CPPFLAGS+= -D_KERNEL -D_LKM
DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
-CLEANFILES+= ${DPSRCS} ${YHEADER:D${SRCS:M*.y:.y=.h}} \
- machine ${MACHINE_CPU} tmp.o
+CLEANFILES+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
+CLEANFILES+= ${YHEADER:D${SRCS:M*.y:.y=.h}}
+CLEANFILES+= machine ${MACHINE_CPU} tmp.o
# see below why this is necessary
.if ${MACHINE} == "sun2" || ${MACHINE} == "sun3"
@@ -40,7 +41,7 @@ MAN?= ${KMOD}.4
##### Build rules
realall: ${PROG}
-${OBJS}: ${DPSRCS}
+${OBJS} ${LOBJS}: ${DPSRCS}
.if ${MACHINE_ARCH} == "powerpc"
${KMOD}_tmp.o: ${OBJS} ${DPADD}
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index 89016a65cfc..7d1696b6970 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.lib.mk,v 1.229 2003/07/28 23:54:24 lukem Exp $
+# $NetBSD: bsd.lib.mk,v 1.230 2003/08/01 17:04:01 lukem Exp $
# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94
.include <bsd.init.mk>
@@ -363,7 +363,10 @@ __archivesymlinkpic: .USE
${INSTALL_SYMLINK} ${SYSPKGTAG} ${.ALLSRC} ${.TARGET}
DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
-CLEANFILES+= ${DPSRCS} ${YHEADER:D${SRCS:M*.y:.y=.h}}
+CLEANFILES+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
+CLEANFILES+= ${YHEADER:D${SRCS:M*.y:.y=.h}}
+
+${OBJS} ${POBJS} ${SOBJS} ${LOBJS}: ${DPSRCS}
lib${LIB}.a:: ${OBJS} __archivebuild
@echo building standard ${LIB} library
diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk
index 2d0a540c18d..f7c3a1932c9 100644
--- a/share/mk/bsd.prog.mk
+++ b/share/mk/bsd.prog.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.prog.mk,v 1.181 2003/08/01 13:08:35 lukem Exp $
+# $NetBSD: bsd.prog.mk,v 1.182 2003/08/01 17:04:01 lukem Exp $
# @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94
.ifndef HOSTPROG
@@ -90,7 +90,9 @@ SRCS?= ${PROG}.c
.endif
DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
-CLEANFILES+= ${DPSRCS} ${YHEADER:D${SRCS:M*.y:.y=.h}}
+DPSRCS+= ${YHEADER:D${SRCS:M*.y:.y=.h}}
+CLEANFILES+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
+CLEANFILES+= ${YHEADER:D${SRCS:M*.y:.y=.h}}
.if !empty(SRCS:N*.h:N*.sh:N*.fth)
OBJS+= ${SRCS:N*.h:N*.sh:N*.fth:R:S/$/.o/g}
@@ -140,7 +142,9 @@ _CCLINK= ${CC}
echo "source ${__gdbinit}" >> .gdbinit
.endfor
-${PROG}: .gdbinit ${LIBCRT0} ${DPSRCS} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD}
+${OBJS} ${LOBJS}: ${DPSRCS}
+
+${PROG}: .gdbinit ${LIBCRT0} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD}
.if !commands(${PROG})
.if defined(DESTDIR)
${_CCLINK} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} -nostdlib ${_PROGLDOPTS} ${LIBCRT0} ${LIBCRTBEGIN} ${OBJS} ${LDADD} -L${_GCC_LIBGCCDIR} -L${DESTDIR}/usr/lib ${_SUPCXX} -lgcc -lc -lgcc ${LIBCRTEND}