diff options
author | tnn <tnn> | 2015-03-03 16:27:33 +0000 |
---|---|---|
committer | tnn <tnn> | 2015-03-03 16:27:33 +0000 |
commit | 4a556b50b04e5ea53569cbe798954cfdb295b834 (patch) | |
tree | 2e34d0c20453181fee39e950c1da0fd5f573a32d /lang/clang | |
parent | fd8d791c2092cbfd9988fee3ba461c6d1328f69a (diff) | |
download | pkgsrc-4a556b50b04e5ea53569cbe798954cfdb295b834.tar.gz |
Add default off shlib option for building PIC & installing shared libLLVM libs.
I will spin this off to a libLLVM package when we have a ready use case for it.
Packages that may want to use libLLVM are for example MesaLib and OpenJDK.
Diffstat (limited to 'lang/clang')
-rw-r--r-- | lang/clang/Makefile | 3 | ||||
-rw-r--r-- | lang/clang/PLIST.shlib | 129 | ||||
-rw-r--r-- | lang/clang/distinfo | 4 | ||||
-rw-r--r-- | lang/clang/options.mk | 23 | ||||
-rw-r--r-- | lang/clang/patches/patch-tools_lli_Makefile | 14 | ||||
-rw-r--r-- | lang/clang/patches/patch-unittests_ExecutionEngine_MCJIT_Makefile | 14 |
6 files changed, 181 insertions, 6 deletions
diff --git a/lang/clang/Makefile b/lang/clang/Makefile index 23899ce8ed3..2fda33edb71 100644 --- a/lang/clang/Makefile +++ b/lang/clang/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.35 2015/03/03 12:04:08 tnn Exp $ +# $NetBSD: Makefile,v 1.36 2015/03/03 16:27:33 tnn Exp $ DISTNAME= clang-3.6.0 CATEGORIES= lang @@ -23,7 +23,6 @@ CONFIGURE_ARGS+= --disable-assertions CONFIGURE_ARGS+= --disable-bindings # disable OCaml CONFIGURE_ARGS+= --disable-timestamps CONFIGURE_ARGS+= --enable-optimized -#CONFIGURE_ARGS+= --enable-shared MAKE_DIRS+= etc/llvm diff --git a/lang/clang/PLIST.shlib b/lang/clang/PLIST.shlib new file mode 100644 index 00000000000..875cc4f0d74 --- /dev/null +++ b/lang/clang/PLIST.shlib @@ -0,0 +1,129 @@ +@comment $NetBSD@ +lib/libLLVM-3.6.0.${SOEXT} +lib/libLLVM-3.6.${SOEXT} +lib/libLLVMAArch64AsmParser.${SOEXT} +lib/libLLVMAArch64AsmPrinter.${SOEXT} +lib/libLLVMAArch64CodeGen.${SOEXT} +lib/libLLVMAArch64Desc.${SOEXT} +lib/libLLVMAArch64Disassembler.${SOEXT} +lib/libLLVMAArch64Info.${SOEXT} +lib/libLLVMAArch64Utils.${SOEXT} +lib/libLLVMARMAsmParser.${SOEXT} +lib/libLLVMARMAsmPrinter.${SOEXT} +lib/libLLVMARMCodeGen.${SOEXT} +lib/libLLVMARMDesc.${SOEXT} +lib/libLLVMARMDisassembler.${SOEXT} +lib/libLLVMARMInfo.${SOEXT} +lib/libLLVMAnalysis.${SOEXT} +lib/libLLVMAsmParser.${SOEXT} +lib/libLLVMAsmPrinter.${SOEXT} +lib/libLLVMBitReader.${SOEXT} +lib/libLLVMBitWriter.${SOEXT} +lib/libLLVMCodeGen.${SOEXT} +lib/libLLVMCore.${SOEXT} +lib/libLLVMCppBackendCodeGen.${SOEXT} +lib/libLLVMCppBackendInfo.${SOEXT} +lib/libLLVMDebugInfo.${SOEXT} +lib/libLLVMExecutionEngine.${SOEXT} +lib/libLLVMHexagonCodeGen.${SOEXT} +lib/libLLVMHexagonDesc.${SOEXT} +lib/libLLVMHexagonDisassembler.${SOEXT} +lib/libLLVMHexagonInfo.${SOEXT} +lib/libLLVMIRReader.${SOEXT} +lib/libLLVMInstCombine.${SOEXT} +lib/libLLVMInstrumentation.${SOEXT} +lib/libLLVMInterpreter.${SOEXT} +lib/libLLVMLTO.${SOEXT} +lib/libLLVMLineEditor.${SOEXT} +lib/libLLVMLinker.${SOEXT} +lib/libLLVMMC.${SOEXT} +lib/libLLVMMCDisassembler.${SOEXT} +lib/libLLVMMCJIT.${SOEXT} +lib/libLLVMMCParser.${SOEXT} +lib/libLLVMMSP430AsmPrinter.${SOEXT} +lib/libLLVMMSP430CodeGen.${SOEXT} +lib/libLLVMMSP430Desc.${SOEXT} +lib/libLLVMMSP430Info.${SOEXT} +lib/libLLVMMipsAsmParser.${SOEXT} +lib/libLLVMMipsAsmPrinter.${SOEXT} +lib/libLLVMMipsCodeGen.${SOEXT} +lib/libLLVMMipsDesc.${SOEXT} +lib/libLLVMMipsDisassembler.${SOEXT} +lib/libLLVMMipsInfo.${SOEXT} +lib/libLLVMNVPTXAsmPrinter.${SOEXT} +lib/libLLVMNVPTXCodeGen.${SOEXT} +lib/libLLVMNVPTXDesc.${SOEXT} +lib/libLLVMNVPTXInfo.${SOEXT} +lib/libLLVMObjCARCOpts.${SOEXT} +lib/libLLVMObject.${SOEXT} +lib/libLLVMOption.${SOEXT} +lib/libLLVMPowerPCAsmParser.${SOEXT} +lib/libLLVMPowerPCAsmPrinter.${SOEXT} +lib/libLLVMPowerPCCodeGen.${SOEXT} +lib/libLLVMPowerPCDesc.${SOEXT} +lib/libLLVMPowerPCDisassembler.${SOEXT} +lib/libLLVMPowerPCInfo.${SOEXT} +lib/libLLVMProfileData.${SOEXT} +lib/libLLVMR600AsmParser.${SOEXT} +lib/libLLVMR600AsmPrinter.${SOEXT} +lib/libLLVMR600CodeGen.${SOEXT} +lib/libLLVMR600Desc.${SOEXT} +lib/libLLVMR600Info.${SOEXT} +lib/libLLVMRuntimeDyld.${SOEXT} +lib/libLLVMScalarOpts.${SOEXT} +lib/libLLVMSelectionDAG.${SOEXT} +lib/libLLVMSparcAsmParser.${SOEXT} +lib/libLLVMSparcAsmPrinter.${SOEXT} +lib/libLLVMSparcCodeGen.${SOEXT} +lib/libLLVMSparcDesc.${SOEXT} +lib/libLLVMSparcDisassembler.${SOEXT} +lib/libLLVMSparcInfo.${SOEXT} +lib/libLLVMSupport.${SOEXT} +lib/libLLVMSystemZAsmParser.${SOEXT} +lib/libLLVMSystemZAsmPrinter.${SOEXT} +lib/libLLVMSystemZCodeGen.${SOEXT} +lib/libLLVMSystemZDesc.${SOEXT} +lib/libLLVMSystemZDisassembler.${SOEXT} +lib/libLLVMSystemZInfo.${SOEXT} +lib/libLLVMTableGen.${SOEXT} +lib/libLLVMTarget.${SOEXT} +lib/libLLVMTransformUtils.${SOEXT} +lib/libLLVMVectorize.${SOEXT} +lib/libLLVMX86AsmParser.${SOEXT} +lib/libLLVMX86AsmPrinter.${SOEXT} +lib/libLLVMX86CodeGen.${SOEXT} +lib/libLLVMX86Desc.${SOEXT} +lib/libLLVMX86Disassembler.${SOEXT} +lib/libLLVMX86Info.${SOEXT} +lib/libLLVMX86Utils.${SOEXT} +lib/libLLVMXCoreAsmPrinter.${SOEXT} +lib/libLLVMXCoreCodeGen.${SOEXT} +lib/libLLVMXCoreDesc.${SOEXT} +lib/libLLVMXCoreDisassembler.${SOEXT} +lib/libLLVMXCoreInfo.${SOEXT} +lib/libLLVMipa.${SOEXT} +lib/libLLVMipo.${SOEXT} +lib/libclangARCMigrate.${SOEXT} +lib/libclangAST.${SOEXT} +lib/libclangASTMatchers.${SOEXT} +lib/libclangAnalysis.${SOEXT} +lib/libclangBasic.${SOEXT} +lib/libclangCodeGen.${SOEXT} +lib/libclangDriver.${SOEXT} +lib/libclangDynamicASTMatchers.${SOEXT} +lib/libclangEdit.${SOEXT} +lib/libclangFormat.${SOEXT} +lib/libclangFrontend.${SOEXT} +lib/libclangFrontendTool.${SOEXT} +lib/libclangIndex.${SOEXT} +lib/libclangLex.${SOEXT} +lib/libclangParse.${SOEXT} +lib/libclangRewrite.${SOEXT} +lib/libclangRewriteFrontend.${SOEXT} +lib/libclangSema.${SOEXT} +lib/libclangSerialization.${SOEXT} +lib/libclangStaticAnalyzerCheckers.${SOEXT} +lib/libclangStaticAnalyzerCore.${SOEXT} +lib/libclangStaticAnalyzerFrontend.${SOEXT} +lib/libclangTooling.${SOEXT} +lib/libclangToolingCore.${SOEXT} diff --git a/lang/clang/distinfo b/lang/clang/distinfo index 87ebce9d9b8..6c45c3bd7ef 100644 --- a/lang/clang/distinfo +++ b/lang/clang/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.29 2015/03/03 12:04:08 tnn Exp $ +$NetBSD: distinfo,v 1.30 2015/03/03 16:27:33 tnn Exp $ SHA1 (cfe-3.6.0.src.tar.xz) = 06b252867a3d118c95ca279fd3c4ac05f6730551 RMD160 (cfe-3.6.0.src.tar.xz) = 2e04853d2f8133fea493ee12d7f05bc6b27dc988 @@ -17,3 +17,5 @@ SHA1 (patch-ac) = 0f0cc98d443ec957fc5374fb491809d27e4f9d4e SHA1 (patch-ad) = ad1f6720e4c73e57fce10ba968b03637a133602d SHA1 (patch-include_llvm_Support_Host.h) = 545f9542cd2aaa6cea58d3653902b4e1a9e7189a SHA1 (patch-tools_clang_tools_scan-build_scan-build) = a671f1e513fb43ddc0e73751a78235ab39aeaf9d +SHA1 (patch-tools_lli_Makefile) = 9801878144833b9c871677110183539cd0a08e9a +SHA1 (patch-unittests_ExecutionEngine_MCJIT_Makefile) = 8243131319b77f025568592acf9436cf6fe5219c diff --git a/lang/clang/options.mk b/lang/clang/options.mk index f864a3d54bb..35309d0b4fc 100644 --- a/lang/clang/options.mk +++ b/lang/clang/options.mk @@ -1,13 +1,30 @@ -# $NetBSD: options.mk,v 1.1 2014/10/01 09:41:02 wiz Exp $ +# $NetBSD: options.mk,v 1.2 2015/03/03 16:27:33 tnn Exp $ PKG_OPTIONS_VAR= PKG_OPTIONS.clang -PKG_SUPPORTED_OPTIONS= clang-static-analyzer +PKG_SUPPORTED_OPTIONS= clang-static-analyzer shlib PKG_SUGGESTED_OPTIONS= # clang-static-analyzer disabled since it needs python and perl .include "../../mk/bsd.options.mk" +PLIST_SRC= ${PLIST_SRC_DFLT} + +# XXX should be spun off to a libLLVM package when we have a use case for it +.if !empty(PKG_OPTIONS:Mshlib) +PLIST_SRC+= PLIST.shlib +CONFIGURE_ARGS+= --enable-shared +MAKE_ENV+= SHARED_LIBRARY=1 +MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/Release/lib +# fixup shared library dependencies in a less intrusive way than patching +BUILDLINK_TRANSFORM+= l:clangTooling:clangToolingCore:clangASTMatchers:clangTooling +BUILDLINK_TRANSFORM+= l:LLVMMipsDesc:LLVMMipsAsmPrinter:LLVMMipsDesc +BUILDLINK_TRANSFORM+= l:LLVMARMAsmParser:LLVMARMInfo:LLVMARMAsmParser +BUILDLINK_TRANSFORM+= l:clangARCMigrate:clangStaticAnalyzerCore:clangStaticAnalyzerCheckers:clangARCMigrate +BUILDLINK_TRANSFORM+= l:clangStaticAnalyzerCheckers:clangStaticAnalyzerCore:clangStaticAnalyzerCheckers +BUILDLINK_TRANSFORM+= l:clangFrontendTool:clangStaticAnalyzerFrontend:clangFrontendTool +.endif + .if !empty(PKG_OPTIONS:Mclang-static-analyzer) -PLIST_SRC+= PLIST PLIST.static-analyzer +PLIST_SRC+= PLIST.static-analyzer INSTALLATION_DIRS+= bin INSTALLATION_DIRS+= libexec diff --git a/lang/clang/patches/patch-tools_lli_Makefile b/lang/clang/patches/patch-tools_lli_Makefile new file mode 100644 index 00000000000..5532594513f --- /dev/null +++ b/lang/clang/patches/patch-tools_lli_Makefile @@ -0,0 +1,14 @@ +$NetBSD: patch-tools_lli_Makefile,v 1.1 2015/03/03 16:27:33 tnn Exp $ + +Fix build with shlib option. + +--- tools/lli/Makefile.orig 2014-09-02 22:28:02.000000000 +0000 ++++ tools/lli/Makefile +@@ -15,6 +15,7 @@ PARALLEL_DIRS := ChildTarget + include $(LEVEL)/Makefile.config + + LINK_COMPONENTS := mcjit instrumentation interpreter nativecodegen bitreader asmparser irreader selectiondag native ++USEDLIBS += LLVMMCJIT.a + + # If Intel JIT Events support is confiured, link against the LLVM Intel JIT + # Events interface library diff --git a/lang/clang/patches/patch-unittests_ExecutionEngine_MCJIT_Makefile b/lang/clang/patches/patch-unittests_ExecutionEngine_MCJIT_Makefile new file mode 100644 index 00000000000..37f0a1aaec9 --- /dev/null +++ b/lang/clang/patches/patch-unittests_ExecutionEngine_MCJIT_Makefile @@ -0,0 +1,14 @@ +$NetBSD: patch-unittests_ExecutionEngine_MCJIT_Makefile,v 1.1 2015/03/03 16:27:33 tnn Exp $ + +Fix build with shlib option. + +--- unittests/ExecutionEngine/MCJIT/Makefile.orig 2014-09-02 22:28:02.000000000 +0000 ++++ unittests/ExecutionEngine/MCJIT/Makefile +@@ -10,6 +10,7 @@ + LEVEL = ../../.. + TESTNAME = MCJIT + LINK_COMPONENTS := core ipo mcjit native support ++USEDLIBS += LLVMMCJIT.a + + include $(LEVEL)/Makefile.config + include $(LLVM_SRC_ROOT)/unittests/Makefile.unittest |