Commit Graph

88 Commits

Author SHA1 Message Date
Thomas Petazzoni
5f71fc1f19 Remove support for shared configuration cache
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>
2010-11-05 10:21:17 +01:00
Lionel Landwerlin
89d1ad91fe package: move autoreconfigure step to pre configure hook
[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>
2010-11-05 10:03:29 +01:00
Lionel Landwerlin
e1317731c8 autotools: fix MESSAGE calls
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>
2010-11-05 09:48:08 +01:00
Martin Banky
83af822f7b Added the ability to patch ltmain.sh based on version
There are two versions of ltmain.sh in use in the buildroot system, 1.5.x and
2.2.x. buildroot-libtool.patch would only patch 1.5.x, which meant that for
2.2.x, a separate patch for the affected package had to be maintained. Modified
Makefile.autotools.in to check the version of ltmain.sh and apply the correct
patch.

Signed-off-by: Martin Banky <Martin.Banky@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-10-14 07:27:07 -04:00
Thomas Petazzoni
55ade5c796 autotargets: don't use install-strip
Many packages using the AUTOTARGETS infrastructure do not support the
install-strip target. Moreover, we are already stripping all binary
files in the $(TARGET_DIR) anyway, so using install-strip is a bit
useless.

So, we use "make install" in all cases, and let Buildroot do the
stripping of the binaries if BR2_ENABLE_DEBUG is not set.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-09-27 15:24:39 +02:00
Thomas Petazzoni
e721a7c07e Merge TARGET_CONFIGURE_ENV into TARGET_CONFIGURE_OPTS
TARGET_CONFIGURE_ENV defines CFLAGS, LDFLAGS, CXXFLAGS and FCFLAGS,
separatly from all other variables that are part of
TARGET_CONFIGURE_OPTS. This is useless and not consistent with the
HOST_CONFIGURE_ variables, therefore we merge TARGET_CONFIGURE_ENV
into TARGET_CONFIGURE_OPTS and fix the few users of
TARGET_CONFIGURE_ENV.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:41 +02:00
Thomas Petazzoni
26082e79af Introduce support for host config cache
We now have for quite some time a configuration cache used to speed-up
the execution of ./configure scripts when compiling programs for the
target. This commit introduces a similar concept when Buildroot
compiles programs for the host.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-07 08:14:41 +02:00
Thomas Petazzoni
1534274047 Fix autotools configuration cache handling
It got broken by the introduction of the new autotools infrastructure
based on the generic infrastructure.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-03 00:00:09 +02:00
Thomas Petazzoni
87d0af93d4 autotools: fix referencing to LIBTOOL_PATCH variable
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-02 23:26:31 +02:00
Thomas Petazzoni
d2c73f5cf9 autotools: inherit LIBTOOL_PATCH for host packages
When FOO_LIBTOOL_PATCH is defined, assume that the same value should
be used for HOST_FOO_LIBTOOL_PATCH.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-02 23:26:22 +02:00
Thomas Petazzoni
7dfa3b3fb4 autotools: fix autoreconf check
The autoreconf check was incorrect, missing a $ sign to properly
reference a package-specific variable. There was no visible effect
until now since :

 * The existing syntax allowed to access the value defined in the
   package specific .mk file, so when AUTORECONF was set to YES by a
   package, it was working.

 * The default value in Makefile.autotools.in was NO. In fact, when a
   package .mkf file wasn't defining the AUTORECONF variable, the
   Makefile.autotools.in test was testing the empty string against
   'YES', which was false, leading to the AUTORECONF not being done,
   which was the desired effect.

However, in a later patch, we intend to change this default value.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-02 23:24:21 +02:00
Lionel Landwerlin
e8b469b81f package: Force copy of .la files at the post install hook (readonly files might be problematic)
Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-02 09:32:14 +02:00
Lionel Landwerlin
1b41e32feb package: add PKG_CONF_ENV variables to host packages
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>
2010-05-02 09:31:15 +02:00
Thomas Petazzoni
0ed643665f Update config.{guess,sub} unconditionally
Remove the BR2_UPDATE_CONFIG option which allowed to globally
enable/disable the replacement of config.{guess,sub} for
autotools-based packages. Doing it unconditionnally just works.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-04-11 05:59:59 +02:00
Paulius Zaleckas
31365deda7 Fix autotools instalation with symbols
Closes #1447

When installing without symbols install-strip is used,
with symbols - install-exec.
Since install-exec installs only executables, we should use
simple install, to install other needed files also
(like files in /usr/shared) as install-strip does.

Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Acked-by: Lionel Landwerlin <llandwerlin@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-03-30 17:23:23 +02:00
Peter Korsgaard
ecf5939cfb Makefile.autotools.in: fixup .la files in all lib dirs
Sometimes usr/lib32 or usr/lib64 is used instead of usr/lib, so search
those for .la files as well.

Fixes .la fixup for beecrypt on x86-64.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-01-18 14:53:06 +01:00
Peter Korsgaard
073af428ef Makefile.autotools.in: fix libtool patching
Fixes two issues with libtool patching:

- It seems like the default value for <package>_LIBTOOL_PATCH only gets
  set AFTER the ifdef check, so the conditional was never taken. Fix it
  by instead checking that it isn't explicitly set to not do the patching
  instead.
- The $i in the libtool patching for loop needed an extra level of escaping
  to work.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-12-30 13:48:02 +01:00
Thomas Petazzoni
d8b55b9909 Rework autotools infrastructure on top of the generic infrastructure
Now that the previous commit implemented a generic package
infrastructure, we make the autotools infrastructure inherit from the
generic one so that the code is not duplicated.

The new AUTOTARGETS macro works by defining what should be done at the
configure, build and install steps of a package and then calls the
GENTARGETS macro of the generic package infrastructure.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-15 18:09:31 +01:00
Bernhard Reutner-Fischer
263c2f8317 honour DISABLE_IPV6
pass --disable-ipv6 to autoconfig packages if IPv6 support is turned off

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-10-07 22:58:30 +02:00
Lionel Landwerlin
34bba153ac Prevent libtool patching before autoreconf when autoreconf is required
Signed-off-by: Lionel Landwerlin <lionel.landwerlin@openwide.fr>
Tested-By: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-10-05 14:11:49 +02:00
Will Newton
bf5e693d75 package/Makefile.autotools.in: Add $(PKG)_AUTORECONF_OPT variable.
Allow options to be passed to the autoreconf script if necessary.

Signed-off-by: Will Newton <will.newton@gmail.com>
2009-09-20 19:34:21 +01:00
Thomas Petazzoni
397fe5cc0b Remove the "project" feature
The "project" feature was designed to allow to several projects to be
built inside the same Buildroot source tree and allowing the toolchain
and non-configurable packages to be shared between the different
projects on the same architecture. While being interesting in theory,
this feature adds a level of complexity to Buildroot, both from an
user perspective and from a developer perspective, while one of the
main Buildroot strengh is to be simple. Moreover, this feature is only
seldomly used by our users.

From a user-level perspective, this for example allows to remove the
project_build_ARCH directory, which was very confusing. The
autotools-stamps directory is also removed, since these stamps are
back at their normal location.

Description of the changes involved :

 * project/, directory removed

 * Makefile

    - Don't include project/Makefile.in and project/project.mk anymore

    - Grab a copy of the contents of project/Makefile.in at the
      location it was imported, but remove the definition related to
      PROJECT_BUILD_DIR. The TARGET_DIR is now in
      $(BUILD_DIR)/target_dir

    - Remove the creation/removal of the $(PROJECT_BUILD_DIR) and
      $(PROJECT_BUILD_DIR)/autotools-stamps directories

    - Don't make world depends on target-host-info. This target was
      defined by project/project.mk to customize /etc/issue,
      /etc/hostname and create /etc/br-version depending on the
      project definitions. We can of course imagine re-adding such a
      feature later.

    - Replace PROJECT_BUILD_DIR by BUILD_DIR everywhere

    - Remove the update, log and lognr.$(PROJECT) target, they were
      specific to the project feature.

 * package/Makefile.autotools.in

    - Replace PROJECT_BUILD_DIR by BUILD_DIR for the location of the
      configure cache

    - Move the INSTALL_TARGET and HOOK_POST_INSTALL stamps to the same
      directory as the other stamps (i.e, in the package directory).

 * package/Makefile.in

    - Replace PROJECT_BUILD_DIR by BUILD_DIR for the location of the
      configure cache

 * package/at/at.mk,
   package/busybox/busybox.mk,
   package/busybox/initramfs.mk,
   package/customize/customize.mk,
   package/linux-fusion/linux-fusion.mk,
   package/ltp-testsuite/ltp-testsuite.mk,
   package/nfs-utils/nfs-utils.mk,
   target/cpio/cpioroot.mk,
   target/cramfs/cramfs.mk,
   target/device/Atmel/DataFlashBoot/DataflashBoot.mk,
   target/device/Atmel/Makefile.in,
   target/device/Atmel/at91bootstrap/at91bootstrap.mk,
   target/device/KwikByte/Makefile.in,
   target/ext2/ext2root.mk,
   target/initramfs/initramfs.mk,
   target/iso9660/iso9660.mk,
   target/jffs2/jffs2root.mk,
   target/linux/Makefile.in,
   target/romfs/romfs.mk,
   target/squashfs/squashfsroot.mk,
   target/tar/tarroot.mk,
   target/ubifs/ubifsroot.mk

    - Replace PROJECT_BUILD_DIR by BUILD_DIR

 * target/device/Config.in

    - Do not include project/Config.in anymore

 * target/linux/Makefile.in.advanced

    - Replace PROJECT_BUILD_DIR by BUILD_DIR

    - Store the stamps file in $(STAMP_DIR) instead of
      $(PROJECT_BUILD_DIR)/autotools-stamps

 * target/u-boot/Makefile.in

    - Replace PROJECT_BUILD_DIR by BUILD_DIR

    - Remove $(PROJECT) from the U-Boot target binary name

    - Remove the insertion in the configuration of the project name as
      the hostname

    - The u-boot-autoscript target now generates
      $(U_BOOT_AUTOSCRIPT).img instead of
      $(U_BOOT_AUTOSCRIPT).$(PROJECT)

 * toolchain/gcc/gcc-uclibc-3.x.mk
   toolchain/gcc/gcc-uclibc-4.x.mk

    - Move the stamps files to $(STAMP_DIR)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-09-16 20:28:25 +02:00
Thomas Petazzoni
3c35d55ea9 packages: use qstrip
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-09-05 14:43:17 +02:00
Markus Heidelberg
76a6744da4 Makefile.autotools.in: fix minimal foo.mk example
The directory argument was introduced to support packages in
subdirectories of package/ several months ago.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-03 22:13:20 +02:00
Peter Korsgaard
23e2e52df7 Makefile.autotools.in: use TARGET_PATH for compile step
This ensures that the correct build tools are found rather than the host
versions (glib-genmarshal, ..)
2009-03-17 13:48:35 +00:00
Peter Korsgaard
45616607b4 Makefile.autotools.in: add FOO_MAKE for packages needing to use $(MAKE1)
As requested on irc.
2009-01-28 06:32:28 +00:00
Thomas Lundquist
6b00041b87 Finish the gtk-doc stuff and start on the smae thing with LARGEFILE and NLS. 2009-01-18 00:05:57 +00:00
Thomas Lundquist
fa2273f409 Easier with one place for configure options for disabling gtk-doc 2009-01-17 10:11:12 +00:00
Peter Korsgaard
3e06e4cec6 DOWNLOAD: don't use := assignment for function implementation
:= causes the function parameters to get evaluated at definition time
instead of implementation time, which is kind of silly for a function.

Fixes make source-check / external-deps
2009-01-16 12:30:07 +00:00
Peter Korsgaard
d58636d765 buildroot: add BR2_BACKUP_SITE and DOWNLOAD helper
This is the long requested backup mirror support. So far only enabled
for Makefile.autotools.in, but there's no reason why we cannot use
DOWNLOAD everywhere.

Notice, I'm still syncing http://buildroot.uclibc.org/downloads/sources/
2009-01-16 10:27:48 +00:00
Peter Korsgaard
69f8592407 buildroot: set SHELL instead of messing around with CONFIG_SHELL
Simply set SHELL to bash instead of adding CONFIG_SHELL to all shell
invocations. CONFIG_SHELL is still set, as it is used by kconfig.
2009-01-01 21:20:35 +00:00
Peter Korsgaard
ac1d92c425 package/: get rid of unneeded $(strip ..) 2008-12-08 08:15:27 +00:00
Daniel Laird
5432f26f0e Adding Central config.cache options
The following changes allow for use of a central configure cache
file.  This speeds up configuration of packages.
Its use is configurable at the top level (BR2_CONFIG_CACHE - default n).
Old style makefiles can use it if they use the following MACRO in makefiles:
$(AUTO_CONFIGURE_TARGET) see my change to directfb.mk.
New style Autotools.in will use it if you set the global option.
However you can enable the global option and on a per package overrule it by doing
the following: $(PKGNAME)_USE_CONFIG_CACHE = NO see fontconfig.mk for an example 
of this.
Finally I have removed a few config variable settings which indicated no CXX compiler
as this is wrong and breaks the build when using this central cache.

 Config.in                        |    8 ++++++++
 package/Makefile.autotools.in    |    5 ++++-
 package/Makefile.in              |   28 +++++++++++++++++++++++++++-
 package/atk/atk.mk               |    2 +-
 package/directfb/directfb.mk     |    7 +------
 package/fontconfig/fontconfig.mk |    3 +++
 package/libglib2/libglib2.mk     |    2 +-
 package/libgtk2/libgtk2.mk       |    1 -
 8 files changed, 45 insertions(+), 11 deletions(-)

I would appreciate feedback on this change (I have been testing for 2-3 weeks)
But I can never test all cases!  If you enable the BR2_CONFIG_CACHE option some
Makefile.autotools.in based packages may now break - I cannot build them all.
In this case you may need to remove config options that are being hardcoded all
over the place (like gtk saying we have 2 CXX compiler) or disable the use
of CONFIG CACHE file like I have done in fontconfig.
I can build all packages required to get WebKit on DirectFB up and running
and it runs fine.
I will try to resolve any issues this creates as fast as I can.

Signed-off-by: Daniel Laird <daniel.j.laird@nxp.com>
2008-11-28 14:20:47 +00:00
Peter Korsgaard
b444685399 Makefile.autotools.in: make MESSAGE output stand out
The following patch makes the MESSAGE Macro in Makefile.autotools.in
work.

I think it was originally intended to print the messages in bold type
but it doesn't appear to work correctly. This patch should work on all
platforms.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>

(Fixed to not continously call tput)
2008-11-07 08:56:02 +00:00
Hans-Christian Egtvedt
d86faadff9 Move creation of $(PROJECT_BUILD_DIR)/autotools-stamps into top level Makefile
This patch will create the autotools-stamps directory early in the build
process, thus making it possible for non Makefile.autotools.in packages to use
this directory to hold stamp files.

Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
2008-11-05 10:41:31 +00:00
Peter Korsgaard
43af3d3578 buildroot: add QUIET variable and use it for wget/git/svn/configure
A lot of tools take a -q option to be quiet.
Set this if make is called with the -s (silent) option and use for
wget, git, svn and configure.
2008-10-21 08:56:26 +00:00
Peter Korsgaard
886b274a5c BR2_HAVE_DOCUMENTATION: add option to remove documentation from target
Some packages' install-strip target install quite big documentation,
so create an option to remove it similar to the existing man/info options.
2008-10-20 11:32:25 +00:00
Peter Korsgaard
fedf24cf51 Makefile.autotools.in: default to install-strip for non-debug target install 2008-10-20 11:32:22 +00:00
Wade Berrier
5b0e7a5ddb Makefile.autotools.in: honor CONFIG_SHELL and TAR.
Don't use recursively expanded definition
  (Use ':=' instead of '=')
2008-10-07 17:08:27 +00:00
Wade Berrier
56eebd08c0 Makefile.autotools.in:
-Make tar switches 1.14 compatible

(Not sure of a more elegant way to handle this ... ?)
2008-10-06 19:20:58 +00:00
Daniel Laird
52097d2dad Makefile.autotools.in: Get my $(Q)'s in the correct place
Minor fix for Makefile.autotools.in that deals with the packages
that use AUTOCONF to regenerate configure etc. 
(my mistake to start with)

Daniel Laird
2008-09-19 14:43:50 +00:00
Daniel Laird
4ab8aa443b Makefile.autotools.in: Extended to cope with more bad packages
1. I added a HOOK_POST_EXTRACT previously so that I could cope with the
bad libxml2 package.  This required me to remove some dead patches
(.rej) files after I extracted the package, the issue is that the
EXTRACT target runs patch-kernel.sh to patch the ltmain.sh.  
It then finds some.rej files and bombs out.
I have altered the sequence so that the HOOK_POST_EXTRACT target runs
before the make target that patches libtool to deal with this.
 
2.) I have added a $(PKG)_LIBTOOL_PATCH variable.  This is defaulted to
YES however if you override it in the package makefile to NO then the
ltmain.sh file will not be patched automatically but only if you have
added your own patches.  
This is necessary for freetype 2.3.7 as it cannot use the
buildroot-libtool patch.

