freebsd-dev/lib/clang
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 Upgrade our copies of clang and llvm to 3.7.1 release. This is a 2015-12-25 21:39:45 +00:00
libclanganalysis META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libclangarcmigrate Add META_MODE support. 2015-06-13 19:20:56 +00:00
libclangast META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libclangbasic META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libclangcodegen META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libclangdriver META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libclangedit Add META_MODE support. 2015-06-13 19:20:56 +00:00
libclangfrontend Update llvm/clang build glue. 2015-06-23 18:46:29 +00:00
libclangfrontendtool Add META_MODE support. 2015-06-13 19:20:56 +00:00
libclanglex META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libclangparse META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libclangrewrite Add META_MODE support. 2015-06-13 19:20:56 +00:00
libclangrewritefrontend Add META_MODE support. 2015-06-13 19:20:56 +00:00
libclangsema Add META_MODE support. 2015-06-13 19:20:56 +00:00
libclangserialization Add META_MODE support. 2015-06-13 19:20:56 +00:00
libclangstaticanalyzercheckers META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libclangstaticanalyzercore META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libclangstaticanalyzerfrontend Add META_MODE support. 2015-06-13 19:20:56 +00:00
liblldb META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbAPI META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbBreakpoint META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbCommands META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbCore META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbDataFormatters META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbExpression META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbHostCommon META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbHostFreeBSD META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbHostPOSIX Update LLDB snapshot to upstream r241361 2015-07-04 01:02:43 +00:00
liblldbInitialization META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbInterpreter META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginABISysV_arm META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginABISysV_arm64 META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginABISysV_i386 META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginABISysV_mips META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginABISysV_mips64 META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginABISysV_ppc new depends 2015-06-16 23:37:19 +00:00
liblldbPluginABISysV_ppc64 new depends 2015-06-16 23:37:19 +00:00
liblldbPluginABISysV_x86_64 new depends 2015-06-16 23:37:19 +00:00
liblldbPluginCXXItaniumABI new depends 2015-06-16 23:37:19 +00:00
liblldbPluginDisassemblerLLVM META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginDynamicLoaderPosixDYLD META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginDynamicLoaderStatic META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginInstructionARM new depends 2015-06-16 23:37:19 +00:00
liblldbPluginInstructionARM64 new depends 2015-06-16 23:37:19 +00:00
liblldbPluginInstructionMIPS META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginInstructionMIPS64 META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginInstrumentationRuntimeAddressSanitizer META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginJITLoaderGDB META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginMemoryHistoryASan META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginObjectContainerBSDArchive META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginObjectFileELF META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginObjectFileJIT META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginPlatformFreeBSD META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginPlatformGDB META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginProcessElfCore META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginProcessFreeBSD META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginProcessGDBRemote META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginProcessPOSIX META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginProcessUtility META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginSymbolFileDWARF new depends 2015-06-16 23:37:19 +00:00
liblldbPluginSymbolFileSymtab META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginSymbolVendorELF META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginUnwindAssemblyInstEmulation META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbPluginUnwindAssemblyX86 META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbSymbol META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbTarget META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
liblldbUtility Update LLDB snapshot to upstream r241361 2015-07-04 01:02:43 +00:00
libllvmaarch64asmparser Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmaarch64codegen META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmaarch64desc Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmaarch64disassembler META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmaarch64info Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmaarch64instprinter Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmaarch64utils Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmanalysis META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmarmasmparser Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmarmcodegen META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmarmdesc Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmarmdisassembler Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmarminfo Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmarminstprinter Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmasmparser Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmasmprinter Update llvm/clang to r241361. 2015-07-05 22:34:42 +00:00
libllvmbitreader Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmbitwriter Minimize the number of files compiled for clang only (e.g. when neither 2015-09-06 22:02:13 +00:00
libllvmcodegen META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmcore META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmdebuginfodwarf DIRDEPS_BUILD: Hookup CLANG_EXTRAS. 2016-02-16 23:11:09 +00:00
libllvmdebuginfopdb DIRDEPS_BUILD: Hookup CLANG_EXTRAS. 2016-02-16 23:11:09 +00:00
libllvmexecutionengine Merge ^/head r284188 through r284643. 2015-06-20 19:34:50 +00:00
libllvminstcombine Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvminstrumentation META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvminterpreter META_MODE: Remove DEP_RELDIR from Makefile.depend files. 2015-09-25 19:26:08 +00:00
libllvmipa META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmipo META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmirreader Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmlibdriver DIRDEPS_BUILD: Hookup CLANG_EXTRAS. 2016-02-16 23:11:09 +00:00
libllvmlinker Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmlto DIRDEPS_BUILD: Hookup CLANG_EXTRAS. 2016-02-16 23:11:09 +00:00
libllvmmc Minimize the number of files compiled for clang only (e.g. when neither 2015-09-06 22:02:13 +00:00
libllvmmcdisassembler Minimize the number of files compiled for clang only (e.g. when neither 2015-09-06 22:02:13 +00:00
libllvmmcjit Merge ^/head r284188 through r284643. 2015-06-20 19:34:50 +00:00
libllvmmcparser Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmmipsasmparser Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmmipscodegen META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmmipsdesc Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmmipsdisassembler Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmmipsinfo Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmmipsinstprinter Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmmirparser DIRDEPS_BUILD: Hookup CLANG_EXTRAS. 2016-02-16 23:11:09 +00:00
libllvmobjcarcopts META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmobject Minimize the number of files compiled for clang only (e.g. when neither 2015-09-06 22:02:13 +00:00
libllvmoption Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmorcjit DIRDEPS_BUILD: Hookup CLANG_EXTRAS. 2016-02-16 23:11:09 +00:00
libllvmpasses DIRDEPS_BUILD: Hookup CLANG_EXTRAS. 2016-02-16 23:11:09 +00:00
libllvmpowerpcasmparser Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmpowerpccodegen META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmpowerpcdesc Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmpowerpcdisassembler Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmpowerpcinfo Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmpowerpcinstprinter Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmprofiledata Minimize the number of files compiled for clang only (e.g. when neither 2015-09-06 22:02:13 +00:00
libllvmruntimedyld Merge ^/head r284188 through r284643. 2015-06-20 19:34:50 +00:00
libllvmscalaropts META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmselectiondag Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmsparcasmparser Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmsparccodegen Update llvm/clang to r242221. 2015-08-12 18:31:11 +00:00
libllvmsparcdesc Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmsparcdisassembler Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmsparcinfo Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmsparcinstprinter Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmsupport Minimize the number of files compiled for clang only (e.g. when neither 2015-09-06 22:02:13 +00:00
libllvmtablegen Merge ^/head r284188 through r284643. 2015-06-20 19:34:50 +00:00
libllvmtarget META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmtransformutils META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmvectorize Minimize the number of files compiled for clang only (e.g. when neither 2015-09-06 22:02:13 +00:00
libllvmx86asmparser Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmx86codegen META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmx86desc Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmx86disassembler META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libllvmx86info Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmx86instprinter Add META_MODE support. 2015-06-13 19:20:56 +00:00
libllvmx86utils Add META_MODE support. 2015-06-13 19:20:56 +00:00
clang.build.mk FAST_DEPEND: Always run depend via beforebuild which removes many hacks. 2016-02-24 17:19:18 +00:00
clang.lib.mk Disable -mlong-calls for the clang libraries for now, it increases the 2016-01-21 12:59:54 +00:00
lldb.lib.mk Add LLDB bmake infrastructure 2013-09-20 01:52:02 +00:00
Makefile libllvmmirparser and libllvmlibdriver are only used in usr.bin/clang/llc and 2015-11-30 19:16:58 +00:00