lkml.org 
[lkml]   [2011]   [Jul]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC 3/7] kconfig/check.sh: prepare for generic check
    Date
    `scripts/kconfig/check.sh' currently checks for libintl availability, make this
    explicit. Result gets stored in a ${obj}/.tmp_check Makefile sourced by
    the main Makefile dynamically.
    ---
    scripts/kconfig/Makefile | 22 ++++++++++++++++++----
    scripts/kconfig/check.sh | 44 ++++++++++++++++++++++++++++++++++----------
    2 files changed, 52 insertions(+), 14 deletions(-)

    diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
    index 8abde17..a9344d2 100644
    --- a/scripts/kconfig/Makefile
    +++ b/scripts/kconfig/Makefile
    @@ -173,8 +173,12 @@ qconf-cxxobjs := qconf.o
    qconf-objs := zconf.tab.o
    gconf-objs := gconf.o zconf.tab.o

    +frontends-objs := $(conf-objs) $(mconf-objs) $(nconf-objs)
    +
    hostprogs-y :=

    +KC_CHECK := gettext
    +
    ifeq ($(MAKECMDGOALS),nconfig)
    hostprogs-y += nconf
    endif
    @@ -205,7 +209,7 @@ endif

    hostprogs-y += conf

    -clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck
    +clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck .tmp_check
    clean-files += zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h
    clean-files += mconf qconf gconf nconf
    clean-files += config.pot linux.pot
    @@ -218,9 +222,6 @@ $(obj)/dochecklxdialog:

    always := dochecklxdialog

    -# 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)
    HOSTCFLAGS_zconf.tab.o := -I$(src)
    @@ -316,8 +317,21 @@ $(obj)/.tmp_gtkcheck:
    echo "*"; \
    false; \
    fi
    +
    +need-check := $(addprefix $(obj)/,$(frontends-objs))
    +
    +$(need-check): $(obj)/.tmp_check
    +
    +-include $(obj)/.tmp_check
    +
    +KC_CHECKED := $(foreach check,$(KC_CHECK),$(if $(KCONFIG_CHECKED_$(check)),$(check),))
    +ifneq ($(KC_CHECK),$(KC_CHECKED))
    +$(obj)/.tmp_check: FORCE
    endif

    +$(obj)/.tmp_check: $(src)/Makefile
    + $(Q)$(srctree)/$(src)/check.sh $(KC_CHECK)
    +
    $(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.hash.c

    $(obj)/qconf.o: $(obj)/qconf.moc
    diff --git a/scripts/kconfig/check.sh b/scripts/kconfig/check.sh
    index fa59cbf..fcb999e 100755
    --- a/scripts/kconfig/check.sh
    +++ b/scripts/kconfig/check.sh
    @@ -1,14 +1,38 @@
    #!/bin/sh
    -# Needed for systems without gettext
    -$* -xc -o /dev/null - > /dev/null 2>&1 << EOF
    -#include <libintl.h>
    -int main()
    +#
    +
    +set -e
    +
    +check_gettext()
    {
    - gettext("");
    - return 0;
    +
    + echo '
    + #include <libintl.h>
    + int main()
    + {
    + gettext("");
    + return 0;
    + }' | \
    + {
    + $* -xc -o /dev/null - > /dev/null 2>&1 || \
    + echo HOST_EXTRACFLAGS += -DKBUILD_NO_NLS >> ${obj}/.tmp_check
    + }
    }
    -EOF
    -if [ ! "$?" -eq "0" ]; then
    - echo -DKBUILD_NO_NLS;
    -fi

    +rm -f ${obj}/.tmp_check
    +
    +for arg in $*; do
    + case $arg in
    + gettext) ;;
    + *)
    + echo " *"
    + echo " * Do not know how to check for \`$arg'"
    + echo " *"
    + false
    + ;;
    + esac
    + echo " CHECK $arg"
    +
    + check_$arg
    + echo "KCONFIG_CHECKED_$arg := 1" >> ${obj}/.tmp_check
    +done
    --
    1.7.3.4.574.g608b.dirty


    \
     
     \ /
      Last update: 2011-07-02 03:51    [W:0.028 / U:0.536 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site