diff options
| author | lukem <lukem@NetBSD.org> | 2003-08-01 17:03:41 +0000 |
|---|---|---|
| committer | lukem <lukem@NetBSD.org> | 2003-08-01 17:03:41 +0000 |
| commit | a93ea220fcb3e34cdfdcd4d7a5d391e0b2b4f2ba (patch) | |
| tree | c9adfc000f1b3f310cf2f812f02823dbff7766ca /share/mk | |
| parent | 5aa077f5cfe13c86bb3596f0e709337147ffc49c (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.mk | 27 | ||||
| -rw-r--r-- | share/mk/bsd.hostlib.mk | 9 | ||||
| -rw-r--r-- | share/mk/bsd.hostprog.mk | 8 | ||||
| -rw-r--r-- | share/mk/bsd.kmod.mk | 9 | ||||
| -rw-r--r-- | share/mk/bsd.lib.mk | 7 | ||||
| -rw-r--r-- | share/mk/bsd.prog.mk | 10 |
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} |
