Commit Graph

53 Commits

Author SHA1 Message Date
Petr Štetiar b522da5b16
scan.mk: do not silence output of dump phase
Make it easier to spot currently hidden issues:

 $ make defconfig V=sc
 ...
 Collecting target info: target/linux/airohabash: -c: line 1: syntax error near unexpected token `|'
 bash: -c: line 1: `echo 1686815253<LINUX_VERMAGIC> | staging_dir/host/bin/mkhash md5 | cut -b1-8'
 bash: -c: line 1: syntax error near unexpected token `|'
 bash: -c: line 1: `echo 1686815253<LINUX_VERMAGIC> | staging_dir/host/bin/mkhash md5 | sed -E 's/(.{8})(.{4})(.{4})(.{4})(.{10})../\1-\2-\3-\4-\500/''
 ...

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2023-11-13 14:01:24 +01:00
Michael Pratt d87a8aa148
treewide: add ORIG_PATH variable
Add a variable that stores the original value of $PATH
in the host system's shell, before Make alters it.

This can be useful for when it is necessary
to ignore symlinks and programs made by the build system.

Define this new variable before all instances of
'export PATH:=' or similar.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2023-06-05 08:31:47 +02:00
Christian Marangi 2a3283643c
treewide: derive host and hostpkg path from STAGING_DIR
STAGING_DIR may be provided from command line. We currently hardcoded
STAGING_DIR_HOST and STAGING_DIR_HOSTPKG to the default location but we
currently have some relocatable patch that derive the path from
STAGING_DIR.

Fix this and correctly derive STAGING_DIR_HOST and STAGING_DIR_HOSTPKG
from STAGING_DIR.

The intention is to fix inconsistency from the relocatable patch and the
use of STAGING_DIR_HOST that is always hardcoded.
This with a wrong configuration may end up in broken state with some
host tools expecing a PATH from STAGING_DIR and others using library
from the default staging_dir/host path.

To save downstream project the original implementation is saved while
fixing the inconsistency between patch and .mk.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-01-09 21:33:20 +01:00
Leo Chung eb787b5b9d build: fix find warning with SCAN_EXTRA
If you change SCAN_EXTRA variable with "-path target/linux/xxxx" in
include/toplevel.mk for speed up scan, find will warn with:

find: warning: you have specified the global option -maxdepth after
the argument -path, but global options are not positional, i.e.,
-maxdepth affects tests specified before it as well as those specified
after it.  Please specify global options before other arguments.

The find option -mindepth -maxdepth are global options and must be
before any path option. Change order of $(SCAN_EXTRA) after -mindepth
and -maxdepth to fix this.

Signed-off-by: Leo Chung <gewalalb@gmail.com>
[capitalize Description, Author and Sob and minor description tweak]
Signed-off-by: Christian 'Ansuel' Marangi <ansuelsmth@gmail.com>
2022-06-05 15:38:27 +02:00
Leonardo Mörlein b993b68b6c build: introduce $(MKHASH)
Before this commit, it was assumed that mkhash 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. In most of the cases, I just saw warnings like this:

    make: Entering directory '/home/.../package/gluon-status-page'
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    [...]

While these were only warnings and the package still compiled sucessfully,
I also observed that some package even fail to build because of this.

After applying this commit, the variable $(MKHASH) is introduced. This
variable points to $(STAGING_DIR_HOST)/bin/mkhash, which is always the
correct path.

Signed-off-by: Leonardo Mörlein <me@irrelefant.net>
2021-05-13 15:13:15 +02:00
Sven Roederer b81cee86e6 build: have scripts/feeds honor all toplevel .mk-files of a feed
The luci and freifunk feed having a common Makefile included by the
individual packages. Currently a change to this file will be ignored
when running "scripts/feeds update".
When we are updating for a feed, add a dependency for all .mk files
in the root of it.

Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
2019-10-27 14:32:13 +01:00
Hauke Mehrtens d0b45962ef build: Fix print without color
The original patch removed the printing completely, just remove the
color.

Fixes: eabc1ddc45  ("build: Honour NO_COLOR in include/scan.mk")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2019-02-17 19:30:34 +01:00
R. Diez eabc1ddc45 build: Honour NO_COLOR in include/scan.mk
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
Hi all:

This is my first OpenWrt patch. I am a clean, pure newbie! 8-)

Honour NO_COLOR in Makefile function 'progress' in include/scan.mk, in the same way that include/verbose.mk does.

