linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* linux kernel conf 0.6
@ 2002-09-16 23:16 Roman Zippel
  2002-09-20  5:10 ` [kbuild-devel] " Sam Ravnborg
  0 siblings, 1 reply; 15+ messages in thread
From: Roman Zippel @ 2002-09-16 23:16 UTC (permalink / raw)
  To: linux-kernel, kbuild-devel

Hi,

At http://www.xs4all.nl/~zippel/lc/lkc-0.6.tar.gz you can find the
latest version of the new config system. Changes this time:
- update to 2.5.35
- I included my convert script and prepare/fixup patch to convert all
archs
- qconf got a split screen mode
- the save bug is fixed
- the converter mostly ignores "define_bool CONFIG_FOO n" now, they are
only used for type definitions. They were only needed to keep the old
config system working, but shouldn't be needed anymore, this allows to
generate slightly better dependencies in the generated configs.

bye, Roman

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-16 23:16 linux kernel conf 0.6 Roman Zippel
@ 2002-09-20  5:10 ` Sam Ravnborg
  2002-09-22 15:24   ` Roman Zippel
  0 siblings, 1 reply; 15+ messages in thread
From: Sam Ravnborg @ 2002-09-20  5:10 UTC (permalink / raw)
  To: Roman Zippel; +Cc: linux-kernel, kbuild-devel

Hi Roman, sorry if you get this twice. first mail did not show up.

I have been working on integrating lkc with kbuild.
Here is the result.

Rules.make
- Added infrastructure to support host-ccprogs, in other words
  support tools written (partly) in c++.

scripts/lkc/Makefile*
- As kbuild does not distingush between individual objects,
  used for a given target, but (try to) build them all, I have
  found a solution where I create one Makefile for each executable.
  I could not see a clean way to integrate this in kbuild, and finally
  decided that in this special case a number of Makefiles did not
  hurt too much.

flex/bison
- Prepared for "_shipped" files.
  Rename lex.zconf.c to lex.zconf.c_shipped etc. in the version
  reday to go in the kernel.

	Sam

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.555   -> 1.556  
#	          Rules.make	1.70    -> 1.71   
#	               (new)	        -> 1.1     scripts/lkc/Makefile.qconf
#	               (new)	        -> 1.1     scripts/lkc/Makefile.conf
#	               (new)	        -> 1.1     scripts/lkc/Makefile.mconf
#	               (new)	        -> 1.1     scripts/lkc/lex.zconf.c_shipped
#	               (new)	        -> 1.1     scripts/lkc/Makefile
#	               (new)	        -> 1.1     scripts/lkc/zconf.tab.h_shipped
#	               (new)	        -> 1.1     scripts/lkc/zconf.tab.c_shipped
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/09/19	sam@mars.ravnborg.org	1.556
# [PATCH] Adaptions to make lkc kbuild compatible
# --------------------------------------------
#
diff -Nru a/Rules.make b/Rules.make
--- a/Rules.make	Thu Sep 19 21:32:14 2002
+++ b/Rules.make	Thu Sep 19 21:32:14 2002
@@ -391,19 +391,51 @@
 
 quiet_cmd_host_cc_o_c = HOSTCC  $(echo_target)
 cmd_host_cc_o_c       = $(HOSTCC) -Wp,-MD,$(depfile) \
-			$(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $<
+			$(HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
+			$(HOSTCFLAGS_$(@F)) -c -o $@ $<
 
 $(host-progs-multi-objs): %.o: %.c FORCE
 	$(call if_changed_dep,host_cc_o_c)
 
 quiet_cmd_host_cc__o  = HOSTLD  $(echo_target)
-cmd_host_cc__o        = $(HOSTCC) $(HOSTLDFLAGS) -o $@ $($@-objs) \
+cmd_host_cc__o        = $(HOSTCC) $(HOSTLDFLAGS) -o $@ $($@-objs) $($@-ccobjs) \
 			$(HOST_LOADLIBES)
 
 $(host-progs-multi): %: $(host-progs-multi-objs) FORCE
 	$(call if_changed,host_cc__o)
 
 targets += $(host-progs-single) $(host-progs-multi-objs) $(host-progs-multi) 
+
+# Compile c++ programs on the host
+# ===========================================================================
+host-ccprogs-single  := $(foreach m,$(host-ccprogs),\
+$(if $($(m)-objs),,$(if $($(m)-ccobjs),,$(m))))
+
+host-ccprogs-multi := $(foreach m,$(host-ccprogs),$(if $($(m)-objs),$(m)))
+host-ccprogs-multi += $(foreach m,$(host-ccprogs),$(if $($(m)-ccobjs),$(m)))
+host-ccprogs-multi := $(sort $(host-ccprogs-multi))
+
+host-ccprogs-multi-objs   := $(foreach m,$(host-ccprogs-multi),$($(m)-objs))
+host-ccprogs-ccmulti-objs := $(foreach m,$(host-ccprogs-multi),$($(m)-ccobjs))
+
+$(host-ccprogs-single): %: %.cc FORCE
+        $(call if_changed_dep,host_cc__c)
+
+# .c -> .o
+$(host-ccprogs-multi-objs): %.o: %.c FORCE
+	$(call if_changed_dep,host_cc_o_c)
+
+# .cc -> .o
+$(host-ccprogs-ccmulti-objs): %.o: %.cc FORCE
+	@echo '? $?'
+	$(call if_changed_dep,host_cc_o_c)
+
+$(host-ccprogs-multi): %: $(host-ccprogs-multi-objs) \
+                          $(host-ccprogs-ccmulti-objs) FORCE
+	$(call if_changed,host_cc__o)
+
+targets += $(host-ccprogs-single)     $(host-ccprogs-multi) \
+	   $(host-ccprogs-multi-objs) $(host-ccprogs-ccmulti-objs) 
 
 endif # ! modules_install
 endif # ! fastdep
diff -Nru a/scripts/lkc/Makefile b/scripts/lkc/Makefile
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/scripts/lkc/Makefile	Thu Sep 19 21:32:14 2002
@@ -0,0 +1,51 @@
+#################
+#
+# Shared makefile for the various lkc executables:
+# conf:	  Used for defconfig, oldconfig and related targets
+# mconf:  Used for the mconfig target.
+#         Utilises the lxdialog package
+# qconf:  Used for the xconfig target
+#         Based on qt which needs to be installed to compile it
+#         Se instructions in Makefile.qconf
+#
+# kbuild are not well prepared for multiple targets that share the
+# same modules. To address this multiple makefiles are used, and the
+# common parts are located within this makefile.
+
+include $(TOPDIR)/Rules.make
+
+# objct files used by all lkc flavours
+sharedobjs := zconf.tab.o lex.zconf.o confdata.o expr.o symbol.o menu.o
+export sharedobjs
+
+parsersrc := zconf.tab.c zconf.tab.h lex.zconf.c
+export parsersrc
+.PHONY: conf mconf qconf
+
+conf: $(parsersrc)
+	$(MAKE) -f Makefile.$@
+mconf: $(parsersrc)  
+	$(MAKE) -f Makefile.$@
+qconf: $(parsersrc)
+	$(MAKE) -f Makefile.$@
+
+
+###
+# The following requires flex/bison
+# By defualt we use the _shipped versions, uncomment the following line if
+# you are modifying the flex/bison src.
+# LKC_GENPARSER := 1
+
+ifdef LKC_GENPARSER
+
+zconf.tab.c: zconf.y
+zconf.tab.h: zconf.tab.c
+
+%.tab.c %.tab.h: %.y
+	bison -t -d -v -b $* -p $* $<
+
+lex.%.c: %.l
+	flex -P$* $<
+
+endif
+
diff -Nru a/scripts/lkc/Makefile.conf b/scripts/lkc/Makefile.conf
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/scripts/lkc/Makefile.conf	Thu Sep 19 21:32:14 2002
@@ -0,0 +1,9 @@
+###
+# Makefile for the conf executable, part of the lkc suite of programs
+
+host-progs := conf
+conf-objs := conf.o $(sharedobjs)
+
+all: conf
+include $(TOPDIR)/Rules.make
+
diff -Nru a/scripts/lkc/Makefile.mconf b/scripts/lkc/Makefile.mconf
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/scripts/lkc/Makefile.mconf	Thu Sep 19 21:32:14 2002
@@ -0,0 +1,9 @@
+###
+# Makefile for the mconf executable, part of the lkc suite of programs.
+
+host-progs := mconf
+mconf-objs  := mconf.o $(sharedobjs)
+
+all: mconf
+include $(TOPDIR)/Rules.make
+
diff -Nru a/scripts/lkc/Makefile.qconf b/scripts/lkc/Makefile.qconf
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/scripts/lkc/Makefile.qconf	Thu Sep 19 21:32:14 2002
@@ -0,0 +1,43 @@
+###
+# Makefile for the qconf executable, part of the lkc suite of programs
+#
+# qconf is based on the qt library, which needs to be installed
+# 
+
+host-ccprogs := qconf
+qconf-ccobjs := qconf.o
+qconf-objs   := $(sharedobjs)
+
+# Assume default location of qt if QTDIR is unset
+# Use make QTDIR=/some/other/dir/qt xconfig
+# if qtdir is located elsewhere, and QTDIR is not defined.
+ifndef QTDIR
+QTDIR=/usr/share/qt
+endif
+
+#Executable to interpret the .moc file
+MOC=$(wildcard $(QTDIR)/bin/moc)
+
+HOSTLDFLAGS      := -L$(QTDIR)/lib
+HOST_LOADLIBES   := -lqt
+HOSTCFLAGS_qconf.o := -I$(QTDIR)/include 
+
+# Default target, we always want to build qconf
+.PHONY: qtcheck
+all: qtcheck qconf
+
+include $(TOPDIR)/Rules.make
+
+ifeq ($(MOC),)
+qtcheck:
+        @echo Unable to find the QT installation. Please make sure that the
+        @echo QT development package is correctly installed and the QTDIR
+        @echo environment variable is set to the correct location.
+        @false
+endif
+
+$(obj)/qconf.o: $(obj)/qconf.moc
+
+$(obj)/%.moc: $(src)/%.h
+	$(QTDIR)/bin/moc -i $< -o $@
+

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-20  5:10 ` [kbuild-devel] " Sam Ravnborg
@ 2002-09-22 15:24   ` Roman Zippel
  2002-09-22 22:36     ` Kai Germaschewski
  0 siblings, 1 reply; 15+ messages in thread
