commit: 31410ab2349b734fec3920ade5deea592e7dabe9
parent 0e7ff9a301d3fdf2c55f9185d6ef86e3c05ca298
Author: fosslinux <fosslinux@aussies.space>
Date: Sat, 20 Mar 2021 10:38:23 +1100
Merge pull request #72 from stikonas/autotools
Autotools
Diffstat:
24 files changed, 430 insertions(+), 3 deletions(-)
diff --git a/SHA256SUMS.sources b/SHA256SUMS.sources
@@ -2,8 +2,17 @@
f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e autoconf-2.13.tar.gz
4681bcbb9c9298c506f6405a7deb62c54fc3b339d3239a8f36a5df83daaec94f autoconf-2.52.tar.bz2
6b217a064c6d06603d50a3ad05129aef9435367810c10894210b8dad965d2306 autoconf-2.53.tar.bz2
+a74aea954f36c7beeb6cc47b96a408c3e04e7ad635f614e65250dbcd8ec0bd28 autoconf-2.54.tar.bz2
+f757158a04889b265203eecd8ca92568e2a67c3b9062fa6bff7a0a6efd2244ac autoconf-2.55.tar.bz2
+e1035aa2c21fae2a934d1ab56c774ce9d22717881dab8a1a5b16d294fb793489 autoconf-2.57.tar.bz2
+f0cde70a8f135098a6a3e85869f2e1cc3f141beea766fa3d6636e086cd8b90a7 autoconf-2.59.tar.bz2
+93a2ceab963618b021db153f0c881a2de82455c1dc7422be436fcd5c554085a1 autoconf-2.61.tar.bz2
503cdc2b0992a4309545d17f462cb15f99bb57b7161dfc4082b2e7188f2bcc0f automake-1.4-p6.tar.gz
0dbafacaf21e135cab35d357a14bdcd981d2f2d00e1387801be8091a31b7bb81 automake-1.6.3.tar.bz2
+2dddc3b51506e702647ccc6757e15c05323fa67245d2d53e81ed36a832f9be42 automake-1.7.8.tar.bz2
+6633ee1202375e3c8798a92e1b7f46894f78d541aeea7f49654503fdc0b28835 automake-1.7.tar.bz2
+84c93aaa3c3651a9e7474b721b0e6788318592509e7de604bafe4ea8049dc410 automake-1.8.5.tar.bz2
+8eccaa98e1863d10e4a5f861d8e2ec349a23e88cb12ad10f6b6f79022ad2bb8d automake-1.9.6.tar.bz2
ba03d412998cc54bd0b0f2d6c32100967d3137098affdc2d32e6e7c11b163fe4 bash-2.05b.tar.gz
3fa9daf85ebf35068f090ce51283ddeeb3c75eb5bc70b1a4a7cb05868bfe06a4 bash-3.2.57.tar.gz
e20bdd49a0fb317959b410c1fe81269a620ec21207045d8a37cadea621be4b59 binutils-2.14.tar.bz2
@@ -18,6 +27,7 @@ e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995 flex-2.6.4.tar
a32032bab36208509466654df12f507600dfe0313feebbcd218c32a70bf72a16 grep-2.4.tar.gz
4d2ce9f314f39c9575f913503b0178d6fb2c92920db8e7b7b176b7bab7980fe6 gzip-1.2.4.tar
9f233d8b78e4351fe9dd2d50d83958a0e5af36f54e9818521458a08e058691ba heirloom-devtools-070527.tar.bz2
+a4adadf76b496a6bc50795702253ecfcb6f0d159b68038f31a5362009340bca2 help2man-1.36.4.tar.gz
8e8ce6175d435e7df8c9bbb0e5fd5357691cdc28c1a2d00fdd9b47b7643bec3a libtool-1.4.tar.gz
093c993767f563a11e41c1cf887f4e9065247129679d4c1e213d0544d16d8303 m4-1.4.7.tar.gz
64b30b41fde2ebf669e6af489883fb1df6a06ac30555a96cfa3c39ecce7267dd make-3.80.tar.gz
diff --git a/parts.rst b/parts.rst
@@ -446,11 +446,73 @@ We now start bootstrapping newer versions of autoconf. Version 2.53 now uses ``p
In order to build it with ``autoconf-2.52`` we have to patch it a bit and then do
a second unpatched build with newly built ``autoconf-2.53``.
+automake 1.7
+============
+
+Automake 1.7 and Autoconf 2.54 depend on each other, so we patch out two offending
+autoconf macros to make it build with ``autoconf-2.53``.
+
+autoconf 2.54
+=============
+
+More ``autoconf``.
+
+automake 1.7
+============
+
+Rebuild ``automake`` with ``autoconf-2.54``.
+
+autoconf 2.55
+=============
+
+Even newer ``autoconf``. This is the last version of ``autoconf`` that is buildable
+with ``automake-1.7``.
+
+automake 1.7.8
+==============
+
+Newer ``automake``. This is the latest ``automake`` that is buildable with ``autoconf-2.55``.
+
+autoconf 2.57
+=============
+
+Newer ``autoconf``. This time we were able to skip version 2.56.
+
+autoconf 2.59
+=============
+
+Again, we managed to skip one version.
+
+automake 1.8.5
+==============
+
+We need newer ``automake`` to proceed to newer ``autoconf`` versions. This is the latest
+automake version from 1.8 release series.
+
+help2man 1.36.4
+===============
+
+``help2man`` automatically generates manpages from programs ``--help`` and ``--version``
+outputs. This is not strictly required for bootstrapping but will help us to avoid patching
+build process to skip generation of manpages. This is the newest version of ``help2man`` that
+does not require Perl 5.8.
+
+autoconf 2.61
+=============
+
+Yet another version of ``autoconf``.
+
+automake 1.9.6
+==============
+
+Latest GNU Automake from 1.9 series. Slightly annoyingly depends itself but it is easy to patch
+to make it buildable with 1.8.5. Then we rebuild ``automake-1.9`` with itself.
+
bash 3.2.57
===========
Up to this point, our build of ``bash`` could run scripts but could not be used
interactively. This newer version of ``bash`` compiles without any patches,
provides new features, and is built with GNU readline support so it can be used
-as an interactive shell. autoconf 2.52 is used to regenerate the configure
+as an interactive shell. ``autoconf-2.57`` is used to regenerate the configure
script and bison is used to recreate some included generated files.
diff --git a/rootfs.sh b/rootfs.sh
@@ -228,9 +228,39 @@ get_file https://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.bz2
# autoconf 2.53
get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.53.tar.bz2
+# automake 1.7
+get_file https://ftp.gnu.org/gnu/automake/automake-1.7.tar.bz2
+
+# autoconf 2.54
+get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.54.tar.bz2
+
+# autoconf 2.55
+get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.55.tar.bz2
+
+# automake 1.7.8
+get_file https://ftp.gnu.org/gnu/automake/automake-1.7.8.tar.bz2
+
+# autoconf 2.57
+get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.57.tar.bz2
+
+# autoconf 2.59
+get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.bz2
+
+# automake 1.8.5
+get_file https://ftp.gnu.org/gnu/automake/automake-1.8.5.tar.bz2
+
+# help2man 1.36.4
+get_file https://ftp.gnu.org/gnu/help2man/help2man-1.36.4.tar.gz
+
+# autoconf 2.61
+get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.bz2
+
# bash 3.2.57
get_file https://ftp.gnu.org/gnu/bash/bash-3.2.57.tar.gz
+# automake 1.9.6
+get_file https://ftp.gnu.org/gnu/automake/automake-1.9.6.tar.bz2
+
# General cleanup
find tmp -name .git -exec rm -rf \;
diff --git a/sysa/autoconf-2.12/autoconf-2.12.sh b/sysa/autoconf-2.12/autoconf-2.12.sh
@@ -16,3 +16,7 @@ src_configure() {
src_compile() {
make MAKEINFO=true
}
+
+src_install() {
+ make install MAKEINFO=true
+}
diff --git a/sysa/autoconf-2.13/autoconf-2.13.sh b/sysa/autoconf-2.13/autoconf-2.13.sh
@@ -16,3 +16,7 @@ src_configure() {
src_compile() {
make MAKEINFO=true
}
+
+src_install() {
+ make install MAKEINFO=true
+}
diff --git a/sysa/autoconf-2.54/stage1.sh b/sysa/autoconf-2.54/stage1.sh
@@ -0,0 +1,30 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ rm Makefile.in */Makefile.in */*/Makefile.in aclocal.m4 configure
+ aclocal-1.7
+ sed -i 's/2.54/2.53/' aclocal.m4
+ cat config/m4.m4 >> aclocal.m4
+ autoconf-2.53
+
+ # Otherwise automake-1.7 fails to find autoconf
+ ln -s "${PREFIX}"/bin/autoconf-2.53 "${PREFIX}"/bin/autoconf
+ automake-1.7
+
+ # Install autoconf data files into versioned directory
+ for file in */*/Makefile.in */Makefile.in Makefile.in; do
+ sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file
+ done
+}
+
+src_configure() {
+ ./configure --prefix="${PREFIX}" --program-suffix=-2.54
+}
+
+src_install() {
+ default_src_install
+
+ ln -sf "${PREFIX}"/bin/autoconf-2.54 "${PREFIX}"/bin/autoconf
+}
diff --git a/sysa/autoconf-2.54/stage2.sh b/sysa/autoconf-2.54/stage2.sh
@@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ rm Makefile.in */Makefile.in */*/Makefile.in aclocal.m4 configure
+
+ autoreconf-2.54
+
+ # Install autoconf data files into versioned directory
+ for file in */*/Makefile.in */Makefile.in Makefile.in; do
+ sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file
+ done
+}
+
+src_configure() {
+ ./configure --prefix="${PREFIX}" --program-suffix=-2.54
+}
diff --git a/sysa/autoconf-2.55/autoconf-2.55.sh b/sysa/autoconf-2.55/autoconf-2.55.sh
@@ -0,0 +1,24 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ rm Makefile.in */Makefile.in */*/Makefile.in aclocal.m4 configure
+
+ autoreconf-2.54
+
+ # Install autoconf data files into versioned directory
+ for file in */*/Makefile.in */Makefile.in Makefile.in; do
+ sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file
+ done
+}
+
+src_configure() {
+ ./configure --prefix="${PREFIX}" --program-suffix=-2.55
+}
+
+src_install() {
+ default_src_install
+
+ ln -sf "${PREFIX}/bin/autoconf-2.55" "${PREFIX}/bin/autoconf"
+}
diff --git a/sysa/autoconf-2.57/autoconf-2.57.sh b/sysa/autoconf-2.57/autoconf-2.57.sh
@@ -0,0 +1,22 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ autoreconf-2.55 -f
+
+ # Install autoconf data files into versioned directory
+ for file in */*/Makefile.in */Makefile.in Makefile.in; do
+ sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file
+ done
+}
+
+src_configure() {
+ ./configure --prefix="${PREFIX}" --program-suffix=-2.57
+}
+
+src_install() {
+ default_src_install
+
+ ln -sf "${PREFIX}/bin/autoconf-2.57" "${PREFIX}/bin/autoconf"
+}
diff --git a/sysa/autoconf-2.59/autoconf-2.59.sh b/sysa/autoconf-2.59/autoconf-2.59.sh
@@ -0,0 +1,23 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ autoreconf-2.57 -f
+
+ # Install autoconf data files into versioned directory
+ for file in */*/Makefile.in */Makefile.in Makefile.in; do
+ sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file
+ done
+}
+
+src_configure() {
+ ./configure --prefix="${PREFIX}" --program-suffix=-2.59
+}
+
+src_install() {
+ default_src_install
+
+ ln -sf "${PREFIX}/bin/autoconf-2.59" "${PREFIX}/bin/autoconf"
+ ln -sf "${PREFIX}/bin/autom4te-2.59" "${PREFIX}/bin/autom4te"
+}
diff --git a/sysa/autoconf-2.61/stage1.sh b/sysa/autoconf-2.61/stage1.sh
@@ -0,0 +1,30 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ sed -i -e '/AC_PROG_GREP/d' -e '/AC_PROG_SED/d' configure.ac
+ autoreconf-2.59 -f
+
+ # Install autoconf data files into versioned directory
+ for file in */*/Makefile.in */Makefile.in Makefile.in; do
+ sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file
+ done
+}
+
+src_configure() {
+ ./configure --prefix="${PREFIX}" --program-suffix=-2.61
+}
+
+src_compile() {
+ make MAKEINFO=true
+}
+
+src_install() {
+ make install MAKEINFO=true
+
+ ln -sf "${PREFIX}/bin/autoconf-2.61" "${PREFIX}/bin/autoconf"
+ ln -sf "${PREFIX}/bin/autoheader-2.61" "${PREFIX}/bin/autoheader"
+ ln -sf "${PREFIX}/bin/autom4te-2.61" "${PREFIX}/bin/autom4te"
+ ln -sf "${PREFIX}/bin/autoreconf-2.61" "${PREFIX}/bin/autoreconf"
+}
diff --git a/sysa/autoconf-2.61/stage2.sh b/sysa/autoconf-2.61/stage2.sh
@@ -0,0 +1,25 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ sed -i -e '/AC_PROG_GREP/d' -e '/AC_PROG_SED/d' configure.ac
+ autoreconf-2.61 -f
+
+ # Install autoconf data files into versioned directory
+ for file in */*/Makefile.in */Makefile.in Makefile.in; do
+ sed -i '/^pkgdatadir/s:$:-@VERSION@:' $file
+ done
+}
+
+src_configure() {
+ ./configure --prefix="${PREFIX}" --program-suffix=-2.61
+}
+
+src_compile() {
+ make MAKEINFO=true
+}
+
+src_install() {
+ make install MAKEINFO=true
+}
diff --git a/sysa/automake-1.4-p6/automake-1.4-p6.sh b/sysa/automake-1.4-p6/automake-1.4-p6.sh
@@ -15,3 +15,11 @@ src_prepare() {
src_configure() {
./configure --prefix=/after
}
+
+src_compile() {
+ make MAKEINFO=true
+}
+
+src_install() {
+ make install MAKEINFO=true
+}
diff --git a/sysa/automake-1.7.8/automake-1.7.8.sh b/sysa/automake-1.7.8/automake-1.7.8.sh
@@ -0,0 +1,13 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ rm configure Makefile.in */Makefile.in */*/Makefile.in aclocal.m4
+
+ autoreconf-2.55
+}
+
+src_configure() {
+ ./configure --prefix=/after
+}
diff --git a/sysa/automake-1.7/stage1.sh b/sysa/automake-1.7/stage1.sh
@@ -0,0 +1,15 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ rm configure Makefile.in */Makefile.in */*/Makefile.in aclocal.m4
+ sed -i -e 's/2.54/2.53/' -e '/AC_PROG_EGREP/d' -e '/AC_PROG_FGREP/d' configure.in
+ aclocal-1.6
+ autoconf-2.53
+ automake-1.6
+}
+
+src_configure() {
+ ./configure --prefix=/after
+}
diff --git a/sysa/automake-1.7/stage2.sh b/sysa/automake-1.7/stage2.sh
@@ -0,0 +1,13 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ rm configure Makefile.in */Makefile.in */*/Makefile.in aclocal.m4
+
+ autoreconf-2.54
+}
+
+src_configure() {
+ ./configure --prefix=/after
+}
diff --git a/sysa/automake-1.8.5/automake-1.8.5.sh b/sysa/automake-1.8.5/automake-1.8.5.sh
@@ -0,0 +1,11 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ autoreconf-2.59 -f
+}
+
+src_configure() {
+ ./configure --prefix=/after
+}
diff --git a/sysa/automake-1.9.6/stage1.sh b/sysa/automake-1.9.6/stage1.sh
@@ -0,0 +1,20 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ sed -i 's/1.8a/1.8.5/; s/ filename-length-max=99//' configure.ac
+ autoreconf-2.61 -f
+}
+
+src_configure() {
+ ./configure --prefix=/after
+}
+
+src_compile() {
+ make MAKEINFO=true
+}
+
+src_install() {
+ make install MAKEINFO=true
+}
diff --git a/sysa/automake-1.9.6/stage2.sh b/sysa/automake-1.9.6/stage2.sh
@@ -0,0 +1,19 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ autoreconf-2.61 -f
+}
+
+src_configure() {
+ ./configure --prefix=/after
+}
+
+src_compile() {
+ make MAKEINFO=true
+}
+
+src_install() {
+ make install MAKEINFO=true
+}
diff --git a/sysa/bash-3.2.57/bash-3.2.57.sh b/sysa/bash-3.2.57/bash-3.2.57.sh
@@ -9,7 +9,7 @@ src_prepare() {
# Rebuild configure script
# Ignore harmless error from autoconf for now
rm configure
- autoconf-2.52 || true
+ autoconf-2.57
}
src_configure() {
diff --git a/sysa/bash-3.2.57/checksums b/sysa/bash-3.2.57/checksums
@@ -1 +1 @@
-0d6cbaa5f93fa4c2186ef40dd834b47841b3bf70f6183cfdb6ada38fdb835c5a /after/bin/bash
+62c5acf91b425c3587b498ce7af14fcfed6735db1bfd8d94055a4795aff57b09 /after/bin/bash
diff --git a/sysa/help2man-1.36.4/help2man-1.36.4.sh b/sysa/help2man-1.36.4/help2man-1.36.4.sh
@@ -0,0 +1,21 @@
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ autoreconf-2.59 -f
+}
+
+src_configure() {
+ CC=tcc ./configure --prefix="${PREFIX}" --disable-nls
+}
+
+src_compile() {
+ make
+
+ # fix a broken shebang
+ tail -n +6 help2man > help2man.tmp
+ echo "#!/${PREFIX}/bin/perl" > help2man
+ cat help2man.tmp >> help2man
+ rm help2man.tmp
+}
diff --git a/sysa/run.sh b/sysa/run.sh
@@ -104,6 +104,28 @@ build tcc-0.9.27 tcc-musl-pass3.sh checksums/tcc-musl-pass3
build autoconf-2.53 stage1.sh
build autoconf-2.53 stage2.sh
+build automake-1.7 stage1.sh
+
+build autoconf-2.54 stage1.sh
+build autoconf-2.54 stage2.sh
+
+build automake-1.7 stage2.sh
+
+build autoconf-2.55
+
+build automake-1.7.8
+
+build autoconf-2.57
+
+build autoconf-2.59
+
+build automake-1.8.5
+
+build help2man-1.36.4
+
+build autoconf-2.61 stage1.sh
+build autoconf-2.61 stage2.sh
+
build bash-3.2.57
exec bash run2.sh
diff --git a/sysa/run2.sh b/sysa/run2.sh
@@ -9,6 +9,9 @@
set -e
. helpers.sh
+build automake-1.9.6 stage1.sh
+build automake-1.9.6 stage2.sh
+
echo "Bootstrapping completed."
exec env - PATH=/after/bin PS1="\w # " bash -i