summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2011-01-08 19:33:46 +0100
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2011-01-08 19:35:25 +0100
commit666431f7a61239ef47e43e30e246b771bf7d4725 (patch)
tree5e68d9be693bb92162e13bf145abd85b598525a2
parentd3e8cc803414e7a8e5ded109b51aef317f160841 (diff)
downloadembtoolkit-666431f7a61239ef47e43e30e246b771bf7d4725.tar.gz
embtoolkit-666431f7a61239ef47e43e30e246b771bf7d4725.tar.bz2
embtoolkit-666431f7a61239ef47e43e30e246b771bf7d4725.tar.xz
Embtk: Create a general purpose macro to configure packages
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
-rw-r--r--mk/macros.mk50
-rw-r--r--packages/misc/foo/foo.mk29
2 files changed, 58 insertions, 21 deletions
diff --git a/mk/macros.mk b/mk/macros.mk
index c94ff21..0a20e1f 100644
--- a/mk/macros.mk
+++ b/mk/macros.mk
@@ -79,6 +79,14 @@ define EMBTK_INSTALL_MSG
$(call ECHO_BLUE,"################################################################################")
endef
+#Install message
+#usage $(call EMBTK_ERROR_MSG,$(MESSAGE))
+define EMBTK_ERROR_MSG
+ $(call ECHO_RED,"################################################################################")
+ $(call ECHO_RED,"# EmbToolkit # ERROR: $(1)")
+ $(call ECHO_RED,"################################################################################")
+endef
+
#Generic message
#usage $(call EMBTK_GENERIC_MESSAGE,$(GENERIC_MESSAGE))
define EMBTK_GENERIC_MESSAGE
@@ -190,3 +198,45 @@ define EMBTK_KILL_LT_RPATH
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' $$i; \
done
endef
+
+#
+# A macro which runs configure script (conpatible with autotools configure)
+# for a package and sets environment variables correctly.
+# Usage:
+# $(call EMBTK_CONFIGURE_PKG, \
+# $(PKG_TARBALL), \
+# $(PKG_BUILD_DIR), \
+# $(PKG_SRC_DIR), \
+# $(PKG_CONFIGURE_OPTIONS))
+define EMBTK_PRINT_CONFIGURE_OPTS
+ $(call ECHO_BLUE,"Configure options:")
+ @for i in `echo $(1) | tr " " "\n"`; \
+ do echo -e $(EMBTK_COLOR_BLUE)$$i$(EMBTK_NO_COLOR); done
+endef
+define EMBTK_CONFIGURE_PKG
+ $(call EMBTK_GENERIC_MESSAGE,"Configure $(strip $(1))...")
+ $(call EMBTK_PRINT_CONFIGURE_OPTS,"$(strip $(4))")
+ @cd $(strip $(2)); \
+ CC=$(TARGETCC_CACHED) \
+ CXX=$(TARGETCXX_CACHED) \
+ AR=$(TARGETAR) \
+ RANLIB=$(TARGETRANLIB) \
+ AS=$(CROSS_COMPILE)as \
+ LD=$(TARGETLD) \
+ NM=$(TARGETNM) \
+ STRIP=$(TARGETSTRIP) \
+ OBJDUMP=$(TARGETOBJDUMP) \
+ OBJCOPY=$(TARGETOBJCOPY) \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ CXXFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="-L$(SYSROOT)/$(LIBDIR) -L$(SYSROOT)/usr/$(LIBDIR)" \
+ CPPFLAGS="-I$(SYSROOT)/usr/include" \
+ PKG_CONFIG=$(PKGCONFIG_BIN) \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
+ $(CONFIG_SHELL) $(strip $(3))/configure \
+ --build=$(HOST_BUILD) --host=$(STRICT_GNU_TARGET) \
+ --target=$(STRICT_GNU_TARGET) --libdir=/usr/$(LIBDIR) \
+ --prefix=/usr $(strip $(4))
+ $(Q)touch $(strip $(2))/.configured
+ $(call EMBTK_KILL_LT_RPATH,$(strip $(2)))
+endef
diff --git a/packages/misc/foo/foo.mk b/packages/misc/foo/foo.mk
index 88ae89d..6e1db33 100644
--- a/packages/misc/foo/foo.mk
+++ b/packages/misc/foo/foo.mk
@@ -28,6 +28,7 @@ FOO_SITE := http://www.foo.org/download
FOO_PATCH_SITE := ftp://ftp.embtoolkit.org/embtoolkit.org/foo/$(FOO_VERSION)
FOO_PACKAGE := foo-$(FOO_VERSION).tar.gz
FOO_BUILD_DIR := $(PACKAGES_BUILD)/foo-$(FOO_VERSION)
+FOO_BUILD_SRC := $(PACKAGES_BUILD)/foo-$(FOO_VERSION)
FOO_BINS =
FOO_SBINS =
@@ -35,6 +36,8 @@ FOO_INCLUDES =
FOO_LIBS =
FOO_PKGCONFIGS =
+FOO_CONFIGURE_OPTS :=
+
FOO_DEPS :=
foo_install:
@@ -74,27 +77,11 @@ endif
@touch $@
$(FOO_BUILD_DIR)/.configured:
- $(Q)cd $(FOO_BUILD_DIR); \
- CC=$(TARGETCC_CACHED) \
- CXX=$(TARGETCXX_CACHED) \
- AR=$(TARGETAR) \
- RANLIB=$(TARGETRANLIB) \
- AS=$(CROSS_COMPILE)as \
- LD=$(TARGETLD) \
- NM=$(TARGETNM) \
- STRIP=$(TARGETSTRIP) \
- OBJDUMP=$(TARGETOBJDUMP) \
- OBJCOPY=$(TARGETOBJCOPY) \
- CFLAGS="$(TARGET_CFLAGS)" \
- CXXFLAGS="$(TARGET_CFLAGS)" \
- LDFLAGS="-L$(SYSROOT)/$(LIBDIR) -L$(SYSROOT)/usr/$(LIBDIR)" \
- CPPFLAGS="-I$(SYSROOT)/usr/include" \
- PKG_CONFIG=$(PKGCONFIG_BIN) \
- PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
- ./configure --build=$(HOST_BUILD) --host=$(STRICT_GNU_TARGET) \
- --target=$(STRICT_GNU_TARGET) --libdir=/usr/$(LIBDIR) \
- --prefix=/usr
- @touch $@
+ $(call EMBTK_CONFIGURE_PKG, \
+ $(FOO_PACKAGE), \
+ $(FOO_BUILD_DIR), \
+ $(FOO_SRC_DIR), \
+ $(FOO_CONFIGURE_OPTIONS))
foo_clean:
$(call EMBTK_GENERIC_MESSAGE,"cleanup foo...")