From 3096f34d27f32fc179ca051ad78ac9ee2165c72e Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Fri, 1 Jun 2007 22:16:28 +0000 Subject: - add BR2_PREFER_STATIC_LIB config option to be able to select if we prefer to build static or dynamic libs/bins. - depending on the BR2_GNU_BUILD_SUFFIX, set the respective EXEEXT, LIBEXT, SHREXT extensions for use on the target. Thanks to Tom for suplying a diff which implements these. --- Config.in | 13 +++++++++++++ Makefile | 25 +++++++++++++++++++++++++ package/gmp/gmp.mk | 15 ++++++++++++--- toolchain/Makefile.in | 6 ++++++ 4 files changed, 56 insertions(+), 3 deletions(-) diff --git a/Config.in b/Config.in index 45e3d538b..e75ff23a8 100644 --- a/Config.in +++ b/Config.in @@ -373,6 +373,19 @@ config BR2_DEPRECATED help This option hides outdated/obsolete versions of packages. +config BR2_PREFER_STATIC_LIB + bool "prefer static libraries" + default n + help + Where possible, use static libraries. + This increases your code size a lot and should only be + used with a good reason why not use the default, which + is dynamic libraries. + + If unsure, say No. + + WARNING: This is highly experimental at the moment. + endmenu source "toolchain/Config.in" diff --git a/Makefile b/Makefile index 12851444f..86f8dce0f 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,32 @@ include package/Makefile.in # ############################################################# +ifneq (,$(findstring linux,$(BR2_GNU_BUILD_SUFFIX))) +EXEEXT:= +LIBEXT:=.a +SHREXT:=.so +endif +ifneq (,$(findstring apple,$(BR2_GNU_BUILD_SUFFIX))) +EXEEXT:=.pear +LIBEXT:=.dunno +SHREXT:=.dylib +endif +ifneq (,$(findstring cygwin,$(BR2_GNU_BUILD_SUFFIX))) +EXEEXT:=.exe +LIBEXT:=.lib +SHREXT:=.dll +endif +ifneq (,$(findstring mingw,$(BR2_GNU_BUILD_SUFFIX))) +EXEEXT:=.exe +LIBEXT:=.lib +SHREXT:=.dll +endif +ifeq ($(BR2_PREFER_STATIC_LIB),y) +LIBTGTEXT=$(LIBEXT) +else +LIBTGTEXT=$(SHREXT) +endif all: world diff --git a/package/gmp/gmp.mk b/package/gmp/gmp.mk index 93a5d653a..b70fffa5f 100644 --- a/package/gmp/gmp.mk +++ b/package/gmp/gmp.mk @@ -18,6 +18,14 @@ else GMP_BE:=no endif +# this is a workaround for a bug in GMP, please see +# http://gmplib.org/list-archives/gmp-devel/2006-April/000618.html +ifeq ($(EXEEXT),.exe) +GMP_CPP_FLAGS:=-DDLL_EXPORT +else +GMP_CPP_FLAGS:= +endif + $(DL_DIR)/$(GMP_SOURCE): $(WGET) -P $(DL_DIR) $(GMP_SITE)/$(GMP_SOURCE) @@ -35,6 +43,7 @@ $(GMP_TARGET_DIR)/.configured: $(GMP_DIR)/.unpacked $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ + CPPFLAGS="$(GMP_CPP_FLAGS)" \ ac_cv_c_bigendian=$(GMP_BE) \ $(GMP_DIR)/configure \ --target=$(GNU_TARGET_NAME) \ @@ -52,7 +61,7 @@ $(GMP_TARGET_DIR)/.configured: $(GMP_DIR)/.unpacked --includedir=/include \ --mandir=/usr/man \ --infodir=/usr/info \ - --enable-shared \ + $(PREFERRED_LIB_FLAGS) \ $(DISABLE_NLS) \ ); touch $@ @@ -105,12 +114,12 @@ $(GMP_DIR2)/.configured: $(GMP_DIR)/.unpacked CC_FOR_BUILD="$(HOSTCC)" \ CC="$(HOSTCC)" \ CFLAGS="$(HOST_CFLAGS)" \ + CPPFLAGS="$(GMP_CPP_FLAGS)" \ $(GMP_DIR)/configure \ --prefix="$(GMP_HOST_DIR)" \ --build=$(GNU_HOST_NAME) \ --host=$(GNU_HOST_NAME) \ - --enable-shared \ - --enable-static \ + $(PREFERRED_LIB_FLAGS) \ $(DISABLE_NLS) \ ); touch $@ diff --git a/toolchain/Makefile.in b/toolchain/Makefile.in index ca798bf6b..6f7cc013d 100644 --- a/toolchain/Makefile.in +++ b/toolchain/Makefile.in @@ -10,6 +10,12 @@ else MULTILIB:=--disable-multilib endif +ifeq ($(BR2_PREFER_STATIC_LIB),y) +PREFERRED_LIB_FLAGS:=--enable-static --disable-shared +else +PREFERRED_LIB_FLAGS:=--disable-static --enable-shared +endif + # FIXME -- this is temporary OPTIMIZE_FOR_CPU=$(ARCH) -- cgit v1.2.3-55-g7522