# $Id$ PortSystem 1.0 set major 4.2 name llvm-gcc42 version 2.6 categories lang platforms darwin maintainers erickt openmaintainer description llvm is a next generation compiler infrastructure long_description llvm brings tools to work on the llvm intermediate \ language incl. a C and C++ frontend. homepage http://llvm.org/ master_sites http://llvm.org/releases/${version}/ distname llvm-gcc-${major}-${version}.source checksums md5 4e8c5a1035701c231dbfc7e2af2d7571 \ sha1 60670d550be09a57d315efa259d2b19955f6fa79 \ rmd160 08d7ffadb88e3abdcc971372f737e4ddf8f991c6 depends_lib port:llvm worksrcdir build pre-patch { file mkdir ${workpath}/build } # the generated compiler doesn't accept -arch if {[info exists build_arch] && ${os.platform} == "darwin"} { if {(${os.arch} == "i386" && $build_arch == "i386") || (${os.arch} == "powerpc" && $build_arch == "ppc")} { configure.env-append CFLAGS_FOR_TARGET="-m32 ${configure.cflags}" } elseif {(${os.arch} == "i386" && $build_arch == "x86_64") || (${os.arch} == "powerpc" && $build_arch == "ppc64")} { configure.env-append CFLAGS_FOR_TARGET="-m64 ${configure.cflags}" } else { pre-fetch { return -code error "Cannot build $name for $build_arch" } } configure.env-append CFLAGS_FOR_BUILD="${configure.cc_archflags} ${configure.cflags}" configure.cc_archflags configure.cxx_archflags configure.objc_archflags } configure.cmd ../llvm-gcc${major}-${version}.source/configure configure.args-append --enable-llvm=${prefix}/lib/llvm/obj \ --enable-languages=c,c++,objc,obj-c++ \ --mandir=${prefix}/share/man \ --infodir=${prefix}/share/info \ --program-prefix=llvm- \ --program-suffix=-${major} post-destroot { file delete -force ${destroot}/${prefix}/share/man/man7 file delete -force ${destroot}/${prefix}/share/info file delete -force ${destroot}/${prefix}/bin/gccld file delete -force ${destroot}/${prefix}/bin/gccas } platform darwin { post-extract { system "rm -rf ${workpath}/llvm-gcc${major}-${version}.source/libstdc++-v3" } configure.args-append --with-gxx-include-dir=/usr/include/c++/4.0.0 } platform darwin powerpc { set triple powerpc-apple-darwin${os.major} configure.env-append TRIPLE=${triple} configure.post_args --build=${triple} --host=${triple} --target=${triple} } platform darwin i386 { set triple i686-apple-darwin${os.major} configure.env-append TRIPLE=${triple} \ TARGETOPTIONS="--with-arch=nocona --with-tune=generic" configure.post_args --build=${triple} --host=${triple} --target=${triple} }