summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Laird <danieljlaird@hotmail.com>2008-11-28 14:20:47 +0000
committerDaniel Laird <danieljlaird@hotmail.com>2008-11-28 14:20:47 +0000
commit5432f26f0e78fc74a599a596c90a3b8f02963c13 (patch)
treea2f18f774cc9afe12770bb3037e4c5b063e1b3fa
parentb277d41ccc8cb46e3b1b01a9d854adeacb2e61fb (diff)
downloadbuildroot-novena-5432f26f0e78fc74a599a596c90a3b8f02963c13.tar.gz
buildroot-novena-5432f26f0e78fc74a599a596c90a3b8f02963c13.zip
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>
-rw-r--r--Config.in8
-rw-r--r--package/Makefile.autotools.in7
-rw-r--r--package/Makefile.in28
-rw-r--r--package/atk/atk.mk2
-rw-r--r--package/directfb/directfb.mk7
-rw-r--r--package/fontconfig/fontconfig.mk3
-rw-r--r--package/libglib2/libglib2.mk2
-rw-r--r--package/libgtk2/libgtk2.mk1
8 files changed, 47 insertions, 11 deletions
diff --git a/Config.in b/Config.in
index ddbe43b9a..353b3815c 100644
--- a/Config.in
+++ b/Config.in
@@ -189,6 +189,14 @@ config BR2_RECENT
help
This option show recent versions of packages.
+config BR2_CONFIG_CACHE
+ bool "Use a central configure cache file"
+ default n
+ help
+ This determines if a central config cache is used by
+ packages, reducing the configure time for packages as each
+ one caches its findings.
+
config BR2_ENABLE_DEBUG
bool "build packages with debugging symbols"
select BR2_PACKAGE_GDB_SERVER
diff --git a/package/Makefile.autotools.in b/package/Makefile.autotools.in
index 2e5d16606..25eae8f83 100644
--- a/package/Makefile.autotools.in
+++ b/package/Makefile.autotools.in
@@ -32,6 +32,8 @@
# run <autoreconf> before <configure>
# FOO_LIBTOOL_PATCH [YES/NO, default YES]
# Do you want the standard buildroot patch applied to ltmain.sh? (libtool)
+# FOO_USE_CONFIG_CACHE [YES/NO default $(BR2_CONFIG_CACHE)]
+# Do you wany to use the central configure cache file? See BR2_CONFIG_CACHE.
# FOO_CONF_ENV [default empty]
# environment passed to the <configure> script
# FOO_CONF_OPT [default empty]
@@ -217,8 +219,10 @@ $(BUILD_DIR)/%/.stamp_configured:
cd $(@D)/$($(PKG)_SUBDIR) && rm -f config.cache && \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
+ $(TARGET_CONFIGURE_ENV) \
$($(PKG)_CONF_ENV) \
- ./configure \
+ $(if $(THIS_SRCDIR),$(THIS_SRCDIR)/,./)configure \
+ $(if $(filter YES,$($(PKG)_USE_CONFIG_CACHE)),--cache-file="$(PROJECT_BUILD_DIR)/tgt-config.cache",) \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
@@ -302,6 +306,7 @@ $(2)_SITE ?= \
$(2)_DEPENDENCIES ?=
$(2)_AUTORECONF ?= NO
$(2)_LIBTOOL_PATCH ?= YES
+$(2)_USE_CONFIG_CACHE ?= $(if $(BR2_CONFIG_CACHE),YES,NO)
$(2)_CONF_ENV ?=
$(2)_CONF_OPT ?=
$(2)_MAKE_ENV ?=
diff --git a/package/Makefile.in b/package/Makefile.in
index 431ca8e78..19c7c56b0 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -178,6 +178,8 @@ TARGET_STRIP=true -Not_stripping
STRIPCMD=$(TARGET_STRIP)
endif
INSTALL=/usr/bin/install
+FLEX:=$(shell $(CONFIG_SHELL) -c 'which flex || type -p flex')
+BISON:=$(shell $(CONFIG_SHELL) -c 'which bison || type -p bison')
HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
-e 's/sparc.*/sparc/' \
@@ -193,10 +195,23 @@ HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
)
GNU_HOST_NAME:=$(HOST_ARCH)-$(subst ",,$(BR2_GNU_BUILD_SUFFIX))
#")
+
+AUTO_CONFIGURE_TARGET=\
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ $(TARGET_CONFIGURE_ENV) \
+ $(if $(THIS_SRCDIR),$(THIS_SRCDIR)/,./)configure \
+ $(if $(BR2_CONFIG_CACHE),--cache-file="$(PROJECT_BUILD_DIR)/tgt-config.cache",) \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME)
+
TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
AR="$(TARGET_AR)" \
AS="$(TARGET_AS)" \
- LD="$(TARGET_LD) $(TARGET_LDFLAGS)" \
+ LD="$(TARGET_LD)" \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
NM="$(TARGET_NM)" \
CC="$(TARGET_CC) $(TARGET_CFLAGS)" \
GCC="$(TARGET_CC) $(TARGET_CFLAGS)" \
@@ -229,6 +244,12 @@ TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
STAGING_DIR="$(STAGING_DIR)"
+TARGET_CONFIGURE_ENV=\
+ CFLAGS="$(TARGET_CFLAGS)" \
+ CXXFLAGS="$(TARGET_CXXFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
+ FCFLAGS="$(TARGET_FCFLAGS)" \
+
HOST_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
AR="$(HOSTAR)" \
AS="$(HOSTAS)" \
@@ -310,6 +331,11 @@ TARGET_CONFIGURE_ARGS= \
$(BR2_AC_CV_TRAP_CHECK) \
ac_cv_func_mmap_fixed_mapped=yes \
ac_cv_func_memcmp_working=yes \
+ ac_cv_have_decl_malloc=yes \
+ gl_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_calloc_0_nonnull=yes \
+ ac_cv_func_realloc_0_nonnull=yes \
$(BR2_AC_CV_C_BIGENDIAN)
#######################################################################
diff --git a/package/atk/atk.mk b/package/atk/atk.mk
index ee44db75c..9157a9eaa 100644
--- a/package/atk/atk.mk
+++ b/package/atk/atk.mk
@@ -39,7 +39,7 @@ ATK_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes \
gl_cv_func_mkstemp_limitations=no ac_cv_func_working_mktime=yes \
jm_cv_func_working_re_compile_pattern=yes ac_use_included_regex=no \
gl_cv_c_restrict=no ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal \
- ac_cv_prog_F77=no ac_cv_prog_CXX=no
+ ac_cv_prog_F77=no
ifneq ($(BR2_PACKAGE_XSERVER_none),y)
ATK_CONF_OPT_X = --with-x \
diff --git a/package/directfb/directfb.mk b/package/directfb/directfb.mk
index 3ad2efa8c..92d494ea8 100644
--- a/package/directfb/directfb.mk
+++ b/package/directfb/directfb.mk
@@ -115,15 +115,10 @@ $(DIRECTFB_DIR)/.unpacked: $(DL_DIR)/$(DIRECTFB_SOURCE)
$(DIRECTFB_DIR)/.configured: $(DIRECTFB_DIR)/.unpacked
(cd $(DIRECTFB_DIR); rm -f config.cache; \
- $(TARGET_CONFIGURE_OPTS) \
- $(TARGET_CONFIGURE_ARGS) \
ac_cv_header_linux_wm97xx_h=no \
ac_cv_header_linux_sisfb_h=no \
ac_cv_header_asm_page_h=no \
- ./configure \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_TARGET_NAME) \
- --build=$(GNU_HOST_NAME) \
+ $(AUTO_CONFIGURE_TARGET) \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
diff --git a/package/fontconfig/fontconfig.mk b/package/fontconfig/fontconfig.mk
index 8e5577aa8..06872c45a 100644
--- a/package/fontconfig/fontconfig.mk
+++ b/package/fontconfig/fontconfig.mk
@@ -7,8 +7,11 @@ FONTCONFIG_VERSION = 2.6.0
FONTCONFIG_SOURCE = fontconfig-$(FONTCONFIG_VERSION).tar.gz
FONTCONFIG_SITE = http://fontconfig.org/release
FONTCONFIG_AUTORECONF = YES
+FONTCONFIG_USE_CONFIG_CACHE = NO
FONTCONFIG_INSTALL_STAGING = YES
FONTCONFIG_INSTALL_TARGET = YES
+# This package does not like using the target cflags for some reason.
+FONTCONFIG_CONF_ENV = CFLAGS=
FONTCONFIG_CONF_OPT = --with-arch=$(GNU_TARGET_NAME) \
--with-freetype-config="$(STAGING_DIR)/usr/bin/freetype-config" \
diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk
index fa33db08b..6522f37b0 100644
--- a/package/libglib2/libglib2.mk
+++ b/package/libglib2/libglib2.mk
@@ -41,7 +41,7 @@ LIBGLIB2_CONF_ENV = \
ac_cv_func_working_mktime=yes jm_cv_func_working_re_compile_pattern=yes \
ac_use_included_regex=no gl_cv_c_restrict=no \
ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal ac_cv_prog_F77=no \
- ac_cv_prog_CXX=no ac_cv_func_posix_getgrgid_r=no \
+ ac_cv_func_posix_getgrgid_r=no \
gt_cv_c_wchar_t=$(if $(BR2_USE_WCHAR),yes,no)
LIBGLIB2_CONF_OPT = --enable-shared \
diff --git a/package/libgtk2/libgtk2.mk b/package/libgtk2/libgtk2.mk
index 647b00f88..8f8227559 100644
--- a/package/libgtk2/libgtk2.mk
+++ b/package/libgtk2/libgtk2.mk
@@ -68,7 +68,6 @@ LIBGTK2_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_GLIB)/bin/gtk-update-icon-cache \
ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_GLIB)/bin/gdk-pixbuf-csource \
ac_cv_prog_F77=no \
- ac_cv_prog_CXX=no \
ac_cv_path_CUPS_CONFIG=no
LIBGTK2_CONF_OPT = --target=$(GNU_TARGET_NAME) --host=$(GNU_TARGET_NAME) \