Commit Graph

61 Commits

Author SHA1 Message Date
Eneas U de Queiroz
91a5d69ea4 build: allow package to be built for all variants
This allows a package to be rebuilt for all different VARIANTs.
To do so, set VARIANT=*.

The wpa-cli package is not getting built after changes made by
19aae94 [build: avoid rebuilds of unset VARIANT packages], because
wpa-cli is only built when compiling a variant that includes
supplicant support, and the first selected variant may not build it.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2021-11-15 00:38:46 +01:00
Felix Fietkau
94b0849c19 build: add SUBDIR_MAKE_DEBUG variable to make it easier to debug package makefiles
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-11-04 16:43:32 +01:00
Eneas U de Queiroz
19aae949c6 build: avoid rebuilds of unset VARIANT packages
If a Makefile defines some packages with VARIANT set, and others without
it, the latter will be built once for every different VARIANT set, each
build trumping the previous one.

Avoid rebuilds by only building unnamed variant packages when the first
variant is built.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2021-11-01 20:18:55 +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
Karel Kočí
501123eb7a include/subdir: on build failure always print error
It is impossible to locate package that failed the build just from log
once more build is run in parallel (that is more than one make job). The
only way is to scout log files for failed package going back trough log.

This change makes it so error is printed for package that failed every
time.

Signed-off-by: Karel Kočí <karel.koci@nic.cz>
2020-11-27 18:02:40 -10:00
Jo-Philipp Wich
d3ddf6631e build: remove GNU time dependency
Replace the GNU time program invocation with a simple Perl script reporting
the timing values. Since we require Perl anyway for the build system, we can
as well use that instead of requiring a random GNU utility rarely installed
by default.

Fixes: ff6e62b288 ("build: log time taken by each packages/steps")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-08-05 00:06:27 +02:00
Andy Boyett
591780615b build: add busybox support to time prereq-check
Busybox time supports the GNU time '-f' syntax used by the build time
logging implemented in ff6e62b288, however the prerequisite check added
only works with GNU time installed as `time` or `gtime`.

As busybox is a multicall binary, the name of the symlink setup by
SetupHostCommand also must be changed from `gtime` to `time` to fix the
value of argv[0]. This causes a number of shells (including bash) to use
their builtin impelementation of time, so the sole invocation has been
changed to use `env time` to use the value found on the $PATH.

Signed-off-by: Andy Boyett <agb@agb.io>
2018-06-18 21:27:01 +02:00
Etienne Champetier
ff6e62b288 build: log time taken by each packages/steps
The idea is to easily get the list of packages taking the most time to build,
and see if we can improve them

v1: Use SetupHostCommand as recommended by John
v2: add space after 'time:', remove useless /usr/bin/time from SetupHostCommand

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
2018-05-07 10:31:35 +02:00
Felix Fietkau
e313a33024 build: allow building an individual subdir without dependencies using NO_DEPS=1
QUILT=1 had the same effect, but it is sometimes useful to be able to do
this without quilt

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-02-21 13:03:20 +01:00
Felix Fietkau
d826af2cbb build: make <subdir>/install opt-in, use it for target/ only
Fixes buildbot errors on running make target/install or
toolchain/install

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-02-09 13:51:35 +01:00
Felix Fietkau
0e22d63775 build: fix CONFIG_AUTOREMOVE for packages with multiple variants
Calling the clean target removes all .ipk files and un-stages the
package. Add a new target just for clearing the build dir and call that
one instead of the full clean target

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-22 17:40:31 +01:00
Felix Fietkau
7a523569f7 build: add support for automatically removing build dir contents during build
This is used to save space on buildbot instances.
If any part of a package needs to be rebuild, the whole package is
rebuilt from scratch. Stamp files are preserved to allow dependency
checks to work

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-18 23:57:08 +01:00
Felix Fietkau
6cf067d084 build: define common subdir targets in rules.mk
Reduce build system clutter and enable further rework

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-18 23:57:07 +01:00
Felix Fietkau
7a315b0b5d build: implement make check and make package/X/check
This is intended to be used for a wide array of package sanity checks.

The first check that is implemented is for the hash of downloaded files.
It checks:
  - Missing hash
  - Use of SHA256 instead of MD5
  - dl/<file> hash not matching hash in makefile
  - deprecated MD5SUM variable

The deprecated MD5SUM variable check is skipped for feeds/ until OpenWrt
is updated as well

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-12-17 10:36:25 +01:00
Felix Fietkau
f08623516f build: add logging for package host builds
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48417
2016-01-20 21:31:56 +00:00
Felix Fietkau
8977571d7f build: split BUILD_LOG logs per variant
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48415
2016-01-20 21:31:43 +00:00
Felix Fietkau
c7308bc9f1 build: use a separate variable checking the subdir path (for host packages)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48410
2016-01-20 20:13:40 +00:00
Felix Fietkau
36502c5a6f build: move host build directories of package/* to build_dir/target-*/host/
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48400
2016-01-20 19:12:06 +00:00
Luka Perkov
7002f6326e include: remove trailing whitespaces
Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 45127
2015-03-29 07:29:18 +00:00
Felix Fietkau
364fb4dacb build: do not process built-in rules for make subdirs
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43016
2014-10-22 08:57:11 +00:00
Felix Fietkau
b544fd922a tools: fix stampfile dependency handling when the list of build dirs changes (#15186)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39845
2014-03-08 17:15:45 +00:00
John Crispin
b065867cfb log failed package builds
SVN-Revision: 32050
2012-06-04 18:29:29 +00:00
Felix Fietkau
b68404f278 remove legacy package/foo-compile wrapper targets, people should be used to the correct target names by now
SVN-Revision: 27023
2011-05-28 16:27:21 +00:00
Felix Fietkau
d637ae2fc8 make the build system a bit more silent without V=99
SVN-Revision: 26460
2011-04-04 00:54:37 +00:00
Felix Fietkau
61485f6491 build: reduce the amount of generated make code for the initial prereq scan - makes it about 20% faster
SVN-Revision: 26436
2011-04-03 03:40:09 +00:00
Felix Fietkau
314ce66b86 build: use a conditional @ sign before silenced targets instead of .SILENT - makes prereq checks more than twice as fast
SVN-Revision: 26435
2011-04-03 03:40:04 +00:00
Ralph Hempel
a1973192c6 add configure as package target
SVN-Revision: 23262
2010-10-05 20:20:13 +00:00
Felix Fietkau
7f80e26661 fix build dependencies on packages with multiple variants but no selected virtual packages
SVN-Revision: 23102
2010-09-20 20:17:28 +00:00
Felix Fietkau
00d1e599d7 add a command for printing a cleaned up make target database - will be used to analyze package dependencies at some point
SVN-Revision: 22871
2010-09-01 17:51:36 +00:00
Felix Fietkau
579d54038b build system: introduce a new feature called build variants. it allows building a package multiple times in one pass with different build dirs, based on the same build settings. replaces templating hacks like the one used in the hostapd package
SVN-Revision: 18357
2009-11-10 22:00:54 +00:00
Felix Fietkau
7dc435ea29 move the toolchain_install stampfile to the right place to fix spurious missing toolchain errors after cleaning stuff
SVN-Revision: 16776
2009-07-11 12:48:59 +00:00
Ralph Hempel
6f29703625 add dist and distcheck target (to create new source balls)
SVN-Revision: 16230
2009-05-31 12:01:05 +00:00
Ralph Hempel
c4d7af7094 added BUILD_LOG_DIR variable, make clean will delete the ./logs dir
SVN-Revision: 16148
2009-05-28 16:30:04 +00:00
Florian Fainelli
d334c1e956 stop build when an error occurs and when BUILDLOG is set (#5160)
SVN-Revision: 16079
2009-05-26 14:18:05 +00:00
Felix Fietkau
97845201e4 add missing $(if) check for build logging
SVN-Revision: 15366
2009-04-24 01:20:23 +00:00
Felix Fietkau
5e1e868230 add BUILD_LOG option to let the build system log all subdir make command output to individual files (useful for debugging parallel builds)
SVN-Revision: 15362
2009-04-24 01:04:50 +00:00
Felix Fietkau
167846e488 add support for config options checking in top-level directory stampfiles
SVN-Revision: 15112
2009-04-06 09:56:16 +00:00
Felix Fietkau
227399122b add makefile target alias package/<name>/host/<target> for host builds
SVN-Revision: 14944
2009-03-18 21:53:35 +00:00
Felix Fietkau
ddcfaeb1e5 move host build in packages into a separate namespace: package/<name>/host/<target> this allows dependencies between host and target packages, and saves unnecessary host builds for packages that contain both variants
SVN-Revision: 14905
2009-03-17 02:20:34 +00:00
Felix Fietkau
bdb9c7351c some more build system cleanup
SVN-Revision: 12329
2008-08-17 11:14:13 +00:00
Felix Fietkau
a3a37d0bb1 rework parallel building to get rid of some warnings and add back support for parallelizing the kernel build fixes #3882
SVN-Revision: 12322
2008-08-16 16:59:47 +00:00
Felix Fietkau
311c9403d9 fix make variable overriding for package makefiles on the command line
SVN-Revision: 12204
2008-08-06 11:33:26 +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
Felix Fietkau
31a3a503cc add a flag "IGNORE_ERRORS", which can be used to ignore build errors in packages
SVN-Revision: 11059
2008-05-07 16:45:00 +00:00
Felix Fietkau
ac40a80f35 make aliases for package targets if the package directories are in further subdirectories example: if there is a package/libs/foo/compile, then package/foo/compile will be an alias for it
SVN-Revision: 9384
2007-10-21 07:18:10 +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
Felix Fietkau
761dc0a0ae fix a dependency bug
SVN-Revision: 8561
2007-08-30 22:43:25 +00:00
Felix Fietkau
d475d94aab avoid rdep in the top level make process (subdir.mk) - it leaks too much memory and increases the startup time for regular make commands. timestamp.pl is more lightweight here
SVN-Revision: 8533
2007-08-29 03:51:49 +00:00
Nicolas Thill
ba05b57573 rename 'stampfiles' directory to 'stamp'
SVN-Revision: 8455
2007-08-21 18:07:55 +00:00
Felix Fietkau
c6bc77ea36 build system cleanup/restructuring as described in http://lists.openwrt.org/pipermail/openwrt-devel/2007-August/001159.html
SVN-Revision: 8362
2007-08-07 00:04:25 +00:00