From: Roman Zippel @ 2002-09-22 15:24 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-kernel, kbuild-devel, Kai Germaschewski

Hi,

On Fri, 20 Sep 2002, Sam Ravnborg wrote:

> I have been working on integrating lkc with kbuild.
> Here is the result.

Thanks, nice work. :)

> Rules.make
> - Added infrastructure to support host-ccprogs, in other words
>   support tools written (partly) in c++.

There are all compiled with gcc instead of g++, are you sure that will ok
with all supported gcc versions?

> scripts/lkc/Makefile*
> - As kbuild does not distingush between individual objects,
>   used for a given target, but (try to) build them all, I have
>   found a solution where I create one Makefile for each executable.
>   I could not see a clean way to integrate this in kbuild, and finally
>   decided that in this special case a number of Makefiles did not
>   hurt too much.

Here I thought about using "ifeq ($(MAKECMDGOALS),...)" to keep them in a
single file. Did you try something like this?

> flex/bison
> - Prepared for "_shipped" files.
>   Rename lex.zconf.c to lex.zconf.c_shipped etc. in the version
>   reday to go in the kernel.

This works quite well for users, but it's very annoying for the developer.
Kai, any chances to use md5sum for this at some point, e.g. with a helper
script like this:

set -e
src=$1
dst=$2
shift 2

