public inbox for linux-kbuild@vger.kernel.org
 help / color / mirror / Atom feed
From: Michal Marek <mmarek@suse.cz>
To: Arnaud Lacombe <lacombar@gmail.com>
Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
	Sam Ravnborg <sam@ravnborg.org>
Subject: Re: [RFC] Kconfig library check merge
Date: Fri, 01 Jul 2011 16:11:59 +0200	[thread overview]
Message-ID: <4E0DD5AF.5040604@suse.cz> (raw)
In-Reply-To: <1307387767-9237-1-git-send-email-lacombar@gmail.com>

On 6.6.2011 21:16, Arnaud Lacombe wrote:
> Hi Michal, Sam,
>
> This is a bit a more deep patch. I was fed up of seeing the various library
> check done for kconfig in at least 3 places in the scripts/kconfig/ tree. In
> particular, the QT and GTK checks are far too messy to be in a Makefile, while
> the gettext is pretty trivial and has its own shell script... Moreover, `nconf'
> is missing explicit check for ncurses.
>
> Anyway, here it is. It is a single huge patch _on_purpose_, merely meant to be a
> proof of concept. It is based on the previous serie of trivial fixes.
>
> Most of the changes are made to rationalize the architecture. I thought in the
> beginning of using autoconf/automake, but that'd be overkill. A single shell
> script is far enough to do the job. All the checks only do a bunch of
> verification, and export CFLAGS/LDFLAGS for building the frontend. The script
> itself output a Makefile ready to be included for the top-level Makefile, with
> the necessary check to trigger a re-check if the requested front-end is changed.
>
> Comments welcome!
>
> Regards,
>   - Arnaud
>
> Cc: Sam Ravnborg<sam@ravnborg.org>
>
> ---
>   scripts/kconfig/Makefile                   |  160 +++++++------------------
>   scripts/kconfig/check.sh                   |  184 ++++++++++++++++++++++++++--
>   scripts/kconfig/lxdialog/check-lxdialog.sh |   84 -------------
>   3 files changed, 216 insertions(+), 212 deletions(-)
>
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index 84abb2f..f8f853d 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -141,14 +141,6 @@ help:
>   	@echo  '  listnewconfig   - List new options'
>   	@echo  '  oldnoconfig     - Same as silentoldconfig but set new symbols to n (unset)'
>
> -# lxdialog stuff
> -check-lxdialog  := $(srctree)/$(src)/lxdialog/check-lxdialog.sh
> -
> -# Use recursively expanded variables so we do not call gcc unless
> -# we really need to do so. (Do not call gcc as part of make mrproper)
> -HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \
> -                    -DLOCALE
> -
>   # ===========================================================================
>   # Shared Makefile for the various kconfig executables:
>   # conf:	  Used for defconfig, oldconfig and related targets
> @@ -173,14 +165,19 @@ qconf-cxxobjs	:= qconf.o
>   qconf-objs	:= zconf.tab.o
>   gconf-objs	:= gconf.o zconf.tab.o
>
> -hostprogs-y := conf
> +frontends-objs := $(conf-objs) $(mconf-objs) $(nconf-objs)
> +frontends-objs := $(qconf-cxxobjs) $(gconf-objs)
                   ^^
Should be +=.

> +
> +hostprogs-y :=
>
>   ifeq ($(MAKECMDGOALS),nconfig)
>   	hostprogs-y += nconf
> +	ncurses-check := 1
>   endif
>
>   ifeq ($(MAKECMDGOALS),menuconfig)
>   	hostprogs-y += mconf
> +	ncurses-check := 1
>   endif
>
>   ifeq ($(MAKECMDGOALS),update-po-config)
> @@ -188,140 +185,67 @@ ifeq ($(MAKECMDGOALS),update-po-config)
>   endif
>
>   ifeq ($(MAKECMDGOALS),xconfig)
> -	qconf-target := 1
> -endif
> -ifeq ($(MAKECMDGOALS),gconfig)
> -	gconf-target := 1
> -endif
> -
> -
> -ifeq ($(qconf-target),1)
>   	hostprogs-y += qconf
> +	qt-check := 1
>   endif
> -
> -ifeq ($(gconf-target),1)
> +ifeq ($(MAKECMDGOALS),gconfig)
>   	hostprogs-y += gconf
> +	gtk-check := 1
>   endif
...
> +KC_CHECK	:= gettext
> +
> +ifeq ($(ncurses-check),1)
> +KC_CHECK	+= ncurses
>   endif

You could also build the KC_CHECK right when doing the $(MAKECMDGOALS) 
tests and drop the *-check variables. Otherwise it is a very nice 
cleanup, thanks a lot!

Michal

  reply	other threads:[~2011-07-01 14:12 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-06 19:16 [RFC] Kconfig library check merge Arnaud Lacombe
2011-07-01 14:11 ` Michal Marek [this message]
2011-07-02  0:33   ` Arnaud Lacombe
2011-07-02  1:47 ` [RFC 0/7] " Arnaud Lacombe
2011-07-02  1:47   ` [RFC 1/7] kconfig/Makefile: add pretty printer for moc(1) Arnaud Lacombe
2011-07-02  1:47   ` [RFC 2/7] kconfig/Makefile: ensure `conf' appears last in `hostprogs-y' Arnaud Lacombe
2011-07-02  1:47   ` [RFC 3/7] kconfig/check.sh: prepare for generic check Arnaud Lacombe
2011-07-05 22:37     ` Valdis.Kletnieks
2011-07-05 22:48       ` Arnaud Lacombe
2011-07-02  1:47   ` [RFC 4/7] kconfig: move QT checks to `scripts/kconfig/check.sh' Arnaud Lacombe
2011-07-02  1:47   ` [RFC 5/7] kconfig: move GTK " Arnaud Lacombe
2011-07-02  1:47   ` [RFC 6/7] kconfig: move ncurses " Arnaud Lacombe
2011-07-02  1:47   ` [RFC 7/7] kconfig: add stub for nconf checks Arnaud Lacombe
2011-07-18 19:03   ` [RFC 0/7] Kconfig library check merge Arnaud Lacombe
2011-07-19 13:06     ` Michal Marek
2011-08-16  5:29       ` Arnaud Lacombe
2011-08-19 14:02         ` Michal Marek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E0DD5AF.5040604@suse.cz \
    --to=mmarek@suse.cz \
    --cc=lacombar@gmail.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sam@ravnborg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox