Ticket #25598: Portfile

File Portfile, 22.2 KB (added by krischik@…, 13 years ago)

Portfile for gcc 4.5.2

Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; truncate-lines: t; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2# $Id: Portfile 68933 2010-06-18 09:03:47Z vinc17@macports.org $
3# vim: set fileencoding=utf-8 tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab filetype=tcl :
4
5PortSystem 1.0
6
7name                    gnat-gcc
8epoch                   1
9version                 4.5.2
10platforms               darwin
11categories              lang
12maintainers             openmaintainer krischik
13license                 GPLv3
14description             The GNU compiler collection with GNAT
15long_description        The GNU compiler collection, including front ends for \
16                        C, C++, Ada, Objective-C, Objective-C++, Java and Fortran95.
17
18homepage                http://gcc.gnu.org/
19master_sites            ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/releases/gcc-${version}/:gcc \
20                        ftp://ftp.gwdg.de/pub/linux/gcc/releases/gcc-${version}/:gcc \
21                        ftp://gcc.ftp.nluug.nl/mirror/languages/gcc/releases/gcc-${version}/:gcc \
22                        ftp://gcc.gnu.org/pub/gcc/releases/gcc-${version}/:gcc \
23                        gnu:/gcc/gcc-${version}:gcc \
24                        ftp://sourceware.org/pub/java/:ecj \
25                        http://mirrors.kernel.org/sources.redhat.com/java/:ecj \
26                        http://www.mirrorservice.org/sites/sources.redhat.com/pub/java/:ecj \
27                        http://ftp-stud.fht-esslingen.de/pub/Mirrors/sourceware.org/java/:ecj
28
29set dcore               gcc-core-${version}.tar.bz2
30set dada                gcc-ada-${version}.tar.bz2
31set dfort               gcc-fortran-${version}.tar.bz2
32set dcxx                gcc-g++-${version}.tar.bz2
33set djava               gcc-java-${version}.tar.bz2
34set dobjc               gcc-objc-${version}.tar.bz2
35set ecj                 ecj-4.5.jar
36distfiles               ${dcore}:gcc ${dada}:gcc ${dfort}:gcc ${dcxx}:gcc ${djava}:gcc ${dobjc}:gcc ${ecj}:ecj
37extract.only            ${dcore} ${dada} ${dfort} ${dcxx} ${djava} ${dobjc}
38
39checksums           gcc-core-${version}.tar.bz2 \
40                    md5     aa9e36bec080452372bfba793428ee82 \
41                    sha1    130eb3828e7b16118388febdac4e7ff03f83119e \
42                    rmd160  51a803c44369d6aeb3be124580d907b406a5bffd \
43                    gcc-ada-${version}.tar.bz2 \
44                    md5     ee24023972f337fbc22202d6d219a727 \
45                    sha1    0c8b27c48a72283c2a57248ed365f4d9d7226c28 \
46                    rmd160  ab5fc6993dd0999d0cefa60f0ced18418c17dad3 \
47                    gcc-fortran-${version}.tar.bz2 \
48                    md5     8cc545fda70085c78076d79e0e23962a \
49                    sha1    52a056d96d17131d815d3c7d215da49f4c931836 \
50                    rmd160  d0f6f5e2e62dc5248b3f9c8b54323e550c149c18 \
51                    gcc-g++-${version}.tar.bz2 \
52                    md5     9821f1c61e43755866861485ff364e90 \
53                    sha1    7126d160b2a8bb6c9ee0fa39ec0edc25b761c121 \
54                    rmd160  18002073ba2dead765923955d3d9d097d91308d5 \
55                    gcc-java-${version}.tar.bz2 \
56                    md5     fe2b647bace18dc7867a4192def46e2c \
57                    sha1    23964c46f38e7a0ad44eb391350712fc38f8bf6d \
58                    rmd160  fb69b4b29267cf693f0765ccda689ab6e3bdbd4d \
59                    gcc-objc-${version}.tar.bz2 \
60                    md5     3561c6585e9062105cc3591a8c39d7dc \
61                    sha1    54834cda2bdbe31c34f5028720bd511bcbeff502 \
62                    rmd160  5f49cc75abd0f0462f929446b0228032d0a1db46 \
63                    ecj-4.5.jar \
64                    md5     d7cd6a27c8801e66cbaa964a039ecfdb \
65                    sha1    58c1d79c64c8cd718550f32a932ccfde8d1e6449 \
66                    rmd160  d3f4da657f086b6423f74e93f001132f4855368a
67
68use_bzip2               yes
69
70depends_lib             port:gmp port:mpfr port:libiconv port:libmpc
71depends_run             port:gcc_select
72
73set major               4.5
74
75worksrcdir              build
76dist_subdir             gcc45
77
78# the generated compiler doesn't accept -arch
79configure.cc_archflags
80configure.cxx_archflags
81configure.objc_archflags
82configure.ld_archflags
83platform darwin {
84    configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
85}
86
87post-extract {
88        copy ${distpath}/${ecj} ${workpath}/gcc-${version}/ecj.jar
89}
90
91pre-configure {
92        file mkdir ${worksrcpath}
93}
94
95configure.cmd   ../gcc-${version}/configure
96configure.args  --enable-languages=c,c++,ada,objc,obj-c++,java,fortran \
97                --libdir=${prefix}/lib/${name} \
98                --includedir=${prefix}/include/${name} \
99                --infodir=${prefix}/share/info \
100                --mandir=${prefix}/share/man \
101                --datarootdir=${prefix}/share/gcc-${major} \
102                --with-local-prefix=${prefix} \
103                --with-system-zlib \
104                --disable-nls \
105                --program-suffix=-gnat-${major} \
106                --with-gxx-include-dir=${prefix}/include/${name}/c++/ \
107                --with-gmp=${prefix} \
108                --with-mpfr=${prefix} \
109                --with-mpc=${prefix} \
110                --enable-stage1-checking \
111                --disable-multilib
112# do NOT use MacPorts binutils -- they do not work
113configure.env-append    AR_FOR_TARGET=/usr/bin/ar \
114                        AS_FOR_TARGET=/usr/bin/as \
115                        LD_FOR_TARGET=/usr/bin/ld \
116                        NM_FOR_TARGET=/usr/bin/nm \
117                        OBJDUMP_FOR_TARGET=/usr/bin/objdump \
118                        RANLIB_FOR_TARGET=/usr/bin/ranlib \
119                        STRIP_FOR_TARGET=/usr/bin/strip
120
121build.target    bootstrap
122use_parallel_build      yes
123
124destroot.target install install-info-host
125
126post-destroot {
127        file delete -force ${destroot}${prefix}/share/man/man7 \
128                ${destroot}${prefix}/share/info
129        # install/copy ffitarget.h only if we have it
130        if {![catch {set ffitarget.h [glob ${destroot}${prefix}/lib/${name}/gcc/*/${version}/include/ffitarget.h]} result]} {
131                file copy ${ffitarget.h} ${destroot}${prefix}/include/${name}/
132        }
133        # install select file for gcc_select
134        xinstall -m 755 -d ${destroot}${prefix}/etc/select/gcc
135        xinstall -m 444 ${filespath}/gnat-gcc ${destroot}${prefix}/etc/select/gcc/
136        file rename ${destroot}${prefix}/share/python/aotcompile.py \
137                ${destroot}${prefix}/share/python/aotcompile-45.py
138        file rename ${destroot}${prefix}/share/python/classfile.py \
139                ${destroot}${prefix}/share/python/classfile-45.py
140
141    set dest_src_dir    ${destroot}${prefix}/src/gnat
142    set src_ada_dir     ${workpath}/gcc-${version}/gcc/ada
143    set src_c_dir       ${workpath}/gcc-${version}/gcc
144    set target_ada_dir  ${workpath}/${worksrcdir}/gcc/ada;
145
146    xinstall -m 775 -d                                                  ${dest_src_dir}
147    xinstall -m 664 -W ${src_ada_dir}    ali.adb                        ${dest_src_dir}
148    xinstall -m 664 -W ${src_ada_dir}    ali.ads                        ${dest_src_dir}
149    xinstall -m 664 -W ${src_ada_dir}    alloc.ads                      ${dest_src_dir}
150    xinstall -m 664 -W ${src_ada_dir}    atree.adb                      ${dest_src_dir}
151    xinstall -m 664 -W ${src_ada_dir}    atree.ads                      ${dest_src_dir}
152    xinstall -m 664 -W ${src_ada_dir}    butil.adb                      ${dest_src_dir}
153    xinstall -m 664 -W ${src_ada_dir}    butil.ads                      ${dest_src_dir}
154    xinstall -m 664 -W ${src_ada_dir}    casing.adb                     ${dest_src_dir}
155    xinstall -m 664 -W ${src_ada_dir}    casing.ads                     ${dest_src_dir}
156    xinstall -m 664 -W ${src_ada_dir}    csets.adb                      ${dest_src_dir}
157    xinstall -m 664 -W ${src_ada_dir}    csets.ads                      ${dest_src_dir}
158    xinstall -m 664 -W ${src_ada_dir}    debug.adb                      ${dest_src_dir}
159    xinstall -m 664 -W ${src_ada_dir}    debug.ads                      ${dest_src_dir}
160    xinstall -m 664 -W ${src_ada_dir}    einfo.adb                      ${dest_src_dir}
161    xinstall -m 664 -W ${src_ada_dir}    einfo.ads                      ${dest_src_dir}
162    xinstall -m 664 -W ${src_ada_dir}    elists.adb                     ${dest_src_dir}
163    xinstall -m 664 -W ${src_ada_dir}    elists.ads                     ${dest_src_dir}
164    xinstall -m 664 -W ${src_ada_dir}    err_vars.ads                   ${dest_src_dir}
165    xinstall -m 664 -W ${src_ada_dir}    errout.adb                     ${dest_src_dir}
166    xinstall -m 664 -W ${src_ada_dir}    errout.ads                     ${dest_src_dir}
167    xinstall -m 664 -W ${src_ada_dir}    erroutc.adb                    ${dest_src_dir}
168    xinstall -m 664 -W ${src_ada_dir}    erroutc.ads                    ${dest_src_dir}
169    xinstall -m 664 -W ${src_ada_dir}    errutil.adb                    ${dest_src_dir}
170    xinstall -m 664 -W ${src_ada_dir}    errutil.ads                    ${dest_src_dir}
171    xinstall -m 664 -W ${src_ada_dir}    fmap.adb                       ${dest_src_dir}
172    xinstall -m 664 -W ${src_ada_dir}    fmap.ads                       ${dest_src_dir}
173    xinstall -m 664 -W ${src_ada_dir}    fname.adb                      ${dest_src_dir}
174    xinstall -m 664 -W ${src_ada_dir}    fname.ads                      ${dest_src_dir}
175    xinstall -m 664 -W ${src_ada_dir}    g-string.adb                   ${dest_src_dir}
176    xinstall -m 664 -W ${src_ada_dir}    g-string.ads                   ${dest_src_dir}
177    xinstall -m 664 -W ${src_ada_dir}    gnatvsn.adb                    ${dest_src_dir}
178    xinstall -m 664 -W ${src_ada_dir}    gnatvsn.ads                    ${dest_src_dir}
179    #xinstall -m 664 -W ${src_ada_dir}   gprmake.adb                    ${dest_src_dir}
180    xinstall -m 664 -W ${src_ada_dir}    hostparm.ads                   ${dest_src_dir}
181    xinstall -m 664 -W ${src_ada_dir}    impunit.adb                    ${dest_src_dir}
182    xinstall -m 664 -W ${src_ada_dir}    krunch.adb                     ${dest_src_dir}
183    xinstall -m 664 -W ${src_ada_dir}    krunch.ads                     ${dest_src_dir}
184    xinstall -m 664 -W ${src_ada_dir}    lib-list.adb                   ${dest_src_dir}
185    xinstall -m 664 -W ${src_ada_dir}    lib-sort.adb                   ${dest_src_dir}
186    xinstall -m 664 -W ${src_ada_dir}    lib.adb                        ${dest_src_dir}
187    xinstall -m 664 -W ${src_ada_dir}    lib.ads                        ${dest_src_dir}
188    #xinstall -m 664 -W ${src_ada_dir}   makegpr.adb                    ${dest_src_dir}
189    #xinstall -m 664 -W ${src_ada_dir}   makegpr.ads                    ${dest_src_dir}
190    xinstall -m 664 -W ${src_ada_dir}    makeutl.adb                    ${dest_src_dir}
191    xinstall -m 664 -W ${src_ada_dir}    makeutl.ads                    ${dest_src_dir}
192    xinstall -m 664 -W ${src_ada_dir}    mlib-fil.adb                   ${dest_src_dir}
193    xinstall -m 664 -W ${src_ada_dir}    mlib-fil.ads                   ${dest_src_dir}
194    xinstall -m 664 -W ${src_ada_dir}    mlib-tgt-specific-darwin.adb   ${dest_src_dir}
195    xinstall -m 664 -W ${src_ada_dir}    mlib-tgt-specific-linux.adb    ${dest_src_dir}
196    xinstall -m 664 -W ${src_ada_dir}    mlib-tgt-specific-mingw.adb    ${dest_src_dir}
197    xinstall -m 664 -W ${src_ada_dir}    mlib-tgt-specific.adb          ${dest_src_dir}
198    xinstall -m 664 -W ${src_ada_dir}    mlib-tgt-specific.ads          ${dest_src_dir}
199    xinstall -m 664 -W ${src_ada_dir}    mlib-tgt.adb                   ${dest_src_dir}
200    xinstall -m 664 -W ${src_ada_dir}    mlib-tgt.ads                   ${dest_src_dir}
201    xinstall -m 664 -W ${src_ada_dir}    mlib-utl.adb                   ${dest_src_dir}
202    xinstall -m 664 -W ${src_ada_dir}    mlib-utl.ads                   ${dest_src_dir}
203    xinstall -m 664 -W ${src_ada_dir}    mlib.adb                       ${dest_src_dir}
204    xinstall -m 664 -W ${src_ada_dir}    mlib.ads                       ${dest_src_dir}
205    xinstall -m 664 -W ${src_ada_dir}    namet.adb                      ${dest_src_dir}
206    xinstall -m 664 -W ${src_ada_dir}    namet.ads                      ${dest_src_dir}
207    xinstall -m 664 -W ${src_ada_dir}    nlists.adb                     ${dest_src_dir}
208    xinstall -m 664 -W ${src_ada_dir}    nlists.ads                     ${dest_src_dir}
209    xinstall -m 664 -W ${src_ada_dir}    opt.adb                        ${dest_src_dir}
210    xinstall -m 664 -W ${src_ada_dir}    opt.ads                        ${dest_src_dir}
211    xinstall -m 664 -W ${src_ada_dir}    osint.adb                      ${dest_src_dir}
212    xinstall -m 664 -W ${src_ada_dir}    osint.ads                      ${dest_src_dir}
213    xinstall -m 664 -W ${src_ada_dir}    output.adb                     ${dest_src_dir}
214    xinstall -m 664 -W ${src_ada_dir}    output.ads                     ${dest_src_dir}
215    xinstall -m 664 -W ${src_ada_dir}    prj-attr-pm.adb                ${dest_src_dir}
216    xinstall -m 664 -W ${src_ada_dir}    prj-attr-pm.ads                ${dest_src_dir}
217    xinstall -m 664 -W ${src_ada_dir}    prj-attr.adb                   ${dest_src_dir}
218    xinstall -m 664 -W ${src_ada_dir}    prj-attr.ads                   ${dest_src_dir}
219    xinstall -m 664 -W ${src_ada_dir}    prj-com.ads                    ${dest_src_dir}
220    xinstall -m 664 -W ${src_ada_dir}    prj-dect.adb                   ${dest_src_dir}
221    xinstall -m 664 -W ${src_ada_dir}    prj-dect.ads                   ${dest_src_dir}
222    xinstall -m 664 -W ${src_ada_dir}    prj-env.adb                    ${dest_src_dir}
223    xinstall -m 664 -W ${src_ada_dir}    prj-env.ads                    ${dest_src_dir}
224    xinstall -m 664 -W ${src_ada_dir}    prj-err.adb                    ${dest_src_dir}
225    xinstall -m 664 -W ${src_ada_dir}    prj-err.ads                    ${dest_src_dir}
226    xinstall -m 664 -W ${src_ada_dir}    prj-ext.adb                    ${dest_src_dir}
227    xinstall -m 664 -W ${src_ada_dir}    prj-ext.ads                    ${dest_src_dir}
228    xinstall -m 664 -W ${src_ada_dir}    prj-nmsc.adb                   ${dest_src_dir}
229    xinstall -m 664 -W ${src_ada_dir}    prj-nmsc.ads                   ${dest_src_dir}
230    xinstall -m 664 -W ${src_ada_dir}    prj-pars.adb                   ${dest_src_dir}
231    xinstall -m 664 -W ${src_ada_dir}    prj-pars.ads                   ${dest_src_dir}
232    xinstall -m 664 -W ${src_ada_dir}    prj-part.adb                   ${dest_src_dir}
233    xinstall -m 664 -W ${src_ada_dir}    prj-part.ads                   ${dest_src_dir}
234    xinstall -m 664 -W ${src_ada_dir}    prj-pp.adb                     ${dest_src_dir}
235    xinstall -m 664 -W ${src_ada_dir}    prj-pp.ads                     ${dest_src_dir}
236    xinstall -m 664 -W ${src_ada_dir}    prj-proc.adb                   ${dest_src_dir}
237    xinstall -m 664 -W ${src_ada_dir}    prj-proc.ads                   ${dest_src_dir}
238    xinstall -m 664 -W ${src_ada_dir}    prj-strt.adb                   ${dest_src_dir}
239    xinstall -m 664 -W ${src_ada_dir}    prj-strt.ads                   ${dest_src_dir}
240    xinstall -m 664 -W ${src_ada_dir}    prj-tree.adb                   ${dest_src_dir}
241    xinstall -m 664 -W ${src_ada_dir}    prj-tree.ads                   ${dest_src_dir}
242    xinstall -m 664 -W ${src_ada_dir}    prj-util.adb                   ${dest_src_dir}
243    xinstall -m 664 -W ${src_ada_dir}    prj-util.ads                   ${dest_src_dir}
244    xinstall -m 664 -W ${src_ada_dir}    prj.adb                        ${dest_src_dir}
245    xinstall -m 664 -W ${src_ada_dir}    prj.ads                        ${dest_src_dir}
246    xinstall -m 664 -W ${src_ada_dir}    repinfo.adb                    ${dest_src_dir}
247    xinstall -m 664 -W ${src_ada_dir}    repinfo.ads                    ${dest_src_dir}
248    xinstall -m 664 -W ${src_ada_dir}    rident.ads                     ${dest_src_dir}
249    xinstall -m 664 -W ${src_ada_dir}    scans.adb                      ${dest_src_dir}
250    xinstall -m 664 -W ${src_ada_dir}    scans.ads                      ${dest_src_dir}
251    xinstall -m 664 -W ${src_ada_dir}    scng.adb                       ${dest_src_dir}
252    xinstall -m 664 -W ${src_ada_dir}    scng.ads                       ${dest_src_dir}
253    xinstall -m 664 -W ${src_ada_dir}    sdefault.ads                   ${dest_src_dir}
254    xinstall -m 664 -W ${src_ada_dir}    sinfo-cn.adb                   ${dest_src_dir}
255    xinstall -m 664 -W ${src_ada_dir}    sinfo-cn.ads                   ${dest_src_dir}
256    xinstall -m 664 -W ${src_ada_dir}    sinfo.adb                      ${dest_src_dir}
257    xinstall -m 664 -W ${src_ada_dir}    sinfo.ads                      ${dest_src_dir}
258    xinstall -m 664 -W ${src_ada_dir}    sinput-c.adb                   ${dest_src_dir}
259    xinstall -m 664 -W ${src_ada_dir}    sinput-c.ads                   ${dest_src_dir}
260    xinstall -m 664 -W ${src_ada_dir}    sinput-p.adb                   ${dest_src_dir}
261    xinstall -m 664 -W ${src_ada_dir}    sinput-p.ads                   ${dest_src_dir}
262    xinstall -m 664 -W ${src_ada_dir}    sinput.adb                     ${dest_src_dir}
263    xinstall -m 664 -W ${src_ada_dir}    sinput.ads                     ${dest_src_dir}
264    xinstall -m 664 -W ${src_ada_dir}    snames.adb                     ${dest_src_dir}
265    xinstall -m 664 -W ${src_ada_dir}    snames.ads                     ${dest_src_dir}
266    xinstall -m 664 -W ${src_ada_dir}    stand.adb                      ${dest_src_dir}
267    xinstall -m 664 -W ${src_ada_dir}    stand.ads                      ${dest_src_dir}
268    xinstall -m 664 -W ${src_ada_dir}    stringt.adb                    ${dest_src_dir}
269    xinstall -m 664 -W ${src_ada_dir}    stringt.ads                    ${dest_src_dir}
270    xinstall -m 664 -W ${src_ada_dir}    style.ads                      ${dest_src_dir}
271    xinstall -m 664 -W ${src_ada_dir}    styleg-c.adb                   ${dest_src_dir}
272    xinstall -m 664 -W ${src_ada_dir}    styleg-c.ads                   ${dest_src_dir}
273    xinstall -m 664 -W ${src_ada_dir}    styleg.adb                     ${dest_src_dir}
274    xinstall -m 664 -W ${src_ada_dir}    styleg.ads                     ${dest_src_dir}
275    xinstall -m 664 -W ${src_ada_dir}    stylesw.adb                    ${dest_src_dir}
276    xinstall -m 664 -W ${src_ada_dir}    stylesw.ads                    ${dest_src_dir}
277    xinstall -m 664 -W ${src_ada_dir}    switch-m.adb                   ${dest_src_dir}
278    xinstall -m 664 -W ${src_ada_dir}    switch-m.ads                   ${dest_src_dir}
279    xinstall -m 664 -W ${src_ada_dir}    switch.adb                     ${dest_src_dir}
280    xinstall -m 664 -W ${src_ada_dir}    switch.ads                     ${dest_src_dir}
281    xinstall -m 664 -W ${src_ada_dir}    table.adb                      ${dest_src_dir}
282    xinstall -m 664 -W ${src_ada_dir}    table.ads                      ${dest_src_dir}
283    xinstall -m 664 -W ${src_ada_dir}    targparm.adb                   ${dest_src_dir}
284    xinstall -m 664 -W ${src_ada_dir}    targparm.ads                   ${dest_src_dir}
285    xinstall -m 664 -W ${src_ada_dir}    tempdir.adb                    ${dest_src_dir}
286    xinstall -m 664 -W ${src_ada_dir}    tempdir.ads                    ${dest_src_dir}
287    xinstall -m 664 -W ${src_ada_dir}    tree_in.adb                    ${dest_src_dir}
288    xinstall -m 664 -W ${src_ada_dir}    tree_in.ads                    ${dest_src_dir}
289    xinstall -m 664 -W ${src_ada_dir}    tree_io.adb                    ${dest_src_dir}
290    xinstall -m 664 -W ${src_ada_dir}    tree_io.ads                    ${dest_src_dir}
291    xinstall -m 664 -W ${src_ada_dir}    types.adb                      ${dest_src_dir}
292    xinstall -m 664 -W ${src_ada_dir}    types.ads                      ${dest_src_dir}
293    xinstall -m 664 -W ${src_ada_dir}    uintp.adb                      ${dest_src_dir}
294    xinstall -m 664 -W ${src_ada_dir}    uintp.ads                      ${dest_src_dir}
295    xinstall -m 664 -W ${src_ada_dir}    uname.adb                      ${dest_src_dir}
296    xinstall -m 664 -W ${src_ada_dir}    uname.ads                      ${dest_src_dir}
297    xinstall -m 664 -W ${src_ada_dir}    urealp.adb                     ${dest_src_dir}
298    xinstall -m 664 -W ${src_ada_dir}    urealp.ads                     ${dest_src_dir}
299    xinstall -m 664 -W ${src_ada_dir}    widechar.adb                   ${dest_src_dir}
300    xinstall -m 664 -W ${src_ada_dir}    widechar.ads                   ${dest_src_dir}
301    xinstall -m 664 -W ${src_ada_dir}    g-comlin.ads                   ${dest_src_dir}
302    xinstall -m 664 -W ${src_ada_dir}    g-comlin.adb                   ${dest_src_dir}
303    xinstall -m 664 -W ${src_c_dir}      version.c                      ${dest_src_dir}
304    xinstall -m 664 -W ${src_c_dir}      version.h                      ${dest_src_dir}
305    xinstall -m 664 -W ${target_ada_dir} sdefault.adb                   ${dest_src_dir}
306}
307
308platform darwin 8 {
309        # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45248
310        configure.args-append --with-dwarf2
311}
312platform darwin 10 {
313        configure.args-append --enable-fully-dynamic-string
314}
315
316platform powerpc {
317    configure.universal_archs ppc ppc64
318}
319platform i386 {
320    configure.universal_archs i386 x86_64
321}
322configure.universal_cflags
323configure.universal_cxxflags
324configure.universal_ldflags
325configure.universal_args
326variant universal {
327    configure.args-delete --disable-multilib
328}
329
330#
331# Ada is the only language apart from C which is self hosted - meaning: you need
332# an ada compiler to compile ada. hence it is just a variant.
333#
334variant macada                                                                  \
335    description "Uses MacAda compiler (http://www.macada.org) to bootstrap!"    {
336    set bootprefix /usr/local/ada-4.3
337    if {![file executable ${bootprefix}/bin/gnat]} {
338        ui_msg "####################################################################"
339        ui_msg "#  Ada is self hosted (http://en.wikipedia.org/wiki/Self-hosting)  #"
340        ui_msg "#                                                                  #"
341        ui_msg "#  Bootstrap compiler not found. Please download and install from  #"
342        ui_msg "#  http://www.macada.org                                           #"
343        ui_msg "####################################################################"
344    }
345    configure.cc                ${bootprefix}/bin/gcc
346    configure.cpp               ${bootprefix}/bin/cpp
347    configure.cxx               ${bootprefix}/bin/g++
348    configure.objc              ${bootprefix}/bin/gcc
349    configure.env-append        PATH=${bootprefix}/bin:$env(PATH)
350    configure.env-append        GNATMAKE=${bootprefix}/bin/gnatmake
351    configure.env-append        GNATBIND=${bootprefix}/bin/gnatbind
352}
353
354variant gnatgpl                                                                         \
355    description "Uses GNAT/GPL compiler (http://libre.adacore.com) to bootstrap!"       {
356    set bootprefix /opt/gnat-2010-x86_64-apple-darwin9.6.0-bin
357    if {![file executable ${bootprefix}/bin/gnat]} {
358        ui_msg "####################################################################"
359        ui_msg "#  Ada is self hosted (http://en.wikipedia.org/wiki/Self-hosting)  #"
360        ui_msg "#                                                                  #"
361        ui_msg "#  Bootstrap compiler not found. Please download and install from  #"
362        ui_msg "#  http://libre.adacore.com                                        #"
363        ui_msg "####################################################################"
364    }
365    configure.cc                ${bootprefix}/bin/gcc
366    configure.cpp               ${bootprefix}/bin/cpp
367    configure.cxx               ${bootprefix}/bin/g++
368    configure.objc              ${bootprefix}/bin/gcc
369    configure.env-append        PATH=${bootprefix}/bin:$env(PATH)
370    configure.env-append        CPP=${bootprefix}/bin/cpp
371    configure.env-append        CXXCPP=${bootprefix}/bin/cpp
372    configure.env-append        GNATMAKE=${bootprefix}/bin/gnatmake
373    configure.env-append        GNATBIND=${bootprefix}/bin/gnatbind
374}
375
376variant gnuada                                                                                  \
377    description "Uses the GnuAda (http://gnuada.sourceforge.net/) compiler to bootstrap!"       {
378    set bootprefix /opt/local
379    if {![file executable ${bootprefix}/bin/gnat]} {
380        ui_msg "####################################################################"
381        ui_msg "#  Ada is self hosted (http://en.wikipedia.org/wiki/Self-hosting)  #"
382        ui_msg "#                                                                  #"
383        ui_msg "#  Bootstrap compiler not found. Please download and install from  #"
384        ui_msg "#  http://gnuada.sourceforge.net                                   #"
385        ui_msg "####################################################################"
386    }
387    configure.cc                ${bootprefix}/bin/gcc-gnat-4.4
388    configure.cpp               ${bootprefix}/bin/cpp-gnat-4.4
389    configure.cxx               ${bootprefix}/bin/g++-gnat-4.4
390    configure.objc              ${bootprefix}/bin/gcc-gnat-4.4
391    configure.env-append        PATH=${bootprefix}/bin:$env(PATH)
392    configure.env-append        GNATMAKE=${bootprefix}/bin/gnatmake
393    configure.env-append        GNATBIND=${bootprefix}/bin/gnatbind
394}
395
396variant ada                                                                                     \
397    description "Uses the MacPorts Ada (http://www.macports.org/) compiler to bootstrap!"       {
398    if {![file executable ${prefix}/bin/gnat]} {
399        ui_msg "####################################################################"
400        ui_msg "#  Ada is self hosted (http://en.wikipedia.org/wiki/Self-hosting)  #"
401        ui_msg "#                                                                  #"
402        ui_msg "#  For the first intital installation you need to choose one       #"
403        ui_msg "#  one of the other variants                                       #"
404        ui_msg "####################################################################"
405    } else {
406        ui_msg "######################################################################"
407        ui_msg "#  To use this variant you need activate the existing compiler with: #"
408        ui_msg "#                                                                    #"
409        ui_msg "#  sudo gcc_select gnat-gcc                                          #"
410        ui_msg "######################################################################"
411    }
412    configure.cc                ${prefix}/bin/gcc
413    configure.cpp               ${prefix}/bin/cpp
414    configure.cxx               ${prefix}/bin/g++
415    configure.objc              ${prefix}/bin/gcc
416    configure.env-append        PATH=${prefix}/bin:$env(PATH)
417    configure.env-append        GNATMAKE=${prefix}/bin/gnatmake
418    configure.env-append        GNATBIND=${prefix}/bin/gnatbind
419}
420
421pre-configure {
422    if {![variant_isset macada] &&  ![variant_isset gnatgpl] &&  ![variant_isset gnuada]  &&  ![variant_isset ada]} {
423        ui_msg "####################################################################"
424        ui_msg "#  Ada is self hosted (http://en.wikipedia.org/wiki/Self-hosting)  #"
425        ui_msg "#                                                                  #"
426        ui_msg "#  You need to install an existing Ada compiler and then choose    #"
427        ui_msg "#  an appropiate variant. For more info use:                       #"
428        ui_msg "#                                                                  #"
429        ui_msg "#  port variants gnat-gcc                                          #"
430        ui_msg "####################################################################"
431    }
432}
433
434post-activate {
435    ui_msg "######################################################"
436    ui_msg "#  Remember to activate the compiler with:           #"
437    ui_msg "#                                                    #"
438    ui_msg "#  sudo gcc_select gnat-gcc                          #"
439    ui_msg "######################################################"
440}
441
442livecheck.type  regex
443livecheck.url   http://gcc.gnu.org/gcc-4.5/
444livecheck.regex GCC (4\\.5\\.\[0-9\])