Commit Graph

801 Commits

Author SHA1 Message Date
Tom Rini
344c5a20cc Makefile: Add RANLIB to the list of critical variables to unexport
If RANLIB is set and we're trying to build binutils, binutils will pick
this up and potentially fail to build.

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-12-22 11:07:08 +01:00
Peter Seiderer
1edb4c51de Makefile: valgrind needs non-stripped dynamic linker library
Fixes the following valgrind error (tested on freescale imx6):

valgrind:  Fatal error at startup: a function redirection
valgrind:  which is mandatory for this platform-tool combination
valgrind:  cannot be set up.  Details of the redirection are:
valgrind:
valgrind:  A must-be-redirected function
valgrind:  whose name matches the pattern:      strcmp
valgrind:  in an object with soname matching:   ld-linux-armhf.so.3
valgrind:  was not found whilst processing
valgrind:  symbols from the object with soname: ld-linux-armhf.so.3
valgrind:
valgrind:  Possible fixes: (1, short term): install glibc's debuginfo
valgrind:  package on this machine.  (2, longer term): ask the packagers
valgrind:  for your Linux distribution to please in future ship a non-
valgrind:  stripped ld.so (or whatever the dynamic linker .so is called)
valgrind:  that exports the above-named function using the standard
valgrind:  calling conventions for this platform.  The package you need
valgrind:  to install for fix (1) is called

Note that we can still strip the dynamic linker, but only strip the
debugging symbols and nothing else.

[Thomas: slightly adjust comment in the code.]

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-12-17 23:21:17 +01:00
Peter Korsgaard
ac2071b864 Makefile: fix copyright year
It is no longer 2014.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-12-03 14:25:01 +01:00
Peter Korsgaard
cc257ee493 Merge branch 'next'
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-12-01 23:24:07 +01:00
Peter Korsgaard
2318c29e80 Kickoff 2016.02 cycle
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-12-01 22:05:46 +01:00
Peter Korsgaard
3f90e532ff Update for 2015.11
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-11-30 23:13:41 +01:00
Yann E. MORIN
376fda8f99 core/printvars: allow dumping a set of variables
Dumping our 176164 variables can take quite some time (~12s here). What
takes the most time is sorting the variables (~9s), followed by the
parsing of our Makefiles (~3s), with the actual printing in the noise.

However, sometimes only one or a few variables are needed. For example,
one may want to retrieve the Linux build dir from a post-build hook (to
get the Linux' actual .config after our fixups and check for various
features).

Add the possibility to only dump the variables listed in $(VAR) which
must be passed as a make argument, like so:

    $ make -s printvars VARS="LINUX_DIR TOPDIR O"
    LINUX_DIR=/home/ymorin/dev/buildroot/O/build/linux-4.3 ($(BUILD_DIR)/$(LINUX_BASE_NAME))
    O=/home/ymorin/dev/buildroot/O/. (/home/ymorin/dev/buildroot/O/.)
    TOPDIR=/home/ymorin/dev/buildroot/buildroot (/home/ymorin/dev/buildroot/buildroot)

It is also possible to use make-appterns, like:

    $ make -s printvars VARS="BUSYBOX_%"

This is much faster (the time is just about the time it takes to parse
our Makefiles, 3s here) and easier to parse.

[Thomas: improve comment above the printvars target.]

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-11-29 19:04:53 +01:00
Yann E. MORIN
cb34ea5d6a package/skeleton: also handle merged /usr in the staging
When the target uses a merged /usr setup, gdbserver will only report
paths in /lib to the remote gdb, which in turn will only look for
libraries in staging/lib and never in staging/usr/lib.

So. the merged (or non-merged) /usr setup must be replicated in the
staging.

The best solution where to do so is in the skeleton package, since it
is guaranteed to come before any package that installs things in the
staging, and even before the (internal or external) toolchain as well.

Reported-by: Pieterjan Camerlynck <pieterjan.camerlynck@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Pieterjan Camerlynck <pieterjan.camerlynck@gmail.com>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-11-28 23:08:33 +01:00
Peter Korsgaard
610f3fa03d Update for 2015.11-rc3
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-11-26 23:06:02 +01:00
Peter Korsgaard
bfaed966af Update for 2015.11-rc2
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-11-19 13:31:31 +01:00
Thomas Petazzoni
2f8a720791 Kickoff 2016.02 cycle
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-11-09 21:27:13 +01:00
Thomas Petazzoni
e1da0eff54 Update for 2015.11-rc1
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-11-07 22:43:57 +01:00
Yann E. MORIN
f8c0e45d32 core: remove .br-external on distclean
distclean is supposed to return the current directory, whether in-tree
or out-of-tree, into pristine conditions, which means we should also
forget about any br2-external tree on distclean.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-11-03 23:41:53 +01:00
Yann E. MORIN
0ea851c0c0 core: do not accept multiple definitions of a package
One of the selling points for br2-external is to provide a mean to add
new packages. However, it is not supported that a package be defined by
Buildroot and then redefined in a br2-external tree.

This situation may occur without the user noticing or even willing to
redefine the package, for example:
  - br2-external is first created against a version of Buildroot
  - a package (missing in Buildroot) is added to that br2-external tree
  - upstream Buildroot adds this package
  - user updates to the new Buildroot

