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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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
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