summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2015-08-05Update for 2015.08-rc1Thomas Petazzoni
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-26Makefile: unexport OGuido Martínez
After bee5745ccc2 ("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-18Makefile: fix performance regression caused by the umask handlingGuido Martínez
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-17release: remove manual build files from release tarballsThomas De Schampheleire
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-14Makefile: save MAKE_VERSIONGustavo Zacarias
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-14skeleton: New packageMaxime Hadjinlian
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-14purge-locales: fix handling of X11 locale.dirValentine Barshak
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-14purge-locales: further refactoring after removing man pathsArnout Vandecappelle
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-13purge-locales: skip /usr/man and /usr/share/manArnout Vandecappelle
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-13Makefile: don't depend on current skeleton/overlay permissionsGuido Martínez
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-13Makefile: don't depend on the umaskGuido Martínez
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-12package: Remove shell completion at finalize stageMaxime Hadjinlian
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-12aarch64: add big endian(aarch64_be) supportBamvor Jian Zhang
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-04packages: fix and improve support for top-level parallel makeFabio Porcedda
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-06-25Makefile: Don't export VERBOSE unless V=1 (for CMake)Cédric Marie
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-06savedefconfig: Remove BR2_DEFCONFIG from saved defconfig fileHerve Codina
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-01Kickoff 2015.08 cyclePeter Korsgaard
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-05-31Update for 2015.05Peter Korsgaard
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-05-22Update for 2015.05-rc3Peter Korsgaard
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-05-11Update for 2015.05-rc2Peter Korsgaard
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-05-10Makefile: Handle whitespace when stripping .koerico.nunes
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-04Update for 2015.05-rc1Peter Korsgaard
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-04-26Makefile: add a few more targets to nobuild_targetsThomas Petazzoni
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-26Makefile: add BR_BUILDING variableThomas Petazzoni
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-26Makefile: remove unneeded variablesThomas Petazzoni
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-26Makefile: implement the 'source' target using the package infrastructureThomas Petazzoni
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-26Makefile: implement a package based source-check targetThomas Petazzoni
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-26Makefile: move source-check outside of noconfig_targetsThomas Petazzoni
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-26Makefile: use the package infra based external-depsThomas Petazzoni
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-24Makefile: add list-defconfig to the general helpYann E. MORIN
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-22Makefile: fix typo in a commentLuca Ceresoli
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-04-18target-finalize: fix calling ldconfigYann E. MORIN
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-18Makefile: remove redundant mkdir from *configArnout Vandecappelle
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-14Makefile: simplify show-targetsThomas Petazzoni
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-14Makefile: use <pkg>-all-legal-info to implement the legal-info targetThomas Petazzoni
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-14Makefile: rename TARGETS to PACKAGESThomas Petazzoni
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-14Makefile: targets are now declared phony by the appropriate infrastructuresThomas Petazzoni
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-11*config: improve handling of BR2_LEGACYArnout Vandecappelle
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-09Makefile: delete HOSTFC and FC_FOR_BUILDMasahiro Yamada
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-08Fix typos in comment blocksMasahiro Yamada
[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-07Makefile: remove extra ifdef/endif of top MakefileMasahiro Yamada
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-06Makefile: add help for linux-update-defconfig targetYegor Yefremov
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-06Makefile: directories are not PHONY targetsThomas Petazzoni
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-06Makefile: remove dubious commentThomas Petazzoni
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-04Makefile: help: add package-specific targetsArnout Vandecappelle
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-04Makefile: split off 'list-defconfigs' from 'help'Arnout Vandecappelle
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-04Makefile: declare 'help' target as phony.Arnout Vandecappelle
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-03Makefile: remove the graphs/ dir on 'make clean'Thomas Petazzoni
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-03-29distclean: clean a bit moreYann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-20target-finalize: Use NULL deliminators when stripping the target directory.Andrew Parlane
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>