flex: fix build for nommu systems
authorGustavo Zacarias <gustavo@zacarias.com.ar>
Fri, 30 Nov 2012 00:46:03 +0000 (00:46 +0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Fri, 30 Nov 2012 19:52:38 +0000 (11:52 -0800)
The flex binary uses fork() so it breaks on !MMU builds.
Since we usually don't require flex in the target and the common
scenario is that we just want libfl in staging reverse the options so
that BR2_PACKAGE_FLEX just builds and install libfl.a and change the
LIBFL option to BR2_PACKAGE_FLEX_BINARY to install the binary in the
target.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/flex/Config.in
package/flex/flex.mk

index b10eb00377a273ffd7932b195868a6d0ceb2f89d..adef46867a34cbc8e48094be2c621de93195c77f 100644 (file)
@@ -6,10 +6,10 @@ config BR2_PACKAGE_FLEX
 
          http://www.gnu.org/software/flex/
 
-config BR2_PACKAGE_FLEX_LIBFL
-       bool "Install libfl.a under staging_dir/usr/lib"
-       default y
+config BR2_PACKAGE_FLEX_BINARY
+       bool "Install tool in the target"
+       # needs fork()
+       depends on BR2_USE_MMU
        depends on BR2_PACKAGE_FLEX
        help
-         Install libfl.a under staging_dir/usr/lib for further development
-         on a host machine.
+         Install the flex binary tool in the target filesystem.
index 2599cdc75f01534d72319b90c6e151a0e65b8b48..0c1ed5af1800cb7dc75c76bf9c0d88b4e1b230ea 100644 (file)
@@ -16,30 +16,20 @@ FLEX_DEPENDENCIES = \
 # we don't have a host-gettext/libintl
 HOST_FLEX_DEPENDENCIES =
 
+ifeq ($(BR2_PACKAGE_FLEX_BINARY),y)
 # lex -> flex
 define FLEX_INSTALL_LEX
        cd $(TARGET_DIR)/usr/bin && ln -snf flex lex
 endef
-
-define FLEX_UNINSTALL_LEX
-       -rm $(TARGET_DIR)/usr/bin/lex
-endef
-
 FLEX_POST_INSTALL_HOOKS += FLEX_INSTALL_LEX
-FLEX_POST_CLEAN_HOOKS += FLEX_UNINSTALL_LEX
 
-# libfl installation
-ifeq ($(BR2_PACKAGE_FLEX_LIBFL),y)
-define FLEX_INSTALL_LIBFL
-       install -D $(FLEX_DIR)/libfl.a $(STAGING_DIR)/usr/lib/libfl.a
-endef
+else
 
-define FLEX_UNINSTALL_LIBFL
-       -rm $(STAGING_DIR)/lib/libfl.a
+define FLEX_DISABLE_PROGRAM
+       $(SED) 's/^bin_PROGRAMS.*//' $(@D)/Makefile.in
 endef
+FLEX_POST_PATCH_HOOKS += FLEX_DISABLE_PROGRAM
 
-FLEX_POST_INSTALL_HOOKS += FLEX_INSTALL_LIBFL
-FLEX_POST_CLEAN_HOOKS += FLEX_UNINSTALL_LIBFL
 endif
 
 $(eval $(autotools-package))