Source-Changes-HG archive

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

[src/trunk]: src/share/mk Rework how dependency generation is performed:



details:   https://anonhg.NetBSD.org/src/rev/96a53d30b077
branches:  trunk
changeset: 550222:96a53d30b077
user:      lukem <lukem%NetBSD.org@localhost>
date:      Sat Aug 02 00:34:25 2003 +0000

description:
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".

Update documentation for some other make variables

diffstat:

 share/mk/bsd.README |  108 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 86 insertions(+), 22 deletions(-)

diffs (143 lines):

diff -r 904fae121077 -r 96a53d30b077 share/mk/bsd.README
--- a/share/mk/bsd.README       Fri Aug 01 22:51:34 2003 +0000
+++ b/share/mk/bsd.README       Sat Aug 02 00:34:25 2003 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.README,v 1.132 2003/07/31 13:47:32 lukem Exp $
+#      $NetBSD: bsd.README,v 1.133 2003/08/02 00:34:25 lukem Exp $
 #      @(#)bsd.README  8.2 (Berkeley) 4/2/94
 
 This is the README file for the new make "include" files for the BSD
@@ -260,13 +260,6 @@
 
 The include file <sys.mk> has the default rules for all makes, in the BSD
 environment or otherwise.  You probably don't want to touch this file.
-If you intend to run a cross build, you will need to supply the following
-host tools, and configure the following variables properly:
-
-OBJCOPY                objcopy - copy and translate object files
-
-STRIP          strip - Discard symbols from object files
-
 
 =-=-=-=-=   bsd.own.mk   =-=-=-=-=
 
@@ -415,8 +408,10 @@
 =-=-=-=-=   bsd.dep.mk   =-=-=-=-=
 
 The include file <bsd.dep.mk> contains the default targets for building
-.depend files.  It creates .d files from entries in SRCS and DPSRCS,
-and builds .depend from those.  In order for this to function correctly,
+.depend files.  It creates .d files from entries in SRCS and DPSRCS
+that are C, C++, or Objective C source files, and builds .depend from the
+.d files.  All other files in SRCS and all of DPSRCS will be used as
+dependencies for the .d files.  In order for this to function correctly,
 it should be .included after all other .mk files and directives that may
 modify SRCS or DPSRCS.  It uses the following variables:
 
@@ -424,15 +419,6 @@
 
 DPSRCS         List of source files which are needed for generating
                dependencies, but are not needed in ${SRCS}.
-               These are automatically added to CLEANFILES.
-
-
-It sets the following variables:
-
-DEPENDSRCS     .depend and all the .d files for this target.
-               If this variable is to used as a target, the rule
-               must appear after all of the bsd.*.mk includes
-               to function correctly.
 
 
 =-=-=-=-=   bsd.files.mk   =-=-=-=-=
@@ -991,9 +977,87 @@
 
 The include file <bsd.sys.mk> is used by <bsd.prog.mk> and
 <bsd.lib.mk>.  It contains overrides that are used when building
-the NetBSD source tree.  For instance, if "PARALLEL" is defined by
-the program/library Makefile, it includes a set of rules for lex and
-yacc that allow multiple lex and yacc targets to be built in parallel.
+the NetBSD source tree.
+
+The following variables control how various files are compiled/built.
+(Note that these may be overridden in <bsd.own.mk> if USETOOLS=yes):
+
+AR             Create, modify, and extract from archives.  [ar]
+
+ARFLAGS                Options to ${AR}.  [rl]
+
+CC             C compiler.  [cc]
+
+CFLAGS         Options to ${CC}.  [Usually -O or -O2]
+
+CPP            C Pre-Processor.  [cpp]
+
+CPPFLAGS       Options to ${CPP}.  []
+
+CPUFLAGS       Optimization flags for ${CC}
+
+CXX            C++ compiler.  [c++]
+
+CXXFLAGS       Options to ${CXX}.  [${CFLAGS}]
+
+ELF2ECOFF      Convert ELF-format executable to ECOFF.  [elf2ecoff]
+
+FC             Fortran compiler.  [f77]
+
+FFLAGS         Options to {$FC}.  [-O]
+
+INSTALL                install(1) command.  [install]
+
+LEX            Lexical analyzer.  [lex]
+
+LFLAGS         Options to ${LEX}.  []
+
+LD             Linker.  [ld]
+
+LDFLAGS                Options to ${LD}.  []
+
+LINT           C program verifier.  [lint]
+
+LINTFLAGS      Options to ${LINT}.  [-chapbxzF]
+
+LORDER         List dependencies for object files.  [lorder]
+
+MAKE           make(1).  [make]
+
+MKDEP          Construct Makefile dependency list.  [mkdep]
+
+NM             List symbols from object files.  [nm]
+
+PC             Pascal compiler.  [pc]  (Not present)
+
+PFLAGS         Options to ${PC}.  []
+
+OBJC           Objective C compiler.  [${CC}]
+
+OBJCFLAGS      Options to ${OBJC}.  [${CFLAGS}]
+
+OBJCOPY                Copy and translate object files.  [objcopy]
+
+RANLIB         Generate index to archive.  [ranlib]
+
+SHELL          Shell.  [sh]
+
+SIZE           List section sizes and total size.  [size]
+
+STRIP          Discard symbols from object files.  [strip]
+
+TSORT          Topological sort of a directed graph.  [tsort -q]
+
+YACC           LALR(1) parser generator.  [yacc]
+
+YFLAGS         Options to ${YACC}.  []
+
+YHEADER                If defined, add "-d" to YFLAGS, and add dependencies
+               from <file>.y to <file>.h and <file>.c, and add
+               <foo>.h to CLEANFILES.
+
+YPREFIX                If defined, add "-p ${YPREFIX}" to YFLAGS.
+
 
 The following variables are defined to commands to perform the
 appropriate operation, with the default in [brackets].



Home | Main Index | Thread Index | Old Index