All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.