/[ports]/head/devel/llvm-devel/Makefile
ViewVC logotype

Contents of /head/devel/llvm-devel/Makefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 428179 - (show annotations) (download)
Fri Dec 9 11:40:59 2016 UTC (7 years, 7 months ago) by tcberner
File MIME type: text/plain
File size: 12474 byte(s)
Update devel/cmake* to 3.7.1 [1]

Due to an upstream commit [2] we need now to pass
CMAKE_INSTALL_MANDIR:PATH="share/man" in the
devel/llvm-* ports, and fix the plist of net/remmina.
Further add an upstream patch to  math/plplot to
fix the build with 3.7.1.

[1] https://cmake.org/cmake/help/v3.7/release/3.7.html
[2] https://github.com/kitware/cmake/commit/956054

PR:		214975
Approved by:	rakuco (mentor)
Exp-run by:	antoine

1 # Created by: Hye-Shik Chang
2 # $FreeBSD$
3
4 PORTNAME= llvm
5 PORTVERSION= ${LLVM_MAJOR}.d${SNAPDATE}
6 CATEGORIES= devel lang
7 PKGNAMESUFFIX= -devel
8
9 MAINTAINER= brooks@FreeBSD.org
10 COMMENT= LLVM and Clang
11
12 BROKEN_powerpc64= Does not build
13
14 LLVM_SUFFIX= -devel
15 LLVM_PREFIX= ${PREFIX}/llvm${LLVM_SUFFIX}
16 DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${LLVM_SUFFIX}
17 DATADIR= ${PREFIX}/share/${PORTNAME}${LLVM_SUFFIX}
18
19 USES= cmake:outsource compiler:c++11-lib libedit ninja perl5
20 USE_LDCONFIG= ${LLVM_PREFIX}/lib
21 _USES_PYTHON?= python:build
22 USES+= ${_USES_PYTHON}
23
24 SUB_FILES= llvm-wrapper.sh
25 SUB_LIST= LLVM_PREFIX="${LLVM_PREFIX}" LLVM_SUFFIX="${LLVM_SUFFIX}"
26
27 CMAKE_INSTALL_PREFIX= ${LLVM_PREFIX}
28 CMAKE_ARGS= -DLLVM_BUILD_LLVM_DYLIB=ON
29 # Following commit https://github.com/kitware/cmake/commit/956054
30 # we need to either change the whole man-shuffle below, or simply
31 # redefine CMAKE_INSTALL_MANDIR
32 CMAKE_ARGS+= -DCMAKE_INSTALL_MANDIR:PATH="share/man"
33
34 USE_GITHUB= yes
35 GH_ACCOUNT= llvm-mirror
36 GH_TAGNAME= ${LLVM_COMMIT}
37
38 .include "Makefile.snapshot"
39
40 OPTIONS_DEFINE= CLANG DOCS EXTRAS LIT LLD LLDB
41 OPTIONS_DEFINE_amd64= COMPILER_RT GOLD OPENMP
42 OPTIONS_DEFINE_i386= COMPILER_RT
43 OPTIONS_DEFAULT= CLANG EXTRAS LIT LLD LLDB
44 OPTIONS_DEFAULT_amd64= COMPILER_RT GOLD OPENMP
45 OPTIONS_DEFAULT_i386= COMPILER_RT
46 OPTIONS_SUB= yes
47
48 PLIST_FILES=
49
50 CLANG_DESC= Build clang
51 CLANG_EXTRA_PATCHES= \
52 ${PATCHDIR}/clang-patch-fformat_extensions.diff \
53 ${PATCHDIR}/clang-patch-fopenmp.diff \
54 ${PATCHDIR}/clang-patch-tools_clang_lib_Headers_CMakeLists.txt
55 CLANG_CONFLICTS_INSTALL= clang-devel-3.[1234567]*
56 CLANG_GH_PROJECT= clang:clang
57 CLANG_GH_SUBDIR= tools/clang:clang
58 CLANG_GH_TAGNAME= ${CLANG_COMMIT}:clang
59 CLANG_CMAKE_ON= -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
60 CLANG_PORTDOCS= clang
61 CLANG_USE= GNOME=libxml2
62 COMPILER_RT_DESC= Sanitizer libraries
63 COMPILER_RT_IMPLIES= CLANG
64 COMPILER_RT_GH_PROJECT= compiler-rt:compiler_rt
65 COMPILER_RT_GH_TAGNAME= ${COMPILER_RT_COMMIT}:compiler_rt
66 COMPILER_RT_PLIST_FILES=${_COMPILER_RT_LIBS:S|^|${_CRTLIBDIR}/|}
67 DOCS_PORTDOCS= llvm
68 DOCS_CMAKE_ON= -DLLVM_ENABLE_SPHINX=ON \
69 -DSPHINX_WARNINGS_AS_ERRORS=OFF \
70 -DLLVM_BUILD_DOCS=ON
71 DOCS_PLIST_FILES= ${MAN1SRCS:S|^|man/man1/|:S|.1$|${LLVM_SUFFIX}.1.gz|}
72 EXTRAS_DESC= Extra clang tools
73 EXTRAS_IMPLIES= CLANG
74 EXTRAS_GH_PROJECT= clang-tools-extra:extras
75 EXTRAS_GH_SUBDIR= tools/clang/tools/extra:extras
76 EXTRAS_GH_TAGNAME= ${EXTRAS_COMMIT}:extras
77 LIT_DESC= Install lit and FileCheck test tools
78 LLDB_VARS= _USES_PYTHON=python
79 LLD_DESC= Install lld, the LLVM linker
80 LLD_GH_PROJECT= lld:lld
81 LLD_GH_SUBDIR= tools/lld:lld
82 LLD_GH_TAGNAME= ${LLD_COMMIT}:lld
83 LLDB_DESC= Install lldb, the LLVM debugger (ignored on 9.x)
84 LLDB_BUILD_DEPENDS= swig:devel/swig13
85 LLDB_GH_PROJECT= lldb:lldb
86 LLDB_GH_SUBDIR= tools/lldb:lldb
87 LLDB_GH_TAGNAME= ${LLDB_COMMIT}:lldb
88 LLDB_USES= execinfo
89 LLDB_VARS= _USES_PYTHON=python
90 OPENMP_DESC= Install libomp, the LLVM OpenMP runtime library
91 OPENMP_CONFLICTS_INSTALL= libiomp5-devel-*
92 OPENMP_GH_PROJECT= openmp:openmp
93 OPENMP_GH_SUBDIR= tools/openmp:openmp
94 OPENMP_GH_TAGNAME= ${OPENMP_COMMIT}:openmp
95 GOLD_DESC= Build the LLVM Gold plugin for LTO
96 GOLD_CMAKE_ON= -DLLVM_BINUTILS_INCDIR=${LOCALBASE}/include
97 GOLD_BUILD_DEPENDS= ${LOCALBASE}/bin/ld.gold:devel/binutils
98
99 OPTIONS_SUB= yes
100
101 DOCS_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx
102
103 PLIST_SUB+= LLVM_MAJOR=${LLVM_MAJOR} LLVM_RELEASE=${LLVM_RELEASE}
104
105 COMMANDS= bugpoint \
106 llc \
107 lli \
108 llvm-ar \
109 llvm-as \
110 llvm-bcanalyzer \
111 llvm-cat \
112 llvm-config \
113 llvm-cov \
114 llvm-diff \
115 llvm-dis \
116 llvm-dwarfdump \
117 llvm-dwp \
118 llvm-extract \
119 llvm-link \
120 llvm-mc \
121 llvm-mcmarkup \
122 llvm-modextract \
123 llvm-nm \
124 llvm-objdump \
125 llvm-opt-report \
126 llvm-profdata \
127 llvm-ranlib \
128 llvm-readobj \
129 llvm-rtdyld \
130 llvm-size \
131 llvm-split \
132 llvm-stress \
133 llvm-strings \
134 llvm-symbolizer \
135 llvm-tblgen \
136 macho-dump \
137 opt \
138 sancov
139 FIRST_COMMAND= ${COMMANDS:C/^/XXXX/1:MXXXX*:C/^XXXX//}
140
141 STRIP_LIBS= BugpointPasses.so \
142 LLVMHello.so \
143 ${LIBNAME}.0 \
144 libLTO.so
145
146 EXTRAS_COMMANDS= \
147 clang-apply-replacements \
148 clang-change-namespace \
149 clang-include-fixer \
150 clang-modernize \
151 clang-query \
152 clang-rename \
153 clang-reorder-fields \
154 clang-tidy \
155 find-all-symbols \
156 modularize
157 EXTRAS_LIBS= \
158 libclangApplyReplacements \
159 libclangIncludeFixer \
160 libclangRename \
161 libclangQuery \
162 libclangTidy \
163 libclangTidyGoogleModule \
164 libclangTidyLLVMModule \
165 libclangTidyMiscModule \
166 libclangTidyReadabilityModule \
167 libclangTidyUtils \
168 libfindAllSymbols \
169 libmodernizeCore
170 EXTRAS_PATTERN= ${EXTRAS_COMMANDS:tW:C/ */|/g}|${EXTRAS_LIBS:tW:C/ */|/g}
171
172 .include <bsd.port.options.mk>
173
174 .if ${PORT_OPTIONS:MCLANG}
175 COMMANDS+= c-index-test \
176 clang \
177 clang++ \
178 clang-check \
179 clang-cpp \
180 clang-format \
181 clang-offload-bundler \
182 scan-build \
183 scan-view
184 MAN1SRCS+= clang.1 \
185 scan-build.1
186 CLANG_PATTERN= (c-index-test|clang|scan-|Reporter.py|ScanView.py|scanview.css|sorttable.js|startfile.py|-analyzer)
187 .endif
188
189 .if ${PORT_OPTIONS:MCOMPILER_RT}
190 COMPILER_RT_PATTERN= (asan_blacklist.txt|sanitizer|xray_interface.h)
191 .endif
192
193 .if ${PORT_OPTIONS:MLIT}
194 MAN1SRCS+= lit.1 FileCheck.1
195 LIT_COMMANDS= lit llvm-lit FileCheck
196 .endif
197
198 .if ${PORT_OPTIONS:MLLD}
199 COMMANDS+= ld.lld
200 .endif
201
202 .if ${PORT_OPTIONS:MLLDB}
203 COMMANDS+= lldb \
204 lldb-argdumper \
205 lldb-mi \
206 lldb-server
207 .endif
208
209 .if ! ${OPTIONS_DEFINE:MCOMPILER_RT}
210 # Hack to disable COMPILER_RT in plist of unsupported architectures
211 PLIST_SUB+= COMPILER_RT="@comment "
212 .else
213 .endif
214
215 .if ! ${OPTIONS_DEFINE:MGOLD}
216 # Hack to disable GOLD in plist of unsupported architectures
217 PLIST_SUB+= GOLD="@comment "
218 .else
219 .endif
220
221 .if ! ${OPTIONS_DEFINE:MOPENMP}
222 # Hack to disable OPENMP in plist of unsupported architectures
223 PLIST_SUB+= OPENMP="@comment "
224 .else
225 .endif
226
227 MAN1SRCS+= bugpoint.1 llc.1 lli.1 llvm-ar.1 llvm-as.1 \
228 llvm-bcanalyzer.1 llvm-build.1 llvm-config.1 llvm-cov.1 \
229 llvm-diff.1 llvm-dis.1 llvm-dwarfdump.1 \
230 llvm-extract.1 llvm-lib.1 llvm-link.1 llvm-nm.1 \
231 llvm-profdata.1 llvm-readobj.1 llvm-stress.1 llvm-symbolizer.1 \
232 opt.1 tblgen.1
233
234 NOT_FOR_ARCH= ia64
235
236 .include <bsd.port.pre.mk>
237
238 _CRTLIBDIR= ${LLVM_PREFIX:S|${PREFIX}/||}/lib/freebsd
239 .if ${ARCH} == "amd64"
240 _COMPILER_RT_LIBS= \
241 libclang_rt.asan-preinit-x86_64.a \
242 libclang_rt.asan-x86_64.a \
243 libclang_rt.asan-x86_64.a.syms \
244 libclang_rt.asan-x86_64.so \
245 libclang_rt.asan_cxx-x86_64.a \
246 libclang_rt.asan_cxx-x86_64.a.syms \
247 libclang_rt.builtins-x86_64.a \
248 libclang_rt.dd-x86_64.a \
249 libclang_rt.dyndd-x86_64.so \
250 libclang_rt.lsan-x86_64.a \
251 libclang_rt.profile-x86_64.a \
252 libclang_rt.safestack-x86_64.a \
253 libclang_rt.stats-x86_64.a \
254 libclang_rt.stats_client-x86_64.a \
255 libclang_rt.tsan-x86_64.a \
256 libclang_rt.tsan-x86_64.a.syms \
257 libclang_rt.tsan_cxx-x86_64.a \
258 libclang_rt.tsan_cxx-x86_64.a.syms \
259 libclang_rt.ubsan_standalone-x86_64.a \
260 libclang_rt.ubsan_standalone-x86_64.a.syms \
261 libclang_rt.ubsan_standalone_cxx-x86_64.a \
262 libclang_rt.ubsan_standalone_cxx-x86_64.a.syms
263 .endif
264 .if ${ARCH} == "i386"
265 _COMPILER_RT_LIBS+= \
266 libclang_rt.asan-i386.a \
267 libclang_rt.asan-i386.so \
268 libclang_rt.asan-preinit-i386.a \
269 libclang_rt.asan_cxx-i386.a \
270 libclang_rt.builtins-i386.a \
271 libclang_rt.profile-i386.a \
272 libclang_rt.safestack-i386.a \
273 libclang_rt.stats-i386.a \
274 libclang_rt.stats_client-i386.a \
275 libclang_rt.ubsan_standalone-i386.a \
276 libclang_rt.ubsan_standalone_cxx-i386.a
277 .endif
278
279 .if ${PORT_OPTIONS:MEXTRAS}
280 COMMANDS+= ${EXTRAS_COMMANDS}
281 MAN1SRCS+= extraclangtools.1
282 PORTDOCS+= clang-tools
283 .endif
284
285 .if ${PORT_OPTIONS:MLLD}
286 COMMANDS+= lld \
287 lld-link
288 PORTDOCS+= lld
289 .endif
290
291 .if ${OPSYS} == "FreeBSD" && ${COMPILER_TYPE} != clang
292 BROKEN= Working C++11 compiler and library required
293 .endif
294
295 .if ${PORT_OPTIONS:MLLDB} && ${PYTHON_REL} >= 3000
296 BROKEN= LLDB does not build with Python 3
297 .endif
298
299 post-patch:
300 ${REINPLACE_CMD} -e 's|import lit|import lit${LLVM_SUFFIX}|' \
301 -e 's|from lit|from lit${LLVM_SUFFIX}|' \
302 -e 's|lit\.|lit${LLVM_SUFFIX}.|' \
303 ${WRKSRC}/utils/lit/lit.py ${WRKSRC}/utils/lit/lit/*.py
304
305 post-build-COMPILER_RT-on:
306 ${MKDIR} ${WRKDIR}/compiler-rt-build
307 cd ${WRKDIR}/compiler-rt-build && \
308 ${CMAKE_BIN} ${CMAKE_ARGS} \
309 -DLLVM_CONFIG_PATH=${CONFIGURE_WRKSRC}/bin/llvm-config \
310 ${WRKSRC_compiler_rt} && \
311 ${MAKE_ENV} ${MAKE_CMD}
312
313 post-install:
314 ${INSTALL_SCRIPT} ${WRKDIR}/llvm-wrapper.sh \
315 ${STAGEDIR}${PREFIX}/bin/${FIRST_COMMAND}${LLVM_SUFFIX}
316 .for command in ${COMMANDS:C/^/XXXX/1:NXXXX*}
317 ${LN} -f ${STAGEDIR}${PREFIX}/bin/${FIRST_COMMAND}${LLVM_SUFFIX} \
318 ${STAGEDIR}${PREFIX}/bin/${command}${LLVM_SUFFIX}
319 .endfor
320
321 post-install-DOCS-on:
322 ${MV} ${STAGEDIR}${LLVM_PREFIX}/share/doc ${STAGEDIR}${DOCSDIR}
323 .for _man in ${MAN1SRCS}
324 ${MV} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/${_man} \
325 ${STAGEDIR}${MANPREFIX}/man/man1/${_man:R}${LLVM_SUFFIX}.1
326 .endfor
327 .if ! ${PORT_OPTIONS:MLIT}
328 ${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/lit.1
329 ${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/FileCheck.1
330 .endif
331 ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/
332 ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/
333
334 .if ${PORT_OPTIONS:MCLANG}
335 post-install-DOCS-off:
336 ${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/scan-build.1
337 ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/
338 ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/
339 .endif
340
341 post-install-CLANG-on:
342 ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/clang \
343 ${STAGEDIR}${LLVM_PREFIX}/bin/clang-cpp
344
345 post-install-COMPILER_RT-on:
346 cd ${WRKDIR}/compiler-rt-build && \
347 ${MAKE_ENV} ${MAKE_CMD} ${INSTALL_TARGET}
348 .if ${ARCH} == "amd64"
349 ${RM} ${STAGEDIR}${LLVM_PREFIX}/lib/freebsd/libclang_rt*i386*
350 .endif
351
352 post-install-LIT-on:
353 ${INSTALL_SCRIPT} ${PATCH_WRKSRC}/utils/lit/lit.py \
354 ${STAGEDIR}${LLVM_PREFIX}/bin/lit
355 ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \
356 ${STAGEDIR}${LLVM_PREFIX}/bin/llvm-lit
357 ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \
358 ${STAGEDIR}${PREFIX}/bin/lit${LLVM_SUFFIX}
359 ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \
360 ${STAGEDIR}${PREFIX}/bin/llvm-lit${LLVM_SUFFIX}
361 ${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/lit${LLVM_SUFFIX}
362 ${INSTALL_DATA} ${WRKSRC}/utils/lit/lit/*.py \
363 ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/lit${LLVM_SUFFIX}
364 ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/FileCheck \
365 ${STAGEDIR}${LLVM_PREFIX}/bin/
366 ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/FileCheck \
367 ${STAGEDIR}${PREFIX}/bin/FileCheck${LLVM_SUFFIX}
368
369 TEST_CMD= '(cd ${WRKSRC}/test; ${SETENV} ${MAKE_ENV} LD_LIBRARY_PATH=${WRKSRC}/Release/lib ${MAKE_CMD} check-local-lit)'
370 regression-test: ${BUILD_COOKIE}
371 if [ `${ID} -u` = 0 ]; then \
372 ${CHOWN} -R nobody ${WRKSRC}/test; \
373 su -m nobody -c ${TEST_CMD}; \
374 else \
375 ${SH} -c ${TEST_CMD}; \
376 fi
377
378 build-plist:
379 ${RM} ${PLIST} ${PLIST}.tmp
380 .for command in ${COMMANDS}
381 ${ECHO_CMD} bin/${command}${LLVM_SUFFIX} >> ${PLIST}.tmp
382 .endfor
383 .for command in ${LIT_COMMANDS}
384 ${ECHO_CMD} %%LIT%%bin/${command}${LLVM_SUFFIX} >> ${PLIST}.tmp
385 ${ECHO_CMD} %%LIT%%${LLVM_PREFIX:S|${PREFIX}/||}/bin/${command} >> ${PLIST}.tmp
386 .endfor
387 ${FIND} ${STAGEDIR}${LLVM_PREFIX} -type f -o -type l | \
388 ${GREP} -v '[/-]lit$$' | ${GREP} -v 'FileCheck$$' | \
389 ${GREP} -v man/man1 | ${SED} -e 's|${STAGEDIR}${PREFIX}/||' \
390 -e 's|${PORTVERSION}|%%PORTVERSION%%|' \
391 -e 's|release.cmake|%%CMAKE_BUILD_TYPE%%.cmake|' \
392 -e 's|${LLVM_RELEASE:C/\./\\./g}|%%LLVM_RELEASE%%|' \
393 -e 's|${LLVM_MAJOR:C/\./\\./}|%%LLVM_MAJOR%%|' | \
394 ${SORT} >> ${PLIST}.tmp
395 ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/lit${LLVM_SUFFIX} -type f | \
396 ${SED} -e 's|${STAGEDIR}${PYTHON_SITELIBDIR}|%%LIT%%%%PYTHON_SITELIBDIR%%|' \
397 -e 's|${LLVM_RELEASE:C/\./\\./g}|%%LLVM_RELEASE%%|' \
398 -e 's|${LLVM_MAJOR:C/\./\\./}|%%LLVM_MAJOR%%|' | \
399 ${SORT} >> ${PLIST}.tmp
400 awk '{ \
401 if ($$0 ~ /${CLANG_PATTERN}/ && $$0 !~ /omp.h|${EXTRAS_PATTERN}|libclang_rt/) {printf "%%%%CLANG%%%%"} \
402 if ($$0 ~ /${COMPILER_RT_PATTERN}/) \
403 {printf "%%%%COMPILER_RT%%%%"} \
404 if ($$0 ~ /lld/ && $$0 !~ /lldb/) {printf "%%%%LLD%%%%"} \
405 if ($$0 ~ /(${EXTRAS_PATTERN})/) {printf "%%%%EXTRAS%%%%"} \
406 if ($$0 ~ /(argdumper|lldb|six.py)/) {printf "%%%%LLDB%%%%"} \
407 if ($$0 ~ /lib.*omp/) {printf "%%%%OPENMP%%%%"} \
408 if ($$0 ~ /LLVMgold/) {printf "%%%%GOLD%%%%"} \
409 if ($$0 !~ /libclang_rt/) {print} \
410 }' ${PLIST}.tmp >> ${PLIST}
411 ${RM} ${PLIST}.tmp
412
413 check-commands:
414 .for command in ${COMMANDS}
415 test -e ${STAGEDIR}${LLVM_PREFIX}/bin/${command}
416 .endfor
417
418 .include <bsd.port.post.mk>

Properties

Name Value
svn:eol-style native
svn:keywords FreeBSD=%H
svn:mime-type text/plain

  ViewVC Help
Powered by ViewVC 1.1.27