1 AUTHOR: Tushar Teredesai <tushar AT linuxfromscratch DOT org>
7 SYNOPSIS: Installing multiple autotool versions in parallel.
10 GNU's autotools comprises of three packages:
11 * autoconf: <http://www.gnu.org/gnu/autoconf/>
12 * automake: <http://www.gnu.org/gnu/automake/>
13 * libtool: <http://www.gnu.org/gnu/libtool/>
14 Details on how to use these packages can be found at their homepage. Also
15 refer to the autotools hint.
17 There are some misconceptions in the LFS community regarding autotools. Before
18 going into the installation details, we will first tackle these
20 * Misconception: Autotools are a "core" part of a system.
21 Counter argument: These tools are useless for most of the LFSers. They are
22 only useful for folks who are maintaining an autotools based package.
23 Someone compiling a package from source only needs autotools if they have a
24 patch that requires the package to be re-autoconfed. Currently there is a
25 grand total of 4 packages in BLFS and 0 packages in LFS that need autotools.
26 And perhaps, that requirement can be removed if a patch is generated that
27 patches the final files instead of the .in or .am files.
28 * Misconception: I only need the latest version of the tools.
29 Counter argument: The various versions of autotools are not compatible with
30 each other. That is why all the distributions install multiple versions of
31 these packages in parallel. The various autotool versions are more like
32 glib-1.x and glib-2.x series. If a package needs glib-1.x branch, you cannot
33 just expect it to work with glib-2.x branch. The distributions install the
34 following versions of packages:
36 - automake: 1.4-p6 1.5 1.6.3 1.7.9 1.8.5 1.9.6
39 This hint details a way to install these multiple versions in parallel and
40 allow you to choose which version to use. The general way to only install
41 versions that you need, when you need it.
44 * http://www.linuxfromscratch.org/hints/downloads/attachments/autotools-multiversion/autoconf-wrapper
45 * http://www.linuxfromscratch.org/hints/downloads/attachments/autotools-multiversion/automake-wrapper
46 (Note: The following patches are optional but recommended)
47 * http://www.linuxfromscratch.org/patches/downloads/autoconf/autoconf-2.13-race.patch
48 * http://www.linuxfromscratch.org/patches/downloads/autoconf/autoconf-2.13-fedora_macro_fixes-1.patch
49 * http://www.linuxfromscratch.org/patches/downloads/automake/automake-1.4-p6-fedora_fixes.patch
50 * http://www.linuxfromscratch.org/patches/downloads/automake/automake-1.5-fedora_fixes.patch
57 The multiple versions will be installed by making use of the --program-suffix
58 argument to the configure script. Then a wrapper script is installed that will
59 use the appropriate version based on the value of an envar. If no variable is
60 declared, the latest version is used.
62 * Installation of autoconf-2.13:
63 patch -Np1 -i ../autoconf-2.13-race.patch
64 patch -Np1 -i ../autoconf-2.13-fedora_macro_fixes-1.patch
65 ./configure --prefix=/usr --program-suffix=-2.13
66 make acdatadir=/usr/share/autoconf-2.13
67 make acdatadir=/usr/share/autoconf-2.13 install
69 * Installation of autoconf-2.59:
70 ./configure --prefix=/usr --program-suffix=-2.59
71 make pkgdatadir=/usr/share/autoconf-2.59
72 make pkgdatadir=/usr/share/autoconf-2.59 install
74 * Installation of automake-1.4-p6:
75 patch -Np1 -i ../automake-1.4-p6-fedora_fixes.patch
76 ./configure --prefix=/usr --program-suffix=-1.4
79 rm -v -f /usr/bin/*-1.4-1.4
81 * Installation of automake-1.5:
82 patch -Np1 -i ../automake-1.5-fedora_fixes.patch
83 ./configure --prefix=/usr --program-suffix=-1.5
86 rm -v -f /usr/bin/*-1.5-1.5
88 * Installation of automake-1.6.3:
89 ./configure --prefix=/usr --program-suffix=-1.6
92 rm -v -f /usr/bin/*-1.6-1.6
94 * Installation of automake=1.7.9:
95 ./configure --prefix=/usr --program-suffix=-1.7
98 rm -v -f /usr/bin/*-1.7-1.7
100 * Installation of automake-1.8.5:
101 ./configure --prefix=/usr --program-suffix=-1.8
104 rm -v -f /usr/bin/*-1.8-1.8
106 * Installation of automake-1.9.6:
107 ./configure --prefix=/usr --program-suffix=-1.9
110 rm -v -f /usr/bin/*-1.9-1.9
112 * Installation of autoconf-wrapper:
113 install -v autoconf-wrapper /usr/bin
114 ln -v -sf autoconf-wrapper /usr/bin/autoconf
115 ln -v -sf autoconf-wrapper /usr/bin/autoheader
116 ln -v -sf autoconf-wrapper /usr/bin/autom4te
117 ln -v -sf autoconf-wrapper /usr/bin/autoreconf
118 ln -v -sf autoconf-wrapper /usr/bin/autoscan
119 ln -v -sf autoconf-wrapper /usr/bin/autoupdate
120 ln -v -sf autoconf-wrapper /usr/bin/ifnames
122 * Installation of automake-wrapper:
123 install -v automake-wrapper /usr/bin
124 ln -v -sf automake-wrapper /usr/bin/aclocal
125 ln -v -sf automake-wrapper /usr/bin/automake
127 * Installation of libtool-1.5.20:
128 ./configure --prefix=/usr
132 * Using a specific version of autotools:
133 By default, autoconf-2.59 and automake-1.9 are used.
135 To use a particular version of autoconf, export the envar WANT_AUTOCONF.
136 Alternately, run the version specific executable.
138 To use a particular version of automake, export the evnar WANT_AUTOMAKE.
139 Alternately, run the version specific executable.
141 To identify which version you would need to regenerate the files, use the
143 * For autoconf, check the file configure. It will have the version of autoconf
144 that was used to generate the package.
145 * For automake, check the file Makefile.in. It will have the version of
146 automake that was used to generate the package.
149 * Gentoo and Fedora maintainers.
153 * Initial Version of the hint.
155 * Smrutee: Happy Valentine's Day.
156 * Corrected patch download location. Thanks to Geoff Johnson.