test -f $dst && tail -1 $dst | sed 's,/\* \(.*\) \*/,\1,' | md5sum -c && touch $dst && exit 0
echo "$@"
"$@"
echo "/* $(md5sum $src) */" >> $dst

The only problem with this script is that it only supports a single input
and output file.

Something else I'd like to have for later is the ability to compile
$(sharedobjs) as a shared library and install it somewhere so it can be
used by external programs.

bye, Roman



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 15:24   ` Roman Zippel
@ 2002-09-22 22:36     ` Kai Germaschewski
  2002-09-22 22:41       ` Jeff Garzik
                         ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Kai Germaschewski @ 2002-09-22 22:36 UTC (permalink / raw)
  To: Roman Zippel; +Cc: Sam Ravnborg, linux-kernel, kbuild-devel

On Sun, 22 Sep 2002, Roman Zippel wrote:

> > I have been working on integrating lkc with kbuild.
> > Here is the result.
> 
> Thanks, nice work. :)

Yup, I improved things a bit further.

> > Rules.make
> > - Added infrastructure to support host-ccprogs, in other words
> >   support tools written (partly) in c++.
> 
> There are all compiled with gcc instead of g++, are you sure that will ok
> with all supported gcc versions?

I fixed that.

> > scripts/lkc/Makefile*
> > - As kbuild does not distingush between individual objects,
> >   used for a given target, but (try to) build them all, I have
> >   found a solution where I create one Makefile for each executable.
> >   I could not see a clean way to integrate this in kbuild, and finally
> >   decided that in this special case a number of Makefiles did not
> >   hurt too much.
> 
> Here I thought about using "ifeq ($(MAKECMDGOALS),...)" to keep them in a
> single file. Did you try something like this?

That's now handled without obvious hacks.

> > flex/bison
> > - Prepared for "_shipped" files.
> >   Rename lex.zconf.c to lex.zconf.c_shipped etc. in the version
> >   reday to go in the kernel.
> 
> This works quite well for users, but it's very annoying for the developer.
> Kai, any chances to use md5sum for this at some point, e.g. with a helper
> script like this:
> 
> set -e
> src=$1
> dst=$2
> shift 2
> 
> test -f $dst && tail -1 $dst | sed 's,/\* \(.*\) \*/,\1,' | md5sum -c && touch $dst && exit 0
> echo "$@"
> "$@"
> echo "/* $(md5sum $src) */" >> $dst

I'm not particularly fond of these md5sum hacks. I don't think it's all 
that annoying for the developer, either, it's basically just a
alias make="make LKC_GENPARSER=1"

(Of course, you'll have to update the _shipped files eventually, but there 
isn't really any way around that either way)

One might consider setting LKC_GENPARSER based on a test if bison/flex are 
in the path.

> Something else I'd like to have for later is the ability to compile
> $(sharedobjs) as a shared library and install it somewhere so it can be
> used by external programs.

Well, later ;)

--Kai

I created a combined patch with lkc-0.6, Sam's patch and my things on top
of current 2.5-bk (And I would strongly suggest to make further releases
like this, if people need to first figure out how to install and what to
run, they won't test lkc at all). As a result, it's fairly large, so I put
it on

	http://zephyr.physics.uiowa.edu/~kai/lkc/lkc-0.6-A

--Kai



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 22:36     ` Kai Germaschewski
@ 2002-09-22 22:41       ` Jeff Garzik
  2002-09-22 22:51         ` Kai Germaschewski
  2002-09-23 19:59       ` Sam Ravnborg
  2002-10-03 11:17       ` Roman Zippel
  2 siblings, 1 reply; 15+ messages in thread
