Annotation of pkgsrc/lang/libLLVM/Makefile, Revision 1.16
1.16 ! adam 1: # $NetBSD: Makefile,v 1.15 2016/12/20 22:40:06 tnn Exp $
1.1 tnn 2:
1.16 ! adam 3: DISTNAME= llvm-3.9.1.src
1.8 tnn 4: PKGNAME= ${DISTNAME:S/llvm/libLLVM/:S/.src//}
5: CATEGORIES= lang devel
6: MASTER_SITES= http://llvm.org/releases/${PKGVERSION_NOREV}/
7: EXTRACT_SUFX= .tar.xz
8:
9: MAINTAINER= pkgsrc-users@NetBSD.org
10: HOMEPAGE= http://llvm.org/
11: COMMENT= Low Level Virtual Machine shared library
12: LICENSE= modified-bsd
13:
14: USE_LANGUAGES= c c++
15: USE_CMAKE= yes
16: GCC_REQD+= 4.8
1.1 tnn 17: PYTHON_FOR_BUILD_ONLY= yes
18:
1.8 tnn 19: CONFIGURE_DIRS= ${WRKDIR}/build
20: CMAKE_ARG_PATH= ${WRKSRC}
1.6 tnn 21:
1.8 tnn 22: CMAKE_ARGS+= -DCMAKE_BUILD_TYPE=Release
23: CMAKE_ARGS+= -DCMAKE_C_COMPILER=gcc
24: CMAKE_ARGS+= -DCMAKE_CXX_COMPILER=g++
1.10 tnn 25: CMAKE_ARGS+= -DLLVM_BUILD_LLVM_DYLIB=ON
1.13 ryoon 26: CMAKE_ARGS+= -DLLVM_INCLUDE_TESTS=OFF
1.8 tnn 27:
28: .for tool in bugpoint bugpoint_passes dsymutil llc lli llvm_ar \
29: llvm_as llvm_bcanalyzer llvm_c_test llvm_cov llvm_cxxdump \
30: llvm_diff llvm_dis llvm_dwarfdump llvm_dwp llvm_extract llvm_go \
31: llvm_jitlistener llvm_link llvm_lto llvm_mc llvm_mcmarkup \
32: llvm_nm llvm_objdump llvm_pdbdump llvm_profdata llvm_readobj \
33: llvm_rtdyld llvm_size llvm_split llvm_stress llvm_symbolizer \
1.13 ryoon 34: lto obj2yaml opt sancov verify_uselistorder yaml2obj sanstats
1.8 tnn 35: CMAKE_ARGS+= -DLLVM_TOOL_${tool:tu}_BUILD=OFF
36: .endfor
1.1 tnn 37:
38: SUBST_CLASSES+= fix-cnf
39: SUBST_STAGE.fix-cnf= pre-configure
40: SUBST_MESSAGE.fix-cnf= Fixing llvm-config paths
41: SUBST_FILES.fix-cnf= tools/llvm-config/llvm-config.cpp
1.10 tnn 42: SUBST_VARS.fix-cnf= PREFIX LLVM_MAJOR_MINOR COMPILER_RPATH_FLAG
1.1 tnn 43:
1.8 tnn 44: CHECK_PORTABILITY_SKIP= utils/buildit/build_llvm
45:
46: # XXX perl is not added as a tool as it does not seem to be required
47: REPLACE_PERL+= utils/GenLibDeps.pl
48: REPLACE_PERL+= utils/UpdateCMakeLists.pl
49: REPLACE_PERL+= utils/codegen-diff
50: REPLACE_PERL+= utils/findsym.pl
51: REPLACE_PERL+= utils/llvm-native-gxx
52: REPLACE_PERL+= utils/test_debuginfo.pl
53:
54: REPLACE_PYTHON+= examples/Kaleidoscope/MCJIT/cached/genk-timing.py
55: REPLACE_PYTHON+= examples/Kaleidoscope/MCJIT/cached/split-lib.py
56: REPLACE_PYTHON+= examples/Kaleidoscope/MCJIT/complete/genk-timing.py
57: REPLACE_PYTHON+= examples/Kaleidoscope/MCJIT/complete/split-lib.py
58: REPLACE_PYTHON+= examples/Kaleidoscope/MCJIT/lazy/genk-timing.py
59: REPLACE_PYTHON+= test/BugPoint/compile-custom.ll.py
60: REPLACE_PYTHON+= test/tools/llvm-readobj/Inputs/relocs.py
61: REPLACE_PYTHON+= utils/Misc/zkill
62: REPLACE_PYTHON+= utils/Target/ARM/analyze-match-table.py
63: REPLACE_PYTHON+= utils/bisect
64: REPLACE_PYTHON+= utils/clang-parse-diagnostics-file
65: REPLACE_PYTHON+= utils/create_ladder_graph.py
66: REPLACE_PYTHON+= utils/git/find-rev
67: REPLACE_PYTHON+= utils/lint/common_lint.py
68: REPLACE_PYTHON+= utils/lint/cpp_lint.py
69: REPLACE_PYTHON+= utils/lint/generic_lint.py
70: REPLACE_PYTHON+= utils/lit/lit.py
71: REPLACE_PYTHON+= utils/lit/lit/ProgressBar.py
72: REPLACE_PYTHON+= utils/lit/lit/main.py
73: REPLACE_PYTHON+= utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest
74: REPLACE_PYTHON+= utils/llvm-build/llvm-build
75: REPLACE_PYTHON+= utils/llvm-compilers-check
76: REPLACE_PYTHON+= utils/llvm-lit/llvm-lit.in
77: REPLACE_PYTHON+= utils/release/findRegressions-nightly.py
78: REPLACE_PYTHON+= utils/release/findRegressions-simple.py
79: REPLACE_PYTHON+= utils/schedcover.py
80: REPLACE_PYTHON+= utils/shuffle_fuzz.py
81: REPLACE_PYTHON+= utils/sort_includes.py
82: REPLACE_PYTHON+= utils/testgen/mc-bundling-x86-gen.py
83: REPLACE_PYTHON+= utils/update_llc_test_checks.py
84: REPLACE_PYTHON+= utils/wciia.py
1.1 tnn 85:
1.8 tnn 86: TEST_TARGET= check
87: TEST_ENV+= LD_LIBRARY_PATH=${WRKDIR}/build/lib
1.1 tnn 88:
1.7 jperkin 89: .include "../../mk/bsd.prefs.mk"
90:
1.16 ! adam 91: .if ${OPSYS} == "Darwin"
! 92: CMAKE_ARGS+= -DCMAKE_LIBTOOL=/usr/bin/libtool
! 93: .endif
! 94:
1.8 tnn 95: # 3.8.0 -> 3.8
1.10 tnn 96: LLVM_MAJOR_MINOR= ${PKGVERSION_NOREV:C/^([0-9]+\.[0-9]+)\..*$/\1/}
97: PLIST_SUBST+= LLVM_MAJOR_MINOR=${LLVM_MAJOR_MINOR}
1.8 tnn 98:
99: PLIST_VARS+= notdylib
100: .if ${_OPSYS_SHLIB_TYPE} == "dylib"
101: SOEXT= dylib
102: LLVM_LIBNAME= libLLVM.${SOEXT}
103: .else
104: SOEXT= so
1.10 tnn 105: LLVM_LIBNAME= libLLVM-${LLVM_MAJOR_MINOR}.${SOEXT}
1.8 tnn 106: PLIST.notdylib= yes
107: .endif
108: PLIST_SUBST+= SOEXT=${SOEXT}
109: PLIST_SUBST+= LLVM_LIBNAME=${LLVM_LIBNAME}
110:
111: .include "options.mk"
112:
1.14 joerg 113: # At least LLVM 3.9.0 and subprojects don't correctly add C++11 flags
114: # automatically.
115: CXXFLAGS+= -std=c++11
116:
1.15 tnn 117: # needs std::atomic with 64-bit CAS
118: .if ${MACHINE_ARCH} == "i386"
119: CXXFLAGS+= -march=i586
120: .endif
121:
1.8 tnn 122: # replacing config.guess is required even for cmake.
123: # It is used to detect correct LLVM_HOST_TRIPLE, e.g. for NetBSD/evbarm.
124: post-extract:
125: ${RUN} mkdir -p ${WRKDIR}/build
126: .for f in config.guess config.sub
1.13 ryoon 127: cp ../../mk/gnu-config/${f} ${WRKSRC}/cmake/${f}
1.8 tnn 128: .endfor
129:
130: post-install:
131: ${INSTALL_LIB_DIR} ${DESTDIR}${PREFIX}/lib/libLLVM
132: ${INSTALL_LIB} ${WRKDIR}/build/lib/${LLVM_LIBNAME} \
133: ${DESTDIR}${PREFIX}/lib/libLLVM/${LLVM_LIBNAME}
1.7 jperkin 134: .if ${OPSYS} == "Darwin"
1.8 tnn 135: install_name_tool -id \
136: ${PREFIX}/lib/libLLVM/${LLVM_LIBNAME} \
137: ${DESTDIR}${PREFIX}/lib/libLLVM/${LLVM_LIBNAME}
138: .else
139: ${LN} -s ${LLVM_LIBNAME} \
140: ${DESTDIR}${PREFIX}/lib/libLLVM/libLLVM.${SOEXT}
141: ${LN} -s ${LLVM_LIBNAME} \
1.9 tnn 142: ${DESTDIR}${PREFIX}/lib/libLLVM/libLLVM-${PKGVERSION_NOREV}.${SOEXT}
1.7 jperkin 143: .endif
144:
1.8 tnn 145: .include "../../devel/zlib/buildlink3.mk"
146: .include "../../lang/python/tool.mk"
147: .include "../../mk/bsd.pkg.mk"
CVSweb <webmaster@jp.NetBSD.org>