Signed-off-by: R. Diez <rdiezmail-openwrt@yahoo.com>
2019-02-17 19:22:04 +01:00
Felix Fietkau 29b2199eb0 build: fix target metadata scan dependencies
Move SCAN_DEPS to scan.mk to eliminate redundancy with scripts/feeds
Add image/*.mk to SCAN_DEPS for targets to pick up newly added devices

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-07-02 14:27:06 +02:00
Felix Fietkau 9467ce42da build: get rid of host.mk
Defined required host related variables in toplevel.mk instead

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-02-26 13:31:44 +01:00
Felix Fietkau be206eba3a build: get rid of FIND_L from host.mk
This was added for Mac OS X many years ago, but recent versions also
support find -L

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-02-26 13:31:44 +01:00
Jo-Philipp Wich 90ed0aa859 build: scan.mk: consider KernelPackage pattern as well
The removal of the ".+Package" pattern in scan.mk also caused the build
system to skip over Makefiles defining only kmods. Adjust the grep pattern
to consider packages with "call KernelPackage" signatures as well.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-01-10 16:26:55 +01:00
Jo-Philipp Wich a891e5e14f build: scan.mk: remove overlay broad grep pattern
Commit af0b91c "allow scan.mk to find python packages introduced in [8639]"
added some special casing to scan.mk to accomodate some nonstandard python
packages.

Nowadays this pattern is not needed anymore and produces false positives
when using the LEDE source repository as feed within the SDK since the
metadata scanning wrongly picks up target/imagebuilder/Makefile as package,
leading to an  "ERROR: please fix feeds/base/target/imagebuilder/Makefile"
message.

Remove the now uneeded pattern to fix such stray errors during metadata
scanning.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-01-10 15:16:28 +01:00
Felix Fietkau 84bd74057f build: use mkhash to replace various quirky md5sum/openssl calls
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-05 11:09:12 +01:00
Yousong Zhou 62da60b220 build: scan.mk: remove not used variable SCAN_STAMP
It was left behind since rewrite of metadata scanning done with commit
bdc9419 in July 2007

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2016-11-24 12:53:18 +01:00
Felix Fietkau 934901fb3e build: leaving behind incomplete metadata files on cancelled builds
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-10-04 16:01:41 +02:00
Felix Fietkau 830c308cf9 build: ignore the linux package in the sdk only for generating package data, not for dependencies
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48171
2016-01-10 16:35:24 +00:00
Felix Fietkau 055ef8d691 build: do not allow the SDK to reconfigure built-in kernel modules
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48155
2016-01-08 23:06:59 +00:00
Felix Fietkau 988e3d85b0 include/scan.mk: Add -a argument to the grep to treat all Makefiles as a text file.
Hello,

I found out that in some rare cases grep can treat Makefile as a binary file. That happened to me on UTF-8 Gentoo if Makefile contained a character which was from extended ASCII table.
Without this patch the output of the grep command in the $(FILELIST) target is not valid (contains line "Binary file matches") and following commands fail to create feed index file.

Best Regards,
Martin Strbacka

Signed-off-by: Martin Strbacka <martin.strbacka@nic.cz>

SVN-Revision: 45966
2015-06-14 17:43:22 +00:00
Felix Fietkau 50a5a8df22 build: use different grep strings for scanning package vs target metadata
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44774
2015-03-15 11:07:29 +00:00
John Crispin b7cf4cc613 build: propagate override information to .packageinfo
Packages overridden with "./scripts/feeds -f" will show up with an
"Override: <original-package-name>" in .packageinfo.

This will be useful to create a corresponding option in .config and
use this information during the build process.

Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>

SVN-Revision: 44335
2015-02-09 12:09:31 +00:00
John Crispin 2e2c04777b build: allow openwrt.git packages to be replaced by feeds
Currently, replacing a package available in openwrt.git requires
modifications in openwrt.git, or requires duplicating the package in a
feed but with a different name, which causes all kind of problems
related to dependencies (all packages selecting it would have to be
modified accordingly to select the new package).

With this change, if a package with the same name is present both in
feeds/ and package/ folders, the one in feeds/ can override the one
in package/, both in the menuconfig and during the build, by passing the
"-f" option to "./scripts/feeds install"

This mechanism is particularly useful for vendor tree, or in general for
application which needs to replace one particular package which exists
within openwrt.git by a custom/newer version.

Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>

SVN-Revision: 44334
2015-02-09 12:09:23 +00:00
John Crispin b6f268d775 build: revert r44076
the patch causes issues when installing feeds

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 44078
2015-01-22 13:13:09 +00:00
John Crispin de3bf7e4c2 build: allow openwrt.git packages to be replaced by feeds
Currently, replacing a package available in openwrt.git requires
modifications in openwrt.git, or requires duplicating the package in a
feed but with a different name, which causes all kind of problems
related to dependencies (all packages selecting it would have to be
modified accordingly to select the new package).

With this change, if a package with the same name is present both in
feeds/ and package/ folders, the one in feeds/ can override the one
in package/, both in the menuconfig and during the build, by passing the
"-f" option to "./scripts/feeds install"

This mechanism is particularly useful for vendor tree, or in general for
application which needs to replace one particular package which exists
within openwrt.git by a custom/newer version.

Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>

SVN-Revision: 44076
2015-01-22 09:35:40 +00:00
Felix Fietkau 4fde9deed1 Revert "build: use ONESHELL to speed up scanning and the toplevel makefile"
This seems to cause issues on some build hosts, and it is not that
important.

SVN-Revision: 43025
2014-10-22 10:47:26 +00:00
Felix Fietkau c497990834 build: use ONESHELL to speed up scanning and the toplevel makefile
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43021
2014-10-22 08:57:40 +00:00
Jo-Philipp Wich a720dd209f build: introduce per feed repository support
This changeset implements a new menuconfig option to generate separate
repositories for each enabled package feed instead of one monolithic one.

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

SVN-Revision: 42002
2014-08-05 11:24:24 +00:00
Felix Fietkau 75df42e578 build: SCAN_DEPS handling (fixes package/kernel/linux metadata change detection)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 37431
2013-07-19 10:52:56 +00:00
Felix Fietkau 2238b949f1 build: log package dump failures to logs to avoid forcing user to write cryptic commands to figure out what's going on
SVN-Revision: 26499
2011-04-06 14:48:59 +00:00
Felix Fietkau db4fd873f3 improve error message output of metadata scan - fix newline break and do not hide broken makefiles after the first invocation anymore
SVN-Revision: 16101
2009-05-27 02:50:53 +00:00
Felix Fietkau 7aae9d3725 avoid using implicit rules during metadata dump to speed up the process even more
SVN-Revision: 14736
2009-03-03 14:07:39 +00:00
Felix Fietkau b0d8473bf4 get rid of a shell warning if md5sum is not found
SVN-Revision: 12494
2008-09-02 10:57:56 +00:00
Felix Fietkau 4c665e6ca4 large improvement for parallel builds. works without V=99 now and without warnings. tested with -j on an 2x dual core opteron machine
SVN-Revision: 11414
2008-06-09 15:38:45 +00:00
Ralph Hempel 9e0be1c6e3 fix buildprocess if running as cron job (package info files corrupted due missing Source-Makefile statement)
SVN-Revision: 10273
2008-01-26 12:19:45 +00:00
Felix Fietkau 2da3f6a256 fix the sdk
SVN-Revision: 9747
2007-12-14 00:33:25 +00:00
Felix Fietkau f8dfc57573 add initial version of a package feeds management script
SVN-Revision: 8973
2007-09-23 02:39:01 +00:00
Felix Fietkau a9d683ca91 major target cleanup. it is now possible to have subtargets that can override many target settings, including arch - merge adm5120, adm5120eb. target profiles still need to be adapted for subtargets
SVN-Revision: 8694
2007-09-08 19:55:42 +00:00
Nicolas Thill af0b91ca90 allow scan.mk to find python packages introduced in [8639]
SVN-Revision: 8641
2007-09-06 03:20:48 +00:00
Felix Fietkau 9c88ba80b9 more build system cleanup
SVN-Revision: 8206
2007-07-28 13:00:43 +00:00
Felix Fietkau 3e87d642f7 detect whether the find command supports -L or -follow
SVN-Revision: 8002
2007-07-16 07:19:45 +00:00
Felix Fietkau 2809e403d6 find: use -follow instead of -L, some systems don't support -L
SVN-Revision: 8000
2007-07-16 06:35:00 +00:00
Felix Fietkau 25b44d2c12 follow symlinks in package scan
SVN-Revision: 7984
2007-07-15 23:38:09 +00:00
Felix Fietkau de2aa28c4c properly support dependencies on packages that just use Build/DefaultTargets
SVN-Revision: 7983
2007-07-15 23:36:02 +00:00
Felix Fietkau 7b16475eb7 fixes for recursive package scanning
SVN-Revision: 7982
2007-07-15 23:16:47 +00:00
Felix Fietkau bdc9419a20 rewrite of the metadata scanning - cleaner code, faster scanning, recursive scanning and better handling of makefile dependencies
SVN-Revision: 7981
2007-07-15 22:51:12 +00:00
Felix Fietkau 2555097cc6 fix target rescan (version kernel changes)
SVN-Revision: 7317
2007-05-23 21:11:48 +00:00
Felix Fietkau b5a6f01ec0 fix dependencies for metadata scanning
SVN-Revision: 6910
2007-04-09 01:02:46 +00:00
Mike Baker 23efe5fc83 Tidy up Makefiles
SVN-Revision: 6857
2007-04-03 23:03:56 +00:00
Felix Fietkau c2b42e1afe add check for openwrt build system makefiles when scanning for metadata
SVN-Revision: 6793
2007-04-01 14:12:42 +00:00
Felix Fietkau fcf0aa5ab7 make sure tmp/info gets created
SVN-Revision: 6749
2007-03-28 18:26:21 +00:00