- add BR2_PREFER_STATIC_LIB config option to be able to select if we prefer to build...
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 1 Jun 2007 22:16:28 +0000 (22:16 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 1 Jun 2007 22:16:28 +0000 (22:16 -0000)
- 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
Makefile
package/gmp/gmp.mk
toolchain/Makefile.in

index 45e3d538b076b5395932cec6b9f1577caead4845..e75ff23a83c52d0bce07e132f5be9f93887456d4 100644 (file)
--- 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"
index 12851444f705852196e094ceb482a2f29515f462..86f8dce0f0932a86a7442e2df182a7cffd9c229b 100644 (file)
--- 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
 
index 93a5d653a52c7bd15bbe06a9bcb3bd77d41d5106..b70fffa5f8a58a2a71853bcbaa4690b832316fd9 100644 (file)
@@ -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 $@
index ca798bf6bf93d0633c57dc20cb36745316a18213..6f7cc013df47d9d5db00334f3497629c1d858ba5 100644 (file)
@@ -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)