diff options
70 files changed, 218 insertions, 18 deletions
diff --git a/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td b/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td index b7a84764391b..d12b5d6d63c0 100644 --- a/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td +++ b/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td @@ -60,6 +60,8 @@ def warn_fe_cc_log_diagnostics_failure : Warning< "unable to open CC_LOG_DIAGNOSTICS file: %0 (using stderr)">; def err_fe_no_pch_in_dir : Error< "no suitable precompiled header file found in directory '%0'">; +def err_fe_action_not_available : Error< + "action %0 not compiled in">; def warn_fe_serialized_diag_failure : Warning< "unable to open file %0 for serializing diagnostics (%1)">, diff --git a/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp index c7c55b021145..60a264a615ea 100644 --- a/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp +++ b/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp @@ -31,6 +31,7 @@ using namespace clang; static FrontendAction *CreateFrontendBaseAction(CompilerInstance &CI) { using namespace clang::frontend; + StringRef Action("unknown"); switch (CI.getFrontendOpts().ProgramAction) { case ASTDeclList: return new ASTDeclListAction(); @@ -42,12 +43,20 @@ static FrontendAction *CreateFrontendBaseAction(CompilerInstance &CI) { case DumpTokens: return new DumpTokensAction(); case EmitAssembly: return new EmitAssemblyAction(); case EmitBC: return new EmitBCAction(); +#ifdef CLANG_ENABLE_REWRITER case EmitHTML: return new HTMLPrintAction(); +#else + case EmitHTML: Action = "EmitHTML"; break; +#endif case EmitLLVM: return new EmitLLVMAction(); case EmitLLVMOnly: return new EmitLLVMOnlyAction(); case EmitCodeGenOnly: return new EmitCodeGenOnlyAction(); case EmitObj: return new EmitObjAction(); +#ifdef CLANG_ENABLE_REWRITER case FixIt: return new FixItAction(); +#else + case FixIt: Action = "FixIt"; break; +#endif case GenerateModule: return new GenerateModuleAction; case GeneratePCH: return new GeneratePCHAction; case GeneratePTH: return new GeneratePTHAction(); @@ -74,19 +83,46 @@ static FrontendAction *CreateFrontendBaseAction(CompilerInstance &CI) { case PrintDeclContext: return new DeclContextPrintAction(); case PrintPreamble: return new PrintPreambleAction(); case PrintPreprocessedInput: { - if (CI.getPreprocessorOutputOpts().RewriteIncludes) + if (CI.getPreprocessorOutputOpts().RewriteIncludes) { +#ifdef CLANG_ENABLE_REWRITER return new RewriteIncludesAction(); +#else + Action = "RewriteIncludesAction"; + break; +#endif + } return new PrintPreprocessedAction(); } +#ifdef CLANG_ENABLE_REWRITER case RewriteMacros: return new RewriteMacrosAction(); case RewriteObjC: return new RewriteObjCAction(); case RewriteTest: return new RewriteTestAction(); - case RunAnalysis: return new ento::AnalysisAction(); +#else + case RewriteMacros: Action = "RewriteMacros"; break; + case RewriteObjC: Action = "RewriteObjC"; break; + case RewriteTest: Action = "RewriteTest"; break; +#endif +#ifdef CLANG_ENABLE_ARCMT case MigrateSource: return new arcmt::MigrateSourceAction(); +#else + case MigrateSource: Action = "MigrateSource"; break; +#endif +#ifdef CLANG_ENABLE_STATIC_ANALYZER + case RunAnalysis: return new ento::AnalysisAction(); +#else + case RunAnalysis: Action = "RunAnalysis"; break; +#endif case RunPreprocessorOnly: return new PreprocessOnlyAction(); } + +#if !defined(CLANG_ENABLE_ARCMT) || !defined(CLANG_ENABLE_STATIC_ANALYZER) \ + || !defined(CLANG_ENABLE_REWRITER) + CI.getDiagnostics().Report(diag::err_fe_action_not_available) << Action; + return 0; +#else llvm_unreachable("Invalid program action!"); +#endif } static FrontendAction *CreateFrontendAction(CompilerInstance &CI) { @@ -97,10 +133,13 @@ static FrontendAction *CreateFrontendAction(CompilerInstance &CI) { const FrontendOptions &FEOpts = CI.getFrontendOpts(); +#ifdef CLANG_ENABLE_REWRITER if (FEOpts.FixAndRecompile) { Act = new FixItRecompile(Act); } +#endif +#ifdef CLANG_ENABLE_ARCMT // Potentially wrap the base FE action in an ARC Migrate Tool action. switch (FEOpts.ARCMTAction) { case FrontendOptions::ARCMT_None: @@ -124,6 +163,7 @@ static FrontendAction *CreateFrontendAction(CompilerInstance &CI) { FEOpts.ObjCMTAction & ~FrontendOptions::ObjCMT_Literals, FEOpts.ObjCMTAction & ~FrontendOptions::ObjCMT_Subscripting); } +#endif // If there are any AST files to merge, create a frontend action // adaptor to perform the merge. @@ -176,12 +216,14 @@ bool clang::ExecuteCompilerInvocation(CompilerInstance *Clang) { llvm::cl::ParseCommandLineOptions(NumArgs + 1, Args); } +#ifdef CLANG_ENABLE_STATIC_ANALYZER // Honor -analyzer-checker-help. // This should happen AFTER plugins have been loaded! if (Clang->getAnalyzerOpts()->ShowCheckerHelp) { ento::printCheckerHelp(llvm::outs(), Clang->getFrontendOpts().Plugins); return 0; } +#endif // If there were errors in processing arguments, don't do anything else. bool Success = false; diff --git a/lib/clang/Makefile b/lib/clang/Makefile index cfc1554b0ae0..a77d241986f3 100644 --- a/lib/clang/Makefile +++ b/lib/clang/Makefile @@ -3,8 +3,20 @@ .include <bsd.own.mk> .if !make(install) +.if !defined(EARLY_BUILD) && defined(MK_CLANG_FULL) && ${MK_CLANG_FULL} != "no" +_libclangstaticanalyzer= \ + libclangstaticanalyzercheckers \ + libclangstaticanalyzercore \ + libclangstaticanalyzerfrontend +_libclangarcmigrate= \ + libclangarcmigrate +_libclangrewriter= \ + libclangrewritecore \ + libclangrewritefrontend +.endif # !EARLY_BUILD && MK_CLANG_FULL + SUBDIR= libclanganalysis \ - libclangarcmigrate \ + ${_libclangarcmigrate} \ libclangast \ libclangbasic \ libclangcodegen \ @@ -14,13 +26,10 @@ SUBDIR= libclanganalysis \ libclangfrontendtool \ libclanglex \ libclangparse \ - libclangrewritecore \ - libclangrewritefrontend \ + ${_libclangrewriter} \ libclangsema \ libclangserialization \ - libclangstaticanalyzercheckers \ - libclangstaticanalyzercore \ - libclangstaticanalyzerfrontend \ + ${_libclangstaticanalyzer} \ \ libllvmanalysis \ libllvmarchive \ @@ -78,8 +87,8 @@ SUBDIR+=libllvmdebuginfo \ libllvmmcdisassembler \ libllvmmcjit \ libllvmruntimedyld -.endif -.endif +.endif # MK_CLANG_EXTRAS +.endif # !make(install) SUBDIR+= include diff --git a/lib/clang/clang.build.mk b/lib/clang/clang.build.mk index 298a2eb3c98f..0015e3d12bdb 100644 --- a/lib/clang/clang.build.mk +++ b/lib/clang/clang.build.mk @@ -8,6 +8,12 @@ CFLAGS+= -I${LLVM_SRCS}/include -I${CLANG_SRCS}/include \ -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD \ -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS #-DNDEBUG +.if !defined(EARLY_BUILD) && defined(MK_CLANG_FULL) && ${MK_CLANG_FULL} != "no" +CFLAGS+= -DCLANG_ENABLE_ARCMT \ + -DCLANG_ENABLE_REWRITER \ + -DCLANG_ENABLE_STATIC_ANALYZER +.endif # !EARLY_BUILD && MK_CLANG_FULL + # LLVM is not strict aliasing safe as of 12/31/2011 CFLAGS+= -fno-strict-aliasing diff --git a/lib/clang/libclanganalysis/Makefile b/lib/clang/libclanganalysis/Makefile index 61c45be5add0..76bf1e5c8db6 100644 --- a/lib/clang/libclanganalysis/Makefile +++ b/lib/clang/libclanganalysis/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clanganalysis SRCDIR= tools/clang/lib/Analysis diff --git a/lib/clang/libclangarcmigrate/Makefile b/lib/clang/libclangarcmigrate/Makefile index 654480530bd3..7597e9c67f15 100644 --- a/lib/clang/libclangarcmigrate/Makefile +++ b/lib/clang/libclangarcmigrate/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangarcmigrate SRCDIR= tools/clang/lib/ARCMigrate diff --git a/lib/clang/libclangast/Makefile b/lib/clang/libclangast/Makefile index 0b851e616c82..0ddeb53080de 100644 --- a/lib/clang/libclangast/Makefile +++ b/lib/clang/libclangast/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangast SRCDIR= tools/clang/lib/AST diff --git a/lib/clang/libclangbasic/Makefile b/lib/clang/libclangbasic/Makefile index f0efd7443662..eec941a2fe16 100644 --- a/lib/clang/libclangbasic/Makefile +++ b/lib/clang/libclangbasic/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangbasic SRCDIR= tools/clang/lib/Basic diff --git a/lib/clang/libclangcodegen/Makefile b/lib/clang/libclangcodegen/Makefile index 5252e7cd40d1..7aefa7c64489 100644 --- a/lib/clang/libclangcodegen/Makefile +++ b/lib/clang/libclangcodegen/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangcodegen SRCDIR= tools/clang/lib/CodeGen diff --git a/lib/clang/libclangdriver/Makefile b/lib/clang/libclangdriver/Makefile index 4950cface397..aae2a057f589 100644 --- a/lib/clang/libclangdriver/Makefile +++ b/lib/clang/libclangdriver/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangdriver SRCDIR= tools/clang/lib/Driver diff --git a/lib/clang/libclangedit/Makefile b/lib/clang/libclangedit/Makefile index a0e45a9c43d2..59b0b54e4e0d 100644 --- a/lib/clang/libclangedit/Makefile +++ b/lib/clang/libclangedit/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangedit SRCDIR= tools/clang/lib/Edit diff --git a/lib/clang/libclangfrontend/Makefile b/lib/clang/libclangfrontend/Makefile index c2813b4caef4..44ba2fb74325 100644 --- a/lib/clang/libclangfrontend/Makefile +++ b/lib/clang/libclangfrontend/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangfrontend SRCDIR= tools/clang/lib/Frontend diff --git a/lib/clang/libclangfrontendtool/Makefile b/lib/clang/libclangfrontendtool/Makefile index f37979f9a8c8..f20aa35a11a8 100644 --- a/lib/clang/libclangfrontendtool/Makefile +++ b/lib/clang/libclangfrontendtool/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangfrontendtool SRCDIR= tools/clang/lib/FrontendTool diff --git a/lib/clang/libclanglex/Makefile b/lib/clang/libclanglex/Makefile index 3ad0e3f78c23..768d43c1e79c 100644 --- a/lib/clang/libclanglex/Makefile +++ b/lib/clang/libclanglex/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clanglex SRCDIR= tools/clang/lib/Lex diff --git a/lib/clang/libclangparse/Makefile b/lib/clang/libclangparse/Makefile index 599a034cfbcc..dbe9adb03fb9 100644 --- a/lib/clang/libclangparse/Makefile +++ b/lib/clang/libclangparse/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangparse SRCDIR= tools/clang/lib/Parse diff --git a/lib/clang/libclangrewritecore/Makefile b/lib/clang/libclangrewritecore/Makefile index 3a628d0a9a6b..80115ee01891 100644 --- a/lib/clang/libclangrewritecore/Makefile +++ b/lib/clang/libclangrewritecore/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangrewritecore SRCDIR= tools/clang/lib/Rewrite/Core diff --git a/lib/clang/libclangrewritefrontend/Makefile b/lib/clang/libclangrewritefrontend/Makefile index 35de008b5651..ffa11b4fe328 100644 --- a/lib/clang/libclangrewritefrontend/Makefile +++ b/lib/clang/libclangrewritefrontend/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangrewritefrontend SRCDIR= tools/clang/lib/Rewrite/Frontend diff --git a/lib/clang/libclangsema/Makefile b/lib/clang/libclangsema/Makefile index 235fa13c3498..9ced8b4c6895 100644 --- a/lib/clang/libclangsema/Makefile +++ b/lib/clang/libclangsema/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangsema SRCDIR= tools/clang/lib/Sema diff --git a/lib/clang/libclangserialization/Makefile b/lib/clang/libclangserialization/Makefile index 75f68bf74e6a..962bbf09b5c8 100644 --- a/lib/clang/libclangserialization/Makefile +++ b/lib/clang/libclangserialization/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangserialization SRCDIR= tools/clang/lib/Serialization diff --git a/lib/clang/libclangstaticanalyzercheckers/Makefile b/lib/clang/libclangstaticanalyzercheckers/Makefile index 96274d997f5d..95361519d8d8 100644 --- a/lib/clang/libclangstaticanalyzercheckers/Makefile +++ b/lib/clang/libclangstaticanalyzercheckers/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangstaticanalyzercheckers SRCDIR= tools/clang/lib/StaticAnalyzer/Checkers diff --git a/lib/clang/libclangstaticanalyzercore/Makefile b/lib/clang/libclangstaticanalyzercore/Makefile index 82ff5a3ca550..9c263f03d5b5 100644 --- a/lib/clang/libclangstaticanalyzercore/Makefile +++ b/lib/clang/libclangstaticanalyzercore/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangstaticanalyzercore SRCDIR= tools/clang/lib/StaticAnalyzer/Core diff --git a/lib/clang/libclangstaticanalyzerfrontend/Makefile b/lib/clang/libclangstaticanalyzerfrontend/Makefile index 5c7cd4109fa9..9e19f923d7a0 100644 --- a/lib/clang/libclangstaticanalyzerfrontend/Makefile +++ b/lib/clang/libclangstaticanalyzerfrontend/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= clangstaticanalyzerfrontend SRCDIR= tools/clang/lib/StaticAnalyzer/Frontend diff --git a/lib/clang/libllvmarchive/Makefile b/lib/clang/libllvmarchive/Makefile index a28f2f510a69..d5534050083c 100644 --- a/lib/clang/libllvmarchive/Makefile +++ b/lib/clang/libllvmarchive/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmarchive SRCDIR= lib/Archive diff --git a/lib/clang/libllvmarmasmparser/Makefile b/lib/clang/libllvmarmasmparser/Makefile index c3d0d8902321..05e6263aa894 100644 --- a/lib/clang/libllvmarmasmparser/Makefile +++ b/lib/clang/libllvmarmasmparser/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmarmasmparser SRCDIR= lib/Target/ARM/AsmParser diff --git a/lib/clang/libllvmarmcodegen/Makefile b/lib/clang/libllvmarmcodegen/Makefile index 6ae9251eb942..6a10eaf0825f 100644 --- a/lib/clang/libllvmarmcodegen/Makefile +++ b/lib/clang/libllvmarmcodegen/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmarmcodegen SRCDIR= lib/Target/ARM diff --git a/lib/clang/libllvmarmdesc/Makefile b/lib/clang/libllvmarmdesc/Makefile index bd2e0cb96b7d..61679a666683 100644 --- a/lib/clang/libllvmarmdesc/Makefile +++ b/lib/clang/libllvmarmdesc/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmarmdesc SRCDIR= lib/Target/ARM/MCTargetDesc diff --git a/lib/clang/libllvmarmdisassembler/Makefile b/lib/clang/libllvmarmdisassembler/Makefile index a3d16f78416b..eb4673672b1d 100644 --- a/lib/clang/libllvmarmdisassembler/Makefile +++ b/lib/clang/libllvmarmdisassembler/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmarmdisassembler SRCDIR= lib/Target/ARM/Disassembler diff --git a/lib/clang/libllvmarminfo/Makefile b/lib/clang/libllvmarminfo/Makefile index ec88367bc328..1da434c71a0d 100644 --- a/lib/clang/libllvmarminfo/Makefile +++ b/lib/clang/libllvmarminfo/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmarminfo SRCDIR= lib/Target/ARM/TargetInfo diff --git a/lib/clang/libllvmarminstprinter/Makefile b/lib/clang/libllvmarminstprinter/Makefile index ca7e7d4ff0a8..67b8fee26965 100644 --- a/lib/clang/libllvmarminstprinter/Makefile +++ b/lib/clang/libllvmarminstprinter/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmarminstprinter SRCDIR= lib/Target/ARM/InstPrinter diff --git a/lib/clang/libllvmasmparser/Makefile b/lib/clang/libllvmasmparser/Makefile index 8ceba6934928..bb8f0dfda238 100644 --- a/lib/clang/libllvmasmparser/Makefile +++ b/lib/clang/libllvmasmparser/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmasmparser SRCDIR= lib/AsmParser diff --git a/lib/clang/libllvmasmprinter/Makefile b/lib/clang/libllvmasmprinter/Makefile index 36e626fc3427..97bc73d3f41d 100644 --- a/lib/clang/libllvmasmprinter/Makefile +++ b/lib/clang/libllvmasmprinter/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmasmprinter SRCDIR= lib/CodeGen/AsmPrinter diff --git a/lib/clang/libllvmbitreader/Makefile b/lib/clang/libllvmbitreader/Makefile index c426680b32ce..094e0e773304 100644 --- a/lib/clang/libllvmbitreader/Makefile +++ b/lib/clang/libllvmbitreader/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmbitreader SRCDIR= lib/Bitcode/Reader diff --git a/lib/clang/libllvmbitwriter/Makefile b/lib/clang/libllvmbitwriter/Makefile index 3431b219886b..1cb9d411281e 100644 --- a/lib/clang/libllvmbitwriter/Makefile +++ b/lib/clang/libllvmbitwriter/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmbitwriter SRCDIR= lib/Bitcode/Writer diff --git a/lib/clang/libllvmcodegen/Makefile b/lib/clang/libllvmcodegen/Makefile index 8beb5834505c..e65d19ce275d 100644 --- a/lib/clang/libllvmcodegen/Makefile +++ b/lib/clang/libllvmcodegen/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmcodegen SRCDIR= lib/CodeGen diff --git a/lib/clang/libllvmcore/Makefile b/lib/clang/libllvmcore/Makefile index 5b597fedf9a5..d2010c0d97dd 100644 --- a/lib/clang/libllvmcore/Makefile +++ b/lib/clang/libllvmcore/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmcore SRCDIR= lib/VMCore diff --git a/lib/clang/libllvmdebuginfo/Makefile b/lib/clang/libllvmdebuginfo/Makefile index e12289b7c5ed..757b9097a38d 100644 --- a/lib/clang/libllvmdebuginfo/Makefile +++ b/lib/clang/libllvmdebuginfo/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmdebuginfo SRCDIR= lib/DebugInfo diff --git a/lib/clang/libllvmexecutionengine/Makefile b/lib/clang/libllvmexecutionengine/Makefile index c0dde71debb4..3ec39c78658f 100644 --- a/lib/clang/libllvmexecutionengine/Makefile +++ b/lib/clang/libllvmexecutionengine/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmexecutionengine SRCDIR= lib/ExecutionEngine diff --git a/lib/clang/libllvminstcombine/Makefile b/lib/clang/libllvminstcombine/Makefile index e989fa5af01f..3752aef1987f 100644 --- a/lib/clang/libllvminstcombine/Makefile +++ b/lib/clang/libllvminstcombine/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvminstcombine SRCDIR= lib/Transforms/InstCombine diff --git a/lib/clang/libllvminstrumentation/Makefile b/lib/clang/libllvminstrumentation/Makefile index ef093702d2dc..6d666e518dca 100644 --- a/lib/clang/libllvminstrumentation/Makefile +++ b/lib/clang/libllvminstrumentation/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvminstrumentation SRCDIR= lib/Transforms/Instrumentation diff --git a/lib/clang/libllvminterpreter/Makefile b/lib/clang/libllvminterpreter/Makefile index 6a1b453459b2..06fcca4fb9f9 100644 --- a/lib/clang/libllvminterpreter/Makefile +++ b/lib/clang/libllvminterpreter/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvminterpreter SRCDIR= lib/ExecutionEngine/Interpreter diff --git a/lib/clang/libllvmjit/Makefile b/lib/clang/libllvmjit/Makefile index ff852d5047b7..682f704b441e 100644 --- a/lib/clang/libllvmjit/Makefile +++ b/lib/clang/libllvmjit/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmjit SRCDIR= lib/ExecutionEngine/JIT diff --git a/lib/clang/libllvmlinker/Makefile b/lib/clang/libllvmlinker/Makefile index 73f153b378fb..7275131fc6ab 100644 --- a/lib/clang/libllvmlinker/Makefile +++ b/lib/clang/libllvmlinker/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmlinker SRCDIR= lib/Linker diff --git a/lib/clang/libllvmmcdisassembler/Makefile b/lib/clang/libllvmmcdisassembler/Makefile index dc5f29437e0c..94aff3e90576 100644 --- a/lib/clang/libllvmmcdisassembler/Makefile +++ b/lib/clang/libllvmmcdisassembler/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmmcdisassembler SRCDIR= lib/MC/MCDisassembler diff --git a/lib/clang/libllvmmcparser/Makefile b/lib/clang/libllvmmcparser/Makefile index 48deadfee43f..b39926a0d712 100644 --- a/lib/clang/libllvmmcparser/Makefile +++ b/lib/clang/libllvmmcparser/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmmcparser SRCDIR= lib/MC/MCParser diff --git a/lib/clang/libllvmmipsasmparser/Makefile b/lib/clang/libllvmmipsasmparser/Makefile index f5fb3c35a066..0572f8d225b7 100644 --- a/lib/clang/libllvmmipsasmparser/Makefile +++ b/lib/clang/libllvmmipsasmparser/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmmipsasmparser SRCDIR= lib/Target/Mips/AsmParser diff --git a/lib/clang/libllvmmipscodegen/Makefile b/lib/clang/libllvmmipscodegen/Makefile index c33d9548396a..7675a01666c5 100644 --- a/lib/clang/libllvmmipscodegen/Makefile +++ b/lib/clang/libllvmmipscodegen/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmmipscodegen SRCDIR= lib/Target/Mips diff --git a/lib/clang/libllvmmipsdesc/Makefile b/lib/clang/libllvmmipsdesc/Makefile index 120b86634955..4ddb64635367 100644 --- a/lib/clang/libllvmmipsdesc/Makefile +++ b/lib/clang/libllvmmipsdesc/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmmipsdesc SRCDIR= lib/Target/Mips/MCTargetDesc diff --git a/lib/clang/libllvmmipsdisassembler/Makefile b/lib/clang/libllvmmipsdisassembler/Makefile index 7cdd982ca830..1c0a4b66fb4c 100644 --- a/lib/clang/libllvmmipsdisassembler/Makefile +++ b/lib/clang/libllvmmipsdisassembler/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmmipsdisassembler SRCDIR= lib/Target/Mips/Disassembler diff --git a/lib/clang/libllvmmipsinfo/Makefile b/lib/clang/libllvmmipsinfo/Makefile index c5b96cda11dd..c65c8c86f743 100644 --- a/lib/clang/libllvmmipsinfo/Makefile +++ b/lib/clang/libllvmmipsinfo/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmmipsinfo SRCDIR= lib/Target/Mips/TargetInfo diff --git a/lib/clang/libllvmmipsinstprinter/Makefile b/lib/clang/libllvmmipsinstprinter/Makefile index 36d3b0470906..39df7cc59ef3 100644 --- a/lib/clang/libllvmmipsinstprinter/Makefile +++ b/lib/clang/libllvmmipsinstprinter/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmmipsinstprinter SRCDIR= lib/Target/Mips/InstPrinter diff --git a/lib/clang/libllvmobject/Makefile b/lib/clang/libllvmobject/Makefile index d056dc7c15d3..c8c8068ed3c1 100644 --- a/lib/clang/libllvmobject/Makefile +++ b/lib/clang/libllvmobject/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmobject SRCDIR= lib/Object diff --git a/lib/clang/libllvmpowerpccodegen/Makefile b/lib/clang/libllvmpowerpccodegen/Makefile index a97c3528c135..a09da599a9bb 100644 --- a/lib/clang/libllvmpowerpccodegen/Makefile +++ b/lib/clang/libllvmpowerpccodegen/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmpowerpccodegen SRCDIR= lib/Target/PowerPC diff --git a/lib/clang/libllvmpowerpcdesc/Makefile b/lib/clang/libllvmpowerpcdesc/Makefile index 2a5ef6eabf66..e48b484d00f9 100644 --- a/lib/clang/libllvmpowerpcdesc/Makefile +++ b/lib/clang/libllvmpowerpcdesc/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmpowerpcdesc SRCDIR= lib/Target/PowerPC/MCTargetDesc diff --git a/lib/clang/libllvmpowerpcinfo/Makefile b/lib/clang/libllvmpowerpcinfo/Makefile index 8310378a9e2f..03bba0e72931 100644 --- a/lib/clang/libllvmpowerpcinfo/Makefile +++ b/lib/clang/libllvmpowerpcinfo/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmpowerpcinfo SRCDIR= lib/Target/PowerPC/TargetInfo diff --git a/lib/clang/libllvmpowerpcinstprinter/Makefile b/lib/clang/libllvmpowerpcinstprinter/Makefile index c1528aee9b0d..ac98321db91c 100644 --- a/lib/clang/libllvmpowerpcinstprinter/Makefile +++ b/lib/clang/libllvmpowerpcinstprinter/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmpowerpcinstprinter SRCDIR= lib/Target/PowerPC/InstPrinter diff --git a/lib/clang/libllvmruntimedyld/Makefile b/lib/clang/libllvmruntimedyld/Makefile index d5d5447e8e92..02ca4bd0f1ae 100644 --- a/lib/clang/libllvmruntimedyld/Makefile +++ b/lib/clang/libllvmruntimedyld/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmruntimedyld SRCDIR= lib/ExecutionEngine/RuntimeDyld diff --git a/lib/clang/libllvmselectiondag/Makefile b/lib/clang/libllvmselectiondag/Makefile index e69501273443..754310286dc8 100644 --- a/lib/clang/libllvmselectiondag/Makefile +++ b/lib/clang/libllvmselectiondag/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmselectiondag SRCDIR= lib/CodeGen/SelectionDAG diff --git a/lib/clang/libllvmtablegen/Makefile b/lib/clang/libllvmtablegen/Makefile index 8dffad0c22b7..069cec0b0e3e 100644 --- a/lib/clang/libllvmtablegen/Makefile +++ b/lib/clang/libllvmtablegen/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmtablegen SRCDIR= lib/TableGen diff --git a/lib/clang/libllvmtarget/Makefile b/lib/clang/libllvmtarget/Makefile index b82377e0e00d..595d2ccbc504 100644 --- a/lib/clang/libllvmtarget/Makefile +++ b/lib/clang/libllvmtarget/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmtarget SRCDIR= lib/Target diff --git a/lib/clang/libllvmvectorize/Makefile b/lib/clang/libllvmvectorize/Makefile index 444d672c3535..d0f5b73fd5e0 100644 --- a/lib/clang/libllvmvectorize/Makefile +++ b/lib/clang/libllvmvectorize/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmvectorize SRCDIR= lib/Transforms/Vectorize diff --git a/lib/clang/libllvmx86asmparser/Makefile b/lib/clang/libllvmx86asmparser/Makefile index c1402688d3a8..252b2d09a7e8 100644 --- a/lib/clang/libllvmx86asmparser/Makefile +++ b/lib/clang/libllvmx86asmparser/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmx86asmparser SRCDIR= lib/Target/X86/AsmParser diff --git a/lib/clang/libllvmx86codegen/Makefile b/lib/clang/libllvmx86codegen/Makefile index bcc7aa033831..939b257ffb90 100644 --- a/lib/clang/libllvmx86codegen/Makefile +++ b/lib/clang/libllvmx86codegen/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmx86codegen SRCDIR= lib/Target/X86 diff --git a/lib/clang/libllvmx86desc/Makefile b/lib/clang/libllvmx86desc/Makefile index 3d2a9dd9bfd7..a1771293738c 100644 --- a/lib/clang/libllvmx86desc/Makefile +++ b/lib/clang/libllvmx86desc/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmx86desc SRCDIR= lib/Target/X86/MCTargetDesc diff --git a/lib/clang/libllvmx86info/Makefile b/lib/clang/libllvmx86info/Makefile index 85155a883379..bc1a7d7efbda 100644 --- a/lib/clang/libllvmx86info/Makefile +++ b/lib/clang/libllvmx86info/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmx86info SRCDIR= lib/Target/X86/TargetInfo diff --git a/lib/clang/libllvmx86instprinter/Makefile b/lib/clang/libllvmx86instprinter/Makefile index a44006cc32e4..308f91c8020e 100644 --- a/lib/clang/libllvmx86instprinter/Makefile +++ b/lib/clang/libllvmx86instprinter/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmx86instprinter SRCDIR= lib/Target/X86/InstPrinter diff --git a/lib/clang/libllvmx86utils/Makefile b/lib/clang/libllvmx86utils/Makefile index bbed6b0cf047..8355e7e7ccf9 100644 --- a/lib/clang/libllvmx86utils/Makefile +++ b/lib/clang/libllvmx86utils/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include <bsd.own.mk> + LIB= llvmx86utils SRCDIR= lib/Target/X86/Utils diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk index 8b28602995f1..aea33d3eae77 100644 --- a/share/mk/bsd.own.mk +++ b/share/mk/bsd.own.mk @@ -391,9 +391,9 @@ __T=${MACHINE_ARCH} .endif # Clang is only for x86 and powerpc right now, by default. .if ${__T} == "amd64" || ${__T} == "i386" || ${__T:Mpowerpc*} -__DEFAULT_YES_OPTIONS+=CLANG +__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL .else -__DEFAULT_NO_OPTIONS+=CLANG +__DEFAULT_NO_OPTIONS+=CLANG CLANG_FULL .endif # Clang the default system compiler only on x86. .if ${__T} == "amd64" || ${__T} == "i386" @@ -524,6 +524,7 @@ MK_GDB:= no .if ${MK_CLANG} == "no" MK_CLANG_EXTRAS:= no +MK_CLANG_FULL:= no MK_CLANG_IS_CC:= no .endif diff --git a/tools/build/options/WITHOUT_CLANG_FULL b/tools/build/options/WITHOUT_CLANG_FULL new file mode 100644 index 000000000000..418b7d657f67 --- /dev/null +++ b/tools/build/options/WITHOUT_CLANG_FULL @@ -0,0 +1,3 @@ +.\" $FreeBSD$ +Set to avoid building the ARCMigrate, Rewriter and StaticAnalyzer components of +the Clang C/C++ compiler. diff --git a/tools/build/options/WITH_CLANG_FULL b/tools/build/options/WITH_CLANG_FULL new file mode 100644 index 000000000000..59b4dec6fd63 --- /dev/null +++ b/tools/build/options/WITH_CLANG_FULL @@ -0,0 +1,3 @@ +.\" $FreeBSD$ +Set to build the ARCMigrate, Rewriter and StaticAnalyzer components of the +Clang C/C++ compiler. diff --git a/usr.bin/clang/clang/Makefile b/usr.bin/clang/clang/Makefile index 6fa9b802d8e1..18a768be849e 100644 --- a/usr.bin/clang/clang/Makefile +++ b/usr.bin/clang/clang/Makefile @@ -35,6 +35,19 @@ TGHDRS= CC1AsOptions \ DiagnosticLexKinds \ DiagnosticSemaKinds \ Options + +.if !defined(EARLY_BUILD) && defined(MK_CLANG_FULL) && ${MK_CLANG_FULL} != "no" +_clangstaticanalyzer= \ + clangstaticanalyzerfrontend \ + clangstaticanalyzercheckers \ + clangstaticanalyzercore +_clangarcmigrate= \ + clangarcmigrate +_clangrewriter= \ + clangrewritefrontend \ + clangrewritecore +.endif # !EARLY_BUILD && MK_CLANG_FULL + LIBDEPS=clangfrontendtool \ clangfrontend \ clangdriver \ @@ -42,13 +55,10 @@ LIBDEPS=clangfrontendtool \ clangcodegen \ clangparse \ clangsema \ - clangstaticanalyzerfrontend \ - clangstaticanalyzercheckers \ - clangstaticanalyzercore \ + ${_clangstaticanalyzer} \ clanganalysis \ - clangarcmigrate \ - clangrewritefrontend \ - clangrewritecore \ + ${_clangarcmigrate} \ + ${_clangrewriter} \ clangedit \ clangast \ clanglex \ |