From: Jeff Garzik @ 2002-09-22 22:41 UTC (permalink / raw)
  To: Kai Germaschewski; +Cc: Roman Zippel, Sam Ravnborg, linux-kernel, kbuild-devel

One cosmetic thing I mentioned to Roman, Config.new needs to be changed 
to something better, like conf.in or build.conf or somesuch.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 22:41       ` Jeff Garzik
@ 2002-09-22 22:51         ` Kai Germaschewski
  2002-09-22 22:53           ` Jeff Garzik
  2002-09-22 23:07           ` Roman Zippel
  0 siblings, 2 replies; 15+ messages in thread
From: Kai Germaschewski @ 2002-09-22 22:51 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Roman Zippel, Sam Ravnborg, linux-kernel, kbuild-devel

On Sun, 22 Sep 2002, Jeff Garzik wrote:

> One cosmetic thing I mentioned to Roman, Config.new needs to be changed 
> to something better, like conf.in or build.conf or somesuch.

I agree. (But I'm not particularly good at coming up with names ;) 
build.conf is maybe not too bad considering that there may be a day where 
it is extended to support "<driver>.conf" as well.


One other thing I wanted to mention but forgot was that lkc now
does a quiet "make oldconfig" when .config changed or does not exist, 
which is changed behavior.

I intentionally only printed a message and errored out in this case, and I 
think that's more useful, particularly for people doing

make all 2>&1 > make.log

which now may take forever waiting for input.

--Kai



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 22:51         ` Kai Germaschewski
@ 2002-09-22 22:53           ` Jeff Garzik
  2002-09-22 23:03             ` Kai Germaschewski
  2002-09-22 23:07           ` Roman Zippel
  1 sibling, 1 reply; 15+ messages in thread
From: Jeff Garzik @ 2002-09-22 22:53 UTC (permalink / raw)
  To: Kai Germaschewski; +Cc: Roman Zippel, Sam Ravnborg, linux-kernel, kbuild-devel

Kai Germaschewski wrote:
> On Sun, 22 Sep 2002, Jeff Garzik wrote:
> 
> 
>>One cosmetic thing I mentioned to Roman, Config.new needs to be changed 
>>to something better, like conf.in or build.conf or somesuch.
> 
> 
> I agree. (But I'm not particularly good at coming up with names ;) 
> build.conf is maybe not too bad considering that there may be a day where 
> it is extended to support "<driver>.conf" as well.

We want to make sure the config format is extensible in case we want to 
add Makefile rules or some other metadata (i.e. <driver>.conf contains 
all config/make info needed to build a driver, just drop it in)


> One other thing I wanted to mention but forgot was that lkc now
> does a quiet "make oldconfig" when .config changed or does not exist, 
> which is changed behavior.


Can you elaborate a bit on that?  'make oldconfig' is one of the things 
we want to keep working as-is...  That was a downside of ESR's system. 
If you're saying "silent" as in, if-no-changes-occurred or 
defconfig-copied-as-is, that's cool...

	Jeff




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 22:53           ` Jeff Garzik
@ 2002-09-22 23:03             ` Kai Germaschewski
  2002-09-23  1:48               ` Jeff Garzik
  0 siblings, 1 reply; 15+ messages in thread
From: Kai Germaschewski @ 2002-09-22 23:03 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Roman Zippel, Sam Ravnborg, linux-kernel, kbuild-devel

On Sun, 22 Sep 2002, Jeff Garzik wrote:

> Kai Germaschewski wrote:
> > On Sun, 22 Sep 2002, Jeff Garzik wrote:
> > 
> > 
> >>One cosmetic thing I mentioned to Roman, Config.new needs to be changed 
> >>to something better, like conf.in or build.conf or somesuch.
> > 
> > 
> > I agree. (But I'm not particularly good at coming up with names ;) 
> > build.conf is maybe not too bad considering that there may be a day where 
> > it is extended to support "<driver>.conf" as well.
> 
> We want to make sure the config format is extensible in case we want to 
> add Makefile rules or some other metadata (i.e. <driver>.conf contains 
> all config/make info needed to build a driver, just drop it in)
> 
> 
> > One other thing I wanted to mention but forgot was that lkc now
> > does a quiet "make oldconfig" when .config changed or does not exist, 
> > which is changed behavior.
> 
> 
> Can you elaborate a bit on that?  'make oldconfig' is one of the things 
> we want to keep working as-is...  That was a downside of ESR's system. 
> If you're saying "silent" as in, if-no-changes-occurred or 
> defconfig-copied-as-is, that's cool...

Roman probably knows better than I do, but anyway.

AFAICS, "quiet" only means the same thing as the traditional "make 
oldconfig", but suppressing questions where the answers are known. (Which 
I think is fine)

I was just referring to the following, which really is not in the subtle 
change category:

-------------------------------------------------------------
[kai@zephyr linux-2.5.make]$ rm .config
[kai@zephyr linux-2.5.make]$ make
***
*** You have not yet configured your kernel!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make: *** [.config] Error 1
-------------------------------------------------------------

whereas lkc changes this to run (the quiet) make oldconfig automatically.

Same thing for 

-------------------------------------------------------------
[kai@zephyr linux-2.5.make]$ cp ../config-2.5 .config
[kai@zephyr linux-2.5.make]$ make
make[1]: Entering directory 
`/home/kai/src/kernel/v2.5/linux-2.5.make/scripts'
make[1]: Leaving directory 
`/home/kai/src/kernel/v2.5/linux-2.5.make/scripts'
***
*** You changed .config w/o running make *config?
*** Please run "make oldconfig"
***
-------------------------------------------------------------

Since people run automated builds, erroring out is IMHO preferable to 
dropping into interactive mode, which likely happens when you run make 
oldconfig.


--Kai




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 22:51         ` Kai Germaschewski
  2002-09-22 22:53           ` Jeff Garzik
@ 2002-09-22 23:07           ` Roman Zippel
  2002-09-22 23:19             ` Kai Germaschewski
  1 sibling, 1 reply; 15+ messages in thread
From: Roman Zippel @ 2002-09-22 23:07 UTC (permalink / raw)
  To: Kai Germaschewski; +Cc: Jeff Garzik, Sam Ravnborg, linux-kernel, kbuild-devel

Hi,

On Sun, 22 Sep 2002, Kai Germaschewski wrote:

> > One cosmetic thing I mentioned to Roman, Config.new needs to be changed
> > to something better, like conf.in or build.conf or somesuch.
>
> I agree. (But I'm not particularly good at coming up with names ;)
> build.conf is maybe not too bad considering that there may be a day where
> it is extended to support "<driver>.conf" as well.

Maybe it should start with a capital letter like Makefile/Config.in, so
it's at the top of a directory listing.

> I intentionally only printed a message and errored out in this case, and I
> think that's more useful, particularly for people doing
>
> make all 2>&1 > make.log
>
> which now may take forever waiting for input.

You should have tried this first :) :

$ make | cat
make[1]: Entering directory `/home/roman/src/linux-lkc/scripts'
make[1]: Leaving directory `/home/roman/src/linux-lkc/scripts'
make[1]: Entering directory `/home/roman/src/lc'
make[1]: `conf' is up to date.
make[1]: Leaving directory `/home/roman/src/lc'
./scripts/lkc/conf -s arch/i386/config.new
#
# using defaults found in .config
#
*
* Restart config...
*
Enable loadable module support (MODULES) [Y/n/?] y
  Set version information on all module symbols (MODVERSIONS) [N/y/?] (NEW) aborted!

Console input/output is redirected. Run 'make oldconfig' to update configuration.

make: *** [include/linux/autoconf.h] Error 1

bye, Roman


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 23:07           ` Roman Zippel
@ 2002-09-22 23:19             ` Kai Germaschewski
  2002-09-22 23:30               ` Roman Zippel
  2002-09-23  1:50               ` Jeff Garzik
  0 siblings, 2 replies; 15+ messages in thread
From: Kai Germaschewski @ 2002-09-22 23:19 UTC (permalink / raw)
  To: Roman Zippel; +Cc: Jeff Garzik, Sam Ravnborg, linux-kernel, kbuild-devel

On Mon, 23 Sep 2002, Roman Zippel wrote:

> > I intentionally only printed a message and errored out in this case, and I
> > think that's more useful, particularly for people doing
> >
> > make all 2>&1 > make.log
> >
> > which now may take forever waiting for input.
> 
> You should have tried this first :) :

Yup, obviously ;) Sorry about that.

