1
0
mirror of https://github.com/openwrt/openwrt.git synced 2025-08-07 22:30:33 +08:00

49 Commits

Author SHA1 Message Date
dddf7b05cd tools: automake: fix MAINTAINERCLEANFILES warnings
It seems that, for whatever reason in this case,
the function "vardef ($var, $cond)" does not work
while "$var->def ($cond)" does work for conditionals.

Also, do not define it conditionally when defined unconditionally.
Even though the reordering patch would make that functionally sound,
it still throws a warning which can cause a build to fail
when warnings are treated as errors.

Instead, just add BUILT_SOURCES to every existing case
rather than only when BUILT_SOURCES is defined.

Fixes: 6d2bfe50d3 ("tools/automake: control all cleaning with clean variables")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/19593
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-29 21:31:11 +02:00
aeaa61517b tools: automake: update to 1.18.1
automake update to 1.18 broke buildbots as we dont have makeinfo host tool
present, after investigation this was an automake regression that was fixed
in 1.18.1[1].

So, since 1.18.1 contains small number of fixes, update to it instead of
just backporting the single commit.

[1] https://cgit.git.savannah.gnu.org/cgit/automake.git/commit/?id=9b92240af4a8f7a3050c13adec367cf48e9ce063

Fixes: d7d0205940 ("tools/automake: update to 1.18")
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-26 17:09:19 +02:00
d7d0205940 tools/automake: update to 1.18
Update to the latest stable release
with the new API versions for binaries.

The temporary patching of shebangs is no longer necessary
since the whitespace check has been changed to a warning.

Part of a patch was upstreamed and therefore removed.

Manually adjusted patch:
 - 000-relocatable.patch
 - 101-do-not-require-files.patch

All other patches are automatically refreshed.

Link: https://lists.gnu.org/archive/html/autotools-announce/2025-05/msg00001.html
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/16522
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-26 14:38:09 +02:00
30105c77ef tools/automake: do not delete libtool in clean targets
For the building of some packages, it is helpful
to completely clean the packaged release copy of the source,
however this usually deletes libtool if used,
otherwise causing the need to run the bootstrap script twice.

Not deleting libtool allows compilation to continue directly
after cleaning pre-generated files in the package distribution.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/16522
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-26 14:38:08 +02:00
6d2bfe50d3 tools/automake: control all cleaning with clean variables
Automake previously makes rules for the target maintainer-clean
to remove both the contents of MAINTAINERCLEANFILES and BUILT_SOURCES.

In order to have finer control over what is removed,
let there only be a rule for deleting MAINTAINERCLEANFILES,
and set MAINTAINERCLEANFILES to a default value of BUILT_SOURCES
if only conditional or missing, and append BUILT_SOURCES if user-defined.

In order to maintain conditional values for MAINTAINERCLEANFILES
while keeping a default value, change the behavior of automake
to output unconditional definitions before conditions.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/16522
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-26 14:38:08 +02:00
9ea963e471 tools/automake: do not delete Makefile in clean targets
For the building of some packages, it is sometimes helpful
to completely clean the packaged release copy of the source,
however this usually both requires and deletes the Makefile,
causing the need to run the configure stage twice.

Not deleting the Makefile allows compilation to continue directly
after cleaning pre-generated files in the package distribution.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/16522
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-26 14:38:08 +02:00
03b9b7e894 tools/automake: update to 1.17
Update to the latest stable release.

This is the automake API that newer packages
such as libtool 2.5.4 is bootstrapped with,
and is required for bootstrapping it again.

Manually Adjusted:
 - 000-relocatable.patch

All other patches are automatically refreshed.

Link: https://lists.gnu.org/archive/html/autotools-announce/2024-07/msg00000.html
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/16522
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-26 14:38:07 +02:00
793be94a3a tools/automake: hardcode portable location for Perl
The latest automake version 1.17 includes a restriction against whitespace
for the configure variable $PERL, which is set to "/usr/bin/env perl"
for portability reasons with products like the SDK.

Instead of waiting until the next version of automake is released
for this error to be converted to a warning,
set the shebang of automake and aclocal manually with a patch.

In past git history, these lines have been patched before,
but only to remove the "-w" flag in favor of setting global warnings
in the script itself so that env does not strip the option.

The other purposes of Perl during building can use
the static staging directory path without any limitations.

