# $Id: Portfile 120116 2014-05-16 02:02:23Z jeremyhu@macports.org $ PortSystem 1.0 name cctools # Xcode 5.1 version 855 revision 1 categories devel platforms darwin maintainers jeremyhu openmaintainer license {APSL-2 GPL-2+} installs_libs no description Compiler Tools for Mac OS X and Darwin long_description A set of essential tools to support development \ on Mac OS X and Darwin. Conceptually similar \ similar to binutils on other platforms. homepage http://opensource.apple.com/source/${name}/ master_sites http://opensource.apple.com/tarballs/${name}/ checksums rmd160 82e2a198ceedd3aae8b22b8455c6d0aacf36705f \ sha256 751748ddf32c8ea84c175f32792721fa44424dad6acbf163f84f41e9617dbc58 # Just use the host's until the port is fixed port:xnu-headers depends_lib port:cctools-headers depends_build port:ld64 patchfiles cctools-829-lto.patch PR-37520.patch cctools-839-static-dis_info.patch PR-12400897.patch variant universal {} if {${os.arch} eq "powerpc" || ${os.major} < 9} { # XCode 4.1 version 806 revision 3 distname cctools-${version} checksums rmd160 91c0a3f192f1eed60b64ef5a0a06918d0ce0b0c9 \ sha256 6116c06920112c634f6df2fa8b2f171ee3b90ff2176137da5856336695a6a676 supported_archs ppc i386 x86_64 patchfiles-delete cctools-829-lto.patch PR-37520.patch cctools-839-static-dis_info.patch patchfiles-append cctools-806-lto.patch PR-9087924.patch PR-9830754.patch cctools-822-no-lto.patch PR-11136237.patch PR-12475288.patch } else { if {${os.major} < 11} { patchfiles-append snowleopard-strnlen.patch } supported_archs i386 x86_64 } if {![variant_isset llvm29] && ![variant_isset llvm30] && ![variant_isset llvm31] && ![variant_isset llvm32] && ![variant_isset llvm33] && ![variant_isset llvm34] && ${os.major} >= 9} { default_variants +llvm33 } set llvm_version {} variant llvm29 conflicts llvm30 llvm31 llvm32 llvm33 llvm34 description {Use llvm-2.9 for libLTO and llvm-mc} { set llvm_version 2.9 depends_run-append port:llvm-${llvm_version} } variant llvm30 conflicts llvm29 llvm31 llvm32 llvm33 llvm34 description {Use llvm-3.0 for libLTO and llvm-mc} { set llvm_version 3.0 depends_run-append port:llvm-${llvm_version} } variant llvm31 conflicts llvm29 llvm30 llvm32 llvm33 llvm34 description {Use llvm-3.1 for libLTO and llvm-mc} { set llvm_version 3.1 depends_run-append port:llvm-${llvm_version} } variant llvm32 conflicts llvm29 llvm30 llvm31 llvm33 llvm34 description {Use llvm-3.2 for libLTO and llvm-mc} { set llvm_version 3.2 depends_run-append port:llvm-${llvm_version} } variant llvm33 conflicts llvm29 llvm30 llvm31 llvm32 llvm34 description {Use llvm-3.3 for libLTO and llvm-mc} { set llvm_version 3.3 depends_run-append port:llvm-${llvm_version} } variant llvm34 conflicts llvm29 llvm30 llvm31 llvm32 llvm33 description {Use llvm-3.4 for libLTO and llvm-mc} { set llvm_version 3.4 depends_run-append port:llvm-${llvm_version} } use_configure no destroot.args DSTROOT=${destroot}${prefix} RC_ProjectSourceVersion=${version} post-patch { # We don't want to build cctools ld. We want to use ld64 reinplace "/^SUBDIRS_32/s/ld//" ${worksrcpath}/Makefile reinplace "/^COMMON_SUBDIRS/s/ ld / /" ${worksrcpath}/Makefile # Use our chosen version of llvm if {${llvm_version} != ""} { reinplace "s:\"llvm-mc\":\"llvm-mc-mp-${llvm_version}\":" ${worksrcpath}/as/driver.c reinplace "s:@@LLVM_LIBDIR@@:${prefix}/libexec/llvm-${llvm_version}/lib:" ${worksrcpath}/libstuff/lto.c } foreach file [glob ${worksrcpath}/{*/,}Makefile] { reinplace "s:/usr/local:@PREFIX@:g" ${file} reinplace "s:/usr:@PREFIX@:g" ${file} reinplace "s:@PREFIX@:${prefix}:g" ${file} reinplace "s:${prefix}/efi:${prefix}:g" ${file} reinplace "s:/Developer${prefix}:${prefix}:g" ${file} reinplace "s:${prefix}/man:${prefix}/share/man:g" ${file} # Don't strip installed binaries reinplace "s:\\(install .*\\)-s :\\1:g" ${file} if {${os.major} < 10} { reinplace "s:${prefix}/bin/mig:/usr/bin/mig:g" ${file} } } } use_configure no use_parallel_build yes build.target all 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} } pre-build { build.args-append \ RC_ProjectSourceVersion=${version} \ USE_DEPENDENCY_FILE=NO \ BUILD_DYLIBS=NO \ CC="${configure.cc} ${configure.cflags}" \ CXX="${configure.cxx} ${configure.cxxflags}" \ CXXLIB="${cxx_stdlibflags}" \ RC_ARCHS="[get_canonical_archs]" \ SDK="-I${prefix}/include" if {${llvm_version} != ""} { build.args-append \ LTO=-DLTO_SUPPORT \ RC_CFLAGS="[get_canonical_archflags] `llvm-config-mp-${llvm_version} --cflags`" \ LLVM_MC="llvm-mc-mp-${llvm_version}" } else { build.args-append \ LTO= \ RC_CFLAGS="[get_canonical_archflags]" } if {[file exists ${prefix}/lib/libprunetrie.a]} { build.args-append \ TRIE=-DTRIE_SUPPORT } else { build.args-append \ TRIE= } } pre-destroot { destroot.args-append \ RC_ProjectSourceVersion=${version} \ USE_DEPENDENCY_FILE=NO \ BUILD_DYLIBS=NO \ CC="${configure.cc} ${configure.cflags}" \ CXX="${configure.cxx} ${configure.cxxflags}" \ CXXLIB="${cxx_stdlibflags}" \ RC_ARCHS="[get_canonical_archs]" \ SDK="-I${prefix}/include" if {${llvm_version} != ""} { destroot.args-append \ LTO=-DLTO_SUPPORT \ RC_CFLAGS="[get_canonical_archflags] `llvm-config-mp-${llvm_version} --cflags`" \ LLVM_MC="llvm-mc-mp-${llvm_version}" } else { destroot.args-append \ LTO= \ RC_CFLAGS="[get_canonical_archflags]" } if {[file exists ${prefix}/lib/libprunetrie.a]} { destroot.args-append \ TRIE=-DTRIE_SUPPORT } else { destroot.args-append \ TRIE= } } platform macosx { build.args-append RC_OS="macos" destroot.args-append RC_OS="macos" } destroot.target install_tools destroot.args-append DSTROOT=${destroot} post-destroot { file delete -force ${destroot}${prefix}/OpenSourceLicenses file delete -force ${destroot}${prefix}/OpenSourceVersions file delete -force ${destroot}${prefix}/RelNotes if {${os.major} < 10} { file delete -force ${destroot}/Developer } # Provided by port:cctools-headers file delete -force ${destroot}${prefix}/include } livecheck.type regex livecheck.regex "${name}-(\[\\d.\]+)"