From f29fdb2f9dae172bf3840206b1a4ff1fab1f8792 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Fri, 27 Oct 2006 19:22:57 +0000 Subject: [PATCH] 2006-10-27 Jeff Johnston * README: Add a brief section on how to regenerate configuration files in newlib. --- newlib/ChangeLog | 5 ++++ newlib/README | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 2de8fcba4..3673c71b1 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,8 @@ +2006-10-27 Jeff Johnston + + * README: Add a brief section on how to regenerate + configuration files in newlib. + 2006-10-25 Vladimir Prus * libc/include/math.h: (exception): Add a comment diff --git a/newlib/README b/newlib/README index 7e8cef756..9e4d92c71 100644 --- a/newlib/README +++ b/newlib/README @@ -305,6 +305,72 @@ directory: $(source_dir)/src/configure --with-newlib --prefix=$(install_dir) --disable-shared +Regenerating Configuration Files +================================ + +At times you will need to make changes to configure.in and Makefile.am files. +This will mean that configure and Makefile.in files will need to be +regenerated. + +At the top level of newlib is the file: acinclude.m4. This file contains +the definition of the NEWLIB_CONFIGURE macro which is used by all configure.in +files in newlib. You will notice that each directory in newlib containing +a configure.in file also contains an aclocal.m4 file. This file is +generated by issuing: aclocal -I${relative_path_to_toplevel_newlib_dir} +For example, to regenerate aclocal.m4 in newlib/libc/machine/arm: + + aclocal -I ../../.. + +Note that if the top level acinclude.m4 is altered, every aclocal.m4 file +in newlib should be regenerated. + +If the aclocal.m4 file is regenerated due to a change in acinclude.m4 or +if a configure.in file is modified, the corresponding configure file in the +directory must be regenerated using autoconf. No parameters are necessary. +In the previous example, we would issue: + + autoconf + +from the newlib/libc/machine/arm directory. + +If you have regenerated a configure file or if you have modified a Makefile.am +file, you will need to regenerate the appropriate Makefile.in file(s). +For newlib, automake is a bit trickier. First of all, all Makefile.in +files in newlib (and libgloss) are generated using the --cygnus option +of automake. + +Makefile.in files are generated from the nearest directory up the chain +which contains a configure.in file. In most cases, this is the same +directory containing configure.in, but there are exceptions. +For example, the newlib/libc directory has a number of +subdirectories that do not contain their own configure.in files (e.g. stdio). +For these directories, you must issue the automake command from newlib/libc +which is the nearest parent directory that contains a configure.in. +When you issue the automake command, you specify the subdirectory for +the Makefile.in you are regenerating. For example: + + automake --cygnus stdio/Makefile stdlib/Makefile + +Note how multiple Makefile.in files can be created in the same step. You +would not specify machine/Makefile or sys/Makefile in the previous example +because both of these subdirectories contain their own configure.in files. +One would change to each of these subdirectories and in turn issue: + + automake --cygnus Makefile + +Let's say you create a new machine directory XXXX off of newlib/libc/machine. +After creating a new configure.in and Makefile.am file, you would issue: + + aclocal -I ../../.. + autoconf + automake --cygnus Makefile + +from newlib/libc/machine/XXXX + +It is strongly advised that you use an adequate version of autotools. +For this latest release, this would be: autoconf 2.59, aclocal 1.9.5, and +automake 1.9.5. + Reporting Bugs ==============