comp.lang.ada
 help / color / mirror / Atom feed
* gcc/gnat 3.3
@ 2003-10-17 14:45 Adrian Hoe
  2003-10-17 21:12 ` Jeff C,
  2003-10-20 19:04 ` gcc/gnat 3.3 Andreas Almroth
  0 siblings, 2 replies; 34+ messages in thread
From: Adrian Hoe @ 2003-10-17 14:45 UTC (permalink / raw)


Hi,

Has anyone built gcc/gnat 3.3 for Sparc Solaris 9? I tried to build one 
from source but failed. Generated too many errors and I gave up. :(

Thanks.
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-10-17 14:45 gcc/gnat 3.3 Adrian Hoe
@ 2003-10-17 21:12 ` Jeff C,
  2003-10-17 21:48   ` GCC 5.01p (was: Re: gcc/gnat 3.3) Ludovic Brenta
  2003-10-20 19:04 ` gcc/gnat 3.3 Andreas Almroth
  1 sibling, 1 reply; 34+ messages in thread
From: Jeff C, @ 2003-10-17 21:12 UTC (permalink / raw)




"Adrian Hoe" <AdrianHoe@AdaUtopia.com> wrote in message
news:3f8fff8b$1_1@news.tm.net.my...
> Hi,
>
> Has anyone built gcc/gnat 3.3 for Sparc Solaris 9? I tried to build one
> from source but failed. Generated too many errors and I gave up. :(
>
> Thanks.
> -- 
> Adrian Hoe
> m a i l b o x AT a d r i a n h o e . c o m
>


I've done it on Sparc Solaris 8. (32 bit though)

Did you follow the directions exactly? (the touch commands, not building in
the source directory, use GNU make, etc)
And what did you use for a bootstrap program?

Perhaps this weekend when I (hopefully) re-release my properly marked GNAT
5.01p for Redhat 9 x86 I
could also put together some sort of Solaris (8) package.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* GCC 5.01p (was: Re: gcc/gnat 3.3)
  2003-10-17 21:12 ` Jeff C,
@ 2003-10-17 21:48   ` Ludovic Brenta
  2003-10-17 22:01     ` Jeff C,
  0 siblings, 1 reply; 34+ messages in thread
From: Ludovic Brenta @ 2003-10-17 21:48 UTC (permalink / raw)


"Jeff C," <nolongersafeto@userealemailsniff.com> writes:
> Perhaps this weekend when I (hopefully) re-release my properly
> marked GNAT 5.01p for Redhat 9 x86 I could also put together some
> sort of Solaris (8) package.

I am suspicious about this "5.01p" version number.  In my
understanding, the "p" stands for something like "published" or
"public", i.e. it denotes one of ACT's stable releases.  Since I am
not aware of any 5.01p official release by ACT, I would suggest you
use a version number that denotes that this is from CVS, such as
e.g. 5.01.cvs.20031017.

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: GCC 5.01p (was: Re: gcc/gnat 3.3)
  2003-10-17 21:48   ` GCC 5.01p (was: Re: gcc/gnat 3.3) Ludovic Brenta
@ 2003-10-17 22:01     ` Jeff C,
  0 siblings, 0 replies; 34+ messages in thread
From: Jeff C, @ 2003-10-17 22:01 UTC (permalink / raw)



"Ludovic Brenta" <ludovic.brenta@insalien.org> wrote in message
news:m3ad7za62t.fsf_-_@insalien.org...
> "Jeff C," <nolongersafeto@userealemailsniff.com> writes:
> > Perhaps this weekend when I (hopefully) re-release my properly
> > marked GNAT 5.01p for Redhat 9 x86 I could also put together some
> > sort of Solaris (8) package.
>
> I am suspicious about this "5.01p" version number.  In my
> understanding, the "p" stands for something like "published" or
> "public", i.e. it denotes one of ACT's stable releases.  Since I am
> not aware of any 5.01p official release by ACT, I would suggest you
> use a version number that denotes that this is from CVS, such as
> e.g. 5.01.cvs.20031017.


Actually p stands for public. Since this is not just a random CVS grab at a
random time but a pull of the tagged CVS
files that were "released" for 5.01 it seems pretty reasonable..Note though
that the RPM and the directory that it
gets installed in is actually 5.01p-jmc to further differentiate it from
real real version that may or may not some day be
publically released by ACT.

Finally, I have discussed it with ACT and they were Ok with calling it 5.01p
which seems good enough for me.

But of course you are right to be suspicious about this!! Who knows who I am
or what evil lurks in the heart of
men..So, if you want a real 5.01 where someone stands behind what is
actually in it I suggest you pay several thousand dollars to ACT and get a
5.01a since even ACT does not promise anything in particular (other than it
being good
for student and reseatch use) about the "p" releases.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-10-17 14:45 gcc/gnat 3.3 Adrian Hoe
  2003-10-17 21:12 ` Jeff C,
@ 2003-10-20 19:04 ` Andreas Almroth
  2003-10-24  9:13   ` Adrian Hoe
  1 sibling, 1 reply; 34+ messages in thread
From: Andreas Almroth @ 2003-10-20 19:04 UTC (permalink / raw)


Adrian Hoe wrote:
> Hi,
> 
> Has anyone built gcc/gnat 3.3 for Sparc Solaris 9? I tried to build one 
> from source but failed. Generated too many errors and I gave up. :(
> 
> Thanks.

I have built a CSW build for SPARC and Intel Solaris 8, found at 
http://www.blastwave.org.
It does work with Solaris 9, but with the exception for that there is a 
problem with threads on SPARC (as noted by several sources).
I still have the build tree for native Solaris 9 on one of the servers, 
so I might be able to schedule some time to test with other threading 
libraries than the native one. But please let me know if interested...

The developers have changed the way of fiddling with threads (task 
control in the run-time) to cater for the change in the thread API in 
Solaris 9 in the later 5.01 source tree, but that change does not really 
work when incorporated into the GCC tree the way I have tested it.
The former method was very very specific to how GCC produces the 
binaries, and the new method is somewhat less "hack'n'slashy", but I 
don't seem to get it to work though.
The fault most likely on my side of course...
Using a "clean" 5.xx would probably be a way to verify...

BTW, just being curious, would you mind adding some meat on the 
"generated too many errors"? Just interested to know what went wrong...

Cheers,
Andreas





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-10-20 19:04 ` gcc/gnat 3.3 Andreas Almroth
@ 2003-10-24  9:13   ` Adrian Hoe
  2003-10-28  4:19     ` Adrian Hoe
  0 siblings, 1 reply; 34+ messages in thread
From: Adrian Hoe @ 2003-10-24  9:13 UTC (permalink / raw)


I am back with c.l.a. I was unable to access my news server few days 
ago. I think it should be a problem at my isp end.


Andreas Almroth wrote:
> Adrian Hoe wrote:
> 
>> Hi,
>>
>> Has anyone built gcc/gnat 3.3 for Sparc Solaris 9? I tried to build 
>> one from source but failed. Generated too many errors and I gave up. :(
>>
>> Thanks.
> 
> 
> I have built a CSW build for SPARC and Intel Solaris 8, found at 
> http://www.blastwave.org.
> It does work with Solaris 9, but with the exception for that there is a 
> problem with threads on SPARC (as noted by several sources).
> I still have the build tree for native Solaris 9 on one of the servers, 
> so I might be able to schedule some time to test with other threading 
> libraries than the native one. But please let me know if interested...

Thanks for the link. I will check it out.





> The developers have changed the way of fiddling with threads (task 
> control in the run-time) to cater for the change in the thread API in 
> Solaris 9 in the later 5.01 source tree, but that change does not really 
> work when incorporated into the GCC tree the way I have tested it.
> The former method was very very specific to how GCC produces the 
> binaries, and the new method is somewhat less "hack'n'slashy", but I 
> don't seem to get it to work though.
> The fault most likely on my side of course...
> Using a "clean" 5.xx would probably be a way to verify...
> 
> BTW, just being curious, would you mind adding some meat on the 
> "generated too many errors"? Just interested to know what went wrong...

I was trying to re-generate the build errors. But I could not get to 
make bootstrap with Ada although I did:

% ../configure --enable-languages=c,ada

gnat was not built and I look into Make-lang, Ada was not in there. I 
don't know why.

I am using gcc-3.3.2 instead of 3.3 the last time I tried to build.
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-10-24  9:13   ` Adrian Hoe
@ 2003-10-28  4:19     ` Adrian Hoe
  2003-10-28  4:26       ` Jeff C,
  2003-10-28 14:48       ` Steve
  0 siblings, 2 replies; 34+ messages in thread
From: Adrian Hoe @ 2003-10-28  4:19 UTC (permalink / raw)


Adrian Hoe wrote:

> Andreas Almroth wrote:
> 
>> The developers have changed the way of fiddling with threads (task 
>> control in the run-time) to cater for the change in the thread API in 
>> Solaris 9 in the later 5.01 source tree, but that change does not 
>> really work when incorporated into the GCC tree the way I have tested it.
>> The former method was very very specific to how GCC produces the 
>> binaries, and the new method is somewhat less "hack'n'slashy", but I 
>> don't seem to get it to work though.
>> The fault most likely on my side of course...
>> Using a "clean" 5.xx would probably be a way to verify...
>>
>> BTW, just being curious, would you mind adding some meat on the 
>> "generated too many errors"? Just interested to know what went wrong...
> 
> 
> I was trying to re-generate the build errors. But I could not get to 
> make bootstrap with Ada although I did:
> 
> % ../configure --enable-languages=c,ada
> 
> gnat was not built and I look into Make-lang, Ada was not in there. I 
> don't know why.
> 
> I am using gcc-3.3.2 instead of 3.3 the last time I tried to build.



I can't configure to build the gnat in gcc 3.3.2.

With the command below:

% ../configure --enable-languages=c,ada

and I get:
...
checking for compiler driver that understands Ada... (cached) no
...

After the configure, I checked Make-lang and Ada is not in there.

Can someone tell me what's going wrong here?

I have gcc 2.95.3 and gnat 3.15p installed on Sun Blade 150/Solaris 9.
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-10-28  4:19     ` Adrian Hoe
@ 2003-10-28  4:26       ` Jeff C,
  2003-10-28 15:36         ` Adrian Hoe
  2003-10-28 14:48       ` Steve
  1 sibling, 1 reply; 34+ messages in thread
From: Jeff C, @ 2003-10-28  4:26 UTC (permalink / raw)



"Adrian Hoe" <AdrianHoe@nowhere.com> wrote in message
news:3f9ded55$1_2@news.tm.net.my...
> Adrian Hoe wrote:
>
> > Andreas Almroth wrote:
> >
> >> The developers have changed the way of fiddling with threads (task
> >> control in the run-time) to cater for the change in the thread API in
> >> Solaris 9 in the later 5.01 source tree, but that change does not
> >> really work when incorporated into the GCC tree the way I have tested
it.
> >> The former method was very very specific to how GCC produces the
> >> binaries, and the new method is somewhat less "hack'n'slashy", but I
> >> don't seem to get it to work though.
> >> The fault most likely on my side of course...
> >> Using a "clean" 5.xx would probably be a way to verify...
> >>
> >> BTW, just being curious, would you mind adding some meat on the
> >> "generated too many errors"? Just interested to know what went wrong...
> >
> >
> > I was trying to re-generate the build errors. But I could not get to
> > make bootstrap with Ada although I did:
> >
> > % ../configure --enable-languages=c,ada
> >
> > gnat was not built and I look into Make-lang, Ada was not in there. I
> > don't know why.
> >
> > I am using gcc-3.3.2 instead of 3.3 the last time I tried to build.
>
>
>
> I can't configure to build the gnat in gcc 3.3.2.
>
> With the command below:
>
> % ../configure --enable-languages=c,ada
>
> and I get:
> ...
> checking for compiler driver that understands Ada... (cached) no
> ...
>
> After the configure, I checked Make-lang and Ada is not in there.
>
> Can someone tell me what's going wrong here?
>
> I have gcc 2.95.3 and gnat 3.15p installed on Sun Blade 150/Solaris 9.

There are probably a few was to work around this but the easiest thing is to
ignore you 2.95.3 install (move
out of your path) and bootstrap with 3.15.

Note that it is saying (cached) which means it will not run this test again
so blow away your build
area and start over (easiest way).

Also your configure looks a little strange

../configure

Where are you building from? You should not build from "inside" the source
directories.
I suppose of you made a new directory inside the top most level of the gcc
directory and built
from in there this configure path would make sense.

Finally, make sure you follow all of the other GNAT specific build
instructions from the manual.






^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-10-28  4:19     ` Adrian Hoe
  2003-10-28  4:26       ` Jeff C,
@ 2003-10-28 14:48       ` Steve
  2003-11-01 16:29         ` Andreas Almroth
  1 sibling, 1 reply; 34+ messages in thread
From: Steve @ 2003-10-28 14:48 UTC (permalink / raw)



"Adrian Hoe" <AdrianHoe@nowhere.com> wrote in message
news:3f9ded55$1_2@news.tm.net.my...
> Adrian Hoe wrote:
[snip]
> With the command below:
>
> % ../configure --enable-languages=c,ada
>
> and I get:
> ...
> checking for compiler driver that understands Ada... (cached) no
> ...
>
> After the configure, I checked Make-lang and Ada is not in there.
>
> Can someone tell me what's going wrong here?
>

Did you follow the instructions at http://gcc.gnu.org/install/build.html

For "Building the Ada compiler"

I haven't done this myself, but the question comes up frequently on the gcc
mailing list.  After reading this page and following the instructions most
are successful.

Steve
(The Duck)

> I have gcc 2.95.3 and gnat 3.15p installed on Sun Blade 150/Solaris 9.
> -- 
> Adrian Hoe
> m a i l b o x AT a d r i a n h o e . c o m
>





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-10-28  4:26       ` Jeff C,
@ 2003-10-28 15:36         ` Adrian Hoe
  2003-10-29  0:24           ` Jeff C,
  0 siblings, 1 reply; 34+ messages in thread
From: Adrian Hoe @ 2003-10-28 15:36 UTC (permalink / raw)


Jeff C, wrote:
> 
> 
> There are probably a few was to work around this but the easiest thing is to
> ignore you 2.95.3 install (move
> out of your path) and bootstrap with 3.15.

DO you mean gcc 3.15?

> Note that it is saying (cached) which means it will not run this test again
> so blow away your build
> area and start over (easiest way).

I will always get the same message when I deleted the whole build area 
and start over.




> Also your configure looks a little strange
> 
> ../configure
> 
> Where are you building from? You should not build from "inside" the source
> directories.
> I suppose of you made a new directory inside the top most level of the gcc
> directory and built
> from in there this configure path would make sense.


I built from gcc-3.3.2/objdir



> Finally, make sure you follow all of the other GNAT specific build
> instructions from the manual.


Yes. I followed exactly the manual.


-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-10-28 15:36         ` Adrian Hoe
@ 2003-10-29  0:24           ` Jeff C,
  2003-11-01  5:51             ` Adrian Hoe
  0 siblings, 1 reply; 34+ messages in thread
From: Jeff C, @ 2003-10-29  0:24 UTC (permalink / raw)



"Adrian Hoe" <AdrianHoe@nowhere.com> wrote in message
news:3f9e8c01$1_2@news.tm.net.my...
> Jeff C, wrote:
> >
> >
> > There are probably a few was to work around this but the easiest thing
is to
> > ignore you 2.95.3 install (move
> > out of your path) and bootstrap with 3.15.
>
> DO you mean gcc 3.15?

No, I mean GNAT 3.15p

You have to have a GNAT compiler already installed to start with. It is
easiest to just use (if you have it) GNAT for all parts of the bootstrap..
So, bootstrap such that when you type

which gcc        (assuming csh)
it comes back with a path to the gcc that you installed already from GNAT
3.15p





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-10-29  0:24           ` Jeff C,
@ 2003-11-01  5:51             ` Adrian Hoe
  2003-11-01 14:22               ` Jeff C,
  0 siblings, 1 reply; 34+ messages in thread
From: Adrian Hoe @ 2003-11-01  5:51 UTC (permalink / raw)


Jeff C, wrote:
> "Adrian Hoe" <AdrianHoe@nowhere.com> wrote in message
> news:3f9e8c01$1_2@news.tm.net.my...
> 
>>Jeff C, wrote:
>>
>>>
>>>There are probably a few was to work around this but the easiest thing
> 
> is to
> 
>>>ignore you 2.95.3 install (move
>>>out of your path) and bootstrap with 3.15.
>>
>>DO you mean gcc 3.15?
> 
> 
> No, I mean GNAT 3.15p
> 
> You have to have a GNAT compiler already installed to start with. It is
> easiest to just use (if you have it) GNAT for all parts of the bootstrap..
> So, bootstrap such that when you type
> 
> which gcc        (assuming csh)
> it comes back with a path to the gcc that you installed already from GNAT
> 3.15p
> 
> 

Do you suggest to bootstrap gnat only?

Anyhow, I'm still unable to bootstrap gnat. The configure does not 
create the "ada" directory in <obj> directory.

Here's the which results:

%which gcc
/opt/sfw/bin/gcc

%which gnatmake
/opt/sfw/bin/gnat/gnatmake

Bonk! (Banging my head on the keyboard :))
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-01  5:51             ` Adrian Hoe
@ 2003-11-01 14:22               ` Jeff C,
  2003-11-01 14:28                 ` Jeff C,
  2003-11-01 14:52                 ` Ludovic Brenta
  0 siblings, 2 replies; 34+ messages in thread
From: Jeff C, @ 2003-11-01 14:22 UTC (permalink / raw)



"Adrian Hoe" <AdrianHoe@nowhere.com> wrote in message
news:3fa348e4$1_1@news.tm.net.my...
> Jeff C, wrote:
>
> Do you suggest to bootstrap gnat only?
>
> Anyhow, I'm still unable to bootstrap gnat. The configure does not
> create the "ada" directory in <obj> directory.
>
> Here's the which results:
>
> %which gcc
> /opt/sfw/bin/gcc
>
> %which gnatmake
> /opt/sfw/bin/gnat/gnatmake
>


I am not suggested to bootrap GNAT only. I AM suggesting that the bootstrap
should only be done with your existing GNAT gcc and not a mix of a C only
gcc and a GNAT gcc.

Remove /opt/sfw/bin from your path so that when you type

which gcc

You get

/opt/sfw/bin/gnat/gcc

It looks to me like configure is finding a gcc that does not know how to
compile Ada.

There are ways of using one gcc for bootrapping the Ada part and one for the
C part but there
probably is not good reason for that in most cases.







^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-01 14:22               ` Jeff C,
@ 2003-11-01 14:28                 ` Jeff C,
  2003-11-01 14:52                 ` Ludovic Brenta
  1 sibling, 0 replies; 34+ messages in thread
From: Jeff C, @ 2003-11-01 14:28 UTC (permalink / raw)


If you still have problems getting this to go after fixing your path I could
probably build a binary Solaris install from
the source files I used to make the Rehat 9 GNAT 5.01p RPM.

Note that I don't think I know how to bundle it like ACT does with the
./doconfig ./doinstall (or  is it just
doinstall on the newer versions...hmm) commands but I could make something
that goes to someplace under /opt pretty easily.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-01 14:22               ` Jeff C,
  2003-11-01 14:28                 ` Jeff C,
@ 2003-11-01 14:52                 ` Ludovic Brenta
  2003-11-03  9:36                   ` Adrian Hoe
  1 sibling, 1 reply; 34+ messages in thread
From: Ludovic Brenta @ 2003-11-01 14:52 UTC (permalink / raw)



Adrian, you do not need to change your path.  You can pass the CC
environment variable to ./configure so it'll pick up the correct
compiler driver.  Like so in bash or ksh:

$ CC=/opt/sfw/bin/gnat/gnatgcc ./configure --enable-languages=c,ada

That's how I bootstrap gnat 3.15p on Debian GNU/Linux.

In csh I suppose you'd do:

% setenv CC /opt/sfw/bin/gnat/gcc
% ./configure --enable-languages=c,ada

HTH

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-10-28 14:48       ` Steve
@ 2003-11-01 16:29         ` Andreas Almroth
  2003-11-03  3:49           ` Adrian Hoe
  0 siblings, 1 reply; 34+ messages in thread
From: Andreas Almroth @ 2003-11-01 16:29 UTC (permalink / raw)


Steve wrote:
> "Adrian Hoe" <AdrianHoe@nowhere.com> wrote in message
> news:3f9ded55$1_2@news.tm.net.my...
> 
>>Adrian Hoe wrote:
> 
> [snip]
> 

<snip>

> 
> Did you follow the instructions at http://gcc.gnu.org/install/build.html
> 
> For "Building the Ada compiler"
> 
> I haven't done this myself, but the question comes up frequently on the gcc
> mailing list.  After reading this page and following the instructions most
> are successful.
> 

Or, use my newly built package of 3.3.2 for Solaris 8 (SPARC and Intel). 
Not yet released by CSW project, but available (even less supported...) 
in my home dir at CSW.

http://www.blastwave.org/~aalmroth/
gcc3-3.3.2,REV=2003.10.29-SunOS5.8-i386-CSW.pkg.gz
gcc3-3.3.2,REV=2003.10.29-SunOS5.8-sparc-CSW.pkg.gz
gcc3rt-3.3.2,REV=2003.10.29-SunOS5.8-i386-CSW.pkg.gz
gcc3rt-3.3.2,REV=2003.10.29-SunOS5.8-sparc-CSW.pkg.gz

But recommended is to wait until we release it in the unstable 
distribution through the mirror sites, although what is there is what I 
have put forward as final candidate.

/Andreas

> Steve
> (The Duck)
> 
> 
>>I have gcc 2.95.3 and gnat 3.15p installed on Sun Blade 150/Solaris 9.
>>-- 
>>Adrian Hoe
>>m a i l b o x AT a d r i a n h o e . c o m
>>
> 
> 
> 




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-01 16:29         ` Andreas Almroth
@ 2003-11-03  3:49           ` Adrian Hoe
  0 siblings, 0 replies; 34+ messages in thread
From: Adrian Hoe @ 2003-11-03  3:49 UTC (permalink / raw)


Andreas Almroth wrote:

> Steve wrote:
> 
>> "Adrian Hoe" <AdrianHoe@nowhere.com> wrote in message
>> news:3f9ded55$1_2@news.tm.net.my...
>>
>>> Adrian Hoe wrote:
>>
>>
>> [snip]
>>
> 
> <snip>
> 
>>
>> Did you follow the instructions at http://gcc.gnu.org/install/build.html
>>
>> For "Building the Ada compiler"
>>
>> I haven't done this myself, but the question comes up frequently on 
>> the gcc
>> mailing list.  After reading this page and following the instructions 
>> most
>> are successful.
>>
> 
> Or, use my newly built package of 3.3.2 for Solaris 8 (SPARC and Intel). 
> Not yet released by CSW project, but available (even less supported...) 
> in my home dir at CSW.
> 
> http://www.blastwave.org/~aalmroth/
> gcc3-3.3.2,REV=2003.10.29-SunOS5.8-i386-CSW.pkg.gz
> gcc3-3.3.2,REV=2003.10.29-SunOS5.8-sparc-CSW.pkg.gz
> gcc3rt-3.3.2,REV=2003.10.29-SunOS5.8-i386-CSW.pkg.gz
> gcc3rt-3.3.2,REV=2003.10.29-SunOS5.8-sparc-CSW.pkg.gz
> 
> But recommended is to wait until we release it in the unstable 
> distribution through the mirror sites, although what is there is what I 
> have put forward as final candidate.
> 
> /Andreas



I'm interested but I want to learn to build one for myself. I have been 
trying to bootstrap one some time ago. Each time I tried, it failed and 
some high priority tasks came along and I was forced to defer. :)
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-01 14:52                 ` Ludovic Brenta
@ 2003-11-03  9:36                   ` Adrian Hoe
  2003-11-05 18:35                     ` Andreas Almroth
  0 siblings, 1 reply; 34+ messages in thread
From: Adrian Hoe @ 2003-11-03  9:36 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 991 bytes --]



Ludovic Brenta wrote:

> Adrian, you do not need to change your path.  You can pass the CC
> environment variable to ./configure so it'll pick up the correct
> compiler driver.  Like so in bash or ksh:
> 
> $ CC=/opt/sfw/bin/gnat/gnatgcc ./configure --enable-languages=c,ada
> 
> That's how I bootstrap gnat 3.15p on Debian GNU/Linux.
> 
> In csh I suppose you'd do:
> 
> % setenv CC /opt/sfw/bin/gnat/gcc
> % ./configure --enable-languages=c,ada
> 
> HTH


Thanks for the tips. Now the configure recognized ada and created 
ada/Makefile in obj/gcc but I encountered an error during bootstrap:

Bootstrapping the compiler
make: Fatal error in reader: Makefile, line 987: Unexpected end of line seen
Current working directory /home/byhoe/download/gcc-3.3.2/gcc-3.3.2/obj/gcc
*** Error code 1
make: Fatal error: Command failed for target `bootstrap'

I touched those files as in the Build document of gcc.

I attach my obj/Makefile:
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m

[-- Attachment #2: Makefile --]
[-- Type: text/plain, Size: 56120 bytes --]

# This file was generated automatically by configure.  Do not edit.
VPATH = ..
links = 
host_alias = sparc-sun-solaris2.9
host_cpu = sparc
host_vendor = sun
host_os = solaris2.9
host_canonical = sparc-sun-solaris2.9
target_alias = sparc-sun-solaris2.9
target_cpu = sparc
target_vendor = sun
target_os = solaris2.9
target_canonical = sparc-sun-solaris2.9
build_alias = sparc-sun-solaris2.9
build_cpu = sparc
build_vendor = sun
build_os = solaris2.9
build_canonical = sparc-sun-solaris2.9
host_makefile_frag = mh-frag
enable_shared = no
enable_threads = no
enable_version_specific_runtime_libs = no
gcc_version_trigger = /home/byhoe/download/gcc-3.3.2/gcc-3.3.2/gcc/version.c
gcc_version = 3.3.2

# Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'.
#
# Makefile for directory with subdirs to build.
#   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
#   1999, 2000, 2001, 2002 Free Software Foundation
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#

# Tell GNU make 3.79 not to run the top level in parallel.  This 
# prevents contention for $builddir/$target/config.cache, as well
# as minimizing scatter in file system caches.
NOTPARALLEL = .NOTPARALLEL
$(NOTPARALLEL):

srcdir = ..

prefix = /usr/local
exec_prefix = $(prefix)

bindir = ${exec_prefix}/bin
sbindir = ${exec_prefix}/sbin
libexecdir = ${exec_prefix}/libexec
datadir = ${prefix}/share
sysconfdir = ${prefix}/etc
sharedstatedir = ${prefix}/com
localstatedir = ${prefix}/var
libdir = ${exec_prefix}/lib
includedir = ${prefix}/include
oldincludedir = /usr/include
infodir = ${prefix}/info
mandir = ${prefix}/man
gxx_include_dir=${prefix}/include/c++/3.3.2

tooldir = $(exec_prefix)/sparc-sun-solaris2.9
build_tooldir = $(exec_prefix)/sparc-sun-solaris2.9

program_transform_name = 

man1dir = $(mandir)/man1
man2dir = $(mandir)/man2
man3dir = $(mandir)/man3
man4dir = $(mandir)/man4
man5dir = $(mandir)/man5
man6dir = $(mandir)/man6
man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
man9dir = $(mandir)/man9
# Directory in which the compiler finds executables, libraries, etc.
libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version)
GDB_NLM_DEPS = 

SHELL = /bin/sh

# pwd command to use.  Allow user to override default by setting PWDCMD in
# the environment to account for automounters.  The make variable must not
# be called PWDCMD, otherwise the value set here is passed to make
# subprocesses and overrides the setting from the user's environment.
# Don't use PWD since it is a common shell environment variable and we
# don't want to corrupt it.
PWD_COMMAND = $${PWDCMD-pwd}

# INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a
# cygwin host.
INSTALL_PROGRAM_ARGS =

INSTALL = $(SHELL) $$s/install-sh -c
INSTALL_PROGRAM = $(INSTALL) $(INSTALL_PROGRAM_ARGS)
INSTALL_SCRIPT = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644

INSTALL_DOSREL = install-dosrel-fake

AS = as
AR = ar
AR_FLAGS = rc
CC = /opt/sfw/bin/gnat/gcc

# Special variables passed down in EXTRA_GCC_FLAGS.  They are defined
# here so that they can be overridden by Makefile fragments.
HOST_CC = $(CC_FOR_BUILD)
BUILD_PREFIX = 
BUILD_PREFIX_1 = loser-

# These flag values are normally overridden by the configure script.
CFLAGS = -g -O2
CXXFLAGS = -g -O2

LDFLAGS = 
LIBCFLAGS = $(CFLAGS)
CFLAGS_FOR_BUILD = $(CFLAGS)
# During gcc bootstrap, if we use some random cc for stage1 then
# CFLAGS will be just -g.  We want to ensure that TARGET libraries
# (which we know are built with gcc) are built with optimizations so
# prepend -O2 when setting CFLAGS_FOR_TARGET.
CFLAGS_FOR_TARGET = -O2 $(CFLAGS)
LDFLAGS_FOR_TARGET = 
LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
PICFLAG = 
PICFLAG_FOR_TARGET = 

CXX = c++

# Use -O2 to stress test the compiler.
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates

DLLTOOL = dlltool
WINDRES = windres

NM = nm

LD = ld

# These values are substituted by configure.
DEFAULT_YACC = bison -y
DEFAULT_LEX = flex
DEFAULT_M4 = gm4

BISON = `if [ -f $$r/bison/bison ] ; then \
	    echo $$r/bison/bison -L $$s/bison/ ; \
	 else \
	    echo bison ; \
	 fi`

YACC = `if [ -f $$r/bison/bison ] ; then \
	    echo $$r/bison/bison -y -L $$s/bison/ ; \
	elif [ -f $$r/byacc/byacc ] ; then \
	    echo $$r/byacc/byacc ; \
	else \
	    echo ${DEFAULT_YACC} ; \
	fi`

LEX = `if [ -f $$r/flex/flex ] ; \
	then echo $$r/flex/flex ; \
	else echo ${DEFAULT_LEX} ; fi`

M4 = `if [ -f $$r/m4/m4 ] ; \
	then echo $$r/m4/m4 ; \
	else echo ${DEFAULT_M4} ; fi`

# For an installed makeinfo, we require it to be from texinfo 4.2 or
# higher, else we use the "missing" dummy.
MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \
	then echo $$r/texinfo/makeinfo/makeinfo ; \
	else if (makeinfo --version \
	  | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])') >/dev/null 2>&1; \
        then echo makeinfo; else echo $$s/missing makeinfo; fi; fi`

# This just becomes part of the MAKEINFO definition passed down to
# sub-makes.  It lets flags be given on the command line while still
# using the makeinfo from the object tree.
# (Default to avoid splitting info files.)
MAKEINFOFLAGS = --no-split

EXPECT = `if [ -f $$r/expect/expect ] ; \
	then echo $$r/expect/expect ; \
	else echo expect ; fi`

RUNTEST = `if [ -f $$s/dejagnu/runtest ] ; \
	then echo $$s/dejagnu/runtest ; \
	else echo runtest ; fi`


# compilers to use to create programs which must be run in the build
# environment.
CC_FOR_BUILD = $(CC)
CXX_FOR_BUILD = $(CXX)

SUBDIRS =  libiberty gcc

# This is set by the configure script to the list of directories which
# should be built using the target tools.
TARGET_CONFIGDIRS = 

# Target libraries are put under this directory:
# Changed by configure to $(target_alias) if cross.
TARGET_SUBDIR = sparc-sun-solaris2.9

BUILD_CONFIGDIRS = libiberty
BUILD_SUBDIR = sparc-sun-solaris2.9

# This is set by the configure script to the arguments to use when configuring
# directories built for the target.
TARGET_CONFIGARGS = --cache-file=../config.cache --host=sparc-sun-solaris2.9 --build=sparc-sun-solaris2.9 --enable-multilib --with-gcc-version-trigger=/home/byhoe/download/gcc-3.3.2/gcc-3.3.2/gcc/version.c   --enable-languages=c,ada

# This is set by the configure script to the arguments to use when configuring
# directories built for the build system.
BUILD_CONFIGARGS = --cache-file=../config.cache --build=sparc-sun-solaris2.9 --host=sparc-sun-solaris2.9 --with-gcc-version-trigger=/home/byhoe/download/gcc-3.3.2/gcc-3.3.2/gcc/version.c   --enable-languages=c,ada

# This is set by configure to REALLY_SET_LIB_PATH if --enable-shared
# was used.
SET_LIB_PATH = 

# This is the name of the environment variable used for the path to
# the libraries.  This may be changed by configure.in.
RPATH_ENVVAR = LD_LIBRARY_PATH

# This is the list of directories that may be needed in RPATH_ENVVAR
# so that programs built for the host machine work.
HOST_LIB_PATH = $$r/bfd:$$r/opcodes

# This is the list of directories that may be needed in RPATH_ENVVAR
# so that prorgams built for the target machine work.
TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs:

# configure.in sets SET_LIB_PATH to this if --enable-shared was used.
# Some platforms don't like blank entries, so we remove duplicate,
# leading and trailing colons.
REALLY_SET_LIB_PATH = \
  $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);

