[114756] trunk/dports/lang

jeremyhu at macports.org jeremyhu at macports.org
Sat Dec 14 13:32:16 PST 2013


Revision: 114756
          https://trac.macports.org/changeset/114756
Author:   jeremyhu at macports.org
Date:     2013-12-14 13:32:16 -0800 (Sat, 14 Dec 2013)
Log Message:
-----------
{clang,dragonegg,llvm}-3.5: New ports

Added Paths:
-----------
    trunk/dports/lang/dragonegg-3.5/
    trunk/dports/lang/dragonegg-3.5/Portfile
    trunk/dports/lang/dragonegg-3.5/files/
    trunk/dports/lang/dragonegg-3.5/files/dragonegg-gcc
    trunk/dports/lang/dragonegg-3.5/files/dragonegg-select
    trunk/dports/lang/dragonegg-3.5/files/missing-includes.patch
    trunk/dports/lang/llvm-3.5/
    trunk/dports/lang/llvm-3.5/Portfile
    trunk/dports/lang/llvm-3.5/files/
    trunk/dports/lang/llvm-3.5/files/0001-Comment-out-SL-cctools-workaround.patch
    trunk/dports/lang/llvm-3.5/files/install_target.patch
    trunk/dports/lang/llvm-3.5/files/leopard-no-asan.patch
    trunk/dports/lang/llvm-3.5/files/llvm-bin
    trunk/dports/lang/llvm-3.5/files/mp-clang-3.5
    trunk/dports/lang/llvm-3.5/files/mp-llvm-3.5
    trunk/dports/lang/llvm-3.5/files/scan-build-PR-35006.patch
    trunk/dports/lang/llvm-3.5/files/tiger-libclang.patch
    trunk/dports/lang/llvm-3.5/files/tiger-shlib-clang.patch
    trunk/dports/lang/llvm-3.5/files/tiger-shlib.patch