> 
> $ make | cat
> make[1]: Entering directory `/home/roman/src/linux-lkc/scripts'
> make[1]: Leaving directory `/home/roman/src/linux-lkc/scripts'
> make[1]: Entering directory `/home/roman/src/lc'
> make[1]: `conf' is up to date.
> make[1]: Leaving directory `/home/roman/src/lc'
> ./scripts/lkc/conf -s arch/i386/config.new
> #
> # using defaults found in .config
> #
> *
> * Restart config...
> *
> Enable loadable module support (MODULES) [Y/n/?] y
>   Set version information on all module symbols (MODVERSIONS) [N/y/?] (NEW) aborted!
> 
> Console input/output is redirected. Run 'make oldconfig' to update configuration.
> 
> make: *** [include/linux/autoconf.h] Error 1

I'm still not happy at least for the ".config does not exist" case. Since 
when I forget to "cp ../config-2.5 .config", I don't really want "make 
oldconfig", I want to do the forgotten cp. I think there's hardly anyone 
who wants oldconfig in that case, rather menuconfig/xconfig or a cp like I 
mentioned. Since kbuild/lkc does not know, it shouldn't make that (bad) 
guess.

If .config exist but is not current, I think in 99% of the cases we really 
want make oldconfig, so that's fine.

--Kai



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 23:19             ` Kai Germaschewski
@ 2002-09-22 23:30               ` Roman Zippel
  2002-09-23  1:50               ` Jeff Garzik
  1 sibling, 0 replies; 15+ messages in thread