In this case, the result in undefined, and we can't make any guarantee
on the result (working or not).

Add a sanity check so that a package redefinition gets caught.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Cc: Arnout Vandecappelle <arnout@mind.be>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-11-03 23:41:11 +01:00
Cédric Marie
474d39a1ff Makefile: Remove 'quiet' variable
'quiet' variable is set and exported, but it is not used. We can safely
remove it.

This variable is inherited from the Makefile of the Linux kernel, and
is not used in Buildroot.

In support/scripts/mkmakefile, 'quiet' value is checked, but the test
is always true ('quiet' is never set to silent_), so the test can be
removed as well.

Signed-off-by: Cédric Marie <cedric.marie@openmailbox.org>
Reviewed-by: "James Knight" <james.d.knight@live.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-10-29 00:04:05 +01:00
Gustavo Zacarias
3901cb5157 ccache: allow for BR2_CCACHE_DIR environment override
Allow the BR2_CCACHE_DIR .config option to be overriden by the
BR2_CCACHE_DIR env variable.
This is useful for big projects where in some cases the developers home
directory might be a NFS mount (slow) and real production builds aren't.

Update documentation accordingly as well.

Signed-off-by: Gustavo Zacarias <gustavo.zacarias@free-electrons.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-10-17 16:32:41 +02:00
Thomas Petazzoni
24c75fbb38 Makefile: implement a graph-size target
This commit implements a graph-size target that calls the script of
the same name to generate the graph and CSV files related to package
and file sizes.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-10-17 16:13:05 +02:00
Arnout Vandecappelle
792f1278e3 toolchain-wrapper: support change of BR2_CCACHE
By moving the ccache call to the toolchain wrapper, the following
scenario no longer works:

make foo-dirclean all BR2_CCACHE=

That's a sometimes useful call to check if some failure is perhaps
caused by ccache.

We can enable this scenario again by exporting BR_NO_CCACHE when
BR2_CCACHE is not set, and by handling this in the toolchain wrapper.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Romain Naour <romain.naour@openwide.fr>
Reviewed-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-10-04 18:22:20 +02:00
Luca Ceresoli
b9f4727ff4 legal-info: allow to declare the actual sources for binary packages
The FOO_SITE/FOO_SOURCE variables usually point to a tarball containing
source code.

For the downloaded external toolchains this is not true, the "source"
tarball actually contains binaries. This is fine for making Buildroot
work, but for legal-info we really want to ship real source code, not
binaries.

Luckily, some (hopefully all) toolchain vendors publish a downloadable
tarball containing the source code counterpart for their binary
packages.

Here we allow the user to declare the URL of this other tarball in the
pair of variables FOO_ACTUAL_SOURCE_TARBALL (by default equal to
FOO_SOURCE) and FOO_ACTUAL_SOURCE_SITE (by default equal to FOO_SITE).
If the "actual source" package can be downloaded from the same
directory as the binary package, then only FOO_ACTUAL_SOURCE_TARBALL
needs to be set.

Note this change is not strictly toolchain-specific: it might be useful
for other packages that happen to ship binaries in the same way.

[Thomas:
  - remove "the source code has not been saved" warning that could
    never be triggered due to how the conditions were
    organized. Discussed with Luca live during the meeting.]

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-10-04 16:59:05 +01:00
Herve Codina
87f3edecc6 target-finalize: remove extra /usr/libexec/{*.a,*.la} files
Some packages, sudo for instance, install .a and .la files in
$(TARGET_DIR)/usr/libexec. These files are not needed on target.

This patch refactors the existing "find" invocations in
target-finalize into a single one removing all .a and .la files from
lib, usr/lib and usr/libexec.

[Thomas: rework to use a single "find" invocation, and adjusted the
commit log accordingly.]

Signed-off-by: Herve Codina <Herve.CODINA@celad.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-09-19 14:59:46 +02:00
Luca Ceresoli
466382e1fa make help: remove <pkg>-legal-info
The <pkg>-legal-info target is only a component of the top-level
legal-info target, it is not meant to be used alone.

For example, calling twice 'make busybox-legal-info' produces duplicate
entries in licenses.txt and manifest.csv.

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Arnout Vandecappelle <arnout@mind.be>
Reviewed-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-09-04 11:45:49 +02:00
Peter Korsgaard
70874e321d Kickoff 2015.11 cycle
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-09-01 09:58:29 +02:00
Peter Korsgaard
20a36cd877 Update for 2015.08
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-08-31 23:06:58 +02:00
Thomas Petazzoni
985b46be0c Update for 2015.08-rc2
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-08-24 22:20:16 +02:00
Thomas Petazzoni
7b1e9d5244 Update for 2015.08-rc1
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-08-05 15:50:27 +02:00
Guido Martínez
2e32330c4a Makefile: unexport O
After bee5745ccc ("Makefile: don't depend on the umask"), any use
of "make O=<dir>" would leak $O into the enviroment for submakes,
and it's inherited by package makefiles. Some package makefiles have
protections to make sure they don't use the value of $O if it comes from
the enviroment (Linux), but some don't (uClibc).

This caused build failures when using a different output dir.

