Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
- # $Id$
- PortSystem 1.0
- PortGroup crossgcc 1.0
- set crossgcc-target lm32-rtems
- name lm32-rtems-gcc
- version 4.5.2
- set newlibversion 1.19.0
- crossgcc.setup ${crossgcc-target} ${version}
- crossgcc.setup_libc newlib ${newlibversion}
- # Parameters for this port.
- set rtemsversion 4.11
- set default-languages --enable-languages="c"
- maintainers gmail.com:yann.sionneau
- distfiles gcc-core-${version}.tar.bz2 \
- newlib-${newlibversion}.tar.gz \
- gcc-core-${version}-rtems${rtemsversion}-20110220.diff:rtems \
- newlib-${newlibversion}-rtems${rtemsversion}-20110724.diff:rtems
- extract.only gcc-core-${version}.tar.gz newlib-${newlibversion}.tar.gz
- worksrcdir gcc-${version}
- checksums gcc-core-${version}.tar.bz2 \
- sha1 130eb3828e7b16118388febdac4e7ff03f83119e \
- rmd160 51a803c44369d6aeb3be124580d907b406a5bffd \
- newlib-${newlibversion}.tar.gz \
- sha1 b2269d30ce7b93b7c714b90ef2f40221c2df0fcd \
- rmd160 a28bd656ec895da0738dac3fb367851a2992d724 \
- gcc-core-${version}-rtems${rtemsversion}-20110220.diff \
- sha1 3d9d44e6883ea367cedbf42f2276173a46a9762e \
- rmd160 1d24d4e879da15afdee6659e3ead5fb96acfcc88 \
- newlib-${newlibversion}-rtems${rtemsversion}-20110724.diff \
- sha1 07130510140d217d2b006a932ae1031daa8ebc61 \
- rmd160 517396c2cf7357fe5e14dd69329582bedabc68db
- patchfiles gcc-ppl-version.patch \
- gcc-lm32-multilib.patch
- extract.only gcc-core-${version}.tar.bz2
- # the generated compiler doesn't accept -arch
- if {[info exists build_arch] && ${os.platform} == "darwin"} {
- configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
- }
- # 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 make that mistake.
- set environment [list AR_FOR_TARGET=${crossgcc-target}${rtemsversion}-ar \
- AS_FOR_TARGET=${crossgcc-target}${rtemsversion}-as \
- LD_FOR_TARGET=${crossgcc-target}${rtemsversion}-ld \
- OBJDUMP_FOR_TARGET=${crossgcc-target}${rtemsversion}-objdump \
- NM_FOR_TARGET=${crossgcc-target}${rtemsversion}-nm \
- RANLIB_FOR_TARGET=${crossgcc-target}${rtemsversion}-ranlib]
- # Build in a different directory, as advised in the README file.
- #pre-configure {
- # file mkdir "${workpath}/build"
- #}
- configure.dir ${worksrcpath}
- configure.env-append ${environment}
- configure.args-delete --enable-languages="c,objc,c++,obj-c++" \
- --target=${crossgcc.target}
- configure.args-append --with-gnu-as \
- --target=${crossgcc-target}${rtemsversion}
- configure.args --target=${crossgcc-target}${rtemsversion} \
- --with-newlib \
- --with-gnu-as \
- --enable-threads \
- --with-system-zlib \
- --with-gmp=${prefix} \
- --with-mpfr=${prefix} \
- --with-mpc=${prefix} \
- ${default-languages} \
- --libdir=${prefix}/lib/${name} \
- --includedir=${prefix}/include/${name} \
- --infodir=${prefix}/share/info \
- --mandir=${prefix}/share/man \
- --datarootdir=${prefix}/share/${name} \
- --with-local-prefix=${prefix}
- build.args ${environment}
- destroot.args ${environment}
- use_parallel_build yes
- pre-patch {
- # Additional patches for rtems.
- system "cd ${workpath}/gcc-${version} && \
- patch -p1 < ${distpath}/gcc-core-${version}-rtems${rtemsversion}-20110220.diff"
- system "cd ${workpath}/newlib-${newlibversion} && \
- patch -p1 < ${distpath}/newlib-${newlibversion}-rtems${rtemsversion}-20110724.diff"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement