[92461] trunk/dports/lang

jeremyhu at macports.org jeremyhu at macports.org
Sat Apr 28 23:10:23 PDT 2012


Revision: 92461
          https://trac.macports.org/changeset/92461
Author:   jeremyhu at macports.org
Date:     2012-04-28 23:10:23 -0700 (Sat, 28 Apr 2012)
Log Message:
-----------
{clang,dragonegg,llvm}-3.2: New ports tracking llvm trunk development through the release of 3.2

Added Paths:
-----------
    trunk/dports/lang/clang-3.2/
    trunk/dports/lang/clang-3.2/Portfile
    trunk/dports/lang/clang-3.2/files/
    trunk/dports/lang/clang-3.2/files/install_target.patch
    trunk/dports/lang/clang-3.2/files/llvm-bin
    trunk/dports/lang/clang-3.2/files/mp-clang-3.2
    trunk/dports/lang/clang-3.2/files/tiger-shlib-clang.patch
    trunk/dports/lang/clang-3.2/files/tiger-shlib.patch
    trunk/dports/lang/clang-3.2/files/tiger.patch
    trunk/dports/lang/dragonegg-3.2/
    trunk/dports/lang/dragonegg-3.2/Portfile
    trunk/dports/lang/dragonegg-3.2/files/
    trunk/dports/lang/dragonegg-3.2/files/dragonegg-3.2-gcc46
    trunk/dports/lang/dragonegg-3.2/files/dragonegg-gcc
    trunk/dports/lang/llvm-3.2/
    trunk/dports/lang/llvm-3.2/Portfile
    trunk/dports/lang/llvm-3.2/files/
    trunk/dports/lang/llvm-3.2/files/llvm-bin
    trunk/dports/lang/llvm-3.2/files/mp-llvm-3.2
    trunk/dports/lang/llvm-3.2/files/tiger-shlib.patch
    trunk/dports/lang/llvm-3.2/files/tiger.patch

Added: trunk/dports/lang/clang-3.2/Portfile
===================================================================
--- trunk/dports/lang/clang-3.2/Portfile	                        (rev 0)
+++ trunk/dports/lang/clang-3.2/Portfile	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,211 @@
+# $Id$
+
+PortSystem              1.0
+PortGroup select        1.0
+
+set llvm_version        3.2
+name                    clang-${llvm_version}
+set suffix              mp-${llvm_version}
+set sub_prefix          ${prefix}/libexec/llvm-${llvm_version}
+dist_subdir             llvm
+categories              lang
+platforms               darwin
+maintainers             jeremyhu openmaintainer
+license                 NCSA
+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.
+
+homepage                http://clang.llvm.org/
+
+depends_lib             port:llvm-${llvm_version} port:libffi
+depends_run             port:clang_select
+
+default_variants        +analyzer
+
+fetch.type              svn
+svn.revision            155781
+version                 ${llvm_version}-r${svn.revision}
+set compiler_rt_rev     ${svn.revision}
+worksrcdir              trunk
+svn.url                 http://llvm.org/svn/llvm-project/llvm/trunk
+#worksrcdir              release_32
+#svn.url                 http://llvm.org/svn/llvm-project/llvm/branches/release_32
+default_variants-append +assertions
+
+#version                 ${llvm_version}
+#set compiler_rt_rev     150641
+#epoch                   1
+#master_sites            http://llvm.org/releases/${version}/
+#extract.suffix          .tgz
+#distfiles               llvm-${version}${extract.suffix} clang-${version}${extract.suffix}
+#worksrcdir              llvm-${version}.src
+
+patchfiles      install_target.patch \
+                tiger.patch  \
+                tiger-shlib.patch \
+                tiger-shlib-clang.patch
+patch.pre_args  -p1
+
+build.target            clang-only
+destroot.target         install-clang
+build.env-append        VERBOSE=1 REQUIRE_RTTI=1
+destroot.env-append     VERBOSE=1 REQUIRE_RTTI=1
+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-debug-symbols --disable-debug-runtime \
+                        --prefix="${sub_prefix}"
+
+select.group    clang
+select.file     ${filespath}/mp-${name}
+
+# 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
+if {${configure.compiler} == "gcc-4.0"} {
+    configure.compiler gcc-4.2
+    if {![file exists ${configure.cc}]} {
+        depends_build-append port:apple-gcc42
+        configure.compiler apple-gcc-4.2
+    }
+}
+
+# linking fails for ppc
+supported_archs i386 x86_64
+
+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"} {
+            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 {
+    depends_run-append      port:ld64
+    depends_skip_archcheck-append ld64
+
+    if {${build_arch} == "i386" } {
+        configure.pre_args-append --build=i686-apple-darwin${os.major}
+    } else {
+        configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
+    }
+}
+
+platform darwin 8 {
+    # Tiger's DevTools make has issues with the nested ifs in compiler-rt
+    depends_run-append      port:gmake
+    depends_skip_archcheck-append gmake
+    build.cmd               ${prefix}/bin/gmake
+    destroot.cmd            ${prefix}/bin/gmake
+
+    post-configure {
+        reinplace "/^RPATH/s/=.*/=/" ${worksrcpath}/Makefile.config
+    }
+}
+
+post-extract {
+    system "cd ${worksrcpath}/tools && svn co -r ${svn.revision} http://llvm.org/svn/llvm-project/cfe/trunk clang"
+    #system "cd ${worksrcpath}/tools && svn co -r ${svn.revision} http://llvm.org/svn/llvm-project/cfe/branches/release_32 clang"
+    #file rename ${workpath}/clang-${llvm_version}.src ${worksrcpath}/tools/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 ${compiler_rt_rev} http://llvm.org/svn/llvm-project/compiler-rt/branches/release_32 compiler-rt"
+}
+
+variant arm_runtime description {Build and install the arm runtime for iOS development (requires iOS SDK)} {}
+
+post-patch {
+    # 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
+    }
+
+    if {! [file exists /usr/include/dispatch/dispatch.h]} {
+        reinplace {/^SubDirs/ s/asan//} ${worksrcpath}/projects/compiler-rt/lib/Makefile.mk
+    }
+
+}
+
+variant analyzer description {Install clang static analyzer} {
+    depends_run-append  bin:python:python26 bin:perl:perl5
+    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/python2.6|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}"
+    }
+}
+
+post-destroot {
+    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}"
+    }
+
+    # 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"
+}
+
+pre-activate {
+    # An earlier version of this port accidentally installed ${sub_prefix}/bin/ld
+    # rather than ${destroot}${sub_prefix}/bin/ld
+    if {[file exists ${sub_prefix}/bin/ld]} {
+        if {[catch {delete ${sub_prefix}/bin/ld}]} {
+            ui_warn "Cannot delete ${sub_prefix}/bin/ld; please remove it manually."
+        } 
+    }
+}


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

Added: trunk/dports/lang/clang-3.2/files/install_target.patch
===================================================================
--- trunk/dports/lang/clang-3.2/files/install_target.patch	                        (rev 0)
+++ trunk/dports/lang/clang-3.2/files/install_target.patch	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,13 @@
+--- a/Makefile.orig	2012-01-22 17:34:02.000000000 -0800
++++ b/Makefile	2012-01-22 17:34:14.000000000 -0800
+@@ -70,8 +70,7 @@ 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 runtime
++          tools/clang/include \
++          tools/clang/runtime tools/clang/docs
+   OPTIONAL_DIRS :=
+   NO_INSTALL = 1
+ endif

Added: trunk/dports/lang/clang-3.2/files/llvm-bin
===================================================================
--- trunk/dports/lang/clang-3.2/files/llvm-bin	                        (rev 0)
+++ trunk/dports/lang/clang-3.2/files/llvm-bin	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec EXEC_PATH "${@}"


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

Added: trunk/dports/lang/clang-3.2/files/mp-clang-3.2
===================================================================
--- trunk/dports/lang/clang-3.2/files/mp-clang-3.2	                        (rev 0)
+++ trunk/dports/lang/clang-3.2/files/mp-clang-3.2	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,5 @@
+bin/c-index-test-mp-3.2
+bin/clang++-mp-3.2
+bin/clang-mp-3.2
+bin/scan-build-mp-3.2
+bin/scan-view-mp-3.2