Fix this by unconditionally unexporting the O variable, since we never
need to have it set in the environment for packages, it should be only
internally used by BR.

Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-26 15:06:55 +02:00
Guido Martínez
1e9f604716 Makefile: fix performance regression caused by the umask handling
Commit bee5745c introduced an extra level of 'make' when the umask is
different from 0022. However, when several targets were specified on
the command line, a new make instance would be called for each target.
This introduces a huge performance overhead when many targets are
specified on the command line.

To fix this, use the same approach as used in the mkmakefile script:
an addition target on which the MAKECMDGOALS depend, so that this
target is run only once.

Note that the mkmakefile script contains a special exception for
Makefile, because the Makefile in the output directory is generated.
Since the top-level Makefile is not generated, this exception is not
needed here.

While we're at it, also fix the whitespace in the UMASK assignment.

Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[yann.morin.1998@free.fr: aggregate patches from Arnout and Guido]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-18 11:31:38 +02:00
Thomas De Schampheleire
15cb98769e release: remove manual build files from release tarballs
The Buildroot release tarballs inadvertently contain a build/docs directory,
containing the manual sources, the generated lists, and manual.text and
manual.pdf (but excluding manual.html).

This directory is populated as $(BUILD_DIR) (==$(O)/build), while O is
set explicitly from the release target to a subdirectory
buildroot-xxxx.yy-git/ which was populated with 'git archive'.

Since the generated manuals are available in docs/manual, which is
also referred to from the README, the build directory is not needed and
should be removed from the release tarball.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-17 19:44:53 +02:00
Gustavo Zacarias
2ac7da0799 Makefile: save MAKE_VERSION
Save MAKE_VERSION as RUNNING_MAKE_VERSION since this is later clobbered
by the make package.

It will be used by the webkitgtk24 package to check for older make
versions which have a bug building it with parallel jobs (it hangs).

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-14 23:53:21 +02:00
Maxime Hadjinlian
7a6b83a211 skeleton: New package
Create a proper package for the skeleton.

The main Makefile is modified to remove the skeleton support.
The 'dirs' target, will create the $(TARGET_DIR).
The file 'output/target/.root' doesn't exists anymore, as there's no
Make rule to statisfy.

The infrastructure are modified to filter host-skeleton.
It's needed becauses the host-dependencies are derived from the
dependencies of the target package where 'host-' is preprended to the
depedency name.

In the pkg-generic we add skeleton as a dependency to every package.

The whole system/system.mk is now removed at the profit of
package/skeleton/skeleton.mk

[Thomas:
  - rebase on top of master and fix some minor conflicts
  - remove the 'select BR2_PACKAGE_SKELETON' in
    BR2_ROOTFS_SKELETON_DEFAULT and BR2_ROOTFS_SKELETON_CUSTOM, since
    anyway the skeleton package is always enabled.
  - fixup a few mistakes in the getty handling due to misnamed
    variables.]

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-14 18:08:23 +02:00
Valentine Barshak
b791571c03 purge-locales: fix handling of X11 locale.dir
The /usr/share/X11/locale/locale.dir file is needed by libX11.
Removing it breaks locale support in X11. However, make removes
not only directories but also all files, which are not listed
in the BR2_ENABLE_LOCALE_WHITELIST.

This re-creates locale.dir database file where needed.

Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Arnout: use a separate loop, and add some explanatory comments]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-14 02:11:47 +02:00
Arnout Vandecappelle
805240bae8 purge-locales: further refactoring after removing man paths
Since the man paths have been removed, it is no longer necessary to
grep them out and the loop can be simplified.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-14 02:11:25 +02:00
Arnout Vandecappelle
36480eab8f purge-locales: skip /usr/man and /usr/share/man
These directories are going to be removed anyway, so no point purging
their locales.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-13 23:25:58 +02:00
Guido Martínez
361d3573f5 Makefile: don't depend on current skeleton/overlay permissions
We use 'rsync -a' to copy the skeleton and overlays, so the target ends
up with the exact same permissions as on the repo. The problem is we
don't track these permissions, since Git doesn't allow for that (except
for the exec bit). This means users with different umasks at the time of
cloning could end up with different target permissions.

Fix this by using --chmod on rsync calls so we don't depend on the
current permission set for the skeleton and overlays. We do depend on
the exec bit, but that's fine since that one is tracked by Git.

Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-13 17:02:35 +02:00
Guido Martínez
bee5745ccc Makefile: don't depend on the umask
Some packages and BR itself create files and directories on the target
with cp/mkdir/etc which depend on the umask at the time of building.

To fix this, use a trick inside the Makefile which wraps all rules when
the umask is not 0022. This sets the umask at the top level, and then
the building process continues as usual.

[Thomas: add --no-print-directory, as suggested by Arnout.]

Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-13 12:57:58 +02:00
Maxime Hadjinlian
76d1c729f0 package: Remove shell completion at finalize stage
Instead of doing a removal of the completion file package per package,
do it all at the finalize stage so it's done once and for all.

Note: This fixes an issue with systemd where passing a --bashcompletiondir
or --zshcompletiondir would be evaluated to '.' by the autotools macro.
This would create a 'target./' directory.

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-12 21:55:14 +02:00
Bamvor Jian Zhang
827ba46556 aarch64: add big endian(aarch64_be) support
Add aarch64_be support. Note that CONFIG_CPU_BIG_ENDIAN should be
defined in kernel config when building a big endian kernel.

