summaryrefslogtreecommitdiffstats
path: root/package/Makefile.package.in
Commit message (Collapse)AuthorAgeFilesLines
* package: add a PRE_PATCH_HOOKS hook pointThomas Petazzoni2011-09-201-0/+2
| | | | | | | | | This will be useful to integrate Xenomai and RTAI into Buildroot, so that they can patch the kernel before the normal patching process starts. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* package: change ordering of stepsThomas Petazzoni2011-09-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the dependency chain is : configure -> patch patch -> extract extract -> depends depends -> source + dependencies ready This is a problem for RTAI, as : * In linux/linux-ext-rtai.mk, we need the RTAI source code to be extracted/patched by the RTAI package, so we need to have a dependency on RTAI. * The RTAI package cannot have its configure step executed before the Linux kernel is built, because it needs the kernel source code to be extracted and configured. Therefore, we have a sort of circular dependency. We solve this circular dependency by having the RTAI kernel part depending on rtai-patch, and having the RTAI userspace part depending on the linux package. However, for this to work, we have to modify the dependency chain to: configure -> patch + depends patch -> extract extract -> source depends -> dependencies ready Which means that dependencies are guaranteed to be built not when the package is extracted, but when the package is configured. Which is technically more correct that what we were doing in the past. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* support: move patch-kernel.sh and rename itThomas Petazzoni2011-09-171-4/+4
| | | | | | | | The name "patch-kernel.sh" is a bit stupid, since this script is used to patch everything in Buildroot, not only kernel trees. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* package: fix <pkg>_DL_VERSION valueThomas Petazzoni2011-08-041-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 993e51bc22f508fbaf39c5c49fd0595fc5c56013 introduced a <pkg>_DL_VERSION in addition to <pkg>_VERSION. This variable, purely internal to the package infrastructure, allows to store the *raw* version name, as defined in the package .mk file. However, as this version string can contain slashes, it is not appropriate to be part of the build directory name of the package. This is why <pkg>_VERSION is defined to be the same thing as <pkg>_DL_VERSION, except that slashes are replaced by underscores. However, the initial implementation didn't take into account the case of host packages. So 763822e874fd8d39b591feaa9639f76183897fb7 was committed to fix this. But unfortunately, this commit got it wrong again: it forgot the case where <pkg>_VERSION is set, but not HOST_<pkg>_VERSION. In this case, HOST_<pkg>_DL_VERSION remained empty. This can be seen for example by building host-sstrip. This problem has been noticed by Julien Boibessot <julien.boibessot@free.fr>, who also helped in fixing the issue. Thanks! The fix is simply to ensure that <pkg>_DL_VERSION is properly set in all cases: when HOST_<pkg>_VERSION is defined, when only <pkg>_VERSION is defined, and when no version is defined. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile.package.in: use "" for MESSAGE argumentsPeter Korsgaard2011-07-181-3/+3
| | | | | | | | Otherwise we get output like: >>> host-pkg-config 0.25 'Installing to host directory' Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile.package.in: Add BR2_XZCAT for LZMA compression typeAllan W. Nielsen2011-07-121-0/+1
| | | | | | Signed-off-by: Allan W. Nielsen <a@awn.dk> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Improve TARGETS handling for bootloaders and kernelThomas Petazzoni2011-07-111-3/+13
| | | | | | | | | | | | | | | | | | As the kernel and bootloaders do not use the normal BR2_PACKAGE_* Kconfig options, their target name was not automatically added to the global TARGETS variable. Each bootloader .mk and the linux.mk had to add their own target manually to TARGETS, and the package infrastructure was making tests on non-existing Kconfig variables. This commit improves the package infrastructure so that it looks at BR2_PACKAGE_<pkg> for packages, BR2_TARGET_<pkg> for bootloaders and at the special BR2_LINUX_KERNEL for the linux package. This allows to simplify a little bit the bootloaders and linux .mk files. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* package: add support for post-download hooksThomas Petazzoni2011-07-101-0/+2
| | | | | | | | This will be needed for the Linux kernel package, which needs to download patches in a custom way. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* package: fix patching procedure for host packagesThomas Petazzoni2011-07-071-14/+12
| | | | | | | | | | | | | | | | | | | The patching procedure was using $($(NOHOSTPKG)_NAME) to find the name of the package without the host- prefix for host packages, which is needed to find the package directory and the prefix of the patches. However, this $($(NOHOSTPKG)_NAME) variable is empty when there is only an host variant for the package and no target variant for it. Therefore, instead of using this $($(NOHOSTPKG)_NAME) variable, we now use a new $(RAWNAME) variable, which is always the name of the package without the host- prefix, even for host packages. Thanks to Yann E. Morin for providing the tip on using patsubst instead of subst. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* package: add infrastructure to install things in images/Thomas Petazzoni2011-07-071-1/+19
| | | | | | | | This will allow the bootloader makefiles and the kernel makefile to rely on the GENTARGETS infrastructure. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Fix quoting in default extract commandThomas Petazzoni2011-07-071-1/+2
| | | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile.package.in: Makes it possible to override the default extract commandsAllan W. Nielsen2011-07-071-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | When using GENTARGETS (or macroes depending on it), there is no way of specifying a custom extraction procedure. When using the patch one can simply define $(PACKAGE_NAME)_EXTRACT_CMDS which will override the default. If non is defined it will fall back to the default extract procedure. An example could look like this: === PACKAGE BEGIN === FGLRX_VERSION=11-3 FGLRX_SOURCE:=ati-driver-installer-$(FGLRX_VERSION)-x86.x86_64.run FGLRX_SITE:=http://www2.ati.com/drivers/linux/ define FGLRX_EXTRACT_CMDS sh $(DL_DIR)/$(FGLRX_SOURCE) --extract $(@D) endef $(eval $(call GENTARGETS,package,fglrx)) === PACKAGE END === Signed-off-by: Allan W. Nielsen <a@awn.dk> Cc: Allan W. Nielsen <a@awn.dk> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile.package.in: extract: only ensure r/w access for userPeter Korsgaard2011-07-071-1/+1
| | | | | | | There's no reason to make the source files writable for everyone. Reported-by: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* infrastructure: remove leftover of old style hooksDaniel Hobi2011-07-061-1/+1
| | | | | | | | | Commit ae2be8d (infrastructure: remove support for old style hooks) forgot to update an uninstall rule. Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Daniel Hobi <daniel.hobi@schmid-telecom.ch> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* fetch/git: clone the repository as bareJean-Christophe PLAGNIOL-VILLARD2011-03-161-1/+1
| | | | | | | | | | This will reduce the space used and speed up the clone as it is only used to generate an archive, which doesn't need the git working tree. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile.package.in: make <pkg>_SOURCE optionalPeter Korsgaard2011-03-121-3/+3
| | | | | | | | | For packages where the sources are included in buildroot (E.G. makedevs). We unfortunately already use no <pkg>_SOURCE to mean <pkg>_<version>.tar.gz, in several packages (and for git/svn/bzr support), so you need to define <pkg>_SOURCE to the empty string to use it. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* package infra: fix versioned patches for host packagesGustavo Zacarias2010-12-271-1/+1
| | | | | | | | | Without this patch we'd need separate versioned patch directories for target and host packages, thus having unwanted duplication. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* infrastructure: only require download tools when neededThomas Petazzoni2010-12-241-2/+12
| | | | | | | Instead of having to require svn, git or bzr unconditionally, only require them when one package needs them to be downloaded. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package/Makefile.package.in: Added BZR download supportDaniel Nyström2010-12-241-11/+28
| | | | | Signed-off-by: Daniel Nyström <daniel.nystrom@timeterminal.se> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package: move autoreconfigure step to pre configure hookLionel Landwerlin2010-11-051-0/+2
| | | | | | | [Peter: update documentation to match] Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Fix <PKG_NAME>_VERSION variable setupLionel Landwerlin2010-09-201-8/+8
| | | | | | | | | Commit 993e51bc22f508fbaf39c5c49fd0595fc5c56013 introduced a problem to compute <PKG_NAME>_VERSION variable when PKG_NAME start with 'HOST_'. Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Merge branch 'for-2010.11/download-rework' of ↵Peter Korsgaard2010-09-171-14/+124
|\ | | | | | | | | | | git://git.busybox.net/~tpetazzoni/git/buildroot Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
| * Revert "Makefile.package.in: allow packages to override download step"Maxime Petazzoni2010-09-131-1/+1
| | | | | | | | | | | | | | This reverts commit 48cf66f1a2e2c501abeee98b7a2268b0d6d2010d. Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * Re-implement the source-check and external-deps targetsMaxime Petazzoni2010-09-131-13/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Implement basic non-wget download methodsMaxime Petazzoni2010-09-131-4/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Packages can now be sourced from Git and Subversion repositories. The download method will be autodetected from the URI (git://, svn://, etc). If the repository is accessed through http(s), you can force the download method by setting a _SITE_METHOD variable to either 'git' or 'svn', respectively and without the quotes. The package's _VERSION variable defines which commit, revision, tag or branch should be checked out. For Git, it can be HEAD, a commit ID, a tag name or branch name (anything that can be checked out with `git checkout`). For Subversion, it must be a revision number, or HEAD. 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-10/+0
| | | | | | | | | | | | | | | | | | | | 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>
* | infrastructure: remove support for old style hooksThomas Petazzoni2010-09-121-27/+6
|/ | | | | | | | Now that all old-style hooks occurences have been converted to new-style hooks, let's get rid of the code needed to support old-style hooks from the package infrastructure. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Match whole words when changing .config optionsMalte Starostik2010-07-181-3/+3
| | | | | | | | | | | Make KCONFIG_{ENABLE,DISABLE,SET}_OPT match whole words only. Fixes that BR_INET_IPV6 enables CONFIG_IPV6 in the kernel's .config, but also nukes everything with "CONFIG_IPV6" in its name, e.g. CONFIG_IPV6_PRIVACY. This in turn causes any IPv6 options in a custom kernel .config to be lost and oldconfig going interactive. Signed-off-by: Malte Starostik <m-starostik@versanet.de> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile.package.in: allow packages to override download stepPeter Korsgaard2010-07-011-1/+1
| | | | | | E.G. for checkout from version control instead. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile.autotools.in fix typo (s/extrators/extractors/)Peter Korsgaard2010-06-231-1/+1
| | | | | | Noticed by Michael S. Zick. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Makefile.package.in: Add support for *.tbz2 package archivesPaul Jones2010-06-231-5/+6
| | | | | | Signed-off-by: Paul Jones <paul@pauljones.id.au> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Add generic functions to enable/set/disable options in kconfig filesThomas Petazzoni2010-06-221-0/+15
| | | | | | | | | | | | | | The KCONFIG_ENABLE_OPT, KCONFIG_SET_OPT and KCONFIG_DISABLE_OPT are new make functions to respectively enable, set and disable options in Kconfig-like files (as used by the kernel, uClibc or Busybox). They can be used as follows : $(call KCONFIG_ENABLE_OPT,CONFIG_FOOBAR,/path/to/.config) $(call KCONFIG_SET_OPT,CONFIG_BARFOO,foobar,/path/to/.config) $(call KCONFIG_DISABLE_OPT,CONFIG_FARBOO,/path/to/.config) Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package: Add new <pkg>-show-depends to list dependenciesThomas Petazzoni2010-05-211-0/+3
| | | | | | | The new <pkg>-show-depends simply outputs the list of dependencies for the given package. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Makefile.package.in: optimize UPPERCASE macroPeter Korsgaard2010-05-061-1/+15
| | | | | | | | | | | | | As noticed by Thomas, we call the UPPERCASE macro a lot, and it slows down startup quite a bit. Optimize it by implementing it in make, rather than forking a shell + tr. The implementation is heavily based on the 'up' macro from gmsl (http://gmsl.sf.net) With this in place, startup time is ~5 times lower. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Do not remove documentation on a per-package basisThomas Petazzoni2010-04-111-9/+0
| | | | | | | | Since the documentation cleanup is done by the main Makefile in a global way, there's no need to do that on a per-package basis in the generic package infrastructure. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Add generic package infrastructureThomas Petazzoni2009-12-151-0/+397
This new infrastructure allows to write simpler .mk files for packages not using the autotools as their build system, by factorizing many common steps (download, extract, patching), and will more easily allow Buildroot-wide changes in how the packages are handled. The main macro is called GENTARGETS and works similarly to the AUTOTARGETS macro that already exists for autotools-based packages. However, the set of variables to be defined before calling the macro is different. Refer to the documentation for details. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>