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.diff -r1.35 -r1.36 pkgsrc/lang/clang/Makefile
(tnn)
@@ -1,39 +1,38 @@ | @@ -1,39 +1,38 @@ | |||
1 | # $NetBSD: Makefile,v 1.35 2015/03/03 12:04:08 tnn Exp $ | 1 | # $NetBSD: Makefile,v 1.36 2015/03/03 16:27:33 tnn Exp $ | |
2 | 2 | |||
3 | DISTNAME= clang-3.6.0 | 3 | DISTNAME= clang-3.6.0 | |
4 | CATEGORIES= lang | 4 | CATEGORIES= lang | |
5 | MASTER_SITES= http://llvm.org/releases/${PKGVERSION_NOREV}/ | 5 | MASTER_SITES= http://llvm.org/releases/${PKGVERSION_NOREV}/ | |
6 | DISTFILES= llvm-${PKGVERSION_NOREV}.src.tar.xz \ | 6 | DISTFILES= llvm-${PKGVERSION_NOREV}.src.tar.xz \ | |
7 | libcxx-${PKGVERSION_NOREV}.src.tar.xz \ | 7 | libcxx-${PKGVERSION_NOREV}.src.tar.xz \ | |
8 | cfe-${PKGVERSION_NOREV}.src.tar.xz \ | 8 | cfe-${PKGVERSION_NOREV}.src.tar.xz \ | |
9 | compiler-rt-${PKGVERSION_NOREV}.src.tar.xz | 9 | compiler-rt-${PKGVERSION_NOREV}.src.tar.xz | |
10 | 10 | |||
11 | MAINTAINER= adam.hoka@gmail.com | 11 | MAINTAINER= adam.hoka@gmail.com | |
12 | HOMEPAGE= http://llvm.org/ | 12 | HOMEPAGE= http://llvm.org/ | |
13 | COMMENT= Low Level Virtual Machine compiler infrastructure | 13 | COMMENT= Low Level Virtual Machine compiler infrastructure | |
14 | LICENSE= modified-bsd | 14 | LICENSE= modified-bsd | |
15 | 15 | |||
16 | WRKSRC= ${WRKDIR}/llvm-${PKGVERSION_NOREV}.src | 16 | WRKSRC= ${WRKDIR}/llvm-${PKGVERSION_NOREV}.src | |
17 | 17 | |||
18 | USE_LANGUAGES= c c++ | 18 | USE_LANGUAGES= c c++ | |
19 | USE_TOOLS+= chown gmake groff pod2html pod2man | 19 | USE_TOOLS+= chown gmake groff pod2html pod2man | |
20 | GCC_REQD+= 4.7 4.8 | 20 | GCC_REQD+= 4.7 4.8 | |
21 | GNU_CONFIGURE= yes | 21 | GNU_CONFIGURE= yes | |
22 | CONFIGURE_ARGS+= --disable-assertions | 22 | CONFIGURE_ARGS+= --disable-assertions | |
23 | CONFIGURE_ARGS+= --disable-bindings # disable OCaml | 23 | CONFIGURE_ARGS+= --disable-bindings # disable OCaml | |
24 | CONFIGURE_ARGS+= --disable-timestamps | 24 | CONFIGURE_ARGS+= --disable-timestamps | |
25 | CONFIGURE_ARGS+= --enable-optimized | 25 | CONFIGURE_ARGS+= --enable-optimized | |
26 | #CONFIGURE_ARGS+= --enable-shared | |||
27 | 26 | |||
28 | MAKE_DIRS+= etc/llvm | 27 | MAKE_DIRS+= etc/llvm | |
29 | 28 | |||
30 | INSTALLATION_DIRS= bin lib libexec | 29 | INSTALLATION_DIRS= bin lib libexec | |
31 | 30 | |||
32 | CHECK_PORTABILITY_SKIP= utils/buildit/build_llvm | 31 | CHECK_PORTABILITY_SKIP= utils/buildit/build_llvm | |
33 | 32 | |||
34 | TEST_TARGET= check unittests | 33 | TEST_TARGET= check unittests | |
35 | 34 | |||
36 | .include "../../mk/bsd.prefs.mk" | 35 | .include "../../mk/bsd.prefs.mk" | |
37 | 36 | |||
38 | .if ${_OPSYS_SHLIB_TYPE} == "dylib" | 37 | .if ${_OPSYS_SHLIB_TYPE} == "dylib" | |
39 | PLIST_SUBST+= SOEXT="dylib" | 38 | PLIST_SUBST+= SOEXT="dylib" |
@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}
@@ -1,19 +1,21 @@ | @@ -1,19 +1,21 @@ | |||
1 | $NetBSD: distinfo,v 1.29 2015/03/03 12:04:08 tnn Exp $ | 1 | $NetBSD: distinfo,v 1.30 2015/03/03 16:27:33 tnn Exp $ | |
2 | 2 | |||
3 | SHA1 (cfe-3.6.0.src.tar.xz) = 06b252867a3d118c95ca279fd3c4ac05f6730551 | 3 | SHA1 (cfe-3.6.0.src.tar.xz) = 06b252867a3d118c95ca279fd3c4ac05f6730551 | |
4 | RMD160 (cfe-3.6.0.src.tar.xz) = 2e04853d2f8133fea493ee12d7f05bc6b27dc988 | 4 | RMD160 (cfe-3.6.0.src.tar.xz) = 2e04853d2f8133fea493ee12d7f05bc6b27dc988 | |
5 | Size (cfe-3.6.0.src.tar.xz) = 8640776 bytes | 5 | Size (cfe-3.6.0.src.tar.xz) = 8640776 bytes | |
6 | SHA1 (compiler-rt-3.6.0.src.tar.xz) = 771cbf0535dce1ca3a3be022377781e32fdea70e | 6 | SHA1 (compiler-rt-3.6.0.src.tar.xz) = 771cbf0535dce1ca3a3be022377781e32fdea70e | |
7 | RMD160 (compiler-rt-3.6.0.src.tar.xz) = 716cbd5e101959b064331ad73bfe18fcb98347c5 | 7 | RMD160 (compiler-rt-3.6.0.src.tar.xz) = 716cbd5e101959b064331ad73bfe18fcb98347c5 | |
8 | Size (compiler-rt-3.6.0.src.tar.xz) = 1140616 bytes | 8 | Size (compiler-rt-3.6.0.src.tar.xz) = 1140616 bytes | |
9 | SHA1 (libcxx-3.6.0.src.tar.xz) = 5445194366ae2291092fd2204030cb3d01ad6272 | 9 | SHA1 (libcxx-3.6.0.src.tar.xz) = 5445194366ae2291092fd2204030cb3d01ad6272 | |
10 | RMD160 (libcxx-3.6.0.src.tar.xz) = 9221db789b801dde45ad89f57c7a74fd3b082cf4 | 10 | RMD160 (libcxx-3.6.0.src.tar.xz) = 9221db789b801dde45ad89f57c7a74fd3b082cf4 | |
11 | Size (libcxx-3.6.0.src.tar.xz) = 946380 bytes | 11 | Size (libcxx-3.6.0.src.tar.xz) = 946380 bytes | |
12 | SHA1 (llvm-3.6.0.src.tar.xz) = 6eb2b7381d924bb3f267281c9058c817d825d824 | 12 | SHA1 (llvm-3.6.0.src.tar.xz) = 6eb2b7381d924bb3f267281c9058c817d825d824 | |
13 | RMD160 (llvm-3.6.0.src.tar.xz) = cd2216a21871ba5be52e193e28e444bd04dacee2 | 13 | RMD160 (llvm-3.6.0.src.tar.xz) = cd2216a21871ba5be52e193e28e444bd04dacee2 | |
14 | Size (llvm-3.6.0.src.tar.xz) = 12750908 bytes | 14 | Size (llvm-3.6.0.src.tar.xz) = 12750908 bytes | |
15 | SHA1 (patch-ab) = 8dd0da6d47a57ac25eea358996cf874dd3289e08 | 15 | SHA1 (patch-ab) = 8dd0da6d47a57ac25eea358996cf874dd3289e08 | |
16 | SHA1 (patch-ac) = 0f0cc98d443ec957fc5374fb491809d27e4f9d4e | 16 | SHA1 (patch-ac) = 0f0cc98d443ec957fc5374fb491809d27e4f9d4e | |
17 | SHA1 (patch-ad) = ad1f6720e4c73e57fce10ba968b03637a133602d | 17 | SHA1 (patch-ad) = ad1f6720e4c73e57fce10ba968b03637a133602d | |
18 | SHA1 (patch-include_llvm_Support_Host.h) = 545f9542cd2aaa6cea58d3653902b4e1a9e7189a | 18 | SHA1 (patch-include_llvm_Support_Host.h) = 545f9542cd2aaa6cea58d3653902b4e1a9e7189a | |
19 | SHA1 (patch-tools_clang_tools_scan-build_scan-build) = a671f1e513fb43ddc0e73751a78235ab39aeaf9d | 19 | SHA1 (patch-tools_clang_tools_scan-build_scan-build) = a671f1e513fb43ddc0e73751a78235ab39aeaf9d | |
20 | SHA1 (patch-tools_lli_Makefile) = 9801878144833b9c871677110183539cd0a08e9a | |||
21 | SHA1 (patch-unittests_ExecutionEngine_MCJIT_Makefile) = 8243131319b77f025568592acf9436cf6fe5219c |
@@ -1,23 +1,40 @@ | @@ -1,23 +1,40 @@ | |||
1 | # $NetBSD: options.mk,v 1.1 2014/10/01 09:41:02 wiz Exp $ | 1 | # $NetBSD: options.mk,v 1.2 2015/03/03 16:27:33 tnn Exp $ | |
2 | 2 | |||
3 | PKG_OPTIONS_VAR= PKG_OPTIONS.clang | 3 | PKG_OPTIONS_VAR= PKG_OPTIONS.clang | |
4 | PKG_SUPPORTED_OPTIONS= clang-static-analyzer | 4 | PKG_SUPPORTED_OPTIONS= clang-static-analyzer shlib | |
5 | PKG_SUGGESTED_OPTIONS= # clang-static-analyzer disabled since it needs python and perl | 5 | PKG_SUGGESTED_OPTIONS= # clang-static-analyzer disabled since it needs python and perl | |
6 | 6 | |||
7 | .include "../../mk/bsd.options.mk" | 7 | .include "../../mk/bsd.options.mk" | |
8 | 8 | |||
9 | PLIST_SRC= ${PLIST_SRC_DFLT} | |||
10 | ||||
11 | # XXX should be spun off to a libLLVM package when we have a use case for it | |||
12 | .if !empty(PKG_OPTIONS:Mshlib) | |||
13 | PLIST_SRC+= PLIST.shlib | |||
14 | CONFIGURE_ARGS+= --enable-shared | |||
15 | MAKE_ENV+= SHARED_LIBRARY=1 | |||
16 | MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/Release/lib | |||
17 | # fixup shared library dependencies in a less intrusive way than patching | |||
18 | BUILDLINK_TRANSFORM+= l:clangTooling:clangToolingCore:clangASTMatchers:clangTooling | |||
19 | BUILDLINK_TRANSFORM+= l:LLVMMipsDesc:LLVMMipsAsmPrinter:LLVMMipsDesc | |||
20 | BUILDLINK_TRANSFORM+= l:LLVMARMAsmParser:LLVMARMInfo:LLVMARMAsmParser | |||
21 | BUILDLINK_TRANSFORM+= l:clangARCMigrate:clangStaticAnalyzerCore:clangStaticAnalyzerCheckers:clangARCMigrate | |||
22 | BUILDLINK_TRANSFORM+= l:clangStaticAnalyzerCheckers:clangStaticAnalyzerCore:clangStaticAnalyzerCheckers | |||
23 | BUILDLINK_TRANSFORM+= l:clangFrontendTool:clangStaticAnalyzerFrontend:clangFrontendTool | |||
24 | .endif | |||
25 | ||||
9 | .if !empty(PKG_OPTIONS:Mclang-static-analyzer) | 26 | .if !empty(PKG_OPTIONS:Mclang-static-analyzer) | |
10 | PLIST_SRC+= PLIST PLIST.static-analyzer | 27 | PLIST_SRC+= PLIST.static-analyzer | |
11 | 28 | |||
12 | INSTALLATION_DIRS+= bin | 29 | INSTALLATION_DIRS+= bin | |
13 | INSTALLATION_DIRS+= libexec | 30 | INSTALLATION_DIRS+= libexec | |
14 | INSTALLATION_DIRS+= ${PKGMANDIR}/man1 | 31 | INSTALLATION_DIRS+= ${PKGMANDIR}/man1 | |
15 | INSTALLATION_DIRS+= share/llvm/static-analyzer | 32 | INSTALLATION_DIRS+= share/llvm/static-analyzer | |
16 | INSTALLATION_DIRS+= share/llvm/static-analyzer/Resources | 33 | INSTALLATION_DIRS+= share/llvm/static-analyzer/Resources | |
17 | 34 | |||
18 | USE_TOOLS+= perl:run | 35 | USE_TOOLS+= perl:run | |
19 | REPLACE_PERL+= tools/clang/tools/scan-build/c++-analyzer | 36 | REPLACE_PERL+= tools/clang/tools/scan-build/c++-analyzer | |
20 | REPLACE_PERL+= tools/clang/tools/scan-build/ccc-analyzer | 37 | REPLACE_PERL+= tools/clang/tools/scan-build/ccc-analyzer | |
21 | REPLACE_PERL+= tools/clang/tools/scan-build/scan-build | 38 | REPLACE_PERL+= tools/clang/tools/scan-build/scan-build | |
22 | 39 | |||
23 | REPLACE_PYTHON+= tools/clang/tools/scan-view/scan-view | 40 | REPLACE_PYTHON+= tools/clang/tools/scan-view/scan-view |
$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
$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