Added: trunk/dports/lang/clang-3.2/files/tiger-shlib-clang.patch
===================================================================
--- trunk/dports/lang/clang-3.2/files/tiger-shlib-clang.patch	                        (rev 0)
+++ trunk/dports/lang/clang-3.2/files/tiger-shlib-clang.patch	2012-04-29 06:10:23 UTC (rev 92461)
@@ -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/clang-3.2/files/tiger-shlib.patch
===================================================================
--- trunk/dports/lang/clang-3.2/files/tiger-shlib.patch	                        (rev 0)
+++ trunk/dports/lang/clang-3.2/files/tiger-shlib.patch	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,55 @@
+diff -Naurp llvm-3.0.src.orig/runtime/libprofile/Makefile llvm-3.0.src/runtime/libprofile/Makefile
+--- llvm-3.0.src.orig/runtime/libprofile/Makefile	2011-07-19 16:33:42.000000000 -0700
++++ llvm-3.0.src/runtime/libprofile/Makefile	2012-04-20 10:01:33.000000000 -0700
+@@ -40,10 +40,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 llvm-3.0.src.orig/tools/llvm-shlib/Makefile llvm-3.0.src/tools/llvm-shlib/Makefile
+--- llvm-3.0.src.orig/tools/llvm-shlib/Makefile	2011-10-03 17:30:34.000000000 -0700
++++ llvm-3.0.src/tools/llvm-shlib/Makefile	2012-04-20 10:03:56.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 llvm-3.0.src.orig/tools/lto/Makefile llvm-3.0.src/tools/lto/Makefile
+--- llvm-3.0.src.orig/tools/lto/Makefile	2011-03-28 17:01:39.000000000 -0700
++++ llvm-3.0.src/tools/lto/Makefile	2012-04-20 10:04:25.000000000 -0700
+@@ -49,9 +49,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)"

