From e13bd362e3dc3eafe0503d842335b0290e32646a Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 18 Nov 2007 06:17:52 +0000 Subject: [PATCH] merge from upstream for systems that dont integrate libintl into their C library: commit aa1e5ef5c1d95e7ebf0821d9ba27debe43a87a22 Author: Sam Ravnborg Date: Sun Aug 12 23:15:44 2007 +0200 kbuild: check if we can link gettext not just compile cygwin provides the header file but the lib file needs to be added manually. A generic fix is to check if we can compile and link a program that uses gettext() and if it fails fall back to NO_NLS. International users of cygwin may have to specify HOST_LOADLIBES := "-lintl" on the make command line. Signed-off-by: Sam Ravnborg --- scripts/kconfig/Makefile | 10 ++-------- scripts/kconfig/check.sh | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) create mode 100755 scripts/kconfig/check.sh diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile index a28414de8..f56863f7c 100644 --- a/scripts/kconfig/Makefile +++ b/scripts/kconfig/Makefile @@ -117,14 +117,8 @@ clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \ .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c subdir- += lxdialog -# Needed for systems without gettext -KBUILD_HAVE_NLS := $(shell \ - if echo "\#include " | $(HOSTCC) $(HOSTCFLAGS) -E - > /dev/null 2>&1 ; \ - then echo yes ; \ - else echo no ; fi) -ifeq ($(KBUILD_HAVE_NLS),no) -HOSTCFLAGS += -DKBUILD_NO_NLS -endif +# Add environment specific flags +HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS)) # generated files seem to need this to find local include files HOSTCFLAGS_lex.zconf.o := -I$(src) diff --git a/scripts/kconfig/check.sh b/scripts/kconfig/check.sh new file mode 100755 index 000000000..fa59cbf9d --- /dev/null +++ b/scripts/kconfig/check.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# Needed for systems without gettext +$* -xc -o /dev/null - > /dev/null 2>&1 << EOF +#include +int main() +{ + gettext(""); + return 0; +} +EOF +if [ ! "$?" -eq "0" ]; then + echo -DKBUILD_NO_NLS; +fi +