Added: trunk/dports/lang/dragonegg-3.5/Portfile
===================================================================
--- trunk/dports/lang/dragonegg-3.5/Portfile	                        (rev 0)
+++ trunk/dports/lang/dragonegg-3.5/Portfile	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,148 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+PortSystem              1.0
+PortGroup select        1.0
+
+set llvm_version        3.5
+set llvm_version_no_dot 35
+name                    dragonegg-${llvm_version}
+
+subport                 ${name}-gcc-4.5 {
+    revision            0
+    set gcc_version     4.5
+    set gcc_version_no_dot 45
+}
+subport                 ${name}-gcc-4.6 {
+    revision            0
+    set gcc_version     4.6
+    set gcc_version_no_dot 46
+}
+subport                 ${name}-gcc-4.7 {
+    revision            0
+    set gcc_version     4.7
+    set gcc_version_no_dot 47
+}
+subport                 ${name}-gcc-4.8 {
+    revision            0
+    set gcc_version     4.8
+    set gcc_version_no_dot 48
+}
+
+dist_subdir             llvm
+categories              lang
+platforms               darwin
+maintainers             jeremyhu
+license                 GPL-2
+
+description             DragonEgg is a LLVM plug-in for GCC
+long_description        DragonEgg replaces GCC optimizers and code generators \
+                        by the LLVM optimizing infrastructure. It supersedes \
+                        llvm-gcc.
+
+homepage                http://dragonegg.llvm.org/
+
+if {${subport} == ${name}} {
+version                 ${llvm_version}
+epoch                   1
+revision                1
+
+distfiles
+
+set gcc_version         4.6
+
+depends_run             port:${name}-gcc-${gcc_version}
+
+use_configure           no
+build                   {}
+destroot {
+    # For base
+    foreach binary {gcc cpp c++ g++ gcj gcov gfortran} {
+        ln -s dragonegg-${llvm_version}-${binary}-mp-${gcc_version} ${destroot}${prefix}/bin/dragonegg-${llvm_version}-${binary}
+    }
+}
+
+} else {
+
+depends_lib             port:llvm-${llvm_version} port:gcc${gcc_version_no_dot}
+depends_run             port:gcc_select
+
+# gcc needs to match our arch, not the other way around
+# We build +universal just fine in order to support whatever arch gcc is
+depends_skip_archcheck-append gcc${gcc_version_no_dot}
+
+fetch.type              svn
+svn.revision            197327
+version                 ${llvm_version}-r${svn.revision}
+worksrcdir              trunk
+svn.url                 http://llvm.org/svn/llvm-project/dragonegg/trunk
+#worksrcdir              release_${llvm_version_no_dot}
+#svn.url                 http://llvm.org/svn/llvm-project/dragonegg/branches/release_${llvm_version_no_dot}
+
+#version                 ${llvm_version}
+#epoch                   1
+#master_sites            http://llvm.org/releases/${version}/
+#extract.suffix          .tar.gz
+#distname                dragonegg-${version}.src
+#checksums           sha1    aaab9d4c33e4bcad82027acb220453b5db61292a \
+#                    rmd160  afee1287634ca3c926e5cdb93286e3f926f3f9ec \
+#                    sha256  3153a827e9a3cef4212d0240ffc5ab7a2ce92dcf1283520d1eb0c3f295f4d9cd
+
+pre-fetch {
+    ui_msg "Please remember to keep dragonegg and llvm in phase by updating llvm-${llvm_version} first."
+}
+
+use_configure no
+
+select.group    gcc
+select.file     ${worksrcpath}/dragonegg-${llvm_version}-gcc${gcc_version_no_dot}
+
+build.target
+
+# g++-4.0 fails to build some of the newer C++ for ppc
+# Intel looks ok, but I prefer using gcc-4.2 for consistency
+compiler.blacklist gcc-4.0
+
+patchfiles missing-includes.patch
+
+post-extract {
+    file copy ${filespath}/dragonegg-select ${select.file}
+    reinplace "s:LLVM_VERSION:${llvm_version}:" ${select.file}
+    reinplace "s:GCC_VERSION:${gcc_version}:" ${select.file}
+}
+
+variant universal {
+    post-patch {
+        reinplace "/-MD -MP/d" ${worksrcpath}/Makefile
+    }
+}
+
+set cxx_stdlibflags {}
+if {[info exists configure.cxx_stdlib] && ${configure.cxx_stdlib} ne {} && [string match *clang* ${configure.cxx}]} {
+    set cxx_stdlibflags -stdlib=${configure.cxx_stdlib}
+}
+build.env-append \
+    LLVM_CONFIG=${prefix}/bin/llvm-config-mp-${llvm_version} \
+    GCC=${prefix}/bin/gcc-mp-${gcc_version} \
+    CC="${configure.cc} ${configure.cppflags} ${configure.cflags} [get_canonical_archflags cc]" \
+    CXX="${configure.cxx} ${configure.cppflags} ${configure.cxxflags} ${cxx_stdlibflags} [get_canonical_archflags cxx]"
+
+destroot {
+    xinstall -m 755 -d ${destroot}${prefix}/libexec/dragonegg
+    xinstall -m 755 ${worksrcpath}/dragonegg.so ${destroot}${prefix}/libexec/dragonegg/llvm${llvm_version_no_dot}gcc${gcc_version_no_dot}.so
+    reinplace "s:dragonegg:llvm${llvm_version_no_dot}gcc${gcc_version_no_dot}:" ${worksrcpath}/integrated-as.specs
+    xinstall -m 644 ${worksrcpath}/integrated-as.specs ${destroot}${prefix}/libexec/dragonegg/llvm${llvm_version_no_dot}gcc${gcc_version_no_dot}-integrated-as.specs
+
+    foreach binary {gcc cpp c++ g++ gcj gcov gfortran} {
+        set path ${destroot}${prefix}/bin/dragonegg-${llvm_version}-${binary}-mp-${gcc_version}
+        xinstall -m 755 ${filespath}/dragonegg-gcc ${path}
+        reinplace "s:PLUGIN:${prefix}/libexec/dragonegg/llvm${llvm_version_no_dot}gcc${gcc_version_no_dot}.so:" ${path}
+        reinplace "s:PREFIX:${prefix}:" ${path}
+        reinplace "s:GCC_VERSION:${gcc_version}:" ${path}
+        reinplace "s:BINARY:${binary}:" ${path}
+    }
+}
+
+}
+
+livecheck.type          none


Property changes on: trunk/dports/lang/dragonegg-3.5/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: trunk/dports/lang/dragonegg-3.5/files/dragonegg-gcc
===================================================================
--- trunk/dports/lang/dragonegg-3.5/files/dragonegg-gcc	                        (rev 0)
+++ trunk/dports/lang/dragonegg-3.5/files/dragonegg-gcc	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+exec PREFIX/bin/BINARY-mp-GCC_VERSION -fplugin=PLUGIN "${@}"


Property changes on: trunk/dports/lang/dragonegg-3.5/files/dragonegg-gcc
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/dports/lang/dragonegg-3.5/files/dragonegg-select
===================================================================
--- trunk/dports/lang/dragonegg-3.5/files/dragonegg-select	                        (rev 0)
+++ trunk/dports/lang/dragonegg-3.5/files/dragonegg-select	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,7 @@
+bin/dragonegg-LLVM_VERSION-gcc-mp-GCC_VERSION
+bin/dragonegg-LLVM_VERSION-cpp-mp-GCC_VERSION
+bin/dragonegg-LLVM_VERSION-c++-mp-GCC_VERSION
+bin/dragonegg-LLVM_VERSION-g++-mp-GCC_VERSION
+bin/dragonegg-LLVM_VERSION-gcj-mp-GCC_VERSION
+bin/dragonegg-LLVM_VERSION-gcov-mp-GCC_VERSION
+bin/dragonegg-LLVM_VERSION-gfortran-mp-GCC_VERSION