Added: trunk/dports/lang/clang-3.2/files/tiger.patch
===================================================================
--- trunk/dports/lang/clang-3.2/files/tiger.patch	                        (rev 0)
+++ trunk/dports/lang/clang-3.2/files/tiger.patch	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,32 @@
+diff --git a/lib/Support/Unix/Signals.inc b/lib/Support/Unix/Signals.inc
+index c9ec9fc..8cc4f41 100644
+--- a/lib/Support/Unix/Signals.inc
++++ b/lib/Support/Unix/Signals.inc
+@@ -267,6 +267,15 @@ void llvm::sys::PrintStackTraceOnErrorSignal() {
+   AddSignalHandler(PrintStackTrace, 0);
+ 
+ #if defined(__APPLE__)
++
++/* These aren't defined in the 10.4 SDK, so provide them here */
++#ifndef EXC_MASK_CRASH
++#define EXC_MASK_CRASH 0x400
++#endif
++#ifndef MACH_EXCEPTION_CODES
++#define MACH_EXCEPTION_CODES 0x80000000
++#endif
++
+   // Environment variable to disable any kind of crash dialog.
+   if (getenv("LLVM_DISABLE_CRASH_REPORT")) {
+     mach_port_t self = mach_task_self();
+
+--- 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/dragonegg-3.2/Portfile
===================================================================
--- trunk/dports/lang/dragonegg-3.2/Portfile	                        (rev 0)
+++ trunk/dports/lang/dragonegg-3.2/Portfile	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,100 @@
+# -*- 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.2
+name                    dragonegg-${llvm_version}
+set gcc_version         46
+set gcc_version_dot     4.6
+dist_subdir             llvm
+categories              lang
+platforms               darwin
+maintainers             jeremyhu openmaintainer
+license                 GPL-2
+
+description             Dragonegg is a LLVM plug-in for GCC 4.6
+long_description        Dragonegg replaces GCC optimizers and code generators \
+                        by the LLVM optimizing infrastructure. It supersedes \
+                        llvm-gcc.
+
+homepage                http://dragonegg.llvm.org/
+
+depends_lib             port:llvm-${llvm_version} port:gcc${gcc_version}
+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}
+
+fetch.type              svn
+svn.revision            155781
+version                 ${llvm_version}-r${svn.revision}
+worksrcdir              trunk
+svn.url                 http://llvm.org/svn/llvm-project/dragonegg/trunk
+#worksrcdir              release_32
+#svn.url                 http://llvm.org/svn/llvm-project/dragonegg/branches/release_32
+
+#version                 ${llvm_version}
+#epoch                   1
+#master_sites            http://llvm.org/releases/${version}/
+#extract.suffix          .tar.gz
+#distfiles               dragonegg-${version}${extract.suffix}
+#worksrcdir              dragonegg-${version}.src
+#checksums           sha1    9be8f055df814e56ea3585156da8c7e457f2cd7b \
+#                    rmd160  93aa8a463b6b5e1fb9cc1ee0a7c4d310a78ea64f \
+#                    sha256  72df1fd2e901b254ab8d1b5e7b93c7104751a613aca531f1483f9a637a5f6827
+
+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     ${filespath}/dragonegg-${llvm_version}-gcc${gcc_version}
+
+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
+if {${configure.compiler} == "gcc-4.0"} {
+    configure.compiler gcc-4.2
+    if {![file exists ${configure.cc}]} {
+        depends_build-append port:apple-gcc42
+        configure.compiler apple-gcc-4.2
+    }
+}
+
+# linking fails for ppc
+supported_archs i386 x86_64
+
+variant universal {
+    post-patch {
+        reinplace "/-MD -MP/d" ${worksrcpath}/Makefile
+    }
+}
+
+build.env-append \
+    LLVM_CONFIG=${prefix}/bin/llvm-config-mp-${llvm_version} \
+    GCC=${prefix}/bin/gcc-mp-${gcc_version_dot} \
+    CC="${configure.cc} ${configure.cppflags} [get_canonical_archflags cc]" \
+    CXX="${configure.cxx} ${configure.cppflags} [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}-gcc${gcc_version}.so
+
+    xinstall -m 755 ${filespath}/dragonegg-gcc ${destroot}${prefix}/bin/dragonegg-${llvm_version}-gcc
+    ln -s dragonegg-${llvm_version}-gcc ${destroot}${prefix}/bin/dragonegg-${llvm_version}-cpp
+    ln -s dragonegg-${llvm_version}-gcc ${destroot}${prefix}/bin/dragonegg-${llvm_version}-c++
+    ln -s dragonegg-${llvm_version}-gcc ${destroot}${prefix}/bin/dragonegg-${llvm_version}-g++
+    ln -s dragonegg-${llvm_version}-gcc ${destroot}${prefix}/bin/dragonegg-${llvm_version}-gcj
+    ln -s dragonegg-${llvm_version}-gcc ${destroot}${prefix}/bin/dragonegg-${llvm_version}-gcov
+    ln -s dragonegg-${llvm_version}-gcc ${destroot}${prefix}/bin/dragonegg-${llvm_version}-gfortran
+
+    reinplace "s:PLUGIN:${prefix}/libexec/dragonegg/llvm-${llvm_version}-gcc${gcc_version}.so:" ${destroot}${prefix}/bin/dragonegg-${llvm_version}-gcc
+    reinplace "s:LLVM_VERSION:${llvm_version}:" ${destroot}${prefix}/bin/dragonegg-${llvm_version}-gcc
+    reinplace "s:GCC_VERSION:${gcc_version_dot}:" ${destroot}${prefix}/bin/dragonegg-${llvm_version}-gcc
+}


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

Added: trunk/dports/lang/dragonegg-3.2/files/dragonegg-3.2-gcc46
===================================================================
--- trunk/dports/lang/dragonegg-3.2/files/dragonegg-3.2-gcc46	                        (rev 0)
+++ trunk/dports/lang/dragonegg-3.2/files/dragonegg-3.2-gcc46	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,7 @@
+bin/dragonegg-3.2-gcc
+bin/dragonegg-3.2-cpp
+bin/dragonegg-3.2-c++
+bin/dragonegg-3.2-g++
+bin/dragonegg-3.2-gcj
+bin/dragonegg-3.2-gcov
+bin/dragonegg-3.2-gfortran

