diff options
author | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2011-01-08 19:33:46 +0100 |
---|---|---|
committer | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2011-01-08 19:35:25 +0100 |
commit | 666431f7a61239ef47e43e30e246b771bf7d4725 (patch) | |
tree | 5e68d9be693bb92162e13bf145abd85b598525a2 | |
parent | d3e8cc803414e7a8e5ded109b51aef317f160841 (diff) | |
download | embtoolkit-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.mk | 50 | ||||
-rw-r--r-- | packages/misc/foo/foo.mk | 29 |
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...") |