summaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* toolchain: add support for external toolchain profiles and downloadThomas Petazzoni2010-12-131-1/+2
| | | | | | | | | | | | | | | | | | | Instead of letting the user define all the details of his external toolchain, we define a set of profiles for well-known external toolchains (CodeSourcery ones only at the moment, can easily be extended with other toolchains). Once a profile has been choosen, the user is offered the choice of either letting Buildroot download and install the external toolchain, or (as before) to tell Buildroot where the toolchain is installed on the system. We of course provide a "custom profile", through which the user can configure Buildroot to use a custom external toolchain for which no profile is available. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* ccache: rework ccache managementThomas Petazzoni2010-12-081-6/+20
| | | | | | | | | | | | | | * ccache is now a normal package (both for the host and the target). * ccache option is now part of the "Build options" menu. It will automatically build ccache for the host before building anything, and will use it to cache builds for both host compilations and target compilations. * bump ccache to 3.1.3 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: document savedefconfig in 'make help', like it's done in LinuxPeter Korsgaard2010-12-071-0/+1
| | | | Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* buildroot: kickoff 2011.02 development phasePeter Korsgaard2010-12-031-1/+1
| | | | Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Update for 2010.112010.11Peter Korsgaard2010-11-301-1/+1
| | | | Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: introduce KSTRIPCMD to strip kernel modulesGustavo Zacarias2010-11-301-1/+1
| | | | | | | | | | | | | | | When sstrip is selected it tries to strip kernel modules too. Unfortunately this fails with a "unrecognized program segment header size" error thus interrupting the build process. We introduce a new $(KSTRIPCMD) strip command for this, being a regular strip when sstrip is selected and an empty stub when not stripping. At the same time get rid of the REMOVE_SECTION_* variables, as they are only used once. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* target-finalize: libtread_db: support nonstd toolchain setupsMike Frysinger2010-11-281-1/+1
| | | | | | | | | Certain toolchain configs (E.G. on blackfin), don't use symlinks, so the file name to match is the actual SONAME (.so.*). Support these toolchains as well. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* target-finalize: do not strip libthread_dbJavier Viguera2010-11-271-1/+1
| | | | | | | | | Fix previous commit not to strip libthread_db library. In the previous commit the wildcard was incorrectly matching the symbolic link instead of the real library file. Signed-off-by: Javier Viguera <javier.viguera@digi.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Update for 2010.11-rc22010.11_rc2Peter Korsgaard2010-11-251-1/+1
| | | | Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* target-finalize: do not strip libthread_db.soMike Frysinger2010-11-241-1/+2
| | | | | | | | | | For proper threading debug support, the libthread_db.so library cannot be stripped on the target. This is because the target gdbserver will also load up this library at runtime and poke around its symbols. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* auto remove empty /usr/share dirMike Frysinger2010-11-241-0/+1
| | | | | | | | | | | Often times, the only reason /usr/share exists is because of documentation installed into it. So once we're done cleaning the docs, attempt to rmdir /usr/share. If it's empty, things will work out nicely. [Peter: use make infrastructure to ignore errors rather than shell] Signed-off-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: really adjust kernel modules strip invocationPeter Korsgaard2010-11-241-1/+1
| | | | Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* linux: strip installed modulesMike Frysinger2010-11-241-0/+3
| | | | | | | | | | | The installed kernel modules should have useless build cruft stripped out of them. On my system, a default build went from a very unreasonable 30MB to a normal 3MB (on disk) and from 14MB to 3MB when compressed due to the info stored in the kernel modules alone. [Peter: don't hardcode binutils strip specific options] Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: remove outdated flush targetPeter Korsgaard2010-11-241-4/+0
| | | | | | Not needed any more as we've removed the shared config.cache handling. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: remove outdated .config.cmd handlingPeter Korsgaard2010-11-241-18/+5
| | | | | | Not used anymore, and forcefully removes config if *config is aborted. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: handle host packages for make source / make external-depsPeter Korsgaard2010-11-191-1/+20
| | | | | | | | | | | | | | | | | | | | Ensure host packages (dependencies of target packages) are also handled by make source / make external-deps. This has to be done a explicitly, as we don't list these in Kconfig, and hence also not in a variable like TARGETS, so instead we have to look at the <PKG>_DEPENDENCIES variables for each enabled package and extract the host packages from there. Host packages can in turn also have dependencies, so we have to follow those as well. Ideally this should be done recursively, but as that's pretty hard to do in make, it is limited to 1 level for now. Finally, host packages share source files with target packages, so pipe output of make external-deps through sort -u to ensure duplicates are removed. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Update for 2010.11-rc12010.11_rc1Peter Korsgaard2010-11-081-1/+1
| | | | Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: move target-{finalize,purgelocales} after bootloader/linux stepPeter Korsgaard2010-11-071-3/+4
| | | | | | | | | Closes #2731 Bootloader and Linux kernel steps can add content to the rootfs, so ensure the cleanup / postprocess steps are moved after those. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Remove support for shared configuration cacheThomas Petazzoni2010-11-051-9/+0
| | | | | | | | | | | | | | | | | The configuration cache shared between packages, while being in principle a nice idea to speed-up the configuration of packages by avoiding repetitive identical checks, turned out to be unreliable due to the subtle differences between similar but not identical checks in different packages. After spending some time trying to fix those, we concluded that supporting the shared configuration cache is definitely too hard and too unreliable, and that we'd better get rid of it altogether. This patch therefore removes the shared configuration cache infrastructure and usage. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: fix release target with make 3.81Peter Korsgaard2010-11-041-0/+2
| | | | | | | | It seems that target-specific variables don't mix with target rules. Thanks to Yann for helping debugging the issue. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: use global version string in /etc/br-versionYann E. MORIN2010-11-031-2/+1
| | | | | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: compute the version string for all to useYann E. MORIN2010-11-031-0/+4
| | | | | | | | | Some packages use the buildroot version string (to set their own version string). Computing the version string globally will makes it easy for them to use it instead of re-computing it in every packages. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: move version string from Config.in into MakefileYann E. MORIN2010-11-031-3/+5
| | | | | | | | | This re-instates writing the version string in .config headers, and no longer provides it as a kconfig symbol in .config (it is now a variable in the Makefile, and in the environment). Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: move .NOTPARALLELYann E. MORIN2010-11-031-3/+4
| | | | | | | Move it down, users should not mess with it. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Optimize (-O2) host binaries by defaultPeter Korsgaard2010-10-291-9/+0
| | | | | | | | | Default HOST_CFLAGS to -O2, so host tools (like the cross compiler) are built with optimization by default. Based on a patch by Will Newton <will.newton@gmail.com>. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: move KERNEL_ARCH from kernel-headers to herePeter Korsgaard2010-10-171-0/+8
| | | | | | | | | | Closes #2707 It's not only for kernel headers, and the kernel headers .mk file isn't included for crosstool-ng toolchain, which broke linux/u-boot/.. builds. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* toolchain: add new toolchain backend: crosstool-NGYann E. MORIN2010-10-011-1/+3
| | | | | | [Peter: indent Config.in, shuffle make targets around] Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* sed: get rid of host-sed variantPeter Korsgaard2010-09-301-1/+1
| | | | | | | | And all the infrastructure surrounding it. A broken sed implementation is quite rare nowadays, as seen by the fact that the current host-sed support has been broken for a while, so just get rid of it. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: Force make to run serially in the top-level MakefileYann E. MORIN2010-09-301-0/+3
| | | | | | | | | | | | The top-level Makefile can be executed in parallel, as it causes problems. We can force make to be not parallel. It's been reported many times, and recent discussions on IRC with kos_tom, and user nick-named knee, led to this patch. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: generate a Makefile wrapper in $(O)Yann E. MORIN2010-09-261-17/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | If building out-of-tree, add a Makefile wrapper that calls-out to the real Makefile with proper args. Avoids having to pass -C and O= every time we call make. This is highly inspired from how the Linux kernel does it, and portions of it have been used. We can't use exactly the same implementation as the kernel does, because: - the script writing the wrapper has been expunged of the few lines that were too kernel-related: in buildroot we do not need the version string in the wrapper, and we do not have a patchlevel version; - "in-tree build" does not have the same meaning for the kernel and for buildroot: for the kernel, $(O) point to the $(TOPDIR), while for buildroot $(O) points to $(TOPDIR)/output. For more complete explanations, see: http://lists.busybox.net/pipermail/buildroot/2010-September/037815.html [Peter: minor tweaks] Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at anciens.enib.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Re-implement the source-check and external-deps targetsMaxime Petazzoni2010-09-131-11/+2
| | | | | | | | | | | | | | | The new DL_MODE variable dispatches between the various download implementations of each method (Git, Subversion, Wget) to deal with the normal download (default mode, 'DOWNLOAD'), the source-check ('SOURCE_CHECK') and to show the external dependencies for external-deps ('SHOW_EXTERNAL_DEPS'). For the latter, the legacy script wget-show-external-deps.sh is no longer required as $(WGET) isn't called directly anymore but always through the DOWNLOAD helper. Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Cleanup the VCS commands configurationMaxime Petazzoni2010-09-131-4/+2
| | | | | | | | | It's not really necessary to differenciate the commands for checking out or updating a repository. Only the path to the binary and eventual top-level flags are useful to configure. Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Remove the spider featureMaxime Petazzoni2010-09-131-4/+3
| | | | | | | | | | In preparation for the re-work of the DOWNLOAD helper to support multiple download methods and protocols, the spider feature used with wget is removed for now until it is re-implemented on top of the new download methods. Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Merge branch 'for-2010.11/kconfig-upgrade' of ↵Peter Korsgaard2010-09-021-55/+49
|\ | | | | | | git://git.busybox.net/~tpetazzoni/git/buildroot
| * Ensure that all config-related files are generated before the buildThomas Petazzoni2010-09-011-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous commit has removed calls to conf_write_autoconf(), which is the function that generates the KCONFIG_AUTOCONF, KCONFIG_AUTOHEADER, KCONFIG_TRISTATE files and the split config (with one file per config item). Therefore, those things were not generated anymore before the build. In order to get them generated before the build, we use the same mechanism as the kernel: run a silentoldconfig when the .config file is newer than the KCONFIG_AUTOCONF file. In Buildroot, all those elements are not really used today, except the split config which is used a little bit in the toolchain build, in a try to make sure the toolchain gets rebuilt properly when the configuration changes. It does not seem that this work has been completed. However, as we want to keep the same behaviour as previously, we have to generate all those elements before starting the build. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * Add support for savedefconfigThomas Petazzoni2010-09-011-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | savedefconfig allows to create a minimal defconfig file from an existing configuration. For example : make O=/path/to/some/buildroot/build/directory savedefconfig will generate a minimal 'defconfig' file in the main Buildroot source directory. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * Factorize environment variables for config utilitiesThomas Petazzoni2010-09-011-43/+23
| | | | | | | | | | | | | | | | | | | | | | Instead of duplicating the definition of KCONFIG_AUTOCONFIG, KCONFIG_AUTOHEADER and BUILDROOT_CONFIG, let's define them in a COMMON_CONFIG_ENV variable, which is used by all the xconfig, gconfig, menuconfig, nconfig, config, oldconfig, randconfig, allyesconfig, allnoconfig, randpackageconfig, allyespackageconfig, allnopackageconfig, defconfig, %_defconfig targets. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * Makefile: use long options names for the 'conf' utilityThomas Petazzoni2010-09-011-9/+9
| | | | | | | | | | | | | | | | | | The short option names have been removed as they were starting to cause too much confusion. See http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4062f1a4c030157216dc8932e27131975cf7253c for details. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * Add support for the new nconf configuration toolThomas Petazzoni2010-09-011-1/+9
| | | | | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * Clean up our patches against kconfigThomas Petazzoni2010-09-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our kconfig-to-buildroot2.patch hasn't been kept up to date with all the changes made into package/config, and a single patch wasn't very practical to maintain all our changes. Therefore, this commit adds a package/config/patches directory, which contains a Quilt series of patches that correspond to our modifications to the kconfig mechanism. The huge kconfig-to-buildroot2.patch has been split into 16 smaller patches. The purpose of some of the modifications has been clearly identified, while some others were not identified. The 16 patches together do match exactly the old kconfig-to-buildroot2.patch. We have been very careful in making sure that we wouldn't loose any of our modifications. The only modifications made are : * Instead of renaming the kernel Makefile to Makefile.kconfig and naming the Buildroot Makefile just 'Makefile', we instead keep the original package/config/Makefile from the kernel scripts/kconfig/Makefile and name the Buildroot Makefile package/config/Makefile.br. The main Buildroot Makefile is modified accordingly. * The documentation README.buildroot2 is updated to explain how to upgrade to a newer version of scripts/kconfig. * The kconfig-language.txt documentation is removed, as anybody can easily find it in the kernel sources so there's no need to duplicate it here. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * Implement %_defconfig similarly to the kernelThomas Petazzoni2010-09-011-5/+7
| | | | | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * Remove CONFIG_DEFCONFIGThomas Petazzoni2010-09-011-5/+0
| | | | | | | | | | | | | | | | There's no need to have a .defconfig, when you run make menuconfig, make xconfig or anything else for the first time, it will just start with the default configuration anyway. This is what the kernel does. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* | Fix ldconfig call in target-finalizeThomas Petazzoni2010-08-301-3/+7
|/ | | | | | | | | | | | | | | | | Recent versions of ldconfig require the directory /var/lib/ldconfig, otherwise they bail out with an error. Moreover, having a /etc/ld.so.conf file also avoids a warning. In addition to this, we remove the redirection of stderr, so that errors remain visible to the user. Thanks to Baruch Siach, Andy Gibbs and Darcy Watkins for investigating the issue and proposing solutions. This fixes the build on recent distributions such as Fedora 13 or Gentoo. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Makefile: fix source/source-check/external-deps with O=Peter Korsgaard2010-08-291-8/+6
| | | | | | | | | | | | | | Based on patch by Will Wagner <will_wagner@carallon.com>. Now that the .config is located in the output directory when O=<dir> is used, we have to pass the O= option to make for source/source-check/external-deps to get them to look in the right place for the .config. Fix it by introducing an EXTRAMAKEARGS variable and use it whenever we call back into the toplevel Makefile. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Remove gdb plugins from targetMalte Starostik2010-07-301-0/+3
| | | | | | | * Don't install gdb plugins unless BR2_TARGET_GDB is set Signed-off-by: Malte Starostik <m-starostik@versanet.de> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Globally remove aclocal directories from targetMalte Starostik2010-07-301-1/+1
| | | | | | | | | | * Remove $(TARGET_DIR)/usr/share/aclocal from target-finalize when not installing devfiles and * Remove some (now) redundant cleanup from individual packages Signed-off-by: Malte Starostik <m-starostik@versanet.de> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* toolchain: move makefile includesYann E. MORIN2010-07-281-14/+2
| | | | | | | | | | | | | | | | | | | Including a bunch of Makefiles with wildcard makes it impossible to add new toolchain backends. Avoid that by namely including needed files. The external toolchain still needs to include all the toolchain/*/*.mk sub-makefiles, as they are needed to build a toolchain that runs on the target. It is to be noted that the cross-toolchain is not built in this case, as the make-targets to build the cross-toolchain are not present in the $(BASE_TARGETS) variable, which is later used to create the dependency rules. Also, the comment 'Explicit ordering' has been removed, as it is mis- leading. It is make's responsibility to create the proper ordering based on the dependency rules it finds in the Makefiles Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* toolchain: move helper functions from external toolchainYann E. MORIN2010-07-281-0/+1
| | | | | | | | | The helper functions used for external toolchains may also be useful to alternate toolchain backends (currently, the external toolchain is the sole user). Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile: fix ldconfig selection for internal toolchainsPeter Korsgaard2010-07-261-2/+6
| | | | | | | | | | | | Commit ed0d45fdd (Choose host/target ldconfig based on availability) added a runtime check for a cross-ldconfig being available. Unfortunately this checks runs too early (at package/Makefile.in parsing time), so it always fails when using an internal toolchain as ldconfig isn't built yet. Fix it by moving the check to the only place it is used (target-finalize). Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Fix default skeleton pathMalte Starostik2010-07-191-1/+1
| | | | | Signed-off-by: Malte Starostik <m-starostik@versanet.de> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>