Re: [PATCH] KBUILD: Create the source symlink earlier in the objdir

From: Sam Ravnborg
Date: Sun Feb 15 2009 - 05:35:45 EST


On Sat, Jan 10, 2009 at 04:56:13AM +0100, Andi Kleen wrote:
> KBUILD: Create the source symlink earlier in the objdir
>
> It's useful to already have the source symlink in a
> objdir when one just runs make *config. Then one
> can do
>
> mkdir obj-allyes
> cd obj-allyes
> make -C ../sourcedir O=$(pwd) allyesconfig
> ./source/scripts/config --disable debug_info
> make CC=icecc -j18
>
> without having to interrupt the make first just to
> get the source symlink.
>
> Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> ---
> Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
>
> Index: linux-2.6.28-kbuild/Makefile
> ===================================================================
> --- linux-2.6.28-kbuild.orig/Makefile 2009-01-07 22:16:49.000000000 +0100
> +++ linux-2.6.28-kbuild/Makefile 2009-01-10 04:50:53.000000000 +0100
> @@ -383,6 +383,7 @@
> # output directory.
> outputmakefile:
> ifneq ($(KBUILD_SRC),)
> + @ln -fsn $(srctree) $(objtree)/source
> $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
> $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
> endif

But we do not want to create this symlink in two places.
So the following is better:

Sam

diff --git a/Makefile b/Makefile
index 22d7584..76ee131 100644
--- a/Makefile
+++ b/Makefile
@@ -388,6 +388,7 @@ PHONY += outputmakefile
# separate output directory. This allows convenient use of make in the
# output directory.
outputmakefile:
+ $(Q)ln -fsn $(srctree) source
ifneq ($(KBUILD_SRC),)
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
$(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
@@ -946,7 +947,6 @@ ifneq ($(KBUILD_SRC),)
mkdir -p include2; \
ln -fsn $(srctree)/include/asm-$(SRCARCH) include2/asm; \
fi
- ln -fsn $(srctree) source
endif

# prepare2 creates a makefile if using a separate output directory
--
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/