From: Roman Zippel @ 2002-09-22 23:30 UTC (permalink / raw)
  To: Kai Germaschewski; +Cc: Jeff Garzik, Sam Ravnborg, linux-kernel, kbuild-devel

Hi,

On Sun, 22 Sep 2002, Kai Germaschewski wrote:

> I'm still not happy at least for the ".config does not exist" case. Since
> when I forget to "cp ../config-2.5 .config", I don't really want "make
> oldconfig", I want to do the forgotten cp.

Adding this check to the silent mode is trivial.

bye, Roman


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 23:03             ` Kai Germaschewski
@ 2002-09-23  1:48               ` Jeff Garzik
  0 siblings, 0 replies; 15+ messages in thread
From: Jeff Garzik @ 2002-09-23  1:48 UTC (permalink / raw)
  To: Kai Germaschewski; +Cc: Roman Zippel, Sam Ravnborg, linux-kernel, kbuild-devel

Kai Germaschewski wrote:
> On Sun, 22 Sep 2002, Jeff Garzik wrote:
> AFAICS, "quiet" only means the same thing as the traditional "make 
> oldconfig", but suppressing questions where the answers are known. (Which 
> I think is fine)

yeah, that's fine with me too


> I was just referring to the following, which really is not in the subtle 
> change category:
> 
> -------------------------------------------------------------
> [kai@zephyr linux-2.5.make]$ rm .config
> [kai@zephyr linux-2.5.make]$ make
> ***
> *** You have not yet configured your kernel!
> ***
> *** Please run some configurator (e.g. "make oldconfig" or
> *** "make menuconfig" or "make xconfig").
> ***
> make: *** [.config] Error 1
> -------------------------------------------------------------
> 
> whereas lkc changes this to run (the quiet) make oldconfig automatically.