ALL = all.normal
INSTALL_TARGET = installdirs \
	install-gcc \
	$(INSTALL_MODULES) \
	$(INSTALL_TARGET_MODULES) \
	$(INSTALL_X11_MODULES) \
	$(INSTALL_DOSREL)

INSTALL_TARGET_CROSS = installdirs \
	install-gcc-cross \
	$(INSTALL_MODULES) \
	$(INSTALL_TARGET_MODULES) \
	$(INSTALL_X11_MODULES) \
	$(INSTALL_DOSREL)

# Should be substed by configure.in
FLAGS_FOR_TARGET =  -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include
CC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET)
CXX_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/`case $$dir in libstdc++-v3 | libjava) echo xgcc -shared-libgcc ;; *) echo g++ ;; esac` -B$$r/gcc/ -nostdinc++ `case $$dir in libstdc++-v3 | libjava) ;; *) test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes;; esac` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs $(FLAGS_FOR_TARGET)
CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = $(STAGE_CC_WRAPPER) $$$$r/gcc/`case $$$$dir in libstdc++-v3 | libjava) echo xgcc -shared-libgcc ;; *) echo g++ ;; esac` -B$$$$r/gcc/ -nostdinc++ `case $$$$dir in libstdc++-v3 | libjava) ;; *) test ! -f $$$$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$$$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes;; esac` -L$$$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs $(FLAGS_FOR_TARGET)
GCJ_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/gcj -B$$r/gcc/ $(FLAGS_FOR_TARGET)