Signed-off-by: Zhang Jian(Bamvor) <bamvor.zhangjian@huawei.com>
Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-12 18:32:37 +02:00
Fabio Porcedda
1668e1da39 packages: fix and improve support for top-level parallel make
The boost and jack2 packages fail to build when PARALLEL_JOBS is empty
so instead of using an empty PARALLEL_JOBS don't use it in the MAKE
variable when top-level parallel make is being used.

To simplify the use of top-level parallel make, check the MAKEFLAGS
variable to know automatically if the -j option is being used, also use
the "=" operator instead of the ":=" operator because the MAKEFLAGS
variable can be checked only in a "recursively expanded variable".
The "override" keyword must be used in order to change the automatic
variable "MAKE".

When the top-parallel make is being used the sub-make are called without
specifying the "-j" option in order to let GNU make share the job slots
specified in the top make. This is done because GNU make is able
to share the job slots available between each instance of make so if you
want to increase the number of jobs you just need to increase the <jobs>
value in the top make -j<jobs> command.

If we specify the -j<jobs> option in each instance of make, it is less
efficient, e.g. in a processor with 8 cores we specify -j9 in each instance:
the number of processes goes up to 81 because each sub-make can execute
9 processes. The excessive number of processes is not a good thing
because in my tests even -j16 is slower than -j9.
Instead if we don't specify the -j<jobs> option in the sub-make, the top
make share the job slots automatically between each instance, so the
number of process in this examples goes up to 9 that is faster than
using up to 81 processes.

e.g. when the -j3 option is specified only in the top make:

possible state n. 1:
process 1 - <packagea>-build
process 2 - <packagea>-build
process 3 - <packagea>-build

possible state n. 2:
process 1 - <packagea>-extract
process 2 - <packageb>-configure
process 3 - <packagec>-build

possible state n. 3:
process 1 - <packagea>-build make -j1
process 2 - <packageb>-build make -j1
process 3 - <packagec>-build make -j1

Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-04 15:05:24 +02:00
Cédric Marie
307029867b Makefile: Don't export VERBOSE unless V=1 (for CMake)
CMake verbose mode is based on VERBOSE environment variable.
* If VERBOSE is exported but empty, only "Dependee ... is newer than
depender ..." messages are shown.
* If VERBOSE is exported and set (whatever the value), all compilation
commands are shown.

VERBOSE is currently systematically exported by Buildroot, even if it
is empty, in the root Makefile, which implies that the "light" verbose
mode - with "Dependee ... is newer than depender ..." messages - is
always enabled.

VERBOSE should only be exported when V=1, which is the standard way to
enable verbose mode in Buildroot.

Signed-off-by: Cédric Marie <cedric.marie@openmailbox.org>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-06-25 00:48:55 +02:00
Herve Codina
f71a621d91 savedefconfig: Remove BR2_DEFCONFIG from saved defconfig file
BR2_DEFCONFIG should not be present in saved defconfig file.

The use case is:
make qemu_arm_versatile
make savedefconfig BR2_DEFCONFIG=my_custom_defconfig

BR2_DEFCONFIG is set in my_custom_defconfig with an absolute path
to qemu_arm_versatile (value present in .config) and set in
my_custom_defconfig as it is different from default mentioned in
config.in (default is BR2_DEFCONFIG from environment).

On savedefconfig recipe, simply remove BR2_DEFCONFIG from generated file

[Peter: fixup typos and use SED as noted by Arnout]
Signed-off-by: Herve Codina <Herve.CODINA@celad.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-06-06 13:54:26 +02:00
Peter Korsgaard
841d3ac7e0 Kickoff 2015.08 cycle
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-06-01 23:52:45 +02:00
Peter Korsgaard
6d73615f0c Update for 2015.05
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-05-31 23:15:34 +02:00
Peter Korsgaard
c6ce119cb0 Update for 2015.05-rc3
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-05-22 11:53:58 +02:00
Peter Korsgaard
f2435f6ddb Update for 2015.05-rc2
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-05-11 13:28:26 +02:00
erico.nunes
e4dde2536a Makefile: Handle whitespace when stripping .ko
It is possible to end up with a path containing spaces if the kernel
localversion contains spaces.
Be it good practice or not, there are third party vendors which
distribute kernel configuration files for reference platforms which have
quoted strings containing whitespaces in the localversion.

There was already a fix to handle paths with whitespaces or other
special characters when running strip, which consists of using the find
-print0 and xargs -0 pair of arguments, but the kernel module stripping
wasn't included in the fix.
This commit includes the same fix to the kernel module stripping line.

Signed-off-by: Erico Nunes <erico.nunes@datacom.ind.br>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-05-10 23:07:25 +02:00
Peter Korsgaard
5628a15a69 Update for 2015.05-rc1
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-05-04 21:28:31 +02:00
Thomas Petazzoni
4feeb2db34 Makefile: add a few more targets to nobuild_targets
With this commit, one can now execute the source-check, external-deps
and legal-info targets regardless of the checks normally being done by
packages on the configuration.

Note that we intentionally do not go down the road of adding %-source,
%-legal-info, and the miryad of other targets that could work in such
situations. We only whitelist a few targets that are really useful to
have as nobuild_targets.

[Thomas: also add 'clean' and 'distclean' to the nobuild_targets, as
suggested by Yann.]

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-26 22:20:42 +02:00
Thomas Petazzoni
256f142bf6 Makefile: add BR_BUILDING variable
Some packages do some sanity checks on their configuration, for
example linux checks that the defconfig string is not empty when a
defconfig is used. Such checks are currently always performed, except
when the 'source' target is part of make goals.

This is problematic for two reasons:

 - Other targets such as 'source-check', 'external-deps' or
   'legal-info', that do not consist in doing a build, cannot be
   executed in such situations.

 - The current code removes the check as soon as one of the targets is
   source. But if there are other non-source targets called at the
   same time, the checks are ignored.

This commit therefore introduces an internal variable called
BR_BUILDING, which tells packages if we are actually building or
not. A variable nobuild_targets indicates the targets that we do not
consider as being build targets.

For the moment, nobuild_targets only contains 'source', to be
completely iso-functional.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-04-26 19:55:40 +02:00
Thomas Petazzoni
ae473ca446 Makefile: remove unneeded variables
Now that all the external-deps, source-check and source targets are
properly implemented based on the package infrastructure, the
PACKAGES_SOURCE, TARGET_HOST_DEPS, HOST_DEPS and HOST_SOURCE variables
are no longer needed. This is a good thing since they were anyway
incorrect, as they were only doing a two level recursion in the
dependencies of host packages.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[tested with a randpackageconfig]
2015-04-26 19:55:32 +02:00
Thomas Petazzoni
17dcad0658 Makefile: implement the 'source' target using the package infrastructure
Now that all the bits are in place, switch the global 'source' target
to use the package infrastructure logic.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[with 'make source' (actually together with the next patch).]
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[tested with a randpackageconfig]
2015-04-26 19:55:21 +02:00
Thomas Petazzoni
f9b928244a Makefile: implement a package based source-check target
This commit switches the implementation of the global source-check
target to use a package infrastructure based mechanism, using the
$(1)-all-source-check target added in the previous commit.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2015-04-26 19:53:02 +02:00
Thomas Petazzoni
7800b9619d Makefile: move source-check outside of noconfig_targets
make source-check is here to check whether the remote sources for the
current selection of packages are still available. In its current
implementation, since it simply calls recursively a sub-make with the
source target, it can be a noconfig_targets. However, a follow-up
change will make source-check not use a sub-make, which will require
it to no longer be a noconfig_targets.

Therefore, as a preparation, this commit moves source-check outside of
noconfig_targets.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2015-04-26 19:50:58 +02:00
Thomas Petazzoni
7e679ccb4c Makefile: use the package infra based external-deps
This commit changes the global 'external-deps' target to use the newly
introduced per-package <pkg>-all-external-deps, instead of relying on
the 'source' target with a custom DL_MODE.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-04-26 19:50:48 +02:00
Yann E. MORIN
de6377e8d9 Makefile: add list-defconfig to the general help
When listing defconfig files was moved to its own make target, it was
not added to the general help text.

However, this is a very important topic, so list it.

[Peter: drop ':' character]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-04-24 00:28:43 +02:00
Luca Ceresoli
60e9a79308 Makefile: fix typo in a comment
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-04-22 15:06:27 +02:00
Yann E. MORIN
1c4d3555f4 target-finalize: fix calling ldconfig
On some systems (e.g. Fedora 20), the build breaks when parsing include
directives in our /etc/ld.so.conf, with error messages as thus:

    /sbin/ldconfig: need absolute file name for configuration file
    when using -r

So, enforce the path to the ld.so.conf file to point to our own, in the
target/ directory.

Reported-by: Al West <al.west@v-nova.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-18 15:56:41 +02:00
Arnout Vandecappelle
dfc4f5cdd0 Makefile: remove redundant mkdir from *config
The first dependency of these targets is
$(BUILD_DIR)/buildroot-config/*conf
so the $(BUILD_DIR)/buildroot-config directory certainly exists.

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-18 14:44:53 +02:00
Thomas Petazzoni
adc88b8663 Makefile: simplify show-targets
show-targets is only used currently by the graph-depends script, which
already recurses into the dependencies of the selected packages to
build the dependency graph. Therefore, dumping the contents of
$(PACKAGES) and $(ROOTFS_TARGETS) is sufficient: $(HOST_DEPS) and
$(TARGET_HOST_DEPS) will contain packages that are dependencies of
packages already listed in $(PACKAGES), which graph-depends will
discover by itself.

This allows to remove one more usage of $(HOST_DEPS) and
$(TARGET_HOST_DEPS), which is one more step towards their removal.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-04-14 10:18:55 +02:00
Thomas Petazzoni
5db22b36c9 Makefile: use <pkg>-all-legal-info to implement the legal-info target
This commit changes the implementation of the global 'legal-info'
target to use the newly introduced per-package <pkg>-all-legal-info
target. This allows to avoid using the $(TARGET_HOST_DEPS) and
$(HOST_DEPS) variables that we are trying to remove.

It is worth mentionning that this commit might change the output of
'make legal-info' by making it more correct than it was. With the
existing implementations, we could be missing packages if they were
host packages, or target packages not properly selected in terms of
Config.in dependencies, and with a more than a two-level deep
dependency from a target package properly selected at the Config.in
level. This is because our previous logic was simply taking all
packages in the "TARGETS" (now called "PACKAGES") variable, which are
only the target packages explicitly selected in the .config file, and
doing a two-level deep recursion in the dependencies.

With this commit, we switch legal-info to use proper make-based
dependencies, so we no longer have the limitations we used to
have. For this reason, the output of 'make legal-info' after this
patch may contain *more* entries than before this patch, but it is
really because it is now correct.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-04-14 10:18:44 +02:00
Thomas Petazzoni
8a58e0238e Makefile: rename TARGETS to PACKAGES
For clarity, this commit renames the TARGETS variable to the more
meaningful PACKAGES variable. Indeed, only packages (handled by one of
the package infrastructures) should be listed in this variable, and
not other random non-package targets.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-04-14 10:16:51 +02:00
Thomas Petazzoni
93f911f1ba Makefile: targets are now declared phony by the appropriate infrastructures
The main Makefile was declaring a subset of the per-package targets as
being PHONY, but not all of them. Now that the pkg-generic package
infrastructure is taking care of that in a much more systematic
fashion, this commit gets rid of the unneeded code from the main
Makefile.

[Thomas: re-add list-defconfigs to the list of PHONY targets, as
noticed by Yann.]

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-04-14 10:16:14 +02:00
Arnout Vandecappelle
53903a1520 *config: improve handling of BR2_LEGACY
In 8a46d4bf1f the randpackageconfig and allpackageyesconfig were
extended with disabling all the legacy options, otherwise the resulting
config couldn't be built. However, that didn't work for randconfig and
allyesconfig.

This commit reverts 8a46d4bf1f and replaces it with a different
approach: skipping of the legacy config options is passed explicitly
through the environment variable SKIP_LEGACY, which forces
BR2_SKIP_LEGACY to y. The new option BR2_SKIP_LEGACY completely
disables the legacy handling, which effectively removes all the legacy
options from the .config.

However, in that case no values are set for the legacy options so a
subsequent oldconfig will query them. Therefore, run an additional
olddefconfig.

[Peter: fix s/BR2_LEGACY/SKIP_LEGACY/ typo]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[yann.morin.1998@free.fr: do not rely on a user-visible option, works
 perfectly well with only blind options set from the environment]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-04-11 08:22:28 +02:00
Masahiro Yamada
a9847d1483 Makefile: delete HOSTFC and FC_FOR_BUILD
This definition of HOSTFC is completely wrong.

"$(HOSTLD)" should be "$(HOSTFC)".  Also, "echo" always succeeds, so
"which g77 || type -p g77 || echo gfortran" is never run.

Anyway, HOSTFC is most likely set to "/use/bin/ld" and nobody has
complained about it before me, so I guess it is not used at all.

At least grepping HOSTFC, FC_FOR_BUILD did not hit any packages.
Drop HOSTFC and FC_FOR_BUILD.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-09 21:44:41 +02:00
Masahiro Yamada
5b686a0674 Fix typos in comment blocks
[Thomas: fix issues noticed by Arnout:
  - Rewrap the linux/Config.in paragraph
  - Revert the "is a toolchain dependency" -> "has a toolchain
    dependency" change from pkg-generic.mk, as the original was
    correct.]

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-08 22:44:43 +02:00
Masahiro Yamada
6bf9e23332 Makefile: remove extra ifdef/endif of top Makefile
The GNU make's origin function know undefined variable well,
so the outer ifdef/endif conditional checking is unneeded.

>From `info make` documentation, origin will return

  `undefined'
     if VARIABLE was never defined.
  `command line'
     if VARIABLE was defined on the command line.
   ...

Therefore, $(origin V) will get a value anyway, killing ifdef/endif
is viable and safe.

Furthermore, I've checked the minimal requirements from the top
Makefile is GNU make 3.81, and that version of GNU make has support
of origin function well already, so now it's safe to kill the outer
conditional checking, without upgrading the minimal requirements.

Signed-off-by: Cheng Renquan <crq@kernel.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
[ Commit description is borrowed from Linux Kernel
  (commit b8b0618cf6fa) and adjusted for Buildroot ]
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-07 21:34:00 +02:00
Yegor Yefremov
7916b97594 Makefile: add help for linux-update-defconfig target
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-06 23:33:10 +02:00
Thomas Petazzoni
0dd232e9c7 Makefile: directories are not PHONY targets
The global .PHONY specification in the main Makefile is describing a
number of directory targets as being PHONY, which doesn't make much
sense. PHONY targets are targets that do not exist on the filesystem,
and which make should always consider as not being up-to-date, so that
the commands associated to these targets are always executed by make
when the command is invoked, even if a file with the same name exists
on the filesystem.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-04-06 11:08:02 +02:00
Thomas Petazzoni
cb686165d2 Makefile: remove dubious comment
This comment is a left-over from previous code changes, and it doesn't
make much sense where it is placed.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-04-06 11:07:37 +02:00
Arnout Vandecappelle
b1e0b6d736 Makefile: help: add package-specific targets
The documentation of the package-specific targets is heavily inspired by
the earlier patch by Thomas Petazzoni [1], but the <pkg>-install*
targets were left out since they're not useful for the developer IMHO.

The *-menuconfig target's help text is moved to the package-specific
targets.

[1] http://patchwork.ozlabs.org/patch/433692

[Thomas: remove double <pkg>-graph-depends help.]

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-04 15:17:48 +02:00
Arnout Vandecappelle
f42a580a89 Makefile: split off 'list-defconfigs' from 'help'
As discussed in the FOSDEM2015 BR developer meeting, the output of
'make help' is too long for comfortable reading. To shorten it, split
off the list of defconfigs in a new target, 'list-defconfigs'.

Declare the new target as phony.

Add 'list-defconfigs' to the documentation.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-04 15:13:52 +02:00
Arnout Vandecappelle
df79e35aa8 Makefile: declare 'help' target as phony.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-04 15:12:53 +02:00
Thomas Petazzoni
4a9a21b95c Makefile: remove the graphs/ dir on 'make clean'
Currently, a 'make clean' leaves the graphs/ subdirectory in the
output directory. This commit defines a GRAPHS_DIR variable, used by
the different graph-generating targets, and which gets cleaned up in
the 'clean' target.

[Thomas: use the new GRAPHS_DIR variable in more places, as suggested
by Yann.]

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-03 14:19:18 +02:00
Yann E. MORIN
ad24d83305 distclean: clean a bit more
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-29 13:35:25 +02:00
Andrew Parlane
26f215d137 target-finalize: Use NULL deliminators when stripping the target directory.
Special characters in files or directories in the rootfs can cause
problems when stripping files.  For example "target/some song.mp3"
gets treated as two entries. "target/some" and "song.mp3" are both
passed to $(STRIPCMD). This then errors saying files don't exist.

Additionally a ' and possibly other special characters in a file path
causes xargs to give the error: "xargs: unmatched single quote; by
default quotes are special to xargs unless you use the -0
option". This also has the effect of removing this entry and further
entries from the list of files to strip.  This can be demonstrated by
having a test directory with the files: "cat" "rabbit's"
"elephant". then running the command: "find -name "*" -print | xargs"

To fix this we pass -print0 to find which seperates entries with a
NULL character, and we pass -0 to xargs to tell it to only use NULL
characters as the deliminator.

Signed-off-by: Andrew Parlane <andrewp@carallon.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-20 22:46:02 +01:00
Peter Korsgaard
5dc33f037a Kickoff 2015.05 cycle
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-03-02 21:03:01 +01:00
Peter Korsgaard
6bf057b0f2 Update for 2015.02
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-03-01 22:26:12 +01:00
Peter Korsgaard
345f32e67d Update for 2015.02-rc3
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-02-24 00:24:19 +01:00
Peter Korsgaard
bc11392de7 Update for 2015.02-rc2
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-02-15 23:44:43 +01:00
Frank Hunleth
5c1a75c08f Makefile: update help text for savedefconfig
Updated text to say that the defconfig is written to the BR2_DEFCONFIG
location.

Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-02-14 09:02:51 +01:00
Peter Korsgaard
2165267699 Update for 2015.02-rc1
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-02-08 22:19:45 +01:00
Arnout Vandecappelle
32babbf974 %_defconfig: save the path to the defconfig
We have the BR2_DEFCONFIG feature that saves the path to the defconfig
file that was specified on the command line, so that a later
savedefconfig would immediately save to the right location. This wasn't
done for the defconfigs in the configs/ directory, however, to avoid
accidentally overwriting them.

Now we decided that it would be more useful to overwrite the defconfigs
in the configs/ directory after all. To do this, we pass the path to
that defconfig in the environment.

Cc: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-02-02 21:42:47 +01:00
Bjørn Forsman
0515fe4566 Makefile: pass host PKG_CONFIG_PATH at "make menuconfig" time
Buildroot unexports PKG_CONFIG_PATH in the top-level Makefile for purity
reasons. But it has an unfortunate side-effect in that "make menuconfig"
will not (necessarily) be able to pick up ncurses via host pkg-config,
breaking "make menuconfig" on systems where ncurses is installed in a
non-standard location.

This patch saves the original PKG_CONFIG_PATH variable in
HOST_PKG_CONFIG_PATH and restores the original PKG_CONFIG_PATH variable
only in the sub-processes that builds the various menuconfig/nconfig/...
targets.

(PKG_CONFIG_PATH has to be placed in front of the make command so that it
propagates to sub-processes. If given as an argument, it doesn't work.)

Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-01-07 22:26:34 +01:00
Fabio Porcedda
fffb68a83f Makefile: improve detection of make "-s" flag
Because it's just checking the presence of the "s" character even a
  make --warn-undefined-variables
is detected as a silent build.

Fix that by filtering out long options.

Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-01-02 16:34:15 +01:00
Baruch Siach
f6e7710323 Makefile: clarify comment on .br-external handling
The comment language may lead the reader to think that .br-external is removed
whenever BR2_EXTERNAL is not set in the command line. Make it clear that
BR2_EXTERNAL must be explicitly set to an empty value for .br-external to get
removed.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-12-26 13:55:50 +01:00
Peter Korsgaard
fe1b2ef1d3 Merge branch 'next'
Conflicts:
	Makefile
	package/flac/0001-fix-altivec-logic.patch
	package/grantlee/Config.in

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-12-01 11:16:42 +01:00
Peter Korsgaard
9a5434fbfc Update for 2014.11
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-12-01 10:19:00 +01:00
Peter Korsgaard
f30e54eb92 Update for 2014.11-rc3
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-11-28 13:23:38 +01:00
Thomas Petazzoni
404f4933c9 Makefile: use more sensible names for locale related variables
The GENERATE_LOCALE variable is used for the qstripped version of
BR2_GENERATE_LOCALE. It was used by both the glibc locale generation
code (in the main Makefile), and by the uClibc logic in
package/uclibc/uclibc.mk. However, since commit
33de740170 ("Makefile: convert
"target-generatelocales" to a hook"), this code has been moved around
in the main Makefile, and the definition of GENERATE_LOCALE is now
*after* uclibc.mk is included, and therefore this variable is always
empty when uclibc.mk looks at it for its conditionals. Moreover, it is
now only defined in the main Makefile is BR2_TOOLCHAIN_USES_GLIBC is
'y', which obviously isn't the case for uClibc toolchains.

Since it's anyway not very clear to have this variable shared between
the glibc locale generation logic in the main Makefile and the uClibc
configuration code in uclibc.mk, this commit:

 - Renames the GENERATE_LOCALE variable in the main Makefile to
   GLIBC_GENERATE_LOCALES.

 - Renames the GENERATE_LOCALES hook to GENERATE_GLIBC_LOCALES, since
   it's specific to glibc.

The fix for the uClibc case is part of a followup commit.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-11-21 21:50:35 +01:00
Peter Korsgaard
641e00ef23 Update for 2014.11-rc2
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-11-21 13:19:45 +01:00
Peter Korsgaard
cbb3cb3beb Kickoff 2015.02 cycle
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-11-14 14:52:59 +01:00
Peter Korsgaard
74128856f4 Update for 2014.11-rc1
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-11-12 23:11:07 +01:00
Arnout Vandecappelle
61446d3d15 Makefile: make help: remove <package>- help, add link to online manual
We only documented a few of the <package>- targets and it's hard to
decide which ones are relevant for make help. Since the help is already
way too long, it's better to remove these advanced targets.

Instead, let's refer to the online manual.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Acked-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-12 12:37:56 +02:00
Yann E. MORIN
f70d64111a Makefile: enable generating documents from br2-external
Currently, the only way br2-external may generate a document is by
including that document's recipe from within external.mk.

But external.mk is only parsed when the tree is configured.

This is unlike our internal document (the manual) which can be generated
from within an unconfigured tree.

So, include the documents from br2-external at the same time we include
our own document:
  - expect the same layout as we have:      docs/DOC_NAME/doc-name.mk
  - do not fail if there is no document:    use "-include", not "include"

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Samuel Martin <s.martin49@gmail.com>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-12 07:46:28 +02:00
Yann E. MORIN
ab6a6212b0 docs: rename the GENDOC infrastructure
Rename the GENDOC infrastructure so that it more closely matches the way
we handle the packages infras.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Samuel Martin <s.martin49@gmail.com>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-12 07:46:28 +02:00
Yann E. MORIN
2dfe1b8395 docs: separate the GENDOC infra from our manual definition
Move the GENDOC infra to its own file, so it is even less tied to our
manual document, so that it is more obvious that GENDOC is an infra like
our packages infras, and 'manual' is a document like we have packages.

Ideally, this new file should better go in docs/ rather than in package/ .
However, docs/ is already full of our website stuff, so adding it in
there would just serve to clutter the website.

So, let's just put alongside the other infrastructures, in package/ .

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Samuel Martin <s.martin49@gmail.com>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-12 07:46:28 +02:00
Yann E. MORIN
5309e2e181 Makefile: be sure the default rule 'all:' is the first one
In the coming patch, we are going to change the order in which our rules
are defined, because we include the gendoc infra before we define the
'all:' rule, so we need to decalre the 'all:' rule before we include
gendoc.

Declare it very, very early in the Makefile, so it always kick in first.
The actual dependency is still declared much later, all that counts is
that "all:" is first.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-12 07:46:26 +02:00
Thomas Petazzoni
5c00522972 legal-info: fix bug leading to one package not being considered
Due to excessive parenthesis, the TARGETS_LEGAL_INFO expression was
evaluated to something like this:

  toolchain-legal-info toolchain-external-legal-info busybox-legal-info zlib-legal-info))

Yes, with the last two parenthesis. This had the effect that the
zlib-legal-info rule was never called: the last package of $(TARGETS)
$(TARGET_HOST_DEPS) $(HOST_DEPS) was never added in the legal-info
information.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Luca Ceresoli <luca@lucaceresoli.net>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-10-06 20:58:06 +02:00
Thomas Petazzoni
899d2af16d python, python3: convert py/pyc removal to TARGET_FINALIZE_HOOKS
Since the removal of py/pyc files is Python-specific, this commit
moves the logic removing those files to python.mk and python3.mk
respectively.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-05 14:32:41 +02:00
Risto Avila
6d3b975653 Makefile: Unexport MACHINE variable
Fixes bug 7448

Otherwise glibc build fails.

[Peter: reworded]
Signed-off-by: Risto Avila <risto.avila@digia.com>
Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net>
Tested-by: Luca Ceresoli <luca@lucaceresoli.net>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-25 09:46:10 +02:00
Peter Korsgaard
7f0ce7c878 Kickoff 2014.11 cycle
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-01 15:08:56 +02:00