I am using this patch for building a set of packages, however it
is not a complete set of packages so await feedback of issues (if any)

Daniel Laird
2008-09-19 13:37:14 +00:00
Peter Korsgaard
7b2a502857 Makefile.autotools.in: fix DESTDIR= help text
DESTDIR per default points to TARGET_DIR / STAGING_DIR without /usr
appended.
2008-09-14 19:19:10 +00:00
Peter Korsgaard
79d7e95d5a Makefile.autotools.in: fix FOO_UNINSTALL_TARGET_OPT help text
It defaults to TARGET_DIR, not STAGING_DIR.
2008-09-14 19:19:06 +00:00
Hamish Moffatt
22258ea860 Move project-specific stamp files into a project-specific directory
$(PROJECT_BUILD_DIR)/autotools-stamps. Without this, autotools-using
packages won't be installed into any other projects than the first.
2008-09-11 02:15:07 +00:00
Hamish Moffatt
7b759f0910 Make the autotools xyz-clean target call xyz-uninstall first, rather than duplicating its actions 2008-09-04 02:34:42 +00:00
Hamish Moffatt
18a7694675 Fix duplicate $(AUTORECONF) run in autoreconf and configure targets 2008-09-04 01:19:52 +00:00
Hamish Moffatt
feb569d3cd In the uninstall and clean targets, remove the built/installed stamp files
so that those actions will do something if executed again.
2008-09-04 01:05:17 +00:00
Daniel Laird
022b95d6ef Makefile.autotools.in: Add extra POST_HOOK targets
It is not possible currently in Makefile.autotools.in packages 
to do something extra after an extract or configure. 
This may be useful for example 
extract libxml2-2.6.32 
POST_EXTRACT = remove some .rej files that are in offical release
patch (not fail because of remaining .rej files)
configure

I think this is useful improvement 
(necessary for Makefile.autotools.in packages)

Daniel Laird
2008-08-29 12:04:26 +00:00
Peter Korsgaard
2983381337 Makefile.autotools.in: remove unused BR2_HAVE_INCLUDES handling
Patch by Wade Berrier.
2008-08-22 14:01:56 +00:00