2012-11-29 12:42:24 +01:00
|
|
|
# $NetBSD: Makefile,v 1.17 2012/11/29 11:42:24 marino Exp $
|
2009-11-17 00:24:37 +01:00
|
|
|
|
2012-05-23 13:02:41 +02:00
|
|
|
DISTNAME= clang-3.1
|
2012-11-29 12:42:24 +01:00
|
|
|
PKGREVISION= 3
|
2009-11-17 00:24:37 +01:00
|
|
|
CATEGORIES= lang
|
|
|
|
MASTER_SITES= http://llvm.org/releases/${PKGVERSION_NOREV}/
|
2012-05-23 13:02:41 +02:00
|
|
|
DISTFILES= llvm-${PKGVERSION_NOREV}.src.tar.gz \
|
|
|
|
clang-${PKGVERSION_NOREV}.src.tar.gz
|
2009-11-17 00:24:37 +01:00
|
|
|
|
|
|
|
MAINTAINER= adam.hoka@gmail.com
|
|
|
|
HOMEPAGE= http://llvm.org/
|
|
|
|
COMMENT= Low Level Virtual Machine compiler infrastructure
|
2011-04-07 11:26:33 +02:00
|
|
|
LICENSE= modified-bsd
|
2009-11-17 00:24:37 +01:00
|
|
|
|
LLVM 3.0 includes several major changes and big features:
* llvm-gcc is no longer supported, and not included in the release. We recommend
switching to Clang or DragonEgg.
* The linear scan register allocator has been replaced with a new "greedy"
register allocator, enabling live range splitting and many other optimizations that lead to better code quality. Please see its blog post or its talk at the
Developer Meeting for more information.
* LLVM IR now includes full support for atomics memory operations intended to
support the C++'11 and C'1x memory models. This includes atomic load and
store, compare and exchange, and read/modify/write instructions as well as
a full set of memory ordering constraints. Please see the Atomics Guide for
more information.
* The LLVM IR exception handling representation has been redesigned and
reimplemented, making it more elegant, fixing a huge number of bugs, and
enabling inlining and other optimizations. Please see its blog post and the
Exception Handling documentation for more information.
* The LLVM IR Type system has been redesigned and reimplemented, making it
faster and solving some long-standing problems. Please see its blog post for
more information.
* The MIPS backend has made major leaps in this release, going from an
experimental target to being virtually production quality and supporting
a wide variety of MIPS subtargets. See the MIPS section below for more
information.
* The optimizer and code generator now supports gprof and gcov-style coverage
and profiling information, and includes a new llvm-cov tool (but also works
with gcov). Clang exposes coverage and profiling through GCC-compatible
command line options.
2011-12-02 15:42:12 +01:00
|
|
|
WRKSRC= ${WRKDIR}/llvm-${PKGVERSION_NOREV}.src
|
2009-11-17 00:24:37 +01:00
|
|
|
|
2010-10-21 15:52:15 +02:00
|
|
|
USE_LANGUAGES= c c++
|
2012-05-25 11:06:52 +02:00
|
|
|
USE_TOOLS+= chown gmake perl pod2man pod2html
|
2010-10-21 15:52:15 +02:00
|
|
|
GNU_CONFIGURE= yes
|
2011-04-07 11:26:33 +02:00
|
|
|
CONFIGURE_ARGS+= --disable-assertions
|
2010-10-26 09:29:03 +02:00
|
|
|
CONFIGURE_ARGS+= --disable-bindings # disable OCaml
|
2011-04-07 11:26:33 +02:00
|
|
|
CONFIGURE_ARGS+= --disable-timestamps
|
|
|
|
CONFIGURE_ARGS+= --enable-optimized
|
2012-05-23 13:02:41 +02:00
|
|
|
#CONFIGURE_ARGS+= --enable-shared
|
2009-11-17 00:24:37 +01:00
|
|
|
|
2010-10-21 15:52:15 +02:00
|
|
|
MAKE_DIRS+= etc/llvm
|
2009-11-17 00:24:37 +01:00
|
|
|
|
2010-10-21 15:52:15 +02:00
|
|
|
INSTALLATION_DIRS= bin lib libexec
|
2009-11-17 00:24:37 +01:00
|
|
|
|
|
|
|
CHECK_PORTABILITY_SKIP= utils/buildit/build_llvm
|
|
|
|
|
|
|
|
TEST_TARGET= check unittests
|
|
|
|
|
2011-04-07 11:26:33 +02:00
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
|
|
|
|
.if ${_OPSYS_SHLIB_TYPE} == "dylib"
|
|
|
|
PLIST_SUBST+= SOEXT="dylib"
|
|
|
|
.else
|
|
|
|
PLIST_SUBST+= SOEXT="so"
|
|
|
|
.endif
|
|
|
|
|
2009-11-17 00:24:37 +01:00
|
|
|
post-extract:
|
LLVM 3.0 includes several major changes and big features:
* llvm-gcc is no longer supported, and not included in the release. We recommend
switching to Clang or DragonEgg.
* The linear scan register allocator has been replaced with a new "greedy"
register allocator, enabling live range splitting and many other optimizations that lead to better code quality. Please see its blog post or its talk at the
Developer Meeting for more information.
* LLVM IR now includes full support for atomics memory operations intended to
support the C++'11 and C'1x memory models. This includes atomic load and
store, compare and exchange, and read/modify/write instructions as well as
a full set of memory ordering constraints. Please see the Atomics Guide for
more information.
* The LLVM IR exception handling representation has been redesigned and
reimplemented, making it more elegant, fixing a huge number of bugs, and
enabling inlining and other optimizations. Please see its blog post and the
Exception Handling documentation for more information.
* The LLVM IR Type system has been redesigned and reimplemented, making it
faster and solving some long-standing problems. Please see its blog post for
more information.
* The MIPS backend has made major leaps in this release, going from an
experimental target to being virtually production quality and supporting
a wide variety of MIPS subtargets. See the MIPS section below for more
information.
* The optimizer and code generator now supports gprof and gcov-style coverage
and profiling information, and includes a new llvm-cov tool (but also works
with gcov). Clang exposes coverage and profiling through GCC-compatible
command line options.
2011-12-02 15:42:12 +01:00
|
|
|
mv ${WRKDIR}/clang-${PKGVERSION_NOREV}.src ${WRKSRC}/tools/clang
|
2010-10-21 15:52:15 +02:00
|
|
|
|
2012-05-23 13:02:41 +02:00
|
|
|
.include "../../lang/python/tool.mk"
|
2009-11-17 00:24:37 +01:00
|
|
|
.include "../../mk/bsd.pkg.mk"
|