freebsd-dev/kerberos5
Bryan Drewery b9cd412e7b FAST_DEPEND: Always run depend via beforebuild which removes many hacks.
This will generate dependencies rather than depending on the previous behavior
of depending on the guessed OBJS: *.h dependecies or a user running
'make depend'.

Experimentation showed that depending only on headers was not enough and
prone to .ORDER errors.  Downstream users may also have added
dependencies into beforedepend or afterdepend targets.  The safest way to
ensure dependencies are generated before build is to run 'make depend'
beforehand rather than just depending on DPSRCS+SRCS.

Note that the OBJS_DEPEND_GUESS mechanism (a.k.a .if !exists(.depend) then
foo.o: *.h) is still useful as it improves incremental builds with missing
.depend.* files and allows 'make foo.o' to usually work, while this
'beforebuild: depend' ensures that the build will always find all dependencies.
The 'make foo.o' case has no means of a 'beforebuild' hook.

This also removes several hacks in the DIRDEPS_BUILD:
- NO_INSTALL_INCLUDES is no longer needed as it mostly was to work around
  .ORDER problems with building the needed headers early.
- DIRDEPS_BUILD: It is no longer necesarry to track "local dependencies" in
  Makefile.depend.

  These were only in Makefile.depend for 'clean builds' since nothing would
  generate the files due to skipping 'make depend' and early dependency
  bugs that have been fixed, such as adding headers into SRCS for the
  OBJS_DEPEND_GUESS mechanism.  Normally if a .depend file does not exist then
  a dependency is added by bsd.lib.mk/bsd.prog.mk from OBJS: *.h.  However,
  meta.autodep.mk creates a .depend file from created meta files and inserts
  that into Makefile.depend.  It also only tracks *.[ch] files though which can
  miss some dependencies that are hooked into 'make depend'.  This .depend
  that is created then breaks incremental builds due to the !exists(.depend)
  checks for OBJS_DEPEND_GUESS.  The goal was to skip 'make depend' yet it only
  really works the first time.  After that files are not generated as expected,
  which r288966 tried to address but was using buildfiles: rather than
  beforebuild: and was reverted in r291725.  As noted previously,
  depending only on headers in beforebuild: would create .ORDER errors
  in some cases.

  meta.autodep.mk is still used to generate Makefile.depend though via:
    gendirdeps: Makefile.depend
    .END: gendirdeps

  This commit allows removing all of the "local dependencies" in
  Makefile.depend which cuts down on churn and removes some of the
  arch-dependent Makefile.depend files.

  The "local dependencies" were also problematic for bootstrapping.

Sponsored by:	EMC / Isilon Storage Division
2016-02-24 17:19:18 +00:00
..
include - Update FreeBSD's Heimdal distribution to 1.5.2. This is a bugfix 2012-04-08 08:19:17 +00:00
lib FAST_DEPEND: Always run depend via beforebuild which removes many hacks. 2016-02-24 17:19:18 +00:00
libexec DIRDEPS_BUILD: Add some missing build dependencies for kerberos5. 2016-02-24 17:18:43 +00:00
tools DIRDEPS_BUILD: Add some missing build dependencies for kerberos5. 2016-02-24 17:18:43 +00:00
usr.bin DIRDEPS_BUILD: Add some missing build dependencies for kerberos5. 2016-02-24 17:18:43 +00:00
usr.sbin DIRDEPS_BUILD: Add some missing build dependencies for kerberos5. 2016-02-24 17:18:43 +00:00
Makefile Add more SUBDIR_PARALLEL. 2015-09-26 14:13:51 +00:00
Makefile.inc Move setting of LDFLAGS to the modules which require it actually, as 2015-08-27 17:16:18 +00:00
README

This subtree is world-exportable, as it does not contain any
cryptographic code.

At the time of writing, it did not even contain source code, only
Makefiles and headers.

Please maintain this "exportable" status quo.

Thanks!

MarkM
markm@freebsd.org
20th Sept 1997