This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: automake


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]