# $Id: Portfile 132154 2015-01-25 00:53:11Z jeremyhu@macports.org $ PortSystem 1.0 name cctools # OS X 10.10.0 version 862 set ld64_version 236.3 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} \ http://opensource.apple.com/tarballs/ld64 distfiles ld64-${ld64_version}.tar.gz ${name}-${version}.tar.gz checksums ld64-236.3.tar.gz \ rmd160 6a3f44aa9ae57a60d2cff5b3d47be7972ad83029 \ sha256 8ef36729b643201081ab45ebd8586ede8f9968bc17614b679a940faa82875ca6 \ cctools-862.tar.gz \ rmd160 21ca74a5f9d04c37c2310f107e21a0f3713360dd \ sha256 1bf29f620b91c901ad3116b47738ab5076c1aed75d13869cd3bc7f067b4aaadb depends_build port:libunwind-headers patchfiles cctools-829-lto.patch PR-37520.patch cctools-839-static-dis_info.patch PR-12400897.patch cctools-862-prunetrie.patch cctools-862-unifdef__DARWIN_UNIX03-arm.patch variant universal {} if {${os.major} < 9} { # XCode 4.1 version 806 revision 4 distfiles ld64-${ld64_version}.tar.gz ${name}-${version}.tar.gz checksums ld64-236.3.tar.gz \ rmd160 6a3f44aa9ae57a60d2cff5b3d47be7972ad83029 \ sha256 8ef36729b643201081ab45ebd8586ede8f9968bc17614b679a940faa82875ca6 \ cctools-806.tar.gz \ rmd160 91c0a3f192f1eed60b64ef5a0a06918d0ce0b0c9 \ sha256 6116c06920112c634f6df2fa8b2f171ee3b90ff2176137da5856336695a6a676 patchfiles-delete cctools-829-lto.patch PR-37520.patch cctools-839-static-dis_info.patch cctools-862-prunetrie.patch cctools-862-unifdef__DARWIN_UNIX03-arm.patch patchfiles-append cctools-806-lto.patch PR-9087924.patch PR-9830754.patch cctools-822-no-lto.patch PR-11136237.patch PR-12475288.patch cctools-806-prunetrie.patch } else { if {${os.major} < 11} { patchfiles-append snowleopard-strnlen.patch } } if {![variant_isset llvm33] && ![variant_isset llvm34] && ![variant_isset llvm35] && ![variant_isset llvm36] && ![variant_isset llvm37]} { if {${os.major} >= 13} { default_variants +llvm35 } elseif {${os.major} >= 9} { default_variants +llvm34 } } set llvm_version {} variant llvm33 conflicts llvm34 llvm35 llvm36 llvm37 description {Use llvm-3.3 for libLTO and llvm-mc} { set llvm_version 3.3 depends_lib-append port:llvm-${llvm_version} } variant llvm34 conflicts llvm33 llvm35 llvm36 llvm37 description {Use llvm-3.4 for libLTO and llvm-mc} { set llvm_version 3.4 depends_lib-append port:llvm-${llvm_version} } variant llvm35 conflicts llvm33 llvm34 llvm36 llvm37 description {Use llvm-3.5 for libLTO and llvm-mc} { set llvm_version 3.5 depends_lib-append port:llvm-${llvm_version} } variant llvm36 conflicts llvm33 llvm34 llvm35 llvm37 description {Use llvm-3.6 for libLTO and llvm-mc} { set llvm_version 3.6 depends_lib-append port:llvm-${llvm_version} } variant llvm37 conflicts llvm33 llvm34 llvm35 llvm36 description {Use llvm-3.7 for libLTO and llvm-mc} { set llvm_version 3.7 depends_lib-append port:llvm-${llvm_version} } use_configure no destroot.args DSTROOT=${destroot}${prefix} RC_ProjectSourceVersion=${version} post-extract { file copy ${worksrcpath}/../ld64-${ld64_version}/src/other/PruneTrie.cpp ${worksrcpath}/misc system "touch ${worksrcpath}/../ld64-${ld64_version}/src/abstraction/configure.h" } 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 # https://trac.macports.org/ticket/43745 configure.cflags-append -std=gnu99 build.target all set cxx_stdlibflags {} if {[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} -I${worksrcpath}/../ld64-${ld64_version}/src/abstraction" \ CXXLIB="${cxx_stdlibflags}" \ TRIE=-DTRIE_SUPPORT \ RC_ARCHS="[get_canonical_archs]" \ SDK="-I${prefix}/include -I${worksrcpath}/../ld64-${ld64_version}/src/other" 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]" } } 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} -I${worksrcpath}/../ld64-${ld64_version}/src/abstraction" \ CXXLIB="${cxx_stdlibflags}" \ TRIE=-DTRIE_SUPPORT \ RC_ARCHS="[get_canonical_archs]" \ SDK="-I${prefix}/include -I${worksrcpath}/../ld64-${ld64_version}/src/other" 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]" } } 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.\]+)"