Commit Graph

64 Commits

Author SHA1 Message Date
Matthias Schiffer
c364cb8e46
include: autotools: do not symlink files in autoreconf
In Gluon's Github Actions CI, we were occasionally seeing bizarre build
errors that looked like a config.sub file had been corrupted, or changed
while it was being executed.

The cause turned out to be an interaction of the symlinks created by
autoreconf (pointing from individual tools' build dirs into
`staging_dir/host/share/automake-1.16`) and OpenWrt's host-build.mk,
which replaced config.guess and config.sub *after* autoreconf. The
result was that the replacement of these files ended up following the
symlinks and writing the files in `staging_dir/host/share/automake-1.16`
instead of a package's build dir. This could cause other packages' builds
to fail if they were currently executing the scripts while they were
being written.

To fix this, disable autoreconf's symlinking feature, so that modifying
these files in a package's build directory can't accidentally affect the
staged versions.

Link: https://github.com/openwrt/openwrt/pull/15825
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2024-08-29 20:04:02 +02:00
Michael Pratt
c52d938481
autotools: add list of fake paths to tools
A list that can be used by some packages in order
to force the skipping of every execution of autoreconf.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2023-05-04 06:07:26 +02:00
Michael Pratt
83c1bf2cd4 autotools: remove specialized version of libtool
Remove the specialized copy of libtool
which was used for linking to uClibc++, which is now removed.

Also remove references to the deprecated fixup targets
that invoked this specialized libtool, which no package uses.

Ref: 6b2ed6101 ("uclibc++: remove")
Ref: c10515db6 ("re-enable the libtool PKG_BUILD_DEPENDS for PKG_FIXUP")
Ref: 246a5b334 ("More libtool madness")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2023-03-27 00:41:50 +02:00
Hauke Mehrtens
f08190e743 include: autotools: Add dummy GTKDOCIZE
autoreconf wants to use the gtkdocize tool now if a configure.ac file
defines GTK_DOC_CHECk(). OpenWrt does not ship the gtkdocize tool, just
use true instead. This fixes the build of some applications like guntls.

Fixes: 030447b8f4 ("tools/autoconf: bump to 2.71")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2023-03-16 00:36:12 +01:00
Rosen Penev
c0ba4201f8 libiconv-stub: remove
No longer used.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-07-15 15:21:44 +02:00
Huangbin Zhan
044ca149f3 build: autotools: fix cache path
the cache directory should be autom4te.cache in all $(PKG_AUTOMAKE_PATHS)
rather than $(PKG_BUILD_DIR)/autom4te.cache only

Signed-off-by: Huangbin Zhan <zhanhb88@gmail.com>
2022-03-28 00:15:52 +01:00
Rosen Penev
e6f569406f gettext: remove package
This package was necessary when uClibc was in the tree. Now that uClibc
is gone, this can go too.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-11-20 21:08:25 +01:00
Sebastian Kemper
b2adc7f18c build: prevent dupes in autotools.mk
autotools.mk does not have any protection currently that would prevent
it from being sourced multiple times. Note that both package.mk and
host-build.mk source autotools.mk. So any package Makefile that includes
both will cause hooks to be added twice (at least twice).

This is fixed by declaring a new variable, __autotools_inc, and only
continuing if this variable doesn't equal 1. The same is done by
rules.mk already.

Also, this commit does away with an ifneq that checks PKG_FIXUP (instead
of HOST_FIXUP) for patch-libtool before adding to the host pre-configure
hook. This does not make sense.

The second ifneq is amended. The current one manually does what the
define patch_libtool_host is already doing. It can just use the define.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2021-03-01 16:16:32 +00:00
Rosen Penev
90b1524f75 autotools.mk: fix gettext fixup
The update to gettext 0.21 broke packages that use autotools and
gettext because the sed line was failing with the new version. Fix with
a better sed expression.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-02-23 21:10:56 +01:00
Felix Fietkau
f696cd3df3 build: add support for patching libtool to include ABI version in soname
Use the version from PKG_ABI_VERSION

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-02-15 18:47:19 +01:00
Paul Spooren
a17b8eaa2e build: use SPDX license tags
The license folder is a core part of OpenWrt and all GPL-2.0 licensed.
Use SPDX license tags to allow machines to check licenses.

