[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