Re: Check handling of kernel build output directory

From: Markus Elfring
Date: Sat Oct 27 2007 - 12:01:00 EST


>> Which files are not clean in my situation after the command "make mrproper" was executed
>> at the beginning?
> If you look at the top-level Makefile you will see:
>
> @echo ' Using $(srctree) as source for kernel'
> $(Q)if [ -f $(srctree)/.config -o -d $(srctree)/include/config ]; then \
> echo " $(srctree) is not clean, please run 'make mrproper'";\
> echo " in the '$(srctree)' directory.";\
> /bin/false; \
> fi;
>
> So you either a .config file or the config directory.

Well, I've thought about another viewpoint. The Makefile insists on the detail that no
configuration files are allowed in the source directory if an output directory was specified.
Original wording:
"...
# prepare3 is used to check if we are building in a separate output directory,
# and if so do:
# 1) Check that make has not been executed in the kernel src $(srctree)
..."

I seems now that my troubles came from the missing decision when to move or delete the
.config file from my source directory. So the following command sequence works for a
completely clean build. (It can be adjusted to support parallel configurations for
debug/release situations as usual.)

elfring@Sonne:~/Projekte/Linux/Kernel/2.6.23.1> unset KBUILD_OUTPUT && make mrproper && cp
-p /boot/config-2.6.23.1-0-adjusted .config && export
KBUILD_OUTPUT=~/Projekte/Linux/Kernel/obj/2.6.23.1/x86_64/adjusted && rm -rf
$KBUILD_OUTPUT/* && make silentoldconfig && rm .config && date && echo
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX && make -j4 && echo
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY && date
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/docproc
GEN /home/elfring/Projekte/Linux/Kernel/obj/2.6.23.1/x86_64/adjusted/Makefile
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/kxgettext.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf -s arch/x86_64/Kconfig
Sa 27. Okt 17:37:38 CEST 2007
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
GEN /home/elfring/Projekte/Linux/Kernel/obj/2.6.23.1/x86_64/adjusted/Makefile
[...]
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
Sa 27. Okt 17:55:09 CEST 2007

Regards,
Markus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/