This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: automake
- From: Jeff Johnston <jjohnstn at redhat dot com>
- To: jschopp <jschopp at austin dot ibm dot com>
- Cc: newlib at sources dot redhat dot com
- Date: Fri, 27 Oct 2006 14:07:48 -0400
- Subject: Re: automake
- References: <454138D3.70309@austin.ibm.com>
Joel,
You have to automake in the directory of the nearest configure. For
newlib, all automakes are done with the --cygnus option. If
newlib/acinclude.m4 has been updated you must first do an aclocal -I
(relative path to src/newlib directory). If the configure.in has
changed, you must do an autoconf as well. You then issue automake
--cygnus [dir/]Makefile.
For spu, there is a configure.in inside the machine/spu directory so
you would do the following from the newlib/libc/machine/spu directory.
aclocal -I ../../..
autoconf
automake --cygnus Makefile
For libc/stdio, it would be different. The nearest configure.in file
is in libc so from newlib/libc you might do:
aclocal -I ..
autoconf
automake --cygnus stdio/Makefile
You would also do stdlib/Makefile, errno/Makefile, etc.. but would
not do automake --cygnus machine/Makefile or sys/Makefile since both of
these directories each have their own configure.in files.
Using autoconf 2.59 and automake 1.9.5 should be fine. When I have
to do a mass reconfigure of everything, I have a script that I use.
I hope that clarifies.
-- Jeff J.
jschopp wrote:
I recently spent an entire day to get a Makefile.am turned into a
Makefile.in. Either something is wrong with newlib's build system or
I'm an idiot. While I'm not ready to rule out me being an idiot I
thought I'd share my experience and see if anybody could either fix the
problem or point out the error of my ways.
My last patch modified src/newlib/libc/machine/spu/Makefile.am so I
needed to regenerate src/newlib/libc/machine/spu/Makefile.in. No
problem I figure, I'll just type automake at the top level directory and
everything will be fine. Here are some of my many failures, I've
skipped over some of the embarrassingly stupid ones:
Failed try 1) Go into src type automake
Failed try 2) Realize the top level for this purpose is src/newlib/, go
into that and type automake.
Failed try 3) Realize that I have automake 1.9.6 (standard with FC5) and
everything is built with automake 1.9.5 (standard with FC4). Follow the
warning messages and type aclocal to refresh something. Try again,
still bad.
Failed try 4) automake libc/machine/spu/Makefile produces Makefile.in
that is very bad
Failed try 5) Go download, build and install automake 1.9.5 in a
different directory. Go into src/newlib and use the new automake, my
Makefile.in does nothing.
Failed try 6) 1.9.5 automake libc/machine/spu/Makefile produces
Makefile.in that is still very bad.
Finally correct: With special 1.9.5 automake run automake 4 times, once
in each of newlib, libc, machine, and spu. Copy Makefile.in into new
clean tree as automake has destroyed this one.
Is there a better way. One which doesn't require running automake 4
times in 4 different directories and throwing away a whole tree?
-Joel