Added: trunk/dports/lang/dragonegg-3.5/files/missing-includes.patch
===================================================================
--- trunk/dports/lang/dragonegg-3.5/files/missing-includes.patch	                        (rev 0)
+++ trunk/dports/lang/dragonegg-3.5/files/missing-includes.patch	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,10 @@
+--- src/Cache.cpp.orig	2012-06-24 08:10:38.000000000 -0700
++++ src/Cache.cpp	2013-01-06 01:46:27.000000000 -0800
+@@ -30,6 +30,7 @@
+ #include "llvm/Support/ValueHandle.h"
+ 
+ // System headers
++#include <new>
+ #include <cassert>
+ #include <gmp.h>
+ 

Added: trunk/dports/lang/llvm-3.5/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.5/Portfile	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/Portfile	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,333 @@
+# $Id$
+
+PortSystem              1.0
+PortGroup select        1.0
+
+set llvm_version        3.5
+set llvm_version_no_dot 35
+name                    llvm-${llvm_version}
+subport                 clang-${llvm_version} {}
+set suffix              mp-${llvm_version}
+set sub_prefix          ${prefix}/libexec/llvm-${llvm_version}
+dist_subdir             llvm
+categories              lang
+platforms               darwin
+license                 NCSA
+maintainers             jeremyhu
+
+if {${subport} == "llvm-${llvm_version}"} {
+    homepage            http://llvm.org/
+    description         llvm is a next generation compiler infrastructure
+    long_description    The LLVM Core libraries provide a modern source- and \
+                        target-independent optimizer, along with code \
+                        generation support for many popular CPUs (as well as \
+                        some less common ones!) These libraries are built \
+                        around a well specified code representation known as \
+                        the LLVM intermediate representation ("LLVM IR").
+
+    depends_lib         port:libffi
+    depends_run         bin:perl:perl5 port:llvm_select
+} elseif {${subport} == "clang-${llvm_version}"} {
+    homepage            http://clang.llvm.org/
+    description         C, C++, Objective C and Objective C++ compiler
+    long_description    Clang is an "LLVM native" C/C++/Objective-C compiler, \
+                        which aims to deliver amazingly fast compiles (e.g. \
+                        about 3x faster than GCC when compiling Objective-C \
+                        code in a debug configuration), extremely useful error \
+                        and warning messages and to provide a platform for \
+                        building great source level tools. The included Clang \
+                        Static Analyzer is a tool automatically finds bugs in \
+                        your code, and is a great example of the sort of tool \
+                        that can be built using the Clang frontend as a \
+                        library to parse C/C++ code.
+
+    depends_lib         port:llvm-${llvm_version} port:libffi
+    depends_run         port:clang_select port:ld64
+    depends_extract     bin:svn:subversion
+    depends_skip_archcheck-append ld64 subversion
+
+    default_variants    +analyzer
+}
+
+fetch.type              svn
+svn.revision            197327
+
+set compiler_rt_rev     ${svn.revision}
+set libcxx_rev          ${svn.revision}
+version                 ${llvm_version}-r${svn.revision}
+revision                0
+worksrcdir              trunk
+svn.url                 http://llvm.org/svn/llvm-project/llvm/trunk
+#worksrcdir              release_${llvm_version_no_dot}
+#svn.url                 http://llvm.org/svn/llvm-project/llvm/branches/release_${llvm_version_no_dot}
+default_variants-append +assertions
+
+#version                 ${llvm_version}
+#epoch                   1
+#master_sites            http://llvm.org/releases/${version}
+#extract.suffix          .tar.gz
+#distfiles               llvm-${version}.src${extract.suffix}
+#worksrcdir              llvm-${version}.src
+
+patchfiles      install_target.patch \
+                tiger-shlib.patch
+
+patch.pre_args  -p1
+
+if {${subport} == "clang-${llvm_version}"} {
+    if {${distfiles} != ""} {
+        distfiles-append     clang-${version}.src${extract.suffix} compiler-rt-${version}.src${extract.suffix} libcxx-${version}.src${extract.suffix}
+    }
+
+    patchfiles-append    tiger-shlib-clang.patch tiger-libclang.patch scan-build-PR-35006.patch \
+                         0001-Comment-out-SL-cctools-workaround.patch
+
+    build.target        clang-only
+    destroot.target     install-clang
+}
+
+build.env-append        VERBOSE=1 \
+                        REQUIRES_RTTI=1
+destroot.env-append     VERBOSE=1 \
+                        REQUIRES_RTTI=1
+configure.optflags
+configure.cppflags
+configure.ldflags
+configure.pre_args-delete --prefix=${prefix}
+configure.args          --enable-bindings=none --enable-libffi --enable-shared --enable-jit \
+                        --enable-optimized --disable-profiling --enable-pic \
+                        --enable-debug-symbols --disable-debug-runtime \
+                        --prefix="${sub_prefix}"
+
+if {${subport} == "llvm-${llvm_version}"} {
+    select.group        llvm
+    select.file         ${filespath}/mp-${subport}
+} elseif {${subport} == "clang-${llvm_version}"} {
+    select.group        clang
+    select.file         ${filespath}/mp-${subport}
+}
+
+# g++-4.0 fails to build some of the newer C++ for ppc
+# Intel looks ok, but I prefer using gcc-4.2 for consistency
+compiler.blacklist gcc-4.0
+
+variant universal {
+    build.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="[get_canonical_archs]"
+    destroot.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="[get_canonical_archs]"
+
+    post-extract {
+        # workaround a bug in Apple's shipped gcc driver-driver, patched in
+        # ours with driverdriver-num_infiles.patch
+        if {${configure.compiler} == "gcc-4.0" ||
+            ${configure.compiler} == "gcc-4.2" ||
+            ${configure.compiler} == "llvm-gcc-4.2"} {
+            system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
+        }
+    }
+}
+
+variant assertions description "Enable assertions for error detection (has performance impacts, especially on JIT)" {
+    configure.args-append --enable-assertions
+}
+
+platform darwin {
+    if {${build_arch} eq "i386"} {
+        configure.pre_args-append --build=i686-apple-darwin${os.major}
+    } elseif {${build_arch} eq "ppc"} {
+        configure.pre_args-append --build=powerpc-apple-darwin${os.major}
+    } elseif {${build_arch} eq "ppc64"} {
+        configure.pre_args-append --build=powerpc64-apple-darwin${os.major}
+    } else {
+        configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
+    }
+
+    if {[string match "*ppc*" [get_canonical_archs]]} {
+        # http://trac.macports.org/ticket/33987
+        configure.args-append --with-optimize-option=-Os
+        configure.optflags    -Os
+    }
+
+    if {${subport} == "clang-${llvm_version}" && ${os.major} <= 9} {
+        patchfiles-append leopard-no-asan.patch
+    }
+
+    if {${os.major} < 10} {
+        post-patch {
+            reinplace "/TARGETS_TO_BUILD=/s/R600//" ${worksrcpath}/configure
+        }
+    }
+
+    if {${os.major} < 9} {
+        # Tiger's DevTools make has issues with the nested ifs in compiler-rt
+        depends_run-append      port:gmake
+        build.cmd               ${prefix}/bin/gmake
+
+        post-configure {
+            reinplace "/^RPATH/s/=.*/=/" ${worksrcpath}/Makefile.config
+        }
+    }
+}
+
+post-extract {
+    if {${subport} == "clang-${llvm_version}"} {
+        if {${worksrcdir} == "trunk"} {
+            system "cd ${worksrcpath}/tools && svn co -r ${svn.revision} http://llvm.org/svn/llvm-project/cfe/trunk clang"
+            system "cd ${worksrcpath}/projects && svn co -r ${compiler_rt_rev} http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt"
+            system "cd ${worksrcpath}/projects && svn co -r ${libcxx_rev} http://llvm.org/svn/llvm-project/libcxx/trunk libcxx"
+        } elseif {${worksrcdir} == "release_${llvm_version_no_dot}" } {
+            system "cd ${worksrcpath}/tools && svn co -r ${svn.revision} http://llvm.org/svn/llvm-project/cfe/branches/release_${llvm_version_no_dot} clang"
+            system "cd ${worksrcpath}/projects && svn co -r ${compiler_rt_rev} http://llvm.org/svn/llvm-project/compiler-rt/branches/release_${llvm_version_no_dot} compiler-rt"
+            system "cd ${worksrcpath}/projects && svn co -r ${libcxx_rev} http://llvm.org/svn/llvm-project/libcxx/branches/release_${llvm_version_no_dot} libcxx"
+        } else {
+            file rename ${workpath}/clang-${llvm_version}.src ${worksrcpath}/tools/clang
+            file rename ${workpath}/compiler-rt-${llvm_version}.src ${worksrcpath}/projects/compiler-rt
+            file rename ${workpath}/libcxx-${llvm_version}.src ${worksrcpath}/projects/libcxx
+        }
+    }
+}
+
+post-patch {
+    if {${subport} == "clang-${llvm_version}"} {
+        # http://trac.macports.org/ticket/33272
+        if {![variant_isset arm_runtime]} {
+            reinplace {/^SubDirs/ s/arm//} ${worksrcpath}/projects/compiler-rt/lib/Makefile.mk
+            reinplace {/^UniversalArchs/ s/arm[^ )]* *//g} ${worksrcpath}/projects/compiler-rt/make/platform/clang_darwin.mk
+
+            reinplace {/cc_kext_ios5/ s/^/#/} ${worksrcpath}/projects/compiler-rt/make/platform/clang_darwin.mk
+            reinplace {s/cc_kext_ios5.a//} ${worksrcpath}/tools/clang/runtime/compiler-rt/Makefile
+        }
+    }
+}
+
+post-destroot {
+    file mkdir ${destroot}${prefix}/share/doc
+    file rename ${destroot}${sub_prefix}/docs/llvm ${destroot}${prefix}/share/doc/${subport}
+
+    foreach bin [glob ${destroot}${sub_prefix}/bin/*] {
+        set bin_filename [string map "${sub_prefix} ${prefix}" ${bin}]-${suffix}
+        set exec_path [string map "${destroot}${sub_prefix} ${sub_prefix}" ${bin}]
+
+        xinstall -m 755 "${filespath}/llvm-bin" "${bin_filename}"
+        reinplace "s:EXEC_PATH:${exec_path}:" "${bin_filename}"
+    }
+
+    if {${subport} == "llvm-${llvm_version}"} {
+        # r156389 (a5d2435409858728970202226d0bbbee508fe408) temporarilary removed llvm man pages
+        #foreach man [glob ${destroot}${sub_prefix}/share/man/man1/*.1] {
+        #    set basename [string map "${destroot}${sub_prefix}/share/man/man1/ {}" ${man}]
+        #    file rename ${man} ${destroot}${prefix}/share/man/man1/[string map ".1 -${suffix}.1" ${basename}]
+        #}
+
+        foreach liba [glob ${destroot}${sub_prefix}/lib/*dylib] {
+            set liba_nodr [string map "${destroot} {}" ${liba}]
+            system "install_name_tool -id ${liba_nodr} ${liba}"
+
+            foreach libb [glob ${destroot}${sub_prefix}/lib/*dylib] {
+                set libb_base [string map "${destroot}${sub_prefix}/lib/ {}" ${libb}]
+                set libb_nodr [string map "${destroot} {}" ${libb}]
+
+                system "install_name_tool -change @executable_path/../lib/${libb_base} ${libb_nodr} ${liba}"
+                system "install_name_tool -change @rpath/${libb_base} ${libb_nodr} ${liba}"
+            }
+        }
+    } elseif {${subport} == "clang-${llvm_version}"} {
+        system "ditto ${worksrcpath}/projects/libcxx/include ${destroot}${sub_prefix}/lib/c++/v1"
+
+        # http://trac.macports.org/ticket/33207
+        ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
+
+        system "install_name_tool -id ${sub_prefix}/lib/libclang.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"
+        system "install_name_tool -change @executable_path/../lib/libLLVM-${llvm_version}svn.dylib ${sub_prefix}/lib/libLLVM-${llvm_version}svn.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"
+        system "install_name_tool -change @executable_path/../lib/libLLVM-${llvm_version}.dylib ${sub_prefix}/lib/libLLVM-${llvm_version}.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"
+        system "install_name_tool -change @rpath/libLLVM-${llvm_version}svn.dylib ${sub_prefix}/lib/libLLVM-${llvm_version}svn.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"
+        system "install_name_tool -change @rpath/libLLVM-${llvm_version}.dylib ${sub_prefix}/lib/libLLVM-${llvm_version}.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"
+
+        if {${os.major} > 9} {
+            # http://trac.macports.org/ticket/38527
+            system "install_name_tool -id ${sub_prefix}/lib/clang/${llvm_version}/lib/darwin/libclang_rt.asan_osx_dynamic.dylib ${destroot}${sub_prefix}/lib/clang/${llvm_version}/lib/darwin/libclang_rt.asan_osx_dynamic.dylib"
+        }
+    }
+}
+
+if {${subport} == "llvm-${llvm_version}"} {
+    variant ocaml description {Enable generation of OCaml binding} {
+        depends_lib-append   port:ocaml
+
+        configure.args-delete --enable-bindings=none
+        configure.args-append --enable-bindings=ocaml
+
+        destroot.args-append  OVERRIDE_libdir=${sub_prefix}/lib
+    }
+} elseif {${subport} == "clang-${llvm_version}"} {
+    variant arm_runtime description {Build and install the arm runtime for iOS development (requires iOS SDK)} {}
+
+    set pythonver ""
+    set pythonverdot ""
+
+    if {![variant_isset python25] && ![variant_isset python26]} {
+        default_variants +python27
+    }
+
+    variant python25 conflicts python26 python27 description {Use python 2.5} {
+        set pythonver 25
+        set pythonverdot 2.5
+        configure.args-append --with-python=${prefix}/bin/python2.5
+    }
+
+    variant python26 conflicts python25 python27 description {Use python 2.6} {
+        set pythonver 26
+        set pythonverdot 2.6
+        configure.args-append --with-python=${prefix}/bin/python2.6
+    }
+
+    variant python27 conflicts python25 python26 description {Use python 2.7} {
+        set pythonver 27
+        set pythonverdot 2.7
+        configure.args-append --with-python=${prefix}/bin/python2.7
+    }
+
+    variant analyzer description {Install clang static analyzer} {
+        if {[string equal "${pythonver}" ""]} {
+            ui_error "You mush select a python variant to use the clang static analyzer (+analyzer)"
+            error "Invalid variant combination"
+        }
+
+        depends_run-append port:perl5 port:python${pythonver}
+
+        post-patch {
+            reinplace "s|/usr/bin/env perl|${prefix}/bin/perl5|g" \
+                ${worksrcpath}/tools/clang/tools/scan-build/ccc-analyzer \
+                ${worksrcpath}/tools/clang/tools/scan-build/c++-analyzer \
+                ${worksrcpath}/tools/clang/tools/scan-build/scan-build
+            reinplace "s|/usr/bin/env python|${prefix}/bin/python${pythonverdot}|g" \
+                ${worksrcpath}/tools/clang/tools/scan-build/set-xcode-analyzer \
+                ${worksrcpath}/tools/clang/tools/scan-view/scan-view
+        }
+
+        post-destroot {
+            file mkdir ${destroot}${sub_prefix}/libexec
+            file copy ${worksrcpath}/tools/clang/tools/scan-build ${destroot}${sub_prefix}/libexec/scan-build
+            file copy ${worksrcpath}/tools/clang/tools/scan-view ${destroot}${sub_prefix}/libexec/scan-view
+
+            file delete -force ${destroot}${sub_prefix}/libexec/scan-build/.svn
+            file delete -force ${destroot}${sub_prefix}/libexec/scan-view/.svn
+            file delete -force ${destroot}${sub_prefix}/libexec/scan-view/Resources/.svn
+
+            ln -s ${sub_prefix}/libexec/scan-build/scan-build ${destroot}${sub_prefix}/bin/scan-build
+            ln -s ${sub_prefix}/libexec/scan-view/scan-view ${destroot}${sub_prefix}/bin/scan-view
+            ln -s ${sub_prefix}/bin ${destroot}${sub_prefix}/libexec/scan-build/bin
+
+            xinstall -m 755 "${filespath}/llvm-bin" "${destroot}${prefix}/bin/scan-build-${suffix}"
+            reinplace "s:EXEC_PATH:${sub_prefix}/bin/scan-build:" "${destroot}${prefix}/bin/scan-build-${suffix}"
+
+            xinstall -m 755 "${filespath}/llvm-bin" "${destroot}${prefix}/bin/scan-view-${suffix}"
+            reinplace "s:EXEC_PATH:${sub_prefix}/bin/scan-view:" "${destroot}${prefix}/bin/scan-view-${suffix}"
+        }
+    }
+}
+
+livecheck.type          none


Property changes on: trunk/dports/lang/llvm-3.5/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: trunk/dports/lang/llvm-3.5/files/0001-Comment-out-SL-cctools-workaround.patch
===================================================================
--- trunk/dports/lang/llvm-3.5/files/0001-Comment-out-SL-cctools-workaround.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/files/0001-Comment-out-SL-cctools-workaround.patch	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,36 @@
+From 5d32457c53bb0ae8abdafeceb1b622a7b7934de2 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Mon, 15 Apr 2013 22:38:18 -0700
+Subject: [PATCH] Comment out SL cctools workaround
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ make/platform/clang_darwin.mk | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/make/platform/clang_darwin.mk b/make/platform/clang_darwin.mk
+index a5e22e6..6a4e956 100644
+--- a/projects/compiler-rt/make/platform/clang_darwin.mk
++++ a/projects/compiler-rt/make/platform/clang_darwin.mk
+@@ -83,12 +83,12 @@ UniversalArchs.ubsan_osx := $(call Check
+ # object files. If we are on that platform, strip out all ARM archs. We still
+ # build the libraries themselves so that Clang can find them where it expects
+ # them, even though they might not have an expected slice.
+-ifneq ($(shell test -x /usr/bin/sw_vers && sw_vers -productVersion | grep 10.6),)
+-UniversalArchs.ios := $(filter-out armv7, $(UniversalArchs.ios))
+-UniversalArchs.cc_kext := $(filter-out armv7, $(UniversalArchs.cc_kext))
+-UniversalArchs.cc_kext_ios5 := $(filter-out armv7, $(UniversalArchs.cc_kext_ios5))
+-UniversalArchs.profile_ios := $(filter-out armv7, $(UniversalArchs.profile_ios))
+-endif
++#ifneq ($(shell test -x /usr/bin/sw_vers && sw_vers -productVersion | grep 10.6),)
++#UniversalArchs.ios := $(filter-out armv7, $(UniversalArchs.ios))
++#UniversalArchs.cc_kext := $(filter-out armv7, $(UniversalArchs.cc_kext))
++#UniversalArchs.cc_kext_ios5 := $(filter-out armv7, $(UniversalArchs.cc_kext_ios5))
++#UniversalArchs.profile_ios := $(filter-out armv7, $(UniversalArchs.profile_ios))
++#endif
+ 
+ # If RC_SUPPORTED_ARCHS is defined, treat it as a list of the architectures we
+ # are intended to support and limit what we try to build to that.
+-- 
+1.8.2.1
+

Added: trunk/dports/lang/llvm-3.5/files/install_target.patch
===================================================================
--- trunk/dports/lang/llvm-3.5/files/install_target.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/files/install_target.patch	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,13 @@
+--- a/Makefile	2013-10-02 08:42:23.000000000 -0700
++++ b/Makefile	2013-10-24 10:57:33.000000000 -0700
+@@ -70,9 +70,8 @@ ifeq ($(MAKECMDGOALS),install-clang)
+   DIRS := tools/clang/tools/driver tools/clang/lib/Headers \
+           tools/clang/tools/libclang \
+           tools/clang/tools/c-index-test \
+-          tools/clang/include/clang-c \
+           tools/clang/runtime tools/clang/docs \
+-          tools/lto
++          tools/clang/include tools/clang/lib
+   OPTIONAL_DIRS :=
+   NO_INSTALL = 1
+ endif

Added: trunk/dports/lang/llvm-3.5/files/leopard-no-asan.patch
===================================================================
--- trunk/dports/lang/llvm-3.5/files/leopard-no-asan.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/files/leopard-no-asan.patch	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,27 @@
+Index: llvm-3.3/projects/compiler-rt/make/platform/clang_darwin.mk
+===================================================================
+--- llvm-3.3/projects/compiler-rt/make/platform/clang_darwin.mk	(revision 185755)
++++ llvm-3.3/projects/compiler-rt/make/platform/clang_darwin.mk	(working copy)
+@@ -81,8 +81,8 @@ Configs += profile_ios
+ UniversalArchs.profile_ios := $(call CheckArches,i386 x86_64 armv7,profile_ios)
+ 
+ # Configurations which define the ASAN support functions.
+-Configs += asan_osx_dynamic
+-UniversalArchs.asan_osx_dynamic := $(call CheckArches,i386 x86_64,asan_osx_dynamic)
++#Configs += asan_osx_dynamic
++#UniversalArchs.asan_osx_dynamic := $(call CheckArches,i386 x86_64,asan_osx_dynamic)
+ 
+ Configs += ubsan_osx
+ UniversalArchs.ubsan_osx := $(call CheckArches,i386 x86_64,ubsan_osx)
+Index: llvm-3.3/tools/clang/runtime/compiler-rt/Makefile
+===================================================================
+--- llvm-3.4/tools/clang/runtime/compiler-rt/Makefile	(revision 185755)
++++ llvm-3.4/tools/clang/runtime/compiler-rt/Makefile	(working copy)
+@@ -77,7 +77,6 @@ ifeq ($(OS),Darwin)
+ RuntimeDirs += darwin
+ RuntimeLibrary.darwin.Configs := \
+ 	eprintf.a 10.4.a osx.a ios.a cc_kext.a cc_kext_ios5.a \
+-	asan_osx_dynamic.dylib \
+ 	profile_osx.a profile_ios.a \
+ 	ubsan_osx.a
+ endif

Added: trunk/dports/lang/llvm-3.5/files/llvm-bin
===================================================================
--- trunk/dports/lang/llvm-3.5/files/llvm-bin	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/files/llvm-bin	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec EXEC_PATH "${@}"


Property changes on: trunk/dports/lang/llvm-3.5/files/llvm-bin
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/dports/lang/llvm-3.5/files/mp-clang-3.5
===================================================================
--- trunk/dports/lang/llvm-3.5/files/mp-clang-3.5	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/files/mp-clang-3.5	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,5 @@
+-
+bin/clang++-mp-3.5
+bin/clang-mp-3.5
+bin/scan-build-mp-3.5
+bin/scan-view-mp-3.5

Added: trunk/dports/lang/llvm-3.5/files/mp-llvm-3.5
===================================================================
--- trunk/dports/lang/llvm-3.5/files/mp-llvm-3.5	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/files/mp-llvm-3.5	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,27 @@
+bin/bugpoint-mp-3.5
+bin/llc-mp-3.5
+bin/lli-mp-3.5
+bin/llvm-ar-mp-3.5
+bin/llvm-as-mp-3.5
+bin/llvm-bcanalyzer-mp-3.5
+bin/llvm-config-mp-3.5
+bin/llvm-cov-mp-3.5
+bin/llvm-diff-mp-3.5
+bin/llvm-dis-mp-3.5
+bin/llvm-dwarfdump-mp-3.5
+bin/llvm-extract-mp-3.5
+-
+bin/llvm-link-mp-3.5
+bin/llvm-mc-mp-3.5
+bin/llvm-nm-mp-3.5
+bin/llvm-objdump-mp-3.5
+bin/llvm-prof-mp-3.5
+bin/llvm-ranlib-mp-3.5
+bin/llvm-rtdyld-mp-3.5
+bin/llvm-size-mp-3.5
+-
+bin/llvm-tblgen-mp-3.5
+-
+bin/macho-dump-mp-3.5
+bin/opt-mp-3.5
+bin/llvm-tblgen-mp-3.5

Added: trunk/dports/lang/llvm-3.5/files/scan-build-PR-35006.patch
===================================================================
--- trunk/dports/lang/llvm-3.5/files/scan-build-PR-35006.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/files/scan-build-PR-35006.patch	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,11 @@
+--- a/tools/clang/tools/scan-build/scan-build.orig	2012-07-12 09:47:19.000000000 -0700
++++ b/tools/clang/tools/scan-build/scan-build	2012-07-12 09:49:15.000000000 -0700
+@@ -1399,6 +1399,8 @@ if (defined $OutputFormat) {
+       Diag "Analysis run complete.\n";
+       Diag "Viewing analysis results in '$HtmlDir' using scan-view.\n";
+       my $ScanView = Cwd::realpath("$RealBin/scan-view");
++      if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/bin/scan-view"); }
++      if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../scan-view/scan-view"); }
+       if (! -x $ScanView) { $ScanView = "scan-view"; }
+       exec $ScanView, "$HtmlDir";
+     }

Added: trunk/dports/lang/llvm-3.5/files/tiger-libclang.patch
===================================================================
--- trunk/dports/lang/llvm-3.5/files/tiger-libclang.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/files/tiger-libclang.patch	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,11 @@
+--- a/tools/clang/tools/libclang/CIndex.cpp.orig	2012-04-01 22:38:40.000000000 -0700
++++ b/tools/clang/tools/libclang/CIndex.cpp	2012-04-01 22:39:17.000000000 -0700
+@@ -5754,7 +5754,7 @@ void SetSafetyThreadStackSize(unsigned V
+ 
+ void clang::setThreadBackgroundPriority() {
+   // FIXME: Move to llvm/Support and make it cross-platform.
+-#ifdef __APPLE__
++#if defined(__APPLE__) && defined(PRIO_DARWIN_THREAD) && defined(PRIO_DARWIN_BG)
+   setpriority(PRIO_DARWIN_THREAD, 0, PRIO_DARWIN_BG);
+ #endif
+ }

Added: trunk/dports/lang/llvm-3.5/files/tiger-shlib-clang.patch
===================================================================
--- trunk/dports/lang/llvm-3.5/files/tiger-shlib-clang.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/files/tiger-shlib-clang.patch	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,16 @@
+--- llvm-3.0.src.orig/tools/clang/tools/libclang/Makefile	2011-07-09 14:35:58.000000000 -0700
++++ llvm-3.0.src/tools/clang/tools/libclang/Makefile	2012-04-20 10:09:40.000000000 -0700
+@@ -38,9 +38,11 @@ ifeq ($(HOST_OS),Darwin)
+     # Extra options to override libtool defaults.
+     LLVMLibsOptions += -Wl,-dead_strip -Wl,-seg1addr,0xE0000000 
+ 
+-    # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
+     DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
+-    ifneq ($(DARWIN_VERS),8)
++    ifeq ($(DARWIN_VERS),8)
++       LLVMLibsOptions += -Wl,-install_name \
++                          -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
++    else
+        LLVMLibsOptions += -Wl,-install_name \
+                           -Wl,"@rpath/lib$(LIBRARYNAME)$(SHLIBEXT)"
+     endif

Added: trunk/dports/lang/llvm-3.5/files/tiger-shlib.patch
===================================================================
--- trunk/dports/lang/llvm-3.5/files/tiger-shlib.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.5/files/tiger-shlib.patch	2013-12-14 21:32:16 UTC (rev 114756)
@@ -0,0 +1,36 @@
+diff -Naurp trunk.orig/tools/llvm-shlib/Makefile trunk/tools/llvm-shlib/Makefile
+--- trunk.orig/tools/llvm-shlib/Makefile	2012-10-12 00:37:16.000000000 -0700
++++ trunk/tools/llvm-shlib/Makefile	2012-10-12 00:39:43.000000000 -0700
+@@ -54,9 +54,12 @@ ifeq ($(HOST_OS),Darwin)
+                          -Wl,-dead_strip \
+                          -Wl,-seg1addr -Wl,0xE0000000 
+ 
+-    # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
+     DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
+-    ifneq ($(DARWIN_VERS),8)
++    ifeq ($(DARWIN_VERS),8)
++       LLVMLibsOptions    := $(LLVMLibsOptions)  \
++                            -Wl,-dylib_install_name \
++                            -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
++    else
+        LLVMLibsOptions    := $(LLVMLibsOptions)  \
+                             -Wl,-install_name \
+                             -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
+diff -Naurp trunk.orig/tools/lto/Makefile trunk/tools/lto/Makefile
+--- trunk.orig/tools/lto/Makefile	2012-10-12 00:37:16.000000000 -0700
++++ trunk/tools/lto/Makefile	2012-10-12 00:39:43.000000000 -0700
+@@ -42,9 +42,12 @@ ifeq ($(HOST_OS),Darwin)
+                          -Wl,-dead_strip \
+                          -Wl,-seg1addr -Wl,0xE0000000 
+ 
+-    # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
+     DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
+-    ifneq ($(DARWIN_VERS),8)
++    ifeq ($(DARWIN_VERS),8)
++       LLVMLibsOptions    := $(LLVMLibsOptions)  \
++                            -Wl,-dylib_install_name \
++                            -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
++    else
+        LLVMLibsOptions    := $(LLVMLibsOptions)  \
+                             -Wl,-install_name \
+                             -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20131214/f2ce4fca/attachment-0001.html>


More information about the macports-changes mailing list