|
|||||||||
Thursday the 24th of July, 2008 |
|||||||||
arm-elf-gcc3 most recent diff
Scroll down toward the bottom of the page to get installation instructions for arm-elf-gcc3. The raw portfile for arm-elf-gcc3 3.4.6 is located here: http://arm-elf-gcc3.darwinports.com/dports/cross/arm-elf-gcc3/Portfile Find related portfiles with the unique DarwinPorts.com search feature. Check for any related Fink projects here: pdb.finkproject.org/pdb/package.php/arm-elf-gcc3 # $Id: Portfile 36022 2008-04-14 17:16:39Z pguyot PortSystem 1.0 Name: arm-elf-gcc3 Version: 3.4.6 revision 2 # Parameters for this port. set newlibversion 1.15.0 set crossgcc-target arm-elf set default-languages --enable-languages="c,c++,objc" # Remark: this port is incompatible with other versions of arm-elf-gcc. # If it's a problem, contact me. I'll see what I can do. Description: gcc 3.x cross-compilers for arm-elf, with newlib runtime library. Long Description: gnu compilers collection version 3.x (including c++, fortran and objc) for arm-elf, with newlib runtime library. Homepage: http://gcc.gnu.org/ Platform: darwin Category: cross devel Maintainers: pguyot master_sites gnu:gcc/gcc-${version}/ ftp://sources.redhat.com/pub/newlib/:newlib distfiles gcc-${version}.tar.bz2:gcc newlib-${newlibversion}.tar.gz:newlib worksrcdir gcc-${version} checksums gcc-${version}.tar.bz2 md5 4a21ac777d4b5617283ce488b808da7b sha1 97b290fdc572c8e490b3b39f243e69bacad23c2b rmd160 b15003368cedc7964f6ceaee0c39ddc43a46c442 newlib-${newlibversion}.tar.gz md5 4020004b1b7a56ca4cf7f6d35b40a4cb sha1 f6860b36e48fb831a30bab491230bbc7ce2669a2 rmd160 e57cbb5b3f007ec26a4ec62f5652e23523357001 patchfiles patch-gcc-Makefile.in # All cross ports violate the mtree layout. destroot.violate_mtree yes # Download everything to gcc/ dist_subdir gcc depends_lib bin:${crossgcc-target}-ar:${crossgcc-target}-binutils bin:${crossgcc-target}-as:${crossgcc-target}-binutils bin:${crossgcc-target}-ld:${crossgcc-target}-binutils bin:${crossgcc-target}-nm:${crossgcc-target}-binutils bin:${crossgcc-target}-ranlib:${crossgcc-target}-binutils depends_build bin:msgfmt:gettext # gcc is .bz2, newlib is .gz. # let's extract only gcc with DP infrastructure, we'll do newlib manually. use_bzip2 yes extract.only gcc-${version}.tar.bz2 # Extract newlib and create a symlink of newlib/newlib in gcc directory. post-extract { system "cd ${workpath} && gzip -dc ${distpath}/newlib-${newlibversion}.tar.gz | tar -xf -" system "ln -s ${workpath}/newlib-${newlibversion}/newlib ${workpath}/gcc-${version}/" } # Since we don't build gcc and binutils at the same time, gcc's Makefile will try to transform # program names as gcc's name (add -${version} with ${version} being the version of gcc). # But it won't work because binutils binaries don't have the ${version} suffix, and even if they # had, they would actually have the binutils' version suffix (and not gcc's version). # So let's tell gcc's Makefile not to do that mistake. set environment [list AR_FOR_TARGET=${crossgcc-target}-ar AS_FOR_TARGET=${crossgcc-target}-as LD_FOR_TARGET=${crossgcc-target}-ld NM_FOR_TARGET=${crossgcc-target}-nm RANLIB_FOR_TARGET=${crossgcc-target}-ranlib] # Build in a different directory, as advised in the README file. pre-configure { file mkdir "${workpath}/build" } configure.dir ${workpath}/build configure.cmd ${workpath}/gcc-${version}/configure configure.cc "cc -no-cpp-precomp" configure.env ${environment} configure.args --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' --target=${crossgcc-target} --program-prefix=${crossgcc-target}- --program-suffix=-${version} --with-included-gettext --enable-obsolete --with-newlib --enable-multilib --with-gxx-include-dir=${prefix}/${crossgcc-target}/include/c++/${version}/ ${default-languages} build.dir ${workpath}/build build.args ${environment} destroot.args ${environment} # Variant to include java tools. # I'm not exactly sure what the interest of this variant is except to measure # the speed of your Xserve G5 farm. Or your patience if you don't have such # a farm. Variant: java { configure.args-delete ${default-languages} } 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 souce page (texinfo or texi) proc crossgcc::fixinfo { path makefile name suffix } { global crossgcc-target worksrcpath # Fix the source reinplace "s|setfilename ${name}.info|setfilename ${crossgcc-target}-${name}.info|g" ${worksrcpath}/${path}/${name}.${suffix} reinplace "s|(${name})|(${crossgcc-target}-${name})|g" ${worksrcpath}/${path}/${name}.${suffix} reinplace "s| # Fix the Makefile reinplace "s| ${name}.info| ${crossgcc-target}-${name}.info|g" ${worksrcpath}/${makefile} reinplace "s|/${name}.info|/${crossgcc-target}-${name}.info|g" ${worksrcpath}/${makefile} reinplace "s|^${name}.info|${crossgcc-target}-${name}.info|g" ${worksrcpath}/${makefile} reinplace "s| ${name}.pod| ${crossgcc-target}-${name}.pod|g" ${worksrcpath}/${makefile} reinplace "s|/${name}.pod|/${crossgcc-target}-${name}.pod|g" ${worksrcpath}/${makefile} reinplace "s|^${name}.pod|${crossgcc-target}-${name}.pod|g" ${worksrcpath}/${makefile} reinplace "s| ${name}.${suffix}| ${crossgcc-target}-${name}.${suffix}|g" ${worksrcpath}/${makefile} reinplace "s|/${name}.${suffix}|/${crossgcc-target}-${name}.${suffix}|g" ${worksrcpath}/${makefile} reinplace "s|^${name}.${suffix}|${crossgcc-target}-${name}.${suffix}|g" ${worksrcpath}/${makefile} # Rename the source file rename ${worksrcpath}/${path}/${name}.${suffix} ${worksrcpath}/${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" "${worksrcpath}/${makefile}" } # Fix the gettext files and related stuff. # # module: name of the module (e.g. gas) proc crossgcc::fixgettext { module } { global crossgcc-target worksrcpath if { [ file exists "${worksrcpath}/${module}/Makefile.in" ] } { reinplace "s| } if { [ file exists "${worksrcpath}/${module}/doc/Makefile.in" ] } { reinplace "s| } if { [ file exists "${worksrcpath}/${module}/po/Make-in" ] } { reinplace "s| } } # 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/f/g77.texi crossgcc::fixinfo gcc/f/ gcc/f/Make-lang.in g77 texi # gcc/java/gcj.texi crossgcc::fixinfo gcc/java/ gcc/java/Make-lang.in gcj texi # fastjar/fastjar.texi crossgcc::fixinfo fastjar/ fastjar/Makefile.in fastjar texi # gcc/doc/gccinstall.info crossgcc::fixinfo gcc/doc/ gcc/Makefile.in gccinstall info # gettext stuff. crossgcc::fixgettext gcc crossgcc::fixgettext fastjar } 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 { namespace eval crossgcc {} # Rename a man page if it exists. # # section: section of the man page (e.g. 1) # manpage: name of the man page (e.g. cpp) proc crossgcc::rename_man_page { section manpage } { global crossgcc-target destroot prefix set manpage_path "${destroot}/${prefix}/share/man/man${section}/${manpage}.${section}" if { [ file exists ${manpage_path} ] } { file rename ${manpage_path} "${destroot}/${prefix}/share/man/man${section}/${crossgcc-target}-${manpage}.${section}" } } # Stuff I 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) # aliases for locales (should be on the system) file delete "${destroot}/${prefix}/share/locale/locale.alias" # FSF propaganda (should already be there or would conflict) file delete -force "${destroot}/${prefix}/share/man/man7" # (host) libiberty file delete "${destroot}/${prefix}/lib/libiberty.a" # aliases for charsets (should already be there) file delete "${destroot}/${prefix}/lib/charset.alias" # Remove man pages for tools that are not built as part of cross-gcc file delete "${destroot}/${prefix}/share/man/man1/rmic.1" file delete "${destroot}/${prefix}/share/man/man1/rmiregistry.1" file delete "${destroot}/${prefix}/share/man/man1/jv-convert.1" file delete "${destroot}/${prefix}/share/man/man1/gij.1" # For some reason, some man pages are not prefixed while they should have been # (to avoid conflicting). crossgcc::rename_man_page 1 cpp crossgcc::rename_man_page 1 gcjh crossgcc::rename_man_page 1 gcov crossgcc::rename_man_page 1 jcf-dump crossgcc::rename_man_page 1 jv-scan # There is a bug in gcc/Makefile::install-driver # For cross compilers, $(GCC_INSTALL_NAME) is equal to # $(target_noncanonical)-gcc-$(version) # and hence the driver isn't installed. xinstall -c "${workpath}/build/gcc/xgcc" "${destroot}/${prefix}/bin/${crossgcc-target}-gcc-${version}" } livecheck.check regex livecheck.url http://gcc.gnu.org/releases.html livecheck.regex { GCC (3.*) | .* | If you haven't already installed Darwin Ports, you can find easy instructions for doing so at the main Darwin Ports page. Once Darwin Ports has been installed, in a terminal window and while online, type the following and hit return:
% cd /opt/local/bin/portslocation/dports/arm-elf-gcc3You will then be prompted for your root password, which you should enter. You may have to wait for a few minutes while the software is retrieved from the network and installed for you. Y ou should see something that looks similar to: Make sure that you do not close the terminal window while Darwin Ports is working. Once the software has been installed, you can find further information about using arm-elf-gcc3 with these commands: % man arm-elf-gcc3 Where to find more information:
|
![]() |
![]() Digg arm-elf-gcc3 on MacOSX
Other Helpful SitesMacOSForgeDebian Packages MacPorts - SVN Freshports - FreeBSD Fink Package List RPM for MacOSX Port Categories
aqua
archivers audio benchmarks cad comms cross databases devel editors emulators games genealogy gnome gnustep graphics irc java kde lang math multimedia net news palm perl python ruby science security shells sysutils textproc www x11 xfce zope
Current CVS DownloadsDarwin Ports Current :nightly CVS snapshot OpenDarwin CVSWeb SSH Key Gen |
|||||
| |