Added: trunk/dports/lang/dragonegg-3.2/files/dragonegg-gcc
===================================================================
--- trunk/dports/lang/dragonegg-3.2/files/dragonegg-gcc	                        (rev 0)
+++ trunk/dports/lang/dragonegg-3.2/files/dragonegg-gcc	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+CMD=${0/dragonegg-LLVM_VERSION-/}
+
+exec ${CMD}-mp-GCC_VERSION -fplugin=PLUGIN "${@}"


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

Added: trunk/dports/lang/llvm-3.2/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.2/Portfile	                        (rev 0)
+++ trunk/dports/lang/llvm-3.2/Portfile	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,149 @@
+# $Id$
+
+PortSystem              1.0
+PortGroup select        1.0
+
+set llvm_version        3.2
+name                    llvm-${llvm_version}
+set suffix              mp-${llvm_version}
+set sub_prefix          ${prefix}/libexec/${name}
+dist_subdir             llvm
+categories              lang
+platforms               darwin
+license                 NCSA
+maintainers             jeremyhu openmaintainer
+description             llvm is a next generation compiler infrastructure (svn trunk version)
+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").
+
+homepage                http://llvm.org/
+
+depends_lib             port:libffi
+depends_run             bin:perl:perl5 port:llvm_select
+
+fetch.type              svn
+svn.revision            155781
+version                 ${llvm_version}-r${svn.revision}
+worksrcdir              trunk
+svn.url                 http://llvm.org/svn/llvm-project/llvm/trunk
+#worksrcdir              release_32
+#svn.url                 http://llvm.org/svn/llvm-project/llvm/branches/release_32
+default_variants-append +assertions
+
+#version                 ${llvm_version}
+#epoch                   1
+#master_sites            ${homepage}releases/${version}/
+#extract.suffix          .tgz
+#distfiles               llvm-${version}${extract.suffix}
+#worksrcdir              llvm-${version}.src
+
+patchfiles      tiger.patch \
+                tiger-shlib.patch
+patch.pre_args  -p1
+
+build.env-append        VERBOSE=1 REQUIRE_RTTI=1
+destroot.env-append     VERBOSE=1 REQUIRE_RTTI=1
+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-debug-symbols --disable-debug-runtime \
+                        --prefix="${sub_prefix}"
+
+select.group    llvm
+select.file     ${filespath}/mp-${name}
+
+# 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
+if {${configure.compiler} == "gcc-4.0"} {
+    configure.compiler gcc-4.2
+    if {![file exists ${configure.cc}]} {
+        depends_build-append port:apple-gcc42
+        configure.compiler apple-gcc-4.2
+    }
+}
+
+# linking fails for ppc
+supported_archs i386 x86_64
+
+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"} {
+            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} == "i386" } {
+        configure.pre_args-append --build=i686-apple-darwin${os.major}
+    } else {
+        configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
+    }
+
+    post-destroot {
+        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}"
+            }
+        }
+    }
+}
+
+platform darwin 8 {
+    post-configure {
+        reinplace "/^RPATH/s/=.*/=/" ${worksrcpath}/Makefile.config
+    }
+}
+
+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
+}
+
+post-destroot {
+    file mkdir ${destroot}${prefix}/share/doc
+    file rename ${destroot}${sub_prefix}/docs/llvm ${destroot}${prefix}/share/doc/${name}
+
+    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 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}"
+    }
+}


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

Added: trunk/dports/lang/llvm-3.2/files/llvm-bin
===================================================================
--- trunk/dports/lang/llvm-3.2/files/llvm-bin	                        (rev 0)
+++ trunk/dports/lang/llvm-3.2/files/llvm-bin	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec EXEC_PATH "${@}"


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