hmmmm, looks like something got broken somewhere, then.

The proper behavior for this example is
	cp arch/$arch/defconfig .config

Do a 'make oldconfig' or 'make config' with no .config, in a 2.4 kernel.

Please fix... :/



> Same thing for 
> 
> -------------------------------------------------------------
> [kai@zephyr linux-2.5.make]$ cp ../config-2.5 .config
> [kai@zephyr linux-2.5.make]$ make
> make[1]: Entering directory 
> `/home/kai/src/kernel/v2.5/linux-2.5.make/scripts'
> make[1]: Leaving directory 
> `/home/kai/src/kernel/v2.5/linux-2.5.make/scripts'
> ***
> *** You changed .config w/o running make *config?
> *** Please run "make oldconfig"
> ***
> -------------------------------------------------------------
> 
> Since people run automated builds, erroring out is IMHO preferable to 
> dropping into interactive mode, which likely happens when you run make 
> oldconfig.

agreed

	Jeff




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 23:19             ` Kai Germaschewski
  2002-09-22 23:30               ` Roman Zippel
@ 2002-09-23  1:50               ` Jeff Garzik
  1 sibling, 0 replies; 15+ messages in thread
From: Jeff Garzik @ 2002-09-23  1:50 UTC (permalink / raw)
  To: Kai Germaschewski; +Cc: Roman Zippel, Sam Ravnborg, linux-kernel, kbuild-devel

Kai Germaschewski wrote:
> I'm still not happy at least for the ".config does not exist" case. Since 


Easy, maintain the 2.4 behavior, which is sane :)

	Jeff




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 22:36     ` Kai Germaschewski
  2002-09-22 22:41       ` Jeff Garzik
@ 2002-09-23 19:59       ` Sam Ravnborg
  2002-10-03 11:17       ` Roman Zippel
  2 siblings, 0 replies; 15+ messages in thread
From: Sam Ravnborg @ 2002-09-23 19:59 UTC (permalink / raw)
  To: Kai Germaschewski; +Cc: Roman Zippel, Sam Ravnborg, linux-kernel, kbuild-devel

On Sun, Sep 22, 2002 at 05:36:25PM -0500, Kai Germaschewski wrote:
> > > scripts/lkc/Makefile*
> > > - As kbuild does not distingush between individual objects,
> > >   used for a given target, but (try to) build them all, I have
> > >   found a solution where I create one Makefile for each executable.
> > >   I could not see a clean way to integrate this in kbuild, and finally
> > >   decided that in this special case a number of Makefiles did not
> > >   hurt too much.
> > 
> > Here I thought about using "ifeq ($(MAKECMDGOALS),...)" to keep them in a
> > single file. Did you try something like this?
> 
> That's now handled without obvious hacks.

Applying $(sort ) to create a unique list of obj files does not solve
this issue, only hide it.
kbuild will compile all .o files originating from .c files when 
building conf and mconf.
Likewise when building qconf, all .o files originating from both .c _and_
.cc files will be built.
In other words the current solution leverage on the fact that the only
problematic object files is qconf.o based on qconf.cc.

It is OK that the first "make oldconfig" - automatic or not - 
needs to compile one extra .o file (mconf.o), since this is relatively fast.

PS. linux-isdn.bkbits.net/linux-2.5.kconfig has not showed up yet - mentioned
the patch you posted a diff for.

	Sam

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [kbuild-devel] linux kernel conf 0.6
  2002-09-22 22:36     ` Kai Germaschewski
  2002-09-22 22:41       ` Jeff Garzik
  2002-09-23 19:59       ` Sam Ravnborg