Also, the configure variable "am_cv_prog_PERL_ithreads"
for the detection of Perl threads support
has been removed since 2013 in favor of dynamic runtime detection.
Remove our manual setting of this variable value as it has no effect.

Ref: 1ef07eee4 ("automake: forcibly disable perl ithreads support")
Ref: 182626687 ("ithreads: use runtime (not configure time) detection of perl threads") # automake.git
Ref: f6c581cc3 ("automake: portability fixes")
Ref: 87f3365d9 ("Revert "tools/automake: bump to 1.17"")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/16522
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-07-26 14:38:07 +02:00
87f3365d90 Revert "tools/automake: bump to 1.17"
This reverts commit b930ce3bf7.

Bump to 1.17 broke SDK portability as it partially reverted commit
("automake: portability fixes") which made Perl PATH "/usr/bin/env perl"
as that is portable, as otherwise automake will set the absolute path to
the Perl binary and this will then fail when using SDK on a different
system as that PATH is not present.

So, since fixing this would require backport of upstream commit
("configure: make perl path with whitespace a warning, not error.") which
requires autoreconf to be done in order for configure to get regenerated
we cannot do it because at that time we do not have automake built.

So, for now revert the bump until upstream makes a new release.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-02-24 12:27:47 +01:00
b930ce3bf7 tools/automake: bump to 1.17
refresh patch:
000-relocatable.patch
100-aclocal-skip-not-existing-directories.patch
101-do-not-require-files.patch
200-other-V-values-for-verbosity.patch
Announcement:https://lists.gnu.org/archive/html/info-gnu/2021-01/msg00010.html

Signed-off-by: Jack Sun <sunjiazheng321521@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17827
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-02-19 09:43:38 +01:00
bab3ae2ee7 tools: prefer gz or bz2 tarballs
In the light of recent XZ events, and fundamental XZ issues lets work on
moving away from using XZ.

So, use gz compressed tarballs as sources whenever possible.

dwarves only offers bz2 compressed tarballs, so use those as size
difference is minor compared to XZ.

Signed-off-by: Robert Marko <robimarko@gmail.com>

dwarves
2024-04-06 11:24:18 +02:00
89a8269c10 tools/automake: move file requirements to higher strictness
GNU standards requires certain files at the top-level directory
of a package that automake is used with, mostly documentation.

If one of these files happens to be missing, autoreconf would fail.

Move these file requirements to the more strict 'GNITS' setting.

Link: https://www.gnu.org/software/automake/manual/html_node/Strictness.html
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2023-05-04 06:07:28 +02:00
b094c6976c tools/automake: verbose variable compatibility
An old patch attempted to harmonize the way that
both Openwrt and Automake uses the $(V) variable.
However, it was reverted because of the side-effects.

This method is more simple and just
allows Automake to accept any string
as part of the verbosity toggle,
falling back to the default if null.

Ref: e6901bf90 ("tools/automake: Revert "Do not use $(V) - force AM_V=1"")
Ref: 43365ca66 ("Do not use $(V) - force AM_V=1")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2023-03-27 00:41:49 +02:00
f509935fe3 tools/automake: bump to 1.16.5
Automake releases 1.16.2 to 1.16.5 are major releases,
the two before are minor releases.

The first patch needed rewriting, some lines moved
to be consistent with the same change upstream in other files.
This also simplifies the patch.

Second patch refreshed.

Links to changelogs in order, oldest to newest.

Link: https://lists.gnu.org/archive/html/info-gnu/2018-02/msg00008.html
Link: https://lists.gnu.org/archive/html/info-gnu/2018-03/msg00002.html
Link: https://lists.gnu.org/archive/html/info-gnu/2020-03/msg00009.html
Link: https://lists.gnu.org/archive/html/info-gnu/2020-11/msg00005.html
Link: https://lists.gnu.org/archive/html/info-gnu/2021-07/msg00013.html
Link: https://lists.gnu.org/archive/html/info-gnu/2021-10/msg00000.html
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2023-03-13 22:53:41 +01:00
a3cf796e77 tools/automake: use make variable to generate aclocal symlinks
Instead of having a somewhat random list of aclocal symlinks
which are named with the API versioning scheme,
install a symlink for every API version since 1.11
(the first release after Automake was moved to git)
using the API version number from the version of automake
that is currently in openwrt.

Automake API versioning does not include the patch level number.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2023-03-13 22:53:41 +01:00
8d0ff17ec9 tools/automake: clean up build recipes
The configure option datarootdir
defaults to PREFIX/share.

The Host/Clean define should be Host/Uninstall
otherwise it is removing the build directory
before there is a chance to try "make uninstall"
in that directory.
Host/Clean/Default is no longer defined.

Consolidate the install stage with Host/Uninstall,
since it is essentially uninstalling before installing.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2023-03-13 22:53:41 +01:00
3606fcce0b automake: use STAGING_DIR_HOST in relocatable patch
Instead of using STAGING_DIR and then go up one dir with '../' use
directly STAGING_DIR_HOST env variable. This should produce cleaner
symbolic links.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-01-09 21:33:18 +01:00
a63805b25f tools: add Host/Uninstall where possible
This cleans staging_dir when calling tool/x/clean.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-10-20 00:33:22 +02:00
ffd9bd7b9b automake: always use correct path for aclocal.real
Before this commit, it was assumed that aclocal.real is in the PATH. While
this was fine for the normal build workflow, this led to some issues if

    make TOPDIR="$(pwd)" -C "$pkgdir" compile

was called manually. The command failed with:

    /home/.../openwrt/staging_dir/host/bin/aclocal: line 2: aclocal.real: command not found
    autoreconf: /home/.../openwrt/staging_dir/host/bin/aclocal failed with exit status: 127

After the commit, the package is built sucessfully.

Signed-off-by: Leonardo Mörlein <me@irrelefant.net>
2022-07-14 12:57:12 +02:00
e6901bf902 tools/automake: Revert "Do not use $(V) - force AM_V=1"
This reverts commit 43365ca662 ("Do not use $(V) - force AM_V=1") as
it breaks verbose output in automake packages, deviating from the
upstream and expected behaviour.

As you can see, neither make command outputs the expected verbose
compile command lines:

```
$ make package/mtd-utils/{clean,compile} V=sc
...
  CCLD     lsmtd
  CC       nand-utils/nanddump.o
  CCLD     nanddump
...
```
```
$ make -C build_dir/target*/mtd-utils-2.1.1 clean
...
$ make -C build_dir/target*/mtd-utils-2.1.1 V=1
...
  CC       lib/libmtd.o
  CC       lib/libfec.o
  CC       lib/common.o
  CC       lib/libcrc32.o
```

The original reason for this commit was some packages failing to build
if V is set to something other than 0 or 1. See the discussion in PR
https://github.com/openwrt/openwrt/pull/2481 for how to fix this in the
package Makefile.

Ref: PR#2481
Acked-by: Mirko Vogt <mirko-openwrt@nanl.de>
Signed-off-by: Fredrik Olofsson <fredrik.olofsson@anyfinetworks.com>
[commit title/description facelift]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2019-11-06 00:21:15 +01:00
c61a239514 add PKG_CPE_ID ids to package and tools
CPE ids helps to tracks CVE in packages.
https://cpe.mitre.org/specification/

Thanks to swalker for CPE to package mapping and
keep tracking CVEs.

Acked-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2017-11-17 02:24:35 +01:00
eafaef3765 automake: Update to version 1.15.1
The new version includes the fix for new perl versions,
so remove the related patch.

Signed-off-by: Thomas Langer <thomas.langer.71@gmail.com>
2017-07-04 22:56:55 +02:00
92c80f38cf automake: import upstream fix for perl 5.26
Build broke as distributions now include Perl 5.26 and automake
triggered an "Unescaped left brace in regex" error.
Import upstream commit 13f00eb449 to fix that.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-06-07 19:47:34 +02:00
720b99215d treewide: clean up download hashes
Replace *MD5SUM with *HASH, replace MD5 hashes with SHA256

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-12-16 22:39:22 +01:00
f6c581cc3e automake: portability fixes
The rework of the host tools discovery caused automake to embed
absolute paths to staging_dir/host/bin/perl into the shebang
of the generated automake executables.

Switch to the portable "/usr/bin/env perl" and enable global
warnings through "$^W" instead of the "-w" interpreter argument.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 44972
2015-03-24 13:13:01 +00:00
bc67ebc585 disable silent-rules by default
OpenWrt hides verbose output by default,
regardless of automake silent-rules being en-/disabled.

If we enable verbose output for package builds (V=s)
however, we'd like to see as most as possible.

Signed-off-by: Mirko Vogt <mirko@openwrt.org>

SVN-Revision: 44685
2015-03-12 00:39:50 +00:00
43365ca662 Do not use $(V) - force AM_V=1
Projects using silent-rules might otherwise fail to compile.

This is due to the following resulting Makefile code:

AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :

Automake directly uses $(V) for variable name expansion
which fails if $(V) is set to sth. else other than '0' or '1'.

This patch forces automake to not take $(V) into account
but to always use the default config for verbosity.

A better approach would be to actually take $(V) into account,
however not just pass it through (AM_V='$(V)') but
set AM_V to 0 if $V=0 / unset and to 1 otherwise.

This plan however is foiled due to my frustration about
automake as well as my lack of m4 skills.

automake bug report: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20077

Signed-off-by: Mirko Vogt <mirko@openwrt.org>

SVN-Revision: 44684
2015-03-12 00:39:48 +00:00
73a1f3597b tools: bootstrap automake to pickup the correct in-tree autoconf
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 43958
2015-01-13 07:49:01 +00:00
cdaf75b641 tools: automake: update to v1.15
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 43895
2015-01-09 14:51:23 +00:00
0b4e8c4c36 automake: update to 1.11.6
Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 39108
2013-12-17 02:47:13 +00:00
639ee81002 fixes python related autokrampf install bug
this commit fixes a compile bug triggered by pygobject

SVN-Revision: 32109
2012-06-07 14:57:08 +00:00
093b12cba9 automake: update to 1.11.3
Signed-off-by: Luka Perkov <openwrt@lukaperkov.net>

SVN-Revision: 31173
2012-04-02 16:25:28 +00:00
1ef07eee4a automake: forcibly disable perl ithreads support The SDK when build on a machine with perl ithreads enabled will fail to run on many Gentoo systems because perl is usually built without thread capability there. In order to circumvent this issue forcibly disable the ithreads support, tested on CentOS 5.6, Ubuntu 10.04 LTS and Gentoo.
SVN-Revision: 29979
2012-02-01 15:06:36 +00:00
537164cb6d automake: generate relative aclocal symlinks in staging_dir
SVN-Revision: 29929
2012-01-28 03:51:22 +00:00
122069caba automake: further relocation fixes
SVN-Revision: 29828
2012-01-20 15:19:22 +00:00
4174cdabde automake: make relocatable by searching resources relative to STAGING_DIR
SVN-Revision: 29820
2012-01-20 02:55:55 +00:00
ccb6b0a063 tools: clean up Makefiles / make ccache work
SVN-Revision: 29754
2012-01-15 11:43:13 +00:00
8f591af937 automake: rework patch; only skip when the directories does not exist, this preserves error cases like missing access permissions
SVN-Revision: 24427
2010-12-10 16:10:07 +00:00
127c395a0e automake: use symlinks instead of hardlinks to link aclocal versions
SVN-Revision: 24425
2010-12-10 16:03:27 +00:00
94c3f4ab4d automake: skip over not existing m4 macro directories, don't fail
SVN-Revision: 24424
2010-12-10 16:01:33 +00:00
276ef23e4d tools/automake: add symbolic links upto version 1.11.1
SVN-Revision: 24287
2010-12-06 17:38:09 +00:00
d5aecceacd tools/automake: update to version 1.11.1
SVN-Revision: 24278
2010-12-06 12:11:47 +00:00
9f15eecf64 update automake to 1.10, fixes #6022
SVN-Revision: 18527
2009-11-24 21:17:20 +00:00
e53003f5fc clean up / fix various Host/Clean templates in tools/
SVN-Revision: 15714
2009-05-08 20:44:47 +00:00
63129f9b4c clean up automake/pkg-config handling, move separate host/package variable exports to templates, fix automake path for host builds
SVN-Revision: 15339
2009-04-22 22:05:55 +00:00
7eb1589875 build system refactoring in preparation for allowing packages to do host-build steps
SVN-Revision: 14610
2009-02-22 04:37:20 +00:00
6b4e3e7609 Check for existence of target aclocal folder before including them.
SVN-Revision: 12934
2008-10-09 12:55:08 +00:00
1f819de60e Add wrapper around aclocal which also search in the targets staging dir aclocal folder for m4 files.
SVN-Revision: 12929
2008-10-08 21:50:03 +00:00
2112af299f add automake to tools/
SVN-Revision: 9901
2007-12-25 00:27:32 +00:00