diff options
author | Mike Frysinger <vapier@gentoo.org> | 2022-02-14 05:43:37 +0300 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2022-03-17 04:59:09 +0300 |
commit | f2471da7db7d49e384007c41759e4e8cb3d8340c (patch) | |
tree | d3289a4d0c9cfd5413036e3319b9d39e1f0570ad /newlib/README | |
parent | 96bc16f6b27e9183c293c1a77351ec71f71bc32f (diff) |
newlib: update build system generation documentation
Replace all of the individual autotool steps with a single autoreconf.
This simplifies the documentation greatly, and in the current system,
only takes ~10 seconds to regenerate everything.
Update the developer documentation to cover all the major components
of the current build system. Hopefully this is a fairly complete road
map to everything. I tried to include everything that I wish I knew
when I started hacking on this :P.
Diffstat (limited to 'newlib/README')
-rw-r--r-- | newlib/README | 91 |
1 files changed, 19 insertions, 72 deletions
diff --git a/newlib/README b/newlib/README index aa48b246f..97890b9d2 100644 --- a/newlib/README +++ b/newlib/README @@ -21,15 +21,13 @@ Unpacking and Installation -- quick overview ========================== When you unpack the newlib-4.2.0.tar.gz file, you'll find a directory -called `newlib-4.2.0', which contains: - -COPYING config/ install-sh* mpw-configure -COPYING.LIB config-ml.in libgloss/ mpw-install -COPYING.NEWLIB config.guess* mkinstalldirs* newlib/ -CYGNUS config.sub* move-if-change* symlink-tree* -ChangeLog configure* mpw-README texinfo/ -Makefile.in configure.in mpw-build.in -README etc/ mpw-config.in +called `newlib-4.2.0', which contains many files. Interesting ones: + COPYING* - License files for the sources + README - A common overview of all GNU development projects + configure - The build script for configuring the source tree + Makefile* - Inputs used by configure to generate the Makefile + libgloss/ - The libgloss project + newlib/ - The newlib project To build NEWLIB, you must follow the instructions in the section entitled "Compiling NEWLIB". @@ -46,7 +44,7 @@ More Documentation ================== Newlib documentation is available on the net via: - http://sourceware.org/newlib/docs.html + https://sourceware.org/newlib/docs.html All the documentation for NEWLIB comes as part of the machine-readable distribution. The documentation is written in Texinfo format, which is @@ -77,7 +75,6 @@ format. On its own, TeX cannot read, much less typeset a Texinfo file. `newlib-VERSION-NUMBER/texinfo' directory. - Compiling NEWLIB ================ @@ -511,70 +508,20 @@ run the testsuite. Regenerating Configuration Files ================================ -At times you will need to make changes to configure.ac 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.ac -files in newlib. You will notice that each directory in newlib containing -a configure.ac file also contains an aclocal.m4 file. This file is -generated by issuing: aclocal -I${relative_path_to_toplevel_newlib_dir} --I${relative_path_to_toplevel_src_dir} -The first relative directory is to access acinclude.m4. The second relative -directory is to access libtool information in the top-level src directory. - -For example, to regenerate aclocal.m4 in newlib/libc/machine/arm: - - aclocal -I ../../.. -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.ac 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. - -Makefile.in files are generated from the nearest directory up the chain -which contains a configure.ac file. In most cases, this is the same -directory containing configure.ac, but there are exceptions. -For example, the newlib/libc directory has a number of -subdirectories that do not contain their own configure.ac 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.ac. -When you issue the automake command, you specify the subdirectory for -the Makefile.in you are regenerating. For example: - - automake 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.ac files. -One would change to each of these subdirectories and in turn issue: - - automake Makefile +At times you will need to make changes to configure.ac, Makefile.am and +Makefile.inc files. This will mean that configure and Makefile.in files will +need to be regenerated. The easiest way to do so is by using the autoreconf +tool in the newlib directory. -Let's say you create a new machine directory XXXX off of newlib/libc/machine. -After creating a new configure.ac and Makefile.am file, you would issue: + autoreconf - aclocal -I ../../.. - autoconf - automake Makefile +This will run a number of autotool programs for you. To see the individual +steps, add the -v option. -from newlib/libc/machine/XXXX + autoreconf -v -It is strongly advised that you use an adequate version of autotools. -For this latest release, the following were used: autoconf 2.69, aclocal 1.15.1, -and automake 1.15.1. +It is strongly advised that you use an adequate version of autotools. For this +latest release, the following were used: autoconf 2.69 and automake 1.15.1. Reporting Bugs ============== @@ -587,4 +534,4 @@ Since NEWLIB supports many different configurations, it is important that you be precise about this. Archives of the newlib mailing list are on-line, see - http://sourceware.org/ml/newlib/ + https://sourceware.org/ml/newlib/ |