# If GCC_FOR_TARGET is not overriden on the command line, then this
# variable is passed down to the gcc Makefile, where it is used to
# build libgcc2.a.  We define it here so that it can itself be
# overridden on the command line.
GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET)

AS_FOR_TARGET = ` \
  if [ -f $$r/gas/as-new ] ; then \
    echo $$r/gas/as-new ; \
  elif [ -f $$r/gcc/xgcc ]; then \
    $(CC_FOR_TARGET) -print-prog-name=as ; \
  else \
    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
      echo $(AS); \
    else \
       t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \
    fi; \
  fi`

LD_FOR_TARGET = ` \
  if [ -f $$r/ld/ld-new ] ; then \
    echo $$r/ld/ld-new ; \
  elif [ -f $$r/gcc/xgcc ]; then \
    $(CC_FOR_TARGET) -print-prog-name=ld ; \
  else \
    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
      echo $(LD); \
    else \
       t='$(program_transform_name)'; echo ld | sed -e 's/x/x/' $$t ; \
    fi; \
  fi`

DLLTOOL_FOR_TARGET = ` \
  if [ -f $$r/binutils/dlltool ] ; then \
    echo $$r/binutils/dlltool ; \
  else \
    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
      echo $(DLLTOOL); \
    else \
       t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \
    fi; \
  fi`

WINDRES_FOR_TARGET = ` \
  if [ -f $$r/binutils/windres ] ; then \
    echo $$r/binutils/windres ; \
  else \
    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
      echo $(WINDRES); \
    else \
       t='$(program_transform_name)'; echo windres | sed -e 's/x/x/' $$t ; \
    fi; \
  fi`

AR_FOR_TARGET = ` \
  if [ -f $$r/binutils/ar ] ; then \
    echo $$r/binutils/ar ; \
  else \
    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
      echo $(AR); \
    else \
       t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \
    fi; \
  fi`

RANLIB_FOR_TARGET = ` \
  if [ -f $$r/binutils/ranlib ] ; then \
    echo $$r/binutils/ranlib ; \
  else \
    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
      if [ x'$(RANLIB)' != x ]; then \
         echo $(RANLIB); \
      else \
         echo ranlib; \
      fi; \
    else \
       t='$(program_transform_name)'; echo ranlib | sed -e 's/x/x/' $$t ; \
    fi; \
  fi`

NM_FOR_TARGET = ` \
  if [ -f $$r/binutils/nm-new ] ; then \
    echo $$r/binutils/nm-new ; \
  elif [ -f $$r/gcc/xgcc ]; then \
    $(CC_FOR_TARGET) -print-prog-name=nm ; \
  else \
    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
      echo $(NM); \
    else \
       t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \
    fi; \
  fi`

# The first rule in the file had better be this one.  Don't put any above it.
# This lives here to allow makefile fragments to contain dependencies.
all: all.normal
.PHONY: all

# These can be overridden by config/mt-*.
# The _TARGET_ is because they're specified in mt-foo.
# The _HOST_ is because they're programs that run on the host.
EXTRA_TARGET_HOST_ALL_MODULES =
EXTRA_TARGET_HOST_INSTALL_MODULES =
EXTRA_TARGET_HOST_CHECK_MODULES =

#### host and target specific makefile fragments come in here.
# Makefile changes for Suns running Solaris 2

RANLIB = true

X11_EXTRA_LIBS = -lnsl -lsocket
###

# Flags to pass down to all sub-makes.
# Please keep these in alphabetical order.
BASE_FLAGS_TO_PASS = \
	"AR_FLAGS=$(AR_FLAGS)" \
	"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
	"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
	"BISON=$(BISON)" \
	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
	"CFLAGS=$(CFLAGS)" \
	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
	"GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \
	"CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
	"CXXFLAGS=$(CXXFLAGS)" \
	"CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
	"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
	"DESTDIR=$(DESTDIR)" \
	"DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
	"INSTALL=$(INSTALL)" \
	"INSTALL_DATA=$(INSTALL_DATA)" \
	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
	"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
	"LDFLAGS=$(LDFLAGS)" \
	"LEX=$(LEX)" \
	"LD_FOR_TARGET=$(LD_FOR_TARGET)" \
	"LIBCFLAGS=$(LIBCFLAGS)" \
	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
	"LIBCXXFLAGS=$(LIBCXXFLAGS)" \
	"LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
	"M4=$(M4)" \
	"MAKE=$(MAKE)" \
	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
	"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
	"RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
	"RPATH_ENVVAR=$(RPATH_ENVVAR)" \
	"SHELL=$(SHELL)" \
	"EXPECT=$(EXPECT)" \
	"RUNTEST=$(RUNTEST)" \
	"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
	"TARGET_SUBDIR=$(TARGET_SUBDIR)" \
	"WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
	"YACC=$(YACC)" \
	"bindir=$(bindir)" \
	"datadir=$(datadir)" \
	"exec_prefix=$(exec_prefix)" \
	"includedir=$(includedir)" \
	"infodir=$(infodir)" \
	"libdir=$(libdir)" \
	"libexecdir=$(libexecdir)" \
	"lispdir=$(lispdir)" \
	"libstdcxx_incdir=$(libstdcxx_incdir)" \
	"libsubdir=$(libsubdir)" \
	"localstatedir=$(localstatedir)" \
	"mandir=$(mandir)" \
	"oldincludedir=$(oldincludedir)" \
	"prefix=$(prefix)" \
	"sbindir=$(sbindir)" \
	"sharedstatedir=$(sharedstatedir)" \
	"sysconfdir=$(sysconfdir)" \
	"tooldir=$(tooldir)" \
	"build_tooldir=$(build_tooldir)" \
	"gxx_include_dir=$(gxx_include_dir)" \
	"gcc_version=$(gcc_version)" \
	"gcc_version_trigger=$(gcc_version_trigger)" \
	"target_alias=$(target_alias)" 

# For any flags above that may contain shell code that varies from one
# target library to another.  When doing recursive invocations of the
# top-level Makefile, we don't want the outer make to evaluate them,
# so we pass these variables down unchanged.  They must not contain
# single nor double quotes.
RECURSE_FLAGS = \
	CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)'

# Flags to pass down to most sub-makes, in which we're building with
# the host environment.
# If any variables are added here, they must be added to do-*, below.
EXTRA_HOST_FLAGS = \
	'AR=$(AR)' \
	'AS=$(AS)' \
	'CC=$(CC)' \
	'CXX=$(CXX)' \
	'DLLTOOL=$(DLLTOOL)' \
	'LD=$(LD)' \
	'NM=$(NM)' \
	"`echo 'RANLIB=$(RANLIB)' | sed -e s/.*=$$/XFOO=/`" \
	'WINDRES=$(WINDRES)'

FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)

# Flags that are concerned with the location of the X11 include files
# and library files
#
# NOTE: until the top-level is getting the values via autoconf, it only
# causes problems to have this top-level Makefile overriding the autoconf-set
# values in child directories.  Only variables that don't conflict with
# autoconf'ed ones should be passed by X11_FLAGS_TO_PASS for now.
#
X11_FLAGS_TO_PASS = \
	'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \
	'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)'

# Flags to pass down to makes which are built with the target environment.
# The double $ decreases the length of the command line; the variables
# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them.
# If any variables are added here, they must be added to do-*, below.
EXTRA_TARGET_FLAGS = \
	'AR=$$(AR_FOR_TARGET)' \
	'AS=$$(AS_FOR_TARGET)' \
	'CC=$$(CC_FOR_TARGET)' \
	'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
	'CXX=$$(CXX_FOR_TARGET)' \
	'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
	'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
	'LD=$$(LD_FOR_TARGET)' \
	'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
	'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
	'NM=$$(NM_FOR_TARGET)' \
	'RANLIB=$$(RANLIB_FOR_TARGET)' \
	'WINDRES=$$(WINDRES_FOR_TARGET)'

TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)

# Flags to pass down to gcc.  gcc builds a library, libgcc.a, so it
# unfortunately needs the native compiler and the target ar and
# ranlib.
# If any variables are added here, they must be added to do-*, below.
# The HOST_* variables are a special case, which are used for the gcc
# cross-building scheme.
EXTRA_GCC_FLAGS = \
	'AR=$(AR)' \
	'AS=$(AS)' \
	'CC=$(CC)' \
	'CXX=$(CXX)' \
	'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
	'HOST_CC=$(CC_FOR_BUILD)' \
	'BUILD_PREFIX=$(BUILD_PREFIX)' \
	'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \
	'NM=$(NM)' \
	"`echo 'RANLIB=$(RANLIB)' | sed -e s/.*=$$/XFOO=/`" \
	'WINDRES=$$(WINDRES_FOR_TARGET)' \
	"GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \
	"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
	"`echo 'LANGUAGES=$(LANGUAGES)' | sed -e s/.*=$$/XFOO=/`" \
	"`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s/.*=$$/XFOO=/`" \
	"`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s/.*=$$/XFOO=/`" \
	"`echo 'LIBGCC2_CFLAGS=$(LIBGCC2_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \
	"`echo 'LIBGCC2_DEBUG_CFLAGS=$(LIBGCC2_DEBUG_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \
	"`echo 'LIBGCC2_INCLUDES=$(LIBGCC2_INCLUDES)' | sed -e s/.*=$$/XFOO=/`" \
	"`echo 'ENQUIRE=$(ENQUIRE)' | sed -e s/.*=$$/XFOO=/`" \
	"`echo 'STAGE1_CFLAGS=$(STAGE1_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \
	"`echo 'BOOT_CFLAGS=$(BOOT_CFLAGS)' | sed -e s/.*=$$/XFOO=/`"

GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)

# This is a list of the targets for all of the modules which are compiled
# using the build machine's native compiler.  Configure edits the second
# macro for build!=host builds.
ALL_BUILD_MODULES_LIST = \
	all-build-libiberty
