[81851] trunk/dports/cross/arm-none-eabi-gcc/Portfile
raimue at macports.org
raimue at macports.org
Fri Aug 5 18:21:39 PDT 2011
Revision: 81851
http://trac.macports.org/changeset/81851
Author: raimue at macports.org
Date: 2011-08-05 18:21:39 -0700 (Fri, 05 Aug 2011)
Log Message:
-----------
cross/arm-none-eabi-gcc:
Simplify port by using the new crossgcc port group.
Modified Paths:
--------------
trunk/dports/cross/arm-none-eabi-gcc/Portfile
Modified: trunk/dports/cross/arm-none-eabi-gcc/Portfile
===================================================================
--- trunk/dports/cross/arm-none-eabi-gcc/Portfile 2011-08-06 01:20:54 UTC (rev 81850)
+++ trunk/dports/cross/arm-none-eabi-gcc/Portfile 2011-08-06 01:21:39 UTC (rev 81851)
@@ -1,207 +1,23 @@
# $Id$
-PortSystem 1.0
+PortSystem 1.0
+PortGroup crossgcc 1.0
-name arm-none-eabi-gcc
-version 4.6.1
-set branch [join [lrange [split ${version} .] 0 1] .]
+crossgcc.setup arm-none-eabi 4.6.1
+crossgcc.setup_libc newlib 1.19.0
-categories cross devel
-platforms darwin
-license GPL-3
-maintainers nomaintainer
-description The GNU compiler collection for arm-none-eabi
-long_description \
- The GNU compiler collection, including front ends for C, C++, Objective-C \
- and Objective-C++ for arm-none-eabi.
-homepage http://gcc.gnu.org/
-
-set newlibversion 1.19.0
-set crossgcc-target arm-none-eabi
-
-set dcore gcc-core-${version}.tar.bz2
-#set dfort gcc-fortran-${version}.tar.bz2
-set dcxx gcc-g++-${version}.tar.bz2
-#set djava gcc-java-${version}.tar.bz2
-set dobjc gcc-objc-${version}.tar.bz2
-#set ecj ecj-4.5.jar
-set dnewlib newlib-${newlibversion}.tar.gz
-
-master_sites gnu:gcc/gcc-${version}/:gcc \
- ftp://sources.redhat.com/pub/newlib/:newlib
-distfiles ${dcore}:gcc \
- ${dcxx}:gcc \
- ${dobjc}:gcc \
- ${dnewlib}:newlib
-dist_subdir gcc
-checksums ${dcore} \
+checksums gcc-core-${version}.tar.bz2 \
sha1 9b766705f051ffb7321de58f247688b0ae661b98 \
rmd160 bbe0b5127e584ad92516aff79bfa74ec30db2be4 \
- ${dcxx} \
+ gcc-g++-${version}.tar.bz2 \
sha1 043aa427ede603196588c2a2737c22e0d241ceca \
rmd160 857253c13eb4177512fc1bc6d797af28dde60eeb \
- ${dobjc} \
+ gcc-objc-${version}.tar.bz2 \
sha1 ed6f640b62465999eb1439a4db6dda3c35b6d19d \
rmd160 728e7ea55a04f28c6c3556c56213b2d9f023a0be \
- ${dnewlib} \
+ newlib-${crossgcc.libc_version}.tar.gz \
sha1 b2269d30ce7b93b7c714b90ef2f40221c2df0fcd \
rmd160 a28bd656ec895da0738dac3fb367851a2992d724
-use_bzip2 yes
-worksrcdir build
-depends_lib port:${crossgcc-target}-binutils \
- port:gmp \
- port:mpfr \
- port:libiconv \
- port:libmpc
-
-extract.only ${dcore} ${dcxx} ${dobjc}
-post-extract {
- system -W ${workpath} "tar -xzf ${distpath}/newlib-${newlibversion}.tar.gz"
- ln -s ${workpath}/newlib-${newlibversion}/newlib ${workpath}/gcc-${version}/
-}
-
-post-patch {
- namespace eval crossgcc {}
-
- # Fix the info pages and related stuff.
- #
- # path: path to the doc directory (e.g. gas/doc/)
- # makefile: path to Makefile.in (e.g. gas/doc/Makefile.in)
- # name: name of the info page (e.g. as)
- # suffix: suffix of the source page (texinfo or texi)
- proc crossgcc::fixinfo { path makefile name suffix } {
- global crossgcc-target workpath version
-
- # Fix the source
- reinplace "s|setfilename ${name}.info|setfilename ${crossgcc-target}-${name}.info|g" \
- ${workpath}/gcc-${version}/${path}/${name}.${suffix}
- reinplace "s|(${name})|(${crossgcc-target}-${name})|g" \
- ${workpath}/gcc-${version}/${path}/${name}.${suffix}
- reinplace "s|@file{${name}}|@file{${crossgcc-target}-${name}}|g" \
- ${workpath}/gcc-${version}/${path}/${name}.${suffix}
-
- # Fix the Makefile
- reinplace "s| ${name}.info| ${crossgcc-target}-${name}.info|g" \
- ${workpath}/gcc-${version}/${makefile}
- reinplace "s|/${name}.info|/${crossgcc-target}-${name}.info|g" \
- ${workpath}/gcc-${version}/${makefile}
- reinplace "s|^${name}.info|${crossgcc-target}-${name}.info|g" \
- ${workpath}/gcc-${version}/${makefile}
- reinplace "s| ${name}.pod| ${crossgcc-target}-${name}.pod|g" \
- ${workpath}/gcc-${version}/${makefile}
- reinplace "s|/${name}.pod|/${crossgcc-target}-${name}.pod|g" \
- ${workpath}/gcc-${version}/${makefile}
- reinplace "s|^${name}.pod|${crossgcc-target}-${name}.pod|g" \
- ${workpath}/gcc-${version}/${makefile}
- reinplace "s| ${name}.${suffix}| ${crossgcc-target}-${name}.${suffix}|g" \
- ${workpath}/gcc-${version}/${makefile}
- reinplace "s|/${name}.${suffix}|/${crossgcc-target}-${name}.${suffix}|g" \
- ${workpath}/gcc-${version}/${makefile}
- reinplace "s|^${name}.${suffix}|${crossgcc-target}-${name}.${suffix}|g" \
- ${workpath}/gcc-${version}/${makefile}
-
- # Rename the source
- file rename ${workpath}/gcc-${version}/${path}/${name}.${suffix} \
- ${workpath}/gcc-${version}/${path}/${crossgcc-target}-${name}.${suffix}
-
- # Fix install-info's dir.
- # (note: this may be effectless if there was no info dir to be fixed)
- reinplace "s|--info-dir=\$(DESTDIR)\$(infodir)|--dir-file=\$(DESTDIR)\$(infodir)/${crossgcc-target}-gcc-dir|g" \
- ${workpath}/gcc-${version}/${makefile}
- }
-
- # gcc/doc/cpp.texi
- crossgcc::fixinfo gcc/doc/ gcc/Makefile.in cpp texi
-
- # gcc/doc/cppinternals.texi
- crossgcc::fixinfo gcc/doc/ gcc/Makefile.in cppinternals texi
-
- # gcc/doc/gcc.texi
- crossgcc::fixinfo gcc/doc/ gcc/Makefile.in gcc texi
-
- # gcc/doc/gccint.texi
- crossgcc::fixinfo gcc/doc/ gcc/Makefile.in gccint texi
-
- # # gcc/fortran/gfortran.texi
- # crossgcc::fixinfo gcc/fortran/ gcc/fortran/Make-lang.in gfortran texi
-
- # # gcc/java/gcj.texi
- # crossgcc::fixinfo gcc/java/ gcc/java/Make-lang.in gcj texi
-
- # gcc/doc/gccinstall.info
- crossgcc::fixinfo gcc/doc/ gcc/Makefile.in gccinstall info
-
- # libquadmath/libquadmath.info
- crossgcc::fixinfo libquadmath libquadmath/Makefile.in libquadmath info
-}
-
-# the generated compiler doesn't accept -arch
-configure.cc_archflags
-configure.cxx_archflags
-configure.objc_archflags
-configure.ld_archflags
-platform darwin {
- configure.args-append --build=${build_arch}-apple-darwin${os.major}
-}
-
-pre-configure {
- file mkdir ${worksrcpath}
-}
-
-configure.cmd ../gcc-${version}/configure
-configure.args --target=${crossgcc-target} \
- --enable-languages="c,objc,c++,obj-c++" \
- --infodir=${prefix}/share/info \
- --mandir=${prefix}/share/man \
- --datarootdir=${prefix}/share/${name} \
- --with-system-zlib \
- --disable-nls \
- --with-gmp=${prefix} \
- --with-mpfr=${prefix} \
- --with-mpc=${prefix} \
- --enable-stage1-checking \
- --enable-multilib
-
# specific to ARM
-configure.args-append \
- --enable-interwork
-
-configure.env-append \
- AR_FOR_TARGET=${crossgcc-target}-ar \
- AS_FOR_TARGET=${crossgcc-target}-as \
- LD_FOR_TARGET=${crossgcc-target}-ld \
- NM_FOR_TARGET=${crossgcc-target}-nm \
- OBJDUMP_FOR_TARGET=${crossgcc-target}-objdump \
- RANLIB_FOR_TARGET=${crossgcc-target}-ranlib \
- STRIP_FOR_TARGET=${crossgcc-target}-strip
-
-# http://trac.macports.org/ticket/29104
-if {${configure.compiler} == "llvm-gcc-4.2"} {
- configure.compiler clang
-}
-
-destroot.violate_mtree yes
-
-pre-destroot {
- # gcc needs the cross directory structure to be present
- # in order to fill it during installation.
- file mkdir "${destroot}/${prefix}/${crossgcc-target}/bin"
- file mkdir "${destroot}/${prefix}/${crossgcc-target}/lib"
-}
-
-post-destroot {
- # Stuff we don't want (either because they're in the system
- # or because they would conflict with other FSF ports)
- # (it's easier for maintainability purposes to fix things here)
-
- # FSF propaganda (should already be there or would conflict)
- file delete -force "${destroot}/${prefix}/share/man/man7"
-
- # (host) libiberty
- file delete "${destroot}/${prefix}/lib/${build_arch}/libiberty.a"
-}
-
-livecheck.type regex
-livecheck.url http://gcc.gnu.org/releases.html
-livecheck.regex {<tr><td><a href="gcc-.*/">GCC (.*)</a></td> <td>.*</td></tr>}
+configure.args-append --enable-interwork
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20110805/0903a4a8/attachment-0001.html>
More information about the macports-changes
mailing list