Signed-off-by: Paul Spooren <mail@aparcar.org>
[rebase, keep some Copyright lines, sharpen commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-05 14:54:47 +01:00
Petr Štetiar
5cf897779e autotools.mk: autoreconf: fix missing install-sh
I'm trying to create a package for libgpiod, which uses
AC_CONFIG_AUX_DIR macro, which is probably leading to the following
configure error:

 autoreconf: running: /openwrt.git/staging_dir/host/bin/libtoolize --force
 OpenWrt-libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `autostuff'.
 OpenWrt-libtoolize: linking file `autostuff/ltmain.sh'
 OpenWrt-libtoolize: putting macros in `m4'.
 ...
 configure: error: cannot find install-sh, install.sh, or shtool in autostuff "."/autostuff

>From the build output it's clear, that libtoolize isn't installing
install-sh symlink, because libtoolize would install install-sh only if
it's being run with --install parameter. Corresponding part in
libtoolize:

 if $opt_install; then
   func_config_update config.guess \
     "$pkgdatadir/config" "$auxdir" pkgconfig_header
   func_config_update config.sub \
     "$pkgdatadir/config" "$auxdir" pkgconfig_header
   func_install_update install-sh \
     "$pkgdatadir/config" "$auxdir" pkgconfig_header
 fi
 func_ltmain_update ltmain.sh \
    "$pkgdatadir/config" "$auxdir" pkgconfig_header

Adding --install parameter to libtoolize fixes this build issue:

 autoreconf: running: /openwrt.git/staging_dir/host/bin/libtoolize --install --force
 OpenWrt-libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `autostuff'.
 OpenWrt-libtoolize: linking file `autostuff/config.guess'
 OpenWrt-libtoolize: linking file `autostuff/config.sub'
 OpenWrt-libtoolize: linking file `autostuff/install-sh'
 OpenWrt-libtoolize: linking file `autostuff/ltmain.sh'
 OpenWrt-libtoolize: putting macros in `m4'.

Cc: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2019-07-26 08:09:16 +02:00
Matthias Schiffer
37cf77d946
treewide: fix build depends to refer to source package names
Build depends must refer to source packages rather than binary package
names.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-01-13 19:54:44 +01:00
Matthias Schiffer
3d71786154
build: move STAGING_DIR_HOSTPKG and BUILD_DIR_HOST back to a common directory for all targets
Using a single host package staging dir (and build dir) significantly speeds up
builds when multiple targets are built in succession, especially for large host
packages like NodeJS.

$(STAGING_DIR)/host is kept in addition to $(STAGING_DIR_HOSTPKG) in most
places; it is still used as destination for host files in Build/InstallDev.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2017-01-18 19:47:36 +01:00
Matthias Schiffer
12d0a66942
include/autotools.mk: use STAGING_DIR_HOSTPKG where appropriate
Make sure binaries install to STAGING_DIR_HOSTPKG are still found when
this variable is eventually modified.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2017-01-14 18:57:13 +01:00
Dirk Neukirchen
336e277e8b autotools: use correct version for gettext FIXUP
0.19.8.1 gettext-full uses "archive-version" of 0.19.8
to replace makros, leading to breakage of PKG_FIXUP:=gettext-version

Signed-off-by: Dirk Neukirchen <dirkneukirchen@web.de>
2016-10-13 20:25:42 +02:00
Felix Fietkau
1193dc4e05 include/autotools.mk: fix gettext installation path
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48421
2016-01-20 23:21:09 +00:00
Felix Fietkau
f8cdadc832 Revert "include/autoconf.mk: decouple host fixups from target fixups"
This reverts commit r48403

SVN-Revision: 48412
2016-01-20 20:46:20 +00:00
Felix Fietkau
d542d8e3c1 include/autoconf.mk: decouple host fixups from target fixups
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48403
2016-01-20 19:12:28 +00:00
Nicolas Thill
ce9b49046c include: improve 'gettext-version' fixup
* enclose the fixup in brackets
 * match anything in the call to AM_GNU_GETTEXT_VERSION
 * call it early (before autoreconf if both are specified)
 * chain a call to autoreconf since it messes with configure.ac

Signed-off-by: Nicolas Thill <nico@openwrt.org>

SVN-Revision: 44225
2015-01-31 08:15:51 +00:00
Jo-Philipp Wich
7074927533 autotools.mk: add a gettext-version PKG_FIXUP (#11236)
This fixup aligns the required gettext version in shipped macros to the one
available in $(STAGING_DIR_HOST).

SVN-Revision: 33708
2012-10-10 17:53:51 +00:00
Jo-Philipp Wich
d40fe9d24e autotools.mk: cope with Debian version strings in libtool
SVN-Revision: 32207
2012-06-11 21:50:50 +00:00
Jo-Philipp Wich
a5d34b8613 autotools.mk: fix autoreconf in subdirectories, thanks field_it for spotting this
SVN-Revision: 29835
2012-01-20 21:31:03 +00:00
Jo-Philipp Wich
d8d9130e45 autotools.mk: link config.rpath before running autoreconf, also touch ABOUT-NLS - needed by minidlna CVS version
SVN-Revision: 28464
2011-10-16 16:44:49 +00:00
Jo-Philipp Wich
e7b094e849 include: autotools.mk: do not fail in patch-libtool fixup if patch is already applied
SVN-Revision: 28419
2011-10-11 18:15:12 +00:00
Jo-Philipp Wich
bd982fb72c autotools.mk: implement PKG_FIXUP:=patch-libtool This change allows to apply OpenWrt, Buildroot and OE libtool fixes to packages which fail badly at autoreconf. The fixup covers the common libtool versions 1.5, 2.2 and 2.4 and automatically determines the correct version to use.
SVN-Revision: 27855
2011-08-01 00:22:53 +00:00
Jo-Philipp Wich
a65b43a46f autotools.mk: disable autoreconf recursion if more than one dir is given in PKG_AUTOMAKE_PATHS
SVN-Revision: 26589
2011-04-11 14:18:55 +00:00
Jo-Philipp Wich
073c5e0e74 add config.rpath and link it in autotools.mk if missing, some packages might need it, especially users of lib-link.m4 or iconv.m4
SVN-Revision: 25753
2011-02-27 15:39:27 +00:00
Jo-Philipp Wich
4fec7f7edb autotools.mk: -B is not passed on by autoreconf, use -I instead - fixes PKG_MACRO_PATHS
SVN-Revision: 25312
2011-02-02 18:18:38 +00:00
Jo-Philipp Wich
ec45087403 autotools.mk: introduce PKG_MACRO_PATHS and HOST_MACRO_PATHS which default to ./m4, add LIBTOOL to AM_TOOL_PATHS
SVN-Revision: 24830
2010-12-26 02:06:50 +00:00
Jo-Philipp Wich
f28b49208b autotools.mk: like libintl, make all libtool fixup packages depend on the libiconv stub
SVN-Revision: 24708
2010-12-19 04:41:18 +00:00
Jo-Philipp Wich
fd181101aa autotools.mk: add a (dummy) libintl build dependency to any package using the libtool fixup
SVN-Revision: 24700
2010-12-19 02:37:56 +00:00
Jo-Philipp Wich
c9f9fc8154 autotools.mk: remove HOST_BUILD_DEPENDS on libtool
SVN-Revision: 24676
2010-12-18 18:14:25 +00:00
Jo-Philipp Wich
4e19240b9b autotools.mk: set AUTOPOINT to "true", not all hosts have it install and it makes autoreconf fail if not present, it also needs cvs which isn't installed on all hosts either
SVN-Revision: 24664
2010-12-18 13:19:59 +00:00
Jo-Philipp Wich
a4350e3861 autotools.mk: touch NEWS, AUTHORS, COPYING and ChangeLog, automake wants them
SVN-Revision: 24588
2010-12-15 06:05:41 +00:00
Jo-Philipp Wich
249693d50b autotools.mk: always pass -I m4, some package don't seem to set correct AMFLAGS (or any at all..)
SVN-Revision: 24574
2010-12-15 01:24:16 +00:00
Jo-Philipp Wich
6489a9c575 autotools.mk: don't rely on shipped autogen.sh files
SVN-Revision: 24573
2010-12-15 01:14:14 +00:00
Jo-Philipp Wich
f3ac8849a5 autotools.mk: explicately pass toolchain versions of automake, autoconf, libtoolize, ... to autoreconf
SVN-Revision: 24570
2010-12-15 00:19:08 +00:00
Jo-Philipp Wich
dbf8d9c516 - implement hooks for hostbuilds - use host build hooks to implement fixups for host build - move separator declaration to rules.mk
SVN-Revision: 24551
2010-12-13 19:04:33 +00:00
Jo-Philipp Wich
135cfe50c9 autotools.mk: add yet another aclocal path
SVN-Revision: 24547
2010-12-13 16:05:53 +00:00
Jo-Philipp Wich
c48a705702 autotools.mk: support autoreconf at different paths, introduce PKG_AUTOMAKE_PATHS which defaults to '.'
SVN-Revision: 24534
2010-12-13 01:44:28 +00:00
Jo-Philipp Wich
bf9e9b6a91 rework aclocal handling, packages have issues writing through the symlink so keep the host aclocal as include path for now
SVN-Revision: 24474
2010-12-11 03:15:10 +00:00
Jo-Philipp Wich
88a1c20900 autotools.mk: let PKG_REMOVE_FILES default to aclocal.m4
SVN-Revision: 24458
2010-12-10 22:59:07 +00:00
Jo-Philipp Wich
3560c34214 autotools.mk: remove autom4ate.cache directory when autoreconf-ing
SVN-Revision: 24434
2010-12-10 16:28:20 +00:00
Felix Fietkau
ffbed0f08a support the autoreconf fixup without libtool
SVN-Revision: 24423
2010-12-10 15:20:51 +00:00
Jo-Philipp Wich
6541593b34 autotools.mk: introduce PKG_REMOVE_FILES to delete certain files after applying patches and before doing any fixups
SVN-Revision: 24348
2010-12-08 15:55:05 +00:00
Jo-Philipp Wich
fa3c5ac38a autotools.mk: remove GNUmakefile before running autoreconf (spotted libgcrypt++)
SVN-Revision: 24344
2010-12-08 11:55:41 +00:00
Jo-Philipp Wich
48b953fa1c autotools.mk: allow disabling autoreconf, remove libdir fixup
SVN-Revision: 24321
2010-12-08 02:24:21 +00:00
Jo-Philipp Wich
f3f3be3dfe autotools.mk: allow autogen.sh / autoreconf to fail (for now)
SVN-Revision: 24320
2010-12-08 01:19:52 +00:00
Jo-Philipp Wich
69aeb3a06c autotools.mk: if ./autogen.sh exists, call that. Call autoreconfig only if configure.in or configure.ac exists
SVN-Revision: 24319
2010-12-08 01:15:38 +00:00