Added: trunk/dports/lang/llvm-3.2/files/mp-llvm-3.2
===================================================================
--- trunk/dports/lang/llvm-3.2/files/mp-llvm-3.2	                        (rev 0)
+++ trunk/dports/lang/llvm-3.2/files/mp-llvm-3.2	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,27 @@
+bin/bugpoint-mp-3.2
+bin/llc-mp-3.2
+bin/lli-mp-3.2
+bin/llvm-ar-mp-3.2
+bin/llvm-as-mp-3.2
+bin/llvm-bcanalyzer-mp-3.2
+bin/llvm-config-mp-3.2
+bin/llvm-cov-mp-3.2
+bin/llvm-diff-mp-3.2
+bin/llvm-dis-mp-3.2
+bin/llvm-dwarfdump-mp-3.2
+bin/llvm-extract-mp-3.2
+-
+bin/llvm-link-mp-3.2
+bin/llvm-mc-mp-3.2
+bin/llvm-nm-mp-3.2
+bin/llvm-objdump-mp-3.2
+bin/llvm-prof-mp-3.2
+bin/llvm-ranlib-mp-3.2
+bin/llvm-rtdyld-mp-3.2
+bin/llvm-size-mp-3.2
+-
+bin/llvm-tblgen-mp-3.2
+-
+bin/macho-dump-mp-3.2
+bin/opt-mp-3.2
+bin/llvm-tblgen-mp-3.2

Added: trunk/dports/lang/llvm-3.2/files/tiger-shlib.patch
===================================================================
--- trunk/dports/lang/llvm-3.2/files/tiger-shlib.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.2/files/tiger-shlib.patch	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,55 @@
+diff -Naurp llvm-3.0.src.orig/runtime/libprofile/Makefile llvm-3.0.src/runtime/libprofile/Makefile
+--- llvm-3.0.src.orig/runtime/libprofile/Makefile	2011-07-19 16:33:42.000000000 -0700
++++ llvm-3.0.src/runtime/libprofile/Makefile	2012-04-20 10:01:33.000000000 -0700
+@@ -40,10 +40,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 llvm-3.0.src.orig/tools/llvm-shlib/Makefile llvm-3.0.src/tools/llvm-shlib/Makefile
+--- llvm-3.0.src.orig/tools/llvm-shlib/Makefile	2011-10-03 17:30:34.000000000 -0700
++++ llvm-3.0.src/tools/llvm-shlib/Makefile	2012-04-20 10:03:56.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 llvm-3.0.src.orig/tools/lto/Makefile llvm-3.0.src/tools/lto/Makefile
+--- llvm-3.0.src.orig/tools/lto/Makefile	2011-03-28 17:01:39.000000000 -0700
++++ llvm-3.0.src/tools/lto/Makefile	2012-04-20 10:04:25.000000000 -0700
+@@ -49,9 +49,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)"

Added: trunk/dports/lang/llvm-3.2/files/tiger.patch
===================================================================
--- trunk/dports/lang/llvm-3.2/files/tiger.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.2/files/tiger.patch	2012-04-29 06:10:23 UTC (rev 92461)
@@ -0,0 +1,21 @@
+diff --git a/lib/Support/Unix/Signals.inc b/lib/Support/Unix/Signals.inc
+index c9ec9fc..8cc4f41 100644
+--- a/lib/Support/Unix/Signals.inc
++++ b/lib/Support/Unix/Signals.inc
+@@ -267,6 +267,15 @@ void llvm::sys::PrintStackTraceOnErrorSignal() {
+   AddSignalHandler(PrintStackTrace, 0);
+ 
+ #if defined(__APPLE__)
++
++/* These aren't defined in the 10.4 SDK, so provide them here */
++#ifndef EXC_MASK_CRASH
++#define EXC_MASK_CRASH 0x400
++#endif
++#ifndef MACH_EXCEPTION_CODES
++#define MACH_EXCEPTION_CODES 0x80000000
++#endif
++
+   // Environment variable to disable any kind of crash dialog.
+   if (getenv("LLVM_DISABLE_CRASH_REPORT")) {
+     mach_port_t self = mach_task_self();
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120428/30e20d14/attachment-0001.html>


More information about the macports-changes mailing list