@ 2002-10-03 11:17       ` Roman Zippel
  2 siblings, 0 replies; 15+ messages in thread
From: Roman Zippel @ 2002-10-03 11:17 UTC (permalink / raw)
  To: Kai Germaschewski; +Cc: Sam Ravnborg, linux-kernel, kbuild-devel

Hi,

(I almost forgot to reply to this one, sorry for the delay.)

On Sun, 22 Sep 2002, Kai Germaschewski wrote:

> I'm not particularly fond of these md5sum hacks. I don't think it's all
> that annoying for the developer, either, it's basically just a
> alias make="make LKC_GENPARSER=1"
>
> (Of course, you'll have to update the _shipped files eventually, but there
> isn't really any way around that either way)

Where's the problem with md5sum? If the rules are usually not visible
anyway, why do we use the _shipped postfix at all? The depencies are
hidden this way as well, so make won't even try to regenerate the file.
The developer has to remember that extra argument to get the file
regenerated, what is IMO more hacky than using md5sum.

bye, Roman


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2002-10-03 11:14 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-16 23:16 linux kernel conf 0.6 Roman Zippel
2002-09-20  5:10 ` [kbuild-devel] " Sam Ravnborg
2002-09-22 15:24   ` Roman Zippel
2002-09-22 22:36     ` Kai Germaschewski
2002-09-22 22:41       ` Jeff Garzik
2002-09-22 22:51         ` Kai Germaschewski
2002-09-22 22:53           ` Jeff Garzik
2002-09-22 23:03             ` Kai Germaschewski
2002-09-23  1:48               ` Jeff Garzik
2002-09-22 23:07           ` Roman Zippel
2002-09-22 23:19             ` Kai Germaschewski
2002-09-22 23:30               ` Roman Zippel
2002-09-23  1:50               ` Jeff Garzik
2002-09-23 19:59       ` Sam Ravnborg
2002-10-03 11:17       ` Roman Zippel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).