ALL_BUILD_MODULES = 

# This is a list of the configure targets for all of the modules which
# are compiled using the native tools.
CONFIGURE_BUILD_MODULES = \
	configure-build-libiberty

# This is a list of the targets for all of the modules which are compiled
# using $(FLAGS_TO_PASS).
ALL_MODULES = \
	all-ash \
	all-autoconf \
	all-automake \
	all-bash \
	all-bfd \
	all-opcodes \
	all-binutils \
	all-bison \
	all-byacc \
	all-bzip2 \
	all-db \
	all-dejagnu \
	all-diff \
	all-dosutils \
	all-etc \
	all-fastjar \
	all-fileutils \
	all-findutils \
	all-find \
	all-flex \
	all-gas \
	all-gawk \
	all-gettext \
	all-gnuserv \
	all-gprof \
	all-grep \
	all-gzip \
	all-hello \
	all-indent \
	all-intl \
	all-tcl \
	all-itcl \
	all-ld \
	all-libgui \
	all-libiberty \
	all-libtool \
	all-m4 \
	all-make \
	all-mmalloc \
	all-patch \
	all-perl \
	all-prms \
	all-rcs \
	all-readline \
	all-release \
	all-recode \
	all-sed \
	all-send-pr \
	all-shellutils \
	all-sid \
	all-sim \
	all-snavigator \
	all-tar \
	all-texinfo \
	all-textutils \
	all-time \
	all-uudecode \
	all-wdiff \
	all-zip \
	all-zlib \
	$(EXTRA_TARGET_HOST_ALL_MODULES)

# This is a list of the check targets for all of the modules which are
# compiled using $(FLAGS_TO_PASS).
#
# The list is in two parts.  The first lists those tools which
# are tested as part of the host's native tool-chain, and not
# tested in a cross configuration.
NATIVE_CHECK_MODULES = \
	check-bison \
	check-byacc \
	check-fastjar \
	check-flex \
	check-zip

CROSS_CHECK_MODULES = \
	check-ash \
	check-autoconf \
	check-automake \
	check-bash \
	check-bfd \
	check-opcodes \
	check-binutils \
	check-bzip2 \
	check-db \
	check-dejagnu \
	check-diff \
	check-etc \
	check-fileutils \
	check-findutils \
	check-find \
	check-gas \
	check-gawk \
	check-gettext \
	check-gnuserv \
	check-gprof \
	check-grep \
	check-gzip \
	check-hello \
	check-indent \
	check-intl \
	check-tcl \
	check-itcl \
	check-ld \
	check-libgui \
	check-libiberty \
	check-libtool \
	check-m4 \
	check-make \
	check-patch \
	check-perl \
	check-prms \
	check-rcs \
	check-readline \
	check-recode \
	check-sed \
	check-send-pr \
	check-shellutils \
	check-sid \
	check-sim \
	check-snavigator \
	check-tar \
	check-texinfo \
	check-textutils \
	check-time \
	check-uudecode \
	check-wdiff \
	$(EXTRA_TARGET_HOST_CHECK_MODULES)

CHECK_MODULES=$(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)

# This is a list of the install targets for all of the modules which are
# compiled using $(FLAGS_TO_PASS).
INSTALL_MODULES = \
	install-ash \
	install-autoconf \
	install-automake \
	install-bash \
	install-bfd \
	install-opcodes \
	install-binutils \
	install-bison \
	install-byacc \
	install-bzip2 \
	install-db \
	install-dejagnu \
	install-diff \
	install-dosutils \
	install-etc \
	install-fastjar \
	install-fileutils \
	install-findutils \
	install-find \
	install-flex \
	install-gas \
	install-gawk \
	install-gettext \
	install-gnuserv \
	install-gprof \
	install-grep \
	install-gzip \
	install-hello \
	install-indent \
	install-intl \
	install-tcl \
	install-itcl \
	install-ld \
	install-libgui \
	install-libiberty \
	install-libtool \
	install-m4 \
	install-make \
	install-mmalloc \
	install-patch \
	install-perl \
	install-prms \
	install-rcs \
	install-readline \
	install-recode \
	install-sed \
	install-send-pr \
	install-shellutils \
	install-sid \
	install-sim \
	install-snavigator \
	install-tar \
	install-textutils \
	install-time \
	install-uudecode \
	install-wdiff \
	install-zip \
	$(EXTRA_TARGET_HOST_INSTALL_MODULES)

# This is a list of the targets for all of the modules which are compiled
# using $(X11_FLAGS_TO_PASS).
ALL_X11_MODULES = \
	all-gdb \
	all-expect \
	all-guile \
	all-tclX \
	all-tk \
	all-tix

# This is a list of the check targets for all of the modules which are
# compiled using $(X11_FLAGS_TO_PASS).
CHECK_X11_MODULES = \
	check-gdb \
	check-guile \
	check-expect \
	check-tclX \
	check-tk \
	check-tix

# This is a list of the install targets for all the modules which are
# compiled using $(X11_FLAGS_TO_PASS).
INSTALL_X11_MODULES = \
	install-gdb \
	install-guile \
	install-expect \
	install-tclX \
	install-tk \
	install-tix

# This is a list of the targets for all of the modules which are compiled
# using $(TARGET_FLAGS_TO_PASS).
ALL_TARGET_MODULES = \
	all-target-libstdc++-v3 \
	all-target-newlib \
	all-target-libf2c \
	all-target-libobjc \
	all-target-libtermcap \
	all-target-winsup \
	all-target-libgloss \
	all-target-libiberty \
	all-target-gperf \
	all-target-examples \
	all-target-libffi \
	all-target-libjava \
	all-target-zlib \
	all-target-boehm-gc \
	all-target-qthreads \
	all-target-rda

# This is a list of the configure targets for all of the modules which
# are compiled using the target tools.
CONFIGURE_TARGET_MODULES = \
	configure-target-libstdc++-v3 \
	configure-target-newlib \
	configure-target-libf2c \
	configure-target-libobjc \
	configure-target-libtermcap \
	configure-target-winsup \
	configure-target-libgloss \
	configure-target-libiberty \
	configure-target-gperf \
	configure-target-examples \
	configure-target-libffi \
	configure-target-libjava \
	configure-target-zlib \
	configure-target-boehm-gc \
	configure-target-qthreads \
	configure-target-rda

# This is a list of the check targets for all of the modules which are
# compiled using $(TARGET_FLAGS_TO_PASS).
CHECK_TARGET_MODULES = \
	check-target-libstdc++-v3 \
	check-target-newlib \
	check-target-libf2c \
	check-target-libobjc \
	check-target-winsup \
	check-target-libiberty \
	check-target-gperf \
	check-target-libffi \
	check-target-libjava \
	check-target-zlib \
	check-target-boehm-gc \
	check-target-qthreads \
	check-target-rda

# This is a list of the install targets for all of the modules which are
# compiled using $(TARGET_FLAGS_TO_PASS).
INSTALL_TARGET_MODULES = \
	install-target-libstdc++-v3 \
	install-target-newlib \
	install-target-libf2c \
	install-target-libobjc \
	install-target-libtermcap \
	install-target-winsup \
	install-target-libgloss \
	install-target-libiberty \
	install-target-gperf \
	install-target-libffi \
	install-target-libjava \
	install-target-zlib \
	install-target-boehm-gc \
	install-target-qthreads \
	install-target-rda

# This is a list of the targets for which we can do a clean-{target}.
CLEAN_MODULES = \
	clean-ash \
	clean-autoconf \
	clean-automake \
	clean-bash \
	clean-bfd \
	clean-opcodes \
	clean-binutils \
	clean-bison \
	clean-byacc \
	clean-bzip2 \
	clean-db \
	clean-dejagnu \
	clean-diff \
	clean-dosutils \
	clean-etc \
	clean-fastjar \
	clean-fileutils \
	clean-findutils \
	clean-find \
	clean-flex \
	clean-gas \
	clean-gawk \
	clean-gettext \
	clean-gnuserv \
	clean-gprof \
	clean-grep \
	clean-gzip \
	clean-hello \
	clean-indent \
	clean-intl \
	clean-tcl \
	clean-itcl \
	clean-ld \
	clean-libgui \
	clean-libiberty \
	clean-libtool \
	clean-m4 \
	clean-make \
	clean-mmalloc \
	clean-patch \
	clean-perl \
	clean-prms \
	clean-rcs \
	clean-readline \
	clean-release \
	clean-recode \
	clean-sed \
	clean-send-pr \
	clean-shellutils \
	clean-sid \
	clean-sim \
	clean-snavigator \
	clean-tar \
	clean-texinfo \
	clean-textutils \
	clean-time \
	clean-uudecode \
	clean-wdiff \
	clean-zip \
	clean-zlib

# All of the target modules that can be cleaned
CLEAN_TARGET_MODULES = \
	clean-target-libstdc++-v3 \
	clean-target-newlib \
	clean-target-libf2c \
	clean-target-libobjc \
	clean-target-winsup \
	clean-target-libgloss \
	clean-target-libiberty \
	clean-target-gperf \
	clean-target-examples \
	clean-target-libffi \
	clean-target-libjava \
	clean-target-zlib \
	clean-target-boehm-gc \
	clean-target-qthreads \
	clean-target-rda

# All of the x11 modules that can be cleaned
CLEAN_X11_MODULES = \
	clean-gdb \
	clean-expect \
	clean-guile \
	clean-tclX \
	clean-tk \
	clean-tix

# The target built for a native build.
.PHONY: all.normal
all.normal: \
	$(ALL_BUILD_MODULES) \
	$(ALL_MODULES) \
	$(ALL_X11_MODULES) \
	$(ALL_TARGET_MODULES) \
	all-gcc

# Do a target for all the subdirectories.  A ``make do-X'' will do a
# ``make X'' in all subdirectories (because, in general, there is a
# dependency (below) of X upon do-X, a ``make X'' will also do this,
# but it may do additional work as well).
# This target ensures that $(BASE_FLAGS_TO_PASS) appears only once,
# because it is so large that it can easily overflow the command line
# length limit on some systems.
DO_X = \
	do-clean \
	do-distclean \
	do-dvi \
	do-info \
	do-install-info \
	do-installcheck \
	do-mostlyclean \
	do-maintainer-clean \
	do-TAGS
.PHONY: $(DO_X)
$(DO_X):
	@target=`echo $@ | sed -e 's/^do-//'`; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(SET_LIB_PATH) \
	for i in $(SUBDIRS) -dummy-; do \
	  if [ -f ./$$i/Makefile ]; then \
	    case $$i in \
	    gcc) \
	      for flag in $(EXTRA_GCC_FLAGS); do \
		eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	      done; \
	      ;; \
	    *) \
	      for flag in $(EXTRA_HOST_FLAGS); do \
		eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	      done; \
	      ;; \
	    esac ; \
	    if (cd ./$$i; \
	        $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
			"CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	                "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
			"DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
			$${target}); \
	    then true; else exit 1; fi; \
	  else true; fi; \
	done
	@target=`echo $@ | sed -e 's/^do-//'`; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(SET_LIB_PATH) \
	for i in $(TARGET_CONFIGDIRS) -dummy-; do \
	  if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
	    for flag in $(EXTRA_TARGET_FLAGS); do \
		eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	    done; \
	    if (cd $(TARGET_SUBDIR)/$$i; \
	        $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
			"CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	                "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
			"DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
			$${target}); \
	    then true; else exit 1; fi; \
	  else true; fi; \
	done

# Here are the targets which correspond to the do-X targets.

.PHONY: info installcheck dvi install-info
.PHONY: clean distclean mostlyclean maintainer-clean realclean
.PHONY: local-clean local-distclean local-maintainer-clean
info: do-info
installcheck: do-installcheck
dvi: do-dvi

# Make sure makeinfo is built before we do a `make info'.
do-info: all-texinfo

install-info: do-install-info dir.info
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if [ -f dir.info ] ; then \
	  $(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info ; \
	else true ; fi

local-clean:
	-rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log

local-distclean:
	-rm -f Makefile config.status config.cache mh-frag mt-frag
	-if [ "$(TARGET_SUBDIR)" != "." ]; then \
	  rm -rf $(TARGET_SUBDIR); \
	else true; fi
	-rm -f texinfo/po/Makefile texinfo/po/Makefile.in texinfo/info/Makefile
	-rm -f texinfo/doc/Makefile texinfo/po/POTFILES
	-rmdir texinfo/doc texinfo/info texinfo/intl texinfo/lib 2>/dev/null
	-rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null
	-rmdir fastjar gcc libiberty texinfo zlib 2>/dev/null

local-maintainer-clean:
	@echo "This command is intended for maintainers to use;"
	@echo "it deletes files that may require special tools to rebuild."

clean: do-clean local-clean
mostlyclean: do-mostlyclean local-clean
distclean: do-distclean local-clean local-distclean
maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean 
maintainer-clean: local-distclean
realclean: maintainer-clean

# This rule is used to clean specific modules.
.PHONY: $(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc
$(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc:
	@dir=`echo $@ | sed -e 's/clean-//'`; \
	if [ -f ./$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) clean); \
	else \
	  true; \
	fi

.PHONY: $(CLEAN_TARGET_MODULES)
$(CLEAN_TARGET_MODULES):
	@dir=`echo $@ | sed -e 's/clean-target-//'`; \
	rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \
	if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \
	else \
	  true; \
	fi

clean-target: $(CLEAN_TARGET_MODULES) clean-target-libgcc
clean-target-libgcc:
	test ! -d gcc/libgcc || \
	(cd gcc/libgcc && find . -type d -print) | \
	while read d; do rm -f gcc/$$d/libgcc.a || : ; done
	-rm -rf gcc/libgcc

# Check target.

.PHONY: check do-check
check:
	$(MAKE) do-check NOTPARALLEL=parallel-ok

do-check: $(CHECK_MODULES) \
	$(CHECK_TARGET_MODULES) \
	$(CHECK_X11_MODULES) \
	check-gcc

# Automated reporting of test results.

warning.log: build.log
	$(srcdir)/contrib/warn_summary build.log > $@

mail-report.log:
	if test x'$(BOOT_CFLAGS)' != x''; then \
	    BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \
	fi; \
	$(srcdir)/contrib/test_summary -t >$@
	chmod +x $@
	echo If you really want to send e-mail, run ./$@ now

mail-report-with-warnings.log: warning.log
	if test x'$(BOOT_CFLAGS)' != x''; then \
	    BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \
	fi; \
	$(srcdir)/contrib/test_summary -t -i warning.log >$@
	chmod +x $@
	echo If you really want to send e-mail, run ./$@ now

# Installation targets.

.PHONY: install install-cross uninstall source-vault binary-vault vault-install
install: $(INSTALL_TARGET) 
install-cross: $(INSTALL_TARGET_CROSS) 

uninstall:
	@echo "the uninstall target is not supported in this tree"

source-vault:
	$(MAKE) -f ./release/Build-A-Release \
		host=$(host_alias) source-vault

binary-vault:
	$(MAKE) -f ./release/Build-A-Release \
		host=$(host_alias) target=$(target_alias)

vault-install:
	@if [ -f ./release/vault-install ] ; then \
	  ./release/vault-install $(host_alias) $(target_alias) ; \
	else \
	  true ; \
	fi

.PHONY: install.all
install.all: install-no-fixedincludes
	@if [ -f ./gcc/Makefile ] ; then \
		r=`${PWD_COMMAND}` ; export r ; \
		$(SET_LIB_PATH) \
		(cd ./gcc; \
		$(MAKE) $(FLAGS_TO_PASS) install-headers) ; \
	else \
		true ; \
	fi

# install-no-fixedincludes is used because Cygnus can not distribute
# the fixed header files.
.PHONY: install-no-fixedincludes
install-no-fixedincludes: \
	installdirs \
	$(INSTALL_MODULES) \
	$(INSTALL_TARGET_MODULES) \
	$(INSTALL_X11_MODULES) \
	gcc-no-fixedincludes 

# Install the gcc headers files, but not the fixed include files,
# which Cygnus is not allowed to distribute.  This rule is very
# dependent on the workings of the gcc Makefile.in.
.PHONY: gcc-no-fixedincludes
gcc-no-fixedincludes:
	@if [ -f ./gcc/Makefile ]; then \
	  rm -rf gcc/tmp-include; \
	  mv gcc/include gcc/tmp-include 2>/dev/null; \
	  mkdir gcc/include; \
	  cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
	  touch gcc/stmp-fixinc gcc/include/fixed; \
	  rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
	  $(SET_LIB_PATH) \
	  (cd ./gcc; \
	   $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
	  rm -rf gcc/include; \
	  mv gcc/tmp-include gcc/include 2>/dev/null; \
	else true; fi

# This rule is used to build the modules which are built with the
# build machine's native compiler.
.PHONY: $(ALL_BUILD_MODULES)
$(ALL_BUILD_MODULES):
	dir=`echo $@ | sed -e 's/all-build-//'`; \
	if [ -f ./$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  (cd $(BUILD_SUBDIR)/$${dir} && $(MAKE) all); \
	else \
	  true; \
	fi

# This rule is used to configure the modules which are built with the
# native tools.
.PHONY: $(CONFIGURE_BUILD_MODULES)
$(CONFIGURE_BUILD_MODULES):
	@dir=`echo $@ | sed -e 's/configure-build-//'`; \
	if [ ! -d $(BUILD_SUBDIR) ]; then \
	  true; \
	elif [ -f $(BUILD_SUBDIR)/$${dir}/Makefile ] ; then \
	  true; \
	elif echo " $(BUILD_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
	  if [ -d $(srcdir)/$${dir} ]; then \
	    [ -d $(BUILD_SUBDIR)/$${dir} ] || mkdir $(BUILD_SUBDIR)/$${dir};\
	    r=`${PWD_COMMAND}`; export r; \
	    s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	    AR="$(AR_FOR_BUILD)"; export AR; \
	    AS="$(AS_FOR_BUILD)"; export AS; \
	    CC="$(CC_FOR_BUILD)"; export CC; \
	    CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
	    CXX="$(CXX_FOR_BUILD)"; export CXX; \
	    CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
	    GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
	    DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
	    LD="$(LD_FOR_BUILD)"; export LD; \
            LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \
	    NM="$(NM_FOR_BUILD)"; export NM; \
	    RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \
	    WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \
	    echo Configuring in $(BUILD_SUBDIR)/$${dir}; \
	    cd "$(BUILD_SUBDIR)/$${dir}" || exit 1; \
	    case $(srcdir) in \
	    /* | [A-Za-z]:[\\/]*) \
	      topdir=$(srcdir) ;; \
	    *) \
	      case "$(BUILD_SUBDIR)" in \
	      .) topdir="../$(srcdir)" ;; \
	      *) topdir="../../$(srcdir)" ;; \
	      esac ;; \
	    esac; \
	    if [ "$(srcdir)" = "." ] ; then \
	      if [ "$(BUILD_SUBDIR)" != "." ] ; then \
		if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \
		  if [ -f Makefile ]; then \
		    if $(MAKE) distclean; then \
		      true; \
		    else \
		      exit 1; \
		    fi; \
		  else \
		    true; \
		  fi; \
		else \
		  exit 1; \
		fi; \
	      else \
		true; \
	      fi; \
	      srcdiroption="--srcdir=."; \
	      libsrcdir="."; \
	    else \
	      srcdiroption="--srcdir=$${topdir}/$${dir}"; \
	      libsrcdir="$$s/$${dir}"; \
	    fi; \
	    if [ -f $${libsrcdir}/configure ] ; then \
	      rm -f no-such-file skip-this-dir; \
	      CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
		$(BUILD_CONFIGARGS) $${srcdiroption} \
		--with-build-subdir="$(BUILD_SUBDIR)"; \
	    else \
	      rm -f no-such-file skip-this-dir; \
	      CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
		$(BUILD_CONFIGARGS) $${srcdiroption} \
		--with-build-subdir="$(BUILD_SUBDIR)"; \
	    fi || exit 1; \
	    if [ -f skip-this-dir ] ; then \
	      sh skip-this-dir; \
	      rm -f skip-this-dir; \
	      cd ..; rmdir $${dir} || true; \
	    else \
	      true; \
	    fi; \
	  else \
	    true; \
	  fi; \
	else \
	  true; \
	fi

# This rule is used to build the modules which use FLAGS_TO_PASS.  To
# build a target all-X means to cd to X and make all.
.PHONY: $(ALL_MODULES)
$(ALL_MODULES):
	@dir=`echo $@ | sed -e 's/all-//'`; \
	if [ -f ./$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \
	else \
	  true; \
	fi

# These rules are used to check the modules which use FLAGS_TO_PASS.
# To build a target check-X means to cd to X and make check.  Some
# modules are only tested in a native toolchain.

.PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)
$(NATIVE_CHECK_MODULES):
	@if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
	  dir=`echo $@ | sed -e 's/check-//'`; \
	  if [ -f ./$${dir}/Makefile ] ; then \
	    r=`${PWD_COMMAND}`; export r; \
	    s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	    $(SET_LIB_PATH) \
	    (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
	  else \
	    true; \
	  fi; \
	fi

$(CROSS_CHECK_MODULES):
	@dir=`echo $@ | sed -e 's/check-//'`; \
	if [ -f ./$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
	else \
	  true; \
	fi

# This rule is used to install the modules which use FLAGS_TO_PASS.
# To build a target install-X means to cd to X and make install.
.PHONY: $(INSTALL_MODULES)
$(INSTALL_MODULES): installdirs
	@dir=`echo $@ | sed -e 's/install-//'`; \
	if [ -f ./$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
	else \
	  true; \
	fi

# This rule is used to configure the modules which are built with the
# target tools.
.PHONY: $(CONFIGURE_TARGET_MODULES)
$(CONFIGURE_TARGET_MODULES):
	@dir=`echo $@ | sed -e 's/configure-target-//'`; \
	if [ -d $(TARGET_SUBDIR)/$${dir} ]; then \
	  r=`${PWD_COMMAND}`; export r; \
	  $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/$${dir}/tmpmulti.out 2> /dev/null; \
	  if [ -s $(TARGET_SUBDIR)/$${dir}/tmpmulti.out ]; then \
	    if [ -f $(TARGET_SUBDIR)/$${dir}/multilib.out ]; then \
	      if cmp $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out > /dev/null; then \
		rm -f $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \
	      else \
		echo "Multilibs changed for $${dir}, reconfiguring"; \
		rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/Makefile; \
		mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \
	      fi; \
	    else \
	      mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \
	    fi; \
	  fi; \
	fi; exit 0	# break command into two pieces
	@dir=`echo $@ | sed -e 's/configure-target-//'`; \
	if [ ! -d $(TARGET_SUBDIR) ]; then \
	  true; \
	elif [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
	  true; \
	elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
	  if [ -d $(srcdir)/$${dir} ]; then \
	    [ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\
	    r=`${PWD_COMMAND}`; export r; \
	    s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	    $(SET_LIB_PATH) \
	    AR="$(AR_FOR_TARGET)"; export AR; \
	    AS="$(AS_FOR_TARGET)"; export AS; \
	    CC="$(CC_FOR_TARGET)"; export CC; \
	    CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	    CXX="$(CXX_FOR_TARGET)"; export CXX; \
	    CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	    GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
	    DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
	    LD="$(LD_FOR_TARGET)"; export LD; \
            LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
	    NM="$(NM_FOR_TARGET)"; export NM; \
	    RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
	    WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
	    echo Configuring in $(TARGET_SUBDIR)/$${dir}; \
	    cd "$(TARGET_SUBDIR)/$${dir}" || exit 1; \
	    case $(srcdir) in \
	    /* | [A-Za-z]:[\\/]*) \
	      topdir=$(srcdir) ;; \
	    *) \
	      case "$(TARGET_SUBDIR)" in \
	      .) topdir="../$(srcdir)" ;; \
	      *) topdir="../../$(srcdir)" ;; \
	      esac ;; \
	    esac; \
	    if [ "$(srcdir)" = "." ] ; then \
	      if [ "$(TARGET_SUBDIR)" != "." ] ; then \
		if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \
		  if [ -f Makefile ]; then \
		    if $(MAKE) distclean; then \
		      true; \
		    else \
		      exit 1; \
		    fi; \
		  else \
		    true; \
		  fi; \
		else \
		  exit 1; \
		fi; \
	      else \
		true; \
	      fi; \
	      srcdiroption="--srcdir=."; \
	      libsrcdir="."; \
	    else \
	      srcdiroption="--srcdir=$${topdir}/$${dir}"; \
	      libsrcdir="$$s/$${dir}"; \
	    fi; \
	    if [ -f $${libsrcdir}/configure ] ; then \
	      rm -f no-such-file skip-this-dir; \
	      CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
		$(TARGET_CONFIGARGS) $${srcdiroption} \
		--with-target-subdir="$(TARGET_SUBDIR)"; \
	    else \
	      rm -f no-such-file skip-this-dir; \
	      CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
		$(TARGET_CONFIGARGS) $${srcdiroption} \
		--with-target-subdir="$(TARGET_SUBDIR)"; \
	    fi || exit 1; \
	    if [ -f skip-this-dir ] ; then \
	      sh skip-this-dir; \
	      rm -f skip-this-dir; \
	      cd ..; rmdir $${dir} || true; \
	    else \
	      true; \
	    fi; \
	  else \
	    true; \
	  fi; \
	else \
	  true; \
	fi

# This rule is used to build the modules which use TARGET_FLAGS_TO_PASS.
# To build a target all-X means to cd to X and make all.
.PHONY: $(ALL_TARGET_MODULES)
$(ALL_TARGET_MODULES):
	@dir=`echo $@ | sed -e 's/all-target-//'`; \
	if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $(TARGET_SUBDIR)/$${dir}; \
	    $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
	else \
	  true; \
	fi

# This rule is used to check the modules which use TARGET_FLAGS_TO_PASS.
# To build a target install-X means to cd to X and make install.
.PHONY: $(CHECK_TARGET_MODULES)
$(CHECK_TARGET_MODULES):
	@dir=`echo $@ | sed -e 's/check-target-//'`; \
	if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $(TARGET_SUBDIR)/$${dir}; \
	    $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
	else \
	  true; \
	fi

# This rule is used to install the modules which use
# TARGET_FLAGS_TO_PASS.  To build a target install-X means to cd to X
# and make install.
.PHONY: $(INSTALL_TARGET_MODULES)
$(INSTALL_TARGET_MODULES): installdirs
	@dir=`echo $@ | sed -e 's/install-target-//'`; \
	if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $(TARGET_SUBDIR)/$${dir}; \
	    $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
	else \
	  true; \
	fi

# This rule is used to build the modules which use X11_FLAGS_TO_PASS.
# To build a target all-X means to cd to X and make all.
.PHONY: $(ALL_X11_MODULES)
$(ALL_X11_MODULES):
	@dir=`echo $@ | sed -e 's/all-//'`; \
	if [ -f ./$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $${dir}; \
	   $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
	else \
	  true; \
	fi

# This rule is used to check the modules which use X11_FLAGS_TO_PASS.
# To build a target check-X means to cd to X and make all.
.PHONY: $(CHECK_X11_MODULES)
$(CHECK_X11_MODULES):
	@dir=`echo $@ | sed -e 's/check-//'`; \
	if [ -f ./$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $${dir}; \
	   $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
	else \
	  true; \
	fi

# This rule is used to install the modules which use X11_FLAGS_TO_PASS.
# To build a target install-X means to cd to X and make install.
.PHONY: $(INSTALL_X11_MODULES)
$(INSTALL_X11_MODULES): installdirs
	@dir=`echo $@ | sed -e 's/install-//'`; \
	if [ -f ./$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $${dir}; \
	   $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
	else \
	  true; \
	fi

# gcc is the only module which uses GCC_FLAGS_TO_PASS.
.PHONY: all-gcc
all-gcc:
	@if [ -f ./gcc/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \
	else \
	  true; \
	fi

# Building GCC uses some tools for rebuilding "source" files
# like texinfo, bison/byacc, etc.  So we must depend on those.
#
# While building GCC, it may be necessary to run various target
# programs like the assembler, linker, etc.  So we depend on
# those too.
#
# In theory, on an SMP all those dependencies can be resolved
# in parallel.
#
.PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap
bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(SET_LIB_PATH) \
	echo "Bootstrapping the compiler"; \
	cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $@
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	case "$@" in \
	  *bootstrap4-lean ) \
			msg="Comparing stage3 and stage4 of the compiler"; \
	  		compare=compare3-lean ;; \
	  *bootstrap4 ) msg="Comparing stage3 and stage4 of the compiler"; \
	  		compare=compare3 ;; \
	  *-lean )	msg="Comparing stage2 and stage3 of the compiler"; \
	  		compare=compare-lean ;; \
	  * )		msg="Comparing stage2 and stage3 of the compiler"; \
	  		compare=compare ;; \
	esac; \
	$(SET_LIB_PATH) \
	echo "$$msg"; \
	cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
	$(SET_LIB_PATH) \
	echo "Building runtime libraries"; \
	$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all

.PHONY: cross
cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(SET_LIB_PATH) \
	echo "Building the C and C++ compiler"; \
	cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++"
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
	$(SET_LIB_PATH) \
	echo "Building runtime libraries"; \
	$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \
	  LANGUAGES="c c++" all

.PHONY: check-gcc
check-gcc:
	@if [ -f ./gcc/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check); \
	else \
	  true; \
	fi

.PHONY: check-gcc-c++
check-gcc-c++:
	@if [ -f ./gcc/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
	else \
	  true; \
	fi

.PHONY: check-c++
check-c++:
	$(MAKE) check-target-libstdc++-v3 check-gcc-c++ NOTPARALLEL=parallel-ok

.PHONY: install-gcc
install-gcc:
	@if [ -f ./gcc/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
	else \
	  true; \
	fi

.PHONY: install-gcc-cross
install-gcc-cross:
	@if [ -f ./gcc/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \
	else \
	  true; \
	fi
# EXPERIMENTAL STUFF
# This rule is used to install the modules which use FLAGS_TO_PASS.
# To build a target install-X means to cd to X and make install.
.PHONY: install-dosrel
install-dosrel: installdirs info
	@dir=`echo $@ | sed -e 's/install-//'`; \
	if [ -f ./$${dir}/Makefile ] ; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(SET_LIB_PATH) \
	  (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
	else \
	  true; \
	fi

install-dosrel-fake:

ALL_GCC = all-gcc
ALL_GCC_C = $(ALL_GCC) all-target-newlib all-target-libgloss
ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++-v3

# This is a list of inter-dependencies among modules.
all-ash:
all-autoconf: all-m4 all-texinfo
all-automake: all-m4 all-texinfo
all-bash:
all-bfd: all-libiberty all-intl
all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl
all-bison: all-texinfo
configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads
all-byacc:
all-bzip2:
all-db:
all-dejagnu: all-tcl all-expect all-tk
all-diff: all-libiberty
all-etc:
configure-target-examples: $(ALL_GCC_C)
all-expect: all-tcl all-tk
all-fileutils: all-libiberty
all-findutils:
all-find:
all-flex: all-libiberty all-bison all-byacc
all-gas: all-libiberty all-opcodes all-bfd all-intl
all-gawk:
all-gcc: all-bison all-byacc all-binutils all-gas all-ld all-zlib
all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib
GDB_TK = all-tcl all-tk all-itcl all-tix all-libgui
all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK)
all-gettext:
all-gnuserv:
configure-target-gperf: $(ALL_GCC_CXX)
all-target-gperf: all-target-libiberty all-target-libstdc++-v3
all-gprof: all-libiberty all-bfd all-opcodes all-intl
all-grep: all-libiberty
all-guile:
all-gzip: all-libiberty
all-hello: all-libiberty
all-indent:
all-intl:
all-itcl: all-tcl all-tk
all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl
configure-target-libgloss: $(ALL_GCC)
all-target-libgloss: configure-target-newlib
all-libgui: all-tcl all-tk all-itcl
all-libiberty:

all-build-libiberty: configure-build-libiberty

configure-target-libffi: $(ALL_GCC_C) 
configure-target-libjava: $(ALL_GCC_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi
all-target-libjava: all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi
configure-target-libstdc++-v3: $(ALL_GCC_C)
all-target-libstdc++-v3: all-target-libiberty
all-libtool:
configure-target-libf2c: $(ALL_GCC_C)
all-target-libf2c: all-target-libiberty
configure-target-libobjc: $(ALL_GCC_C)
all-target-libobjc: all-target-libiberty
all-m4: all-libiberty all-texinfo
all-make: all-libiberty
all-mmalloc:
configure-target-newlib: $(ALL_GCC)
configure-target-libtermcap: $(ALL_GCC_C)
all-opcodes: all-bfd all-libiberty
all-patch: all-libiberty
all-perl:
all-prms: all-libiberty
configure-target-qthreads: $(ALL_GCC_C)
all-rcs:
all-readline:
all-recode: all-libiberty
all-sed: all-libiberty
all-send-pr: all-prms
all-shellutils:
all-sid: all-tcl all-tk
all-sim: all-libiberty all-bfd all-opcodes all-readline
all-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui
all-tar: all-libiberty
all-tcl:
all-tclX: all-tcl all-tk
all-tk: all-tcl
all-texinfo: all-libiberty
all-textutils:
all-time:
all-tix: all-tcl all-tk
all-wdiff:
configure-target-rda: $(ALL_GCC_C)
configure-target-winsup: $(ALL_GCC_C)
all-target-winsup: all-target-libiberty all-target-libtermcap
all-uudecode: all-libiberty
all-zip:
all-zlib:
configure-target-zlib: $(ALL_GCC_C)
all-fastjar: all-zlib all-libiberty
configure-target-fastjar: configure-target-zlib
all-target-fastjar: configure-target-fastjar all-target-zlib all-target-libiberty
configure-target-libiberty: $(ALL_GCC_C)
configure-target: $(CONFIGURE_TARGET_MODULES)
all-target: $(ALL_TARGET_MODULES)
install-target: $(INSTALL_TARGET_MODULES)
install-gdb: install-tcl install-tk install-itcl install-tix install-libgui
install-sid: install-tcl install-tk

# We put install-opcodes before install-binutils because the installed
# binutils might be on PATH, and they might need the shared opcodes
# library.
install-binutils: install-opcodes

# We put install-tcl before install-itcl because itcl wants to run a
# program on installation which uses the Tcl libraries.
install-itcl: install-tcl


# Dependencies of all-target-foo on configure-target-foo.
all-target-libstdc++-v3: configure-target-libstdc++-v3
all-target-newlib: configure-target-newlib
all-target-libf2c: configure-target-libf2c
all-target-libobjc: configure-target-libobjc
all-target-libtermcap: configure-target-libtermcap
all-target-winsup: configure-target-winsup
all-target-libgloss: configure-target-libgloss
all-target-libiberty: configure-target-libiberty
all-target-gperf: configure-target-gperf
all-target-examples: configure-target-examples
all-target-libffi: configure-target-libffi
all-target-libjava: configure-target-libjava
all-target-zlib: configure-target-zlib
all-target-boehm-gc: configure-target-boehm-gc
all-target-qthreads: configure-target-qthreads
all-target-rda: configure-target-rda


### other supporting targets

MAKEDIRS= \
	$(DESTDIR)$(prefix) \
	$(DESTDIR)$(exec_prefix)
.PHONY: installdirs
installdirs: mkinstalldirs
	$(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS)

dir.info: do-install-info
	if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
	  $(srcdir)/texinfo/gen-info-dir $(DESTDIR)$(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
	  mv -f dir.info.new dir.info ; \
	else true ; \
	fi

dist:
	@echo "Building a full distribution of this tree isn't done"
	@echo "via 'make dist'.  Check out the etc/ subdirectory" 

etags tags: TAGS

# Right now this just builds TAGS in each subdirectory.  emacs19 has the
# ability to use several tags files at once, so there is probably no need
# to combine them into one big TAGS file (like CVS 1.3 does).  We could
# (if we felt like it) have this Makefile write a piece of elisp which
# the user could load to tell emacs19 where all the TAGS files we just
# built are.
TAGS: do-TAGS

# Rebuilding Makefile.in, using autogen.
$(srcdir)/Makefile.in: # $(srcdir)/Makefile.tpl $(srcdir)/Makefile.def
	cd $(srcdir) && autogen Makefile.def

# with the gnu make, this is done automatically.

Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag) $(gcc_version_trigger)
	$(SHELL) ./config.status

#

.NOEXPORT:
MAKEOVERRIDES=

# end of Makefile.in

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-03  9:36                   ` Adrian Hoe
@ 2003-11-05 18:35                     ` Andreas Almroth
  2003-11-06  5:06                       ` Adrian Hoe
  0 siblings, 1 reply; 34+ messages in thread
From: Andreas Almroth @ 2003-11-05 18:35 UTC (permalink / raw)


Adrian Hoe wrote:
 >
 >
 > Ludovic Brenta wrote:
 >

[snip]

 >
 > Thanks for the tips. Now the configure recognized ada and created
 > ada/Makefile in obj/gcc but I encountered an error during bootstrap:
 >
 > Bootstrapping the compiler
 > make: Fatal error in reader: Makefile, line 987: Unexpected end of line
 > seen
 > Current working directory 
/home/byhoe/download/gcc-3.3.2/gcc-3.3.2/obj/gcc
 > *** Error code 1
 > make: Fatal error: Command failed for target `bootstrap'

I only say: Use GNU make.
The Makefiles are in some cases using gmake only contructs. I believe it
is also mentioned in the build documentation...

Godd luck building it! Should not be hard now, as the configure script
found ada.

/Andreas




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-05 18:35                     ` Andreas Almroth
@ 2003-11-06  5:06                       ` Adrian Hoe
  2003-11-06  5:20                         ` Adrian Hoe
  0 siblings, 1 reply; 34+ messages in thread
From: Adrian Hoe @ 2003-11-06  5:06 UTC (permalink / raw)


Andreas Almroth wrote:

> 
> I only say: Use GNU make.
> The Makefiles are in some cases using gmake only contructs. I believe it
> is also mentioned in the build documentation...
> 
> Godd luck building it! Should not be hard now, as the configure script
> found ada.
> 



Argh! I mixed up both "make" and "gmake". I was so used to "make".


Now it began to compile but not for long. I encountered the following 
problems:

rm -rf libbackend.a
ar rc libbackend.a alias.o bb-reorder.o bitmap.o builtins.o 
caller-save.o calls.o cfg.o cfganal.o cfgbuild.o cfgcleanup.o 
cfglayout.o cfgloop.o cfgrtl.o combine.o conflict.o convert.o cse.o 
cselib.o dbxout.o debug.o df.o diagnostic.o doloop.o dominance.o 
dwarf2asm.o dwarf2out.o dwarfout.o emit-rtl.o except.o explow.o expmed.o 
expr.o final.o flow.o fold-const.o function.o gcse.o genrtl.o 
ggc-common.o global.o graph.o gtype-desc.o haifa-sched.o hashtable.o 
hooks.o ifcvt.o insn-attrtab.o insn-emit.o insn-extract.o insn-opinit.o 
insn-output.o insn-peep.o insn-recog.o integrate.o intl.o jump.o 
langhooks.o lcm.o lists.o local-alloc.o loop.o mbchar.o optabs.o 
params.o predict.o print-rtl.o print-tree.o profile.o ra.o ra-build.o 
ra-colorize.o ra-debug.o ra-rewrite.o real.o recog.o reg-stack.o 
regclass.o regmove.o regrename.o reload.o reload1.o reorg.o resource.o 
rtl.o rtlanal.o rtl-error.o sbitmap.o sched-deps.o sched-ebb.o 
sched-rgn.o sched-vis.o sdbout.o sibcall.o simplify-rtx.o ssa.o 
ssa-ccp.o ssa-dce.o stmt.o stor-layout.o stringpool.o timevar.o toplev.o 
tracer.o tree.o tree-dump.o tree-inline.o unroll.o varasm.o varray.o 
version.o vmsdbgout.o xcoffout.o et-forest.o ggc-page.o sparc.o
ranlib libbackend.a
/opt/sfw/bin/gnat/gcc   -g  -DIN_GCC   -W -Wall -Wwrite-strings 
-Wstrict-prototypes -Wmissing-prototypes -Wtraditional 
-DHAVE_CONFIG_H  -o cc1 \
	c-parse.o c-lang.o c-pretty-print.o attribs.o c-errors.o c-lex.o 
c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o 
c-opts.o c-format.o c-semantics.o c-objc-common.o c-dump.o libcpp.a 
main.o libbackend.a ./intl/libintl.a   ../libiberty/libiberty.a
Undefined 
		first referenced
  symbol  			    in file
fibheap_delete_node                 libbackend.a(tracer.o)
physmem_total                       libbackend.a(ggc-common.o)
fibheap_empty                       libbackend.a(tracer.o)
htab_hash_string                    libbackend.a(dwarf2out.o)
fibheap_insert                      libbackend.a(tracer.o)
fibheap_new                         libbackend.a(tracer.o)
htab_create_alloc                   libbackend.a(cselib.o)
lbasename                           libcpp.a(cppfiles.o)
fibheap_delete                      libbackend.a(tracer.o)
fibheap_extract_min                 libbackend.a(tracer.o)
reconcat                            c-aux-info.o
ld: fatal: Symbol referencing errors. No output written to cc1
gmake[1]: *** [cc1] Error 1
gmake[1]: Leaving directory `/home/byhoe/download/gcc-3.3.2/gcc-3.3.2/obj'
gmake: *** [stage1_build] Error 2


Do you have any idea how to solve this? I see that I am close but not so close yet. :(


Thanks. :)
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-06  5:06                       ` Adrian Hoe
@ 2003-11-06  5:20                         ` Adrian Hoe
  2003-11-06  6:19                           ` Andreas Almroth
  2003-11-06  6:33                           ` Adrian Hoe
  0 siblings, 2 replies; 34+ messages in thread
From: Adrian Hoe @ 2003-11-06  5:20 UTC (permalink / raw)




Adrian Hoe wrote:

> Andreas Almroth wrote:
> 
>>
>> I only say: Use GNU make.
>> The Makefiles are in some cases using gmake only contructs. I believe it
>> is also mentioned in the build documentation...
>>
>> Godd luck building it! Should not be hard now, as the configure script
>> found ada.
>>
> 
> 
> 
> Argh! I mixed up both "make" and "gmake". I was so used to "make".
> 
> 
> Now it began to compile but not for long. I encountered the following 
> problems:
> 
> rm -rf libbackend.a
> ar rc libbackend.a alias.o bb-reorder.o bitmap.o builtins.o 
> caller-save.o calls.o cfg.o cfganal.o cfgbuild.o cfgcleanup.o 
> cfglayout.o cfgloop.o cfgrtl.o combine.o conflict.o convert.o cse.o 
> cselib.o dbxout.o debug.o df.o diagnostic.o doloop.o dominance.o 
> dwarf2asm.o dwarf2out.o dwarfout.o emit-rtl.o except.o explow.o expmed.o 
> expr.o final.o flow.o fold-const.o function.o gcse.o genrtl.o 
> ggc-common.o global.o graph.o gtype-desc.o haifa-sched.o hashtable.o 
> hooks.o ifcvt.o insn-attrtab.o insn-emit.o insn-extract.o insn-opinit.o 
> insn-output.o insn-peep.o insn-recog.o integrate.o intl.o jump.o 
> langhooks.o lcm.o lists.o local-alloc.o loop.o mbchar.o optabs.o 
> params.o predict.o print-rtl.o print-tree.o profile.o ra.o ra-build.o 
> ra-colorize.o ra-debug.o ra-rewrite.o real.o recog.o reg-stack.o 
> regclass.o regmove.o regrename.o reload.o reload1.o reorg.o resource.o 
> rtl.o rtlanal.o rtl-error.o sbitmap.o sched-deps.o sched-ebb.o 
> sched-rgn.o sched-vis.o sdbout.o sibcall.o simplify-rtx.o ssa.o 
> ssa-ccp.o ssa-dce.o stmt.o stor-layout.o stringpool.o timevar.o toplev.o 
> tracer.o tree.o tree-dump.o tree-inline.o unroll.o varasm.o varray.o 
> version.o vmsdbgout.o xcoffout.o et-forest.o ggc-page.o sparc.o
> ranlib libbackend.a
> /opt/sfw/bin/gnat/gcc   -g  -DIN_GCC   -W -Wall -Wwrite-strings 
> -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -DHAVE_CONFIG_H  
> -o cc1 \
>     c-parse.o c-lang.o c-pretty-print.o attribs.o c-errors.o c-lex.o 
> c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o 
> c-opts.o c-format.o c-semantics.o c-objc-common.o c-dump.o libcpp.a 
> main.o libbackend.a ./intl/libintl.a   ../libiberty/libiberty.a
> Undefined         first referenced
>  symbol                  in file
> fibheap_delete_node                 libbackend.a(tracer.o)
> physmem_total                       libbackend.a(ggc-common.o)
> fibheap_empty                       libbackend.a(tracer.o)
> htab_hash_string                    libbackend.a(dwarf2out.o)
> fibheap_insert                      libbackend.a(tracer.o)
> fibheap_new                         libbackend.a(tracer.o)
> htab_create_alloc                   libbackend.a(cselib.o)
> lbasename                           libcpp.a(cppfiles.o)
> fibheap_delete                      libbackend.a(tracer.o)
> fibheap_extract_min                 libbackend.a(tracer.o)
> reconcat                            c-aux-info.o
> ld: fatal: Symbol referencing errors. No output written to cc1
> gmake[1]: *** [cc1] Error 1
> gmake[1]: Leaving directory `/home/byhoe/download/gcc-3.3.2/gcc-3.3.2/obj'
> gmake: *** [stage1_build] Error 2
> 
> 
> Do you have any idea how to solve this? I see that I am close but not so 
> close yet. :(
> 
> 
> Thanks. :)



These undefined symbols can be found in the C source files under the 
directory gcc-3.3.2/libiberty

When I did gmake bootstrap, it gave me an error for missing libiberty.a. 
So I copied the file from one of the system lib directory. It seems like 
gcc bootstrap needs to compile those files in gcc-3.3.2/libiberty to 
produce libiberty.a. Is my assumption correct? If yes, how do I make 
libiberty? The Makefile does not have the lines to make libiberty.a

How?--
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-06  5:20                         ` Adrian Hoe
@ 2003-11-06  6:19                           ` Andreas Almroth
  2003-11-06  6:52                             ` Adrian Hoe
  2003-11-06  6:33                           ` Adrian Hoe
  1 sibling, 1 reply; 34+ messages in thread
From: Andreas Almroth @ 2003-11-06  6:19 UTC (permalink / raw)


Adrian Hoe wrote:
[snip]

>> Do you have any idea how to solve this? I see that I am close but not 
>> so close yet. :(

[snip]
> These undefined symbols can be found in the C source files under the 
> directory gcc-3.3.2/libiberty
> 
> When I did gmake bootstrap, it gave me an error for missing libiberty.a. 
> So I copied the file from one of the system lib directory. It seems like 
> gcc bootstrap needs to compile those files in gcc-3.3.2/libiberty to 
> produce libiberty.a. Is my assumption correct? If yes, how do I make 
> libiberty? The Makefile does not have the lines to make libiberty.a

That is very odd, as libiberty is about the first part that is being 
built when bootstrapping, and possibly when doing the other builds as well.

I'm using the following configure;
cd objdir
../gcc-3.3.2/configure --enable-languages=c,ada enable-threads 
--enable-multilib --disable-nls
cd ../gcc-3.3.2/gcc/ada
touch treeprs.ads [es]info.h nmake.ad[bs]
cd ~
cd objdir
gmake bootstrap


This will build a 32/64 bit (SPARC) capable compiler, with shared and 
static libraries, with thread support (default native), and no 
internationalisation.

As I write this, the compile is well into building stage2.

Try the above configure (if not already using it), and see what happens.
Perhaps it is something wrong with your development environment/paths.
I'm using CSW build for all dev tools, you are using SFW, but that 
should theoretically not make a difference, but who knows.
What about your environment variables?
PATH=/usr/bin:/usr/ccs/bin:/opt/csw/bin
Well, in your case /usr/sfw/bin -^
LD_OPTIONS='-R/opt/csw/gcc3/lib -R/opt/csw/lib -L/opt/csw/gcc3/lib 
-L/opt/csw/lib'
Change according to SFW places for libraries.
CC=gcc
CFLAGS='-O2'
LIBCFLAGS='-g -O2'
CXXFLAGS='-I/opt/csw/include'


/Andreas





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-06  5:20                         ` Adrian Hoe
  2003-11-06  6:19                           ` Andreas Almroth
@ 2003-11-06  6:33                           ` Adrian Hoe
  1 sibling, 0 replies; 34+ messages in thread
From: Adrian Hoe @ 2003-11-06  6:33 UTC (permalink / raw)


I have got it working. gcc/gnat is bootstrapping and hopefully this time 
will work. Will let you all know.

Thanks.




Adrian Hoe wrote:

> 
> 
> Adrian Hoe wrote:
> 
>> Andreas Almroth wrote:
>>
>>>
>>> I only say: Use GNU make.
>>> The Makefiles are in some cases using gmake only contructs. I believe it
>>> is also mentioned in the build documentation...
>>>
>>> Godd luck building it! Should not be hard now, as the configure script
>>> found ada.
>>>
>>
>>
>>
>> Argh! I mixed up both "make" and "gmake". I was so used to "make".
>>
>>
>> Now it began to compile but not for long. I encountered the following 
>> problems:
>>
>> rm -rf libbackend.a
>> ar rc libbackend.a alias.o bb-reorder.o bitmap.o builtins.o 
>> caller-save.o calls.o cfg.o cfganal.o cfgbuild.o cfgcleanup.o 
>> cfglayout.o cfgloop.o cfgrtl.o combine.o conflict.o convert.o cse.o 
>> cselib.o dbxout.o debug.o df.o diagnostic.o doloop.o dominance.o 
>> dwarf2asm.o dwarf2out.o dwarfout.o emit-rtl.o except.o explow.o 
>> expmed.o expr.o final.o flow.o fold-const.o function.o gcse.o genrtl.o 
>> ggc-common.o global.o graph.o gtype-desc.o haifa-sched.o hashtable.o 
>> hooks.o ifcvt.o insn-attrtab.o insn-emit.o insn-extract.o 
>> insn-opinit.o insn-output.o insn-peep.o insn-recog.o integrate.o 
>> intl.o jump.o langhooks.o lcm.o lists.o local-alloc.o loop.o mbchar.o 
>> optabs.o params.o predict.o print-rtl.o print-tree.o profile.o ra.o 
>> ra-build.o ra-colorize.o ra-debug.o ra-rewrite.o real.o recog.o 
>> reg-stack.o regclass.o regmove.o regrename.o reload.o reload1.o 
>> reorg.o resource.o rtl.o rtlanal.o rtl-error.o sbitmap.o sched-deps.o 
>> sched-ebb.o sched-rgn.o sched-vis.o sdbout.o sibcall.o simplify-rtx.o 
>> ssa.o ssa-ccp.o ssa-dce.o stmt.o stor-layout.o stringpool.o timevar.o 
>> toplev.o tracer.o tree.o tree-dump.o tree-inline.o unroll.o varasm.o 
>> varray.o version.o vmsdbgout.o xcoffout.o et-forest.o ggc-page.o sparc.o
>> ranlib libbackend.a
>> /opt/sfw/bin/gnat/gcc   -g  -DIN_GCC   -W -Wall -Wwrite-strings 
>> -Wstrict-prototypes -Wmissing-prototypes -Wtraditional 
>> -DHAVE_CONFIG_H  -o cc1 \
>>     c-parse.o c-lang.o c-pretty-print.o attribs.o c-errors.o c-lex.o 
>> c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o 
>> c-opts.o c-format.o c-semantics.o c-objc-common.o c-dump.o libcpp.a 
>> main.o libbackend.a ./intl/libintl.a   ../libiberty/libiberty.a
>> Undefined         first referenced
>>  symbol                  in file
>> fibheap_delete_node                 libbackend.a(tracer.o)
>> physmem_total                       libbackend.a(ggc-common.o)
>> fibheap_empty                       libbackend.a(tracer.o)
>> htab_hash_string                    libbackend.a(dwarf2out.o)
>> fibheap_insert                      libbackend.a(tracer.o)
>> fibheap_new                         libbackend.a(tracer.o)
>> htab_create_alloc                   libbackend.a(cselib.o)
>> lbasename                           libcpp.a(cppfiles.o)
>> fibheap_delete                      libbackend.a(tracer.o)
>> fibheap_extract_min                 libbackend.a(tracer.o)
>> reconcat                            c-aux-info.o
>> ld: fatal: Symbol referencing errors. No output written to cc1
>> gmake[1]: *** [cc1] Error 1
>> gmake[1]: Leaving directory 
>> `/home/byhoe/download/gcc-3.3.2/gcc-3.3.2/obj'
>> gmake: *** [stage1_build] Error 2
>>
>>
>> Do you have any idea how to solve this? I see that I am close but not 
>> so close yet. :(
>>
>>
>> Thanks. :)
> 
> 
> 
> 
> These undefined symbols can be found in the C source files under the 
> directory gcc-3.3.2/libiberty
> 
> When I did gmake bootstrap, it gave me an error for missing libiberty.a. 
> So I copied the file from one of the system lib directory. It seems like 
> gcc bootstrap needs to compile those files in gcc-3.3.2/libiberty to 
> produce libiberty.a. Is my assumption correct? If yes, how do I make 
> libiberty? The Makefile does not have the lines to make libiberty.a
> 
> How?--
> Adrian Hoe
> m a i l b o x AT a d r i a n h o e . c o m
> 


-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-06  6:19                           ` Andreas Almroth
@ 2003-11-06  6:52                             ` Adrian Hoe
  2003-11-06  8:54                               ` Andreas Almroth
  0 siblings, 1 reply; 34+ messages in thread
From: Adrian Hoe @ 2003-11-06  6:52 UTC (permalink / raw)




Andreas Almroth wrote:

> Adrian Hoe wrote:
> [snip]
> 
>>> Do you have any idea how to solve this? I see that I am close but not 
>>> so close yet. :(
>>
> 
> [snip]
> 
>> These undefined symbols can be found in the C source files under the 
>> directory gcc-3.3.2/libiberty
>>
>> When I did gmake bootstrap, it gave me an error for missing 
>> libiberty.a. So I copied the file from one of the system lib 
>> directory. It seems like gcc bootstrap needs to compile those files in 
>> gcc-3.3.2/libiberty to produce libiberty.a. Is my assumption correct? 
>> If yes, how do I make libiberty? The Makefile does not have the lines 
>> to make libiberty.a
> 
> 
> That is very odd, as libiberty is about the first part that is being 
> built when bootstrapping, and possibly when doing the other builds as well.
> 
> I'm using the following configure;
> cd objdir
> ../gcc-3.3.2/configure --enable-languages=c,ada enable-threads 
> --enable-multilib --disable-nls
> cd ../gcc-3.3.2/gcc/ada
> touch treeprs.ads [es]info.h nmake.ad[bs]
> cd ~
> cd objdir
> gmake bootstrap
> 
> 
> This will build a 32/64 bit (SPARC) capable compiler, with shared and 
> static libraries, with thread support (default native), and no 
> internationalisation.
> 
> As I write this, the compile is well into building stage2.
> 
> Try the above configure (if not already using it), and see what happens.
> Perhaps it is something wrong with your development environment/paths.
> I'm using CSW build for all dev tools, you are using SFW, but that 
> should theoretically not make a difference, but who knows.
> What about your environment variables?
> PATH=/usr/bin:/usr/ccs/bin:/opt/csw/bin
> Well, in your case /usr/sfw/bin -^
> LD_OPTIONS='-R/opt/csw/gcc3/lib -R/opt/csw/lib -L/opt/csw/gcc3/lib 
> -L/opt/csw/lib'
> Change according to SFW places for libraries.
> CC=gcc
> CFLAGS='-O2'
> LIBCFLAGS='-g -O2'
> CXXFLAGS='-I/opt/csw/include'
> 
> 
> /Andreas
> 
> 



Did you get the following message?

*** This configuration is not supported in the following subdirectories:
      target-libffi target-boehm-gc target-zlib target-libjava zlib 
fastjar target-libobjc
     (Any other directories should still work fine.)



-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-06  6:52                             ` Adrian Hoe
@ 2003-11-06  8:54                               ` Andreas Almroth
  2003-11-06 11:17                                 ` Adrian Hoe
  0 siblings, 1 reply; 34+ messages in thread
From: Andreas Almroth @ 2003-11-06  8:54 UTC (permalink / raw)


Adrian Hoe wrote:
> 
[snip]
> 
> Did you get the following message?
> 
> *** This configuration is not supported in the following subdirectories:
>      target-libffi target-boehm-gc target-zlib target-libjava zlib 
> fastjar target-libobjc
>     (Any other directories should still work fine.)
> 

yup, as we are not building support for C++, Java, Fortran or Objective-C.

/Andreas





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-06  8:54                               ` Andreas Almroth
@ 2003-11-06 11:17                                 ` Adrian Hoe
  2003-11-06 13:55                                   ` Andreas Almroth
  0 siblings, 1 reply; 34+ messages in thread
From: Adrian Hoe @ 2003-11-06 11:17 UTC (permalink / raw)




Andreas Almroth wrote:

> Adrian Hoe wrote:
> 
>>
> [snip]
> 
>>
>> Did you get the following message?
>>
>> *** This configuration is not supported in the following subdirectories:
>>      target-libffi target-boehm-gc target-zlib target-libjava zlib 
>> fastjar target-libobjc
>>     (Any other directories should still work fine.)
>>
> 
> yup, as we are not building support for C++, Java, Fortran or Objective-C.
> 
> /Andreas
> 
> 





Yes! I have successfully built gcc-3.3.2. I tried to compile one of my 
Ada program and it works. Now, my Ada program is statically linked and 
the binary file is large. How do I make a dynamic link?

Here's the contents of 
/usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/adalib


pyxis2% dir lib*
   20 -rw-r--r--   1 root     other       9804 Nov  6 19:01 libgmem.a
2224 -rw-r--r--   1 root     other    1123904 Nov  6 19:01 libgnarl.a
    2 lrwxrwxrwx   1 root     other         13 Nov  6 19:01 libgnarl.so 
-> libgnarl-*.so
12240 -rw-r--r--   1 root     other    6250572 Nov  6 19:01 libgnat.a
    2 lrwxrwxrwx   1 root     other         12 Nov  6 19:01 libgnat.so 
-> libgnat-*.so



I see a file, Makefile.adalib in the same directory. Is this for 
building the necessary lib files? How do I do it?

After bootstrapping, I tried "make gnatlib_and_tools" and succeeded 
without errors. But I don't get the dynamic library files. Have I missed 
something?
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-06 11:17                                 ` Adrian Hoe
@ 2003-11-06 13:55                                   ` Andreas Almroth
  2003-11-07  4:09                                     ` Adrian Hoe
  2003-11-07  4:15                                     ` Adrian Hoe
  0 siblings, 2 replies; 34+ messages in thread
From: Andreas Almroth @ 2003-11-06 13:55 UTC (permalink / raw)


Adrian Hoe wrote:

> 
> Yes! I have successfully built gcc-3.3.2. I tried to compile one of my 
> Ada program and it works. Now, my Ada program is statically linked and 
> the binary file is large. How do I make a dynamic link?
> 

in the objdir/gcc directory;
gmake gnatlib-shared

Have a look in the Makefile and you will see lots of gnat related stuff...

/Andreas




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-06 13:55                                   ` Andreas Almroth
@ 2003-11-07  4:09                                     ` Adrian Hoe
  2003-11-07  6:50                                       ` Andreas Almroth
  2003-11-07  4:15                                     ` Adrian Hoe
  1 sibling, 1 reply; 34+ messages in thread
From: Adrian Hoe @ 2003-11-07  4:09 UTC (permalink / raw)




Andreas Almroth wrote:

> Adrian Hoe wrote:
> 
>>
>> Yes! I have successfully built gcc-3.3.2. I tried to compile one of my 
>> Ada program and it works. Now, my Ada program is statically linked and 
>> the binary file is large. How do I make a dynamic link?
>>
> 
> in the objdir/gcc directory;
> gmake gnatlib-shared
> 
> Have a look in the Makefile and you will see lots of gnat related stuff...
> 
> /Andreas
> 



Thanks again and it built.


After gmake gnatlib-shared, I got these in ada/rts:

   22 -rw-r--r--   1 byhoe    staff      10436 Nov  7 10:56 libgmem.a
2112 -rwxr-xr-x   1 byhoe    staff    1066876 Nov  7 10:56 libgnarl-3.15.so
2224 -rw-r--r--   1 byhoe    staff    1123904 Nov  7 10:44 libgnarl.a
    2 lrwxrwxrwx   1 byhoe    staff         16 Nov  7 10:56 libgnarl.so 
-> libgnarl-3.15.so*
10992 -rwxr-xr-x   1 byhoe    staff    5613388 Nov  7 10:56 libgnat-3.15.so
12240 -rw-r--r--   1 byhoe    staff    6250572 Nov  7 10:44 libgnat.a
    2 lrwxrwxrwx   1 byhoe    staff         15 Nov  7 10:56 libgnat.so 
-> libgnat-3.15.so*


Notice the 3.15 in libgnat and libgnarl. Is this normal? Should I rename 
to 3.3.2?

I'm still not able to dynamic link. What is still missing?
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-06 13:55                                   ` Andreas Almroth
  2003-11-07  4:09                                     ` Adrian Hoe
@ 2003-11-07  4:15                                     ` Adrian Hoe
  2003-11-07  7:00                                       ` Andreas Almroth
  1 sibling, 1 reply; 34+ messages in thread
From: Adrian Hoe @ 2003-11-07  4:15 UTC (permalink / raw)


Andreas Almroth wrote:

> Adrian Hoe wrote:
> 
>>
>> Yes! I have successfully built gcc-3.3.2. I tried to compile one of my 
>> Ada program and it works. Now, my Ada program is statically linked and 
>> the binary file is large. How do I make a dynamic link?
>>
> 
> in the objdir/gcc directory;
> gmake gnatlib-shared
> 
> Have a look in the Makefile and you will see lots of gnat related stuff...
> 
> /Andreas
> 


When I tried to run a simple tasking program, I got "Segmentation Fault 
(code dumped)". Could gcc not build properly? I believe the threading 
was not build properly. Or did I miss some parameters?

I followed:

../gcc-3.3.2/configure --enable-languages=c,ada --enable-threads 
--enable-multilib --disable-nls
cd ../gcc-3.3.2/gcc/ada
touch treeprs.ads [es]info.h nmake.ad[bs]





Simple tasking source:


with Ada.Text_Io; use Ada.Text_Io;

procedure Welcome is
    task Hello;

    task body Hello is
    begin
       Put_Line ("Hello.");
    end Hello;

    task World;

    task body World is
    begin
       Put_Line ("World!");
    end World;

begin
    Put_Line ("Welcome!");
end Welcome;

-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-07  4:09                                     ` Adrian Hoe
@ 2003-11-07  6:50                                       ` Andreas Almroth
  2003-11-19  8:10                                         ` Adrian Hoe
  0 siblings, 1 reply; 34+ messages in thread
From: Andreas Almroth @ 2003-11-07  6:50 UTC (permalink / raw)


Adrian Hoe wrote:
> 
> After gmake gnatlib-shared, I got these in ada/rts:
> 
>   22 -rw-r--r--   1 byhoe    staff      10436 Nov  7 10:56 libgmem.a
> 2112 -rwxr-xr-x   1 byhoe    staff    1066876 Nov  7 10:56 libgnarl-3.15.so
> 2224 -rw-r--r--   1 byhoe    staff    1123904 Nov  7 10:44 libgnarl.a
>    2 lrwxrwxrwx   1 byhoe    staff         16 Nov  7 10:56 libgnarl.so 
> -> libgnarl-3.15.so*
> 10992 -rwxr-xr-x   1 byhoe    staff    5613388 Nov  7 10:56 libgnat-3.15.so
> 12240 -rw-r--r--   1 byhoe    staff    6250572 Nov  7 10:44 libgnat.a
>    2 lrwxrwxrwx   1 byhoe    staff         15 Nov  7 10:56 libgnat.so -> 
> libgnat-3.15.so*
> 
> 
> Notice the 3.15 in libgnat and libgnarl. Is this normal? Should I rename 
> to 3.3.2?
> 

Normal I guess, probably the stuff from gnat 3.15, but who knows...

> I'm still not able to dynamic link. What is still missing?

Have you tried
export LD_OPTIONS='-R... -L...'
Replace ... with the path to the dynamic libraries
Try compile your app, and check with ldd command if it references the *.so.
Also check the gnat manual for command line options run-time options.

/Andreas




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-07  4:15                                     ` Adrian Hoe
@ 2003-11-07  7:00                                       ` Andreas Almroth
  2003-11-07  7:15                                         ` Adrian Hoe
  0 siblings, 1 reply; 34+ messages in thread
From: Andreas Almroth @ 2003-11-07  7:00 UTC (permalink / raw)


Adrian Hoe wrote:
> 
> When I tried to run a simple tasking program, I got "Segmentation Fault 
> (code dumped)". Could gcc not build properly? I believe the threading 
> was not build properly. Or did I miss some parameters?
> 

Right, as I mentioned earlier in the thread, tasking is not working on 
Solaris 9 (SPARC). The sort of workaround (hack in my opinion) that 
worked up to Solaris 8, does not work, as Sun apparently changed the 
behaviour on how in the memory keep track on threads.

Although I fairly sure it won't work, you could experiment with using 
alternative thread libraries, and hope that the ada code is designed to 
change its behaviour. Check in the configure doc for supported threading 
models by gcc, and hopefully those works with ada rts as well.

In the gnat 5.0 sources there is a new implementation, which I have 
tried to use in 3.3 (not 3.3.2), but it did not work. Fault on my side 
I'm sure.
The upcoming version of gcc is rumored to have a newly synced ada tree 
from the latest? gnat, so we will have to wait and see.

I'm currently on Solaris 8, so I have no problem using tasking in the 
application I'm developing, but migration to Solaris 9 is "on wait" 
until tasking is proven to work.

/Andreas




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-07  7:00                                       ` Andreas Almroth
@ 2003-11-07  7:15                                         ` Adrian Hoe
  2003-11-07 17:05                                           ` Andreas Almroth
  0 siblings, 1 reply; 34+ messages in thread
From: Adrian Hoe @ 2003-11-07  7:15 UTC (permalink / raw)


Andreas Almroth wrote:

> Adrian Hoe wrote:
> 
>>
>> When I tried to run a simple tasking program, I got "Segmentation 
>> Fault (code dumped)". Could gcc not build properly? I believe the 
>> threading was not build properly. Or did I miss some parameters?
>>
> 
> Right, as I mentioned earlier in the thread, tasking is not working on 
> Solaris 9 (SPARC). The sort of workaround (hack in my opinion) that 
> worked up to Solaris 8, does not work, as Sun apparently changed the 
> behaviour on how in the memory keep track on threads.
> 
> Although I fairly sure it won't work, you could experiment with using 
> alternative thread libraries, and hope that the ada code is designed to 
> change its behaviour. Check in the configure doc for supported threading 
> models by gcc, and hopefully those works with ada rts as well.
> 
> In the gnat 5.0 sources there is a new implementation, which I have 
> tried to use in 3.3 (not 3.3.2), but it did not work. Fault on my side 
> I'm sure.
> The upcoming version of gcc is rumored to have a newly synced ada tree 
> from the latest? gnat, so we will have to wait and see.
> 
> I'm currently on Solaris 8, so I have no problem using tasking in the 
> application I'm developing, but migration to Solaris 9 is "on wait" 
> until tasking is proven to work.



So, the tasking problem is caused by Solaris 9. I'm sure ACT or someone 
is working on this issue? Does anyone know of any progress?

Too bad I don't have the Solaris 8 CDs. It came pre-installed with 
Solaris 9 CDs bundled in SB150. :( I guess I will have to wait till a 
gnat workaround has been released. :(

How about Solaris 10? I read there is a major work out on Solaris 10 
architecture. Any news?
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-07  7:15                                         ` Adrian Hoe
@ 2003-11-07 17:05                                           ` Andreas Almroth
  0 siblings, 0 replies; 34+ messages in thread
From: Andreas Almroth @ 2003-11-07 17:05 UTC (permalink / raw)


Adrian Hoe wrote:
> 
> So, the tasking problem is caused by Solaris 9. I'm sure ACT or someone 
> is working on this issue? Does anyone know of any progress?

I would re-phrase that as; gnat/gcc 3.3.2 is using a non-portable way 
between Solaris releases of keeping track on threads in its run-time 
environment.
I don't think Sun intended it to be used as it is used right now.
It apparently cuts down the overhead during run-time, but to the cost of 
being non-portable.

> 
> Too bad I don't have the Solaris 8 CDs. It came pre-installed with 
> Solaris 9 CDs bundled in SB150. :( I guess I will have to wait till a 
> gnat workaround has been released. :(
> 
I believe the Solaris 8 CD's are still downloadable from sun.com if you 
have a good link and a cd-writer.

> How about Solaris 10? I read there is a major work out on Solaris 10 
> architecture. Any news?

There are news, but not related to this news group. Check out 
comp.unix.solaris and the developer part of sun.com

/Andreas




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: gcc/gnat 3.3
  2003-11-07  6:50                                       ` Andreas Almroth
@ 2003-11-19  8:10                                         ` Adrian Hoe
  0 siblings, 0 replies; 34+ messages in thread
From: Adrian Hoe @ 2003-11-19  8:10 UTC (permalink / raw)


Andreas Almroth wrote:

> Adrian Hoe wrote:
> 
>>
>> After gmake gnatlib-shared, I got these in ada/rts:
>>
>>   22 -rw-r--r--   1 byhoe    staff      10436 Nov  7 10:56 libgmem.a
>> 2112 -rwxr-xr-x   1 byhoe    staff    1066876 Nov  7 10:56 
>> libgnarl-3.15.so
>> 2224 -rw-r--r--   1 byhoe    staff    1123904 Nov  7 10:44 libgnarl.a
>>    2 lrwxrwxrwx   1 byhoe    staff         16 Nov  7 10:56 libgnarl.so 
>> -> libgnarl-3.15.so*
>> 10992 -rwxr-xr-x   1 byhoe    staff    5613388 Nov  7 10:56 
>> libgnat-3.15.so
>> 12240 -rw-r--r--   1 byhoe    staff    6250572 Nov  7 10:44 libgnat.a
>>    2 lrwxrwxrwx   1 byhoe    staff         15 Nov  7 10:56 libgnat.so 
>> -> libgnat-3.15.so*
>>
>>
>> Notice the 3.15 in libgnat and libgnarl. Is this normal? Should I 
>> rename to 3.3.2?
>>
> 
> Normal I guess, probably the stuff from gnat 3.15, but who knows...
> 
>> I'm still not able to dynamic link. What is still missing?
> 
> 
> Have you tried
> export LD_OPTIONS='-R... -L...'
> Replace ... with the path to the dynamic libraries
> Try compile your app, and check with ldd command if it references the *.so.
> Also check the gnat manual for command line options run-time options.




Nope! LD_OPTIONS alone does not work. I need -lgnat -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/adalib --RTS=/usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/ for gnatmake.


Just checking of I have LD_OPTIONS correct:


$ env

LD_OPTIONS=-R/usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/ 
-L/usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/adalib

Is there a way to save -largs and -L<libpath> each time I use gnatmake. 
I just want to use gnatmake without the hassle to type -l and -L 
everytime so let's forget about Makefile.
-- 
Adrian Hoe
m a i l b o x AT a d r i a n h o e . c o m




^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2003-11-19  8:10 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-10-17 14:45 gcc/gnat 3.3 Adrian Hoe
2003-10-17 21:12 ` Jeff C,
2003-10-17 21:48   ` GCC 5.01p (was: Re: gcc/gnat 3.3) Ludovic Brenta
2003-10-17 22:01     ` Jeff C,
2003-10-20 19:04 ` gcc/gnat 3.3 Andreas Almroth
2003-10-24  9:13   ` Adrian Hoe
2003-10-28  4:19     ` Adrian Hoe
2003-10-28  4:26       ` Jeff C,
2003-10-28 15:36         ` Adrian Hoe
2003-10-29  0:24           ` Jeff C,
2003-11-01  5:51             ` Adrian Hoe
2003-11-01 14:22               ` Jeff C,
2003-11-01 14:28                 ` Jeff C,
2003-11-01 14:52                 ` Ludovic Brenta
2003-11-03  9:36                   ` Adrian Hoe
2003-11-05 18:35                     ` Andreas Almroth
2003-11-06  5:06                       ` Adrian Hoe
2003-11-06  5:20                         ` Adrian Hoe
2003-11-06  6:19                           ` Andreas Almroth
2003-11-06  6:52                             ` Adrian Hoe
2003-11-06  8:54                               ` Andreas Almroth
2003-11-06 11:17                                 ` Adrian Hoe
2003-11-06 13:55                                   ` Andreas Almroth
2003-11-07  4:09                                     ` Adrian Hoe
2003-11-07  6:50                                       ` Andreas Almroth
2003-11-19  8:10                                         ` Adrian Hoe
2003-11-07  4:15                                     ` Adrian Hoe
2003-11-07  7:00                                       ` Andreas Almroth
2003-11-07  7:15                                         ` Adrian Hoe
2003-11-07 17:05                                           ` Andreas Almroth
2003-11-06  6:33                           ` Adrian Hoe
2003-10-28 14:48       ` Steve
2003-11-01 16:29         ` Andreas Almroth
2003-11-03  3:49           ` Adrian Hoe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox