* [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O)
@ 2010-09-21 22:25 Yann E. MORIN
2010-09-23 21:04 ` Peter Korsgaard
0 siblings, 1 reply; 8+ messages in thread
From: Yann E. MORIN @ 2010-09-21 22:25 UTC (permalink / raw)
To: buildroot
If building out-of-tree, add a Makefile wrapper that calls-out
to the real Makefile with proper args.
Avoids having to pass -C and O= every time we call make.
This is highly inspired from how the Linux kernel does it, and
portions of it have been used.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
---
Makefile | 18 +++++++++++++++-
scripts/mkmakefile | 50 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 66 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index faa802b..ec425c6 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,7 @@ space:=$(empty) $(empty)
ifneq ("$(origin O)", "command line")
O:=output
CONFIG_DIR:=$(TOPDIR)
+NEED_WRAPPER=
else
# other packages might also support Linux-style out of tree builds
# with the O=<dir> syntax (E.G. Busybox does). As make automatically
@@ -60,6 +61,7 @@ override O:=$(O)
CONFIG_DIR:=$(O)
# we need to pass O= everywhere we call back into the toplevel makefile
EXTRAMAKEARGS = O=$(O)
+NEED_WRAPPER=y
endif
# $(shell find . -name *_defconfig |sed 's/.*\///')
@@ -324,7 +326,7 @@ prepare: $(BUILD_DIR)/buildroot-config/auto.conf
world: prepare dependencies dirs $(BASE_TARGETS) $(TARGETS_ALL)
-.PHONY: all world dirs clean distclean source \
+.PHONY: all world dirs clean distclean source outputmakefile \
$(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
$(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \
$(DL_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
@@ -453,7 +455,7 @@ all: menuconfig
HOSTCFLAGS=$(CFLAGS_FOR_BUILD)
export HOSTCFLAGS
-$(BUILD_DIR)/buildroot-config/%onf:
+$(BUILD_DIR)/buildroot-config/%onf: |outputmakefile
mkdir -p $(@D)/lxdialog
$(MAKE) CC="$(HOSTCC)" obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F)
@@ -559,6 +561,18 @@ endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
# Cleanup and misc junk
#
#############################################################
+
+ifeq ($(NEED_WRAPPER),y)
+# outputmakefile generates a Makefile in the output directory, if using a
+# separate output directory. This allows convenient use of make in the
+# output directory.
+outputmakefile:
+ $(Q)$(SHELL) $(TOPDIR)/scripts/mkmakefile $(CURDIR) $(O)
+else
+outputmakefile:
+ @true
+endif
+
clean:
rm -rf $(STAGING_DIR) $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \
$(STAMP_DIR) $(BUILD_DIR) $(TOOLCHAIN_DIR)
diff --git a/scripts/mkmakefile b/scripts/mkmakefile
new file mode 100644
index 0000000..b2b3555
--- /dev/null
+++ b/scripts/mkmakefile
@@ -0,0 +1,50 @@
+#!/bin/sh
+# Generates a small Makefile used in the root of the output
+# directory, to allow make to be started from there.
+# The Makefile also allow for more convinient build of external modules
+
+# Usage
+# $1 - Kernel src directory
+# $2 - Output directory
+
+
+test ! -r $2/Makefile -o -O $2/Makefile || exit 0
+# Only overwrite automatically generated Makefiles
+# (so we do not overwrite buildroot Makefile)
+if test -e $2/Makefile && ! grep -E "^# Buildroot Makefile wrapper$" $2/Makefile >/dev/null 2>&1
+then
+ exit 0
+fi
+
+cat << EOF > $2/.Makefile
+# Buildroot Makefile wrapper
+# Automatically generated by $0: don't edit
+
+lastword = \$(word \$(words \$(1)),\$(1))
+makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST)))
+
+MAKEARGS := -C $1
+MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir))
+
+MAKEFLAGS += --no-print-directory
+
+.PHONY: all \$(MAKECMDGOALS)
+
+all := \$(filter-out all Makefile,\$(MAKECMDGOALS))
+
+all:
+ \$(MAKE) \$(MAKEARGS) \$(all)
+
+Makefile:;
+
+\$(all) %/: all
+ @:
+EOF
+
+if ! cmp $2/.Makefile $2/Makefile >/dev/null 2>&1; then
+ echo " GEN Makefile"
+ rm -f $2/Makefile
+ mv $2/.Makefile $2/Makefile
+else
+ rm -f $2/.Makefile
+fi
--
1.7.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O)
2010-09-21 22:25 Yann E. MORIN
@ 2010-09-23 21:04 ` Peter Korsgaard
2010-09-23 21:35 ` Yann E. MORIN
0 siblings, 1 reply; 8+ messages in thread
From: Peter Korsgaard @ 2010-09-23 21:04 UTC (permalink / raw)
To: buildroot
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@anciens.enib.fr> writes:
Yann> If building out-of-tree, add a Makefile wrapper that calls-out
Yann> to the real Makefile with proper args.
Yann> Avoids having to pass -C and O= every time we call make.
Nice, looks good.
Yann> This is highly inspired from how the Linux kernel does it, and
Yann> portions of it have been used.
Why only portions? Can't we use it all? That would make updating easier
in the future. Related to this, mkmakefile got updated in the kernel
back in August to support make 3.82, care to resync?
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O)
2010-09-23 21:04 ` Peter Korsgaard
@ 2010-09-23 21:35 ` Yann E. MORIN
0 siblings, 0 replies; 8+ messages in thread
From: Yann E. MORIN @ 2010-09-23 21:35 UTC (permalink / raw)
To: buildroot
Peter, All,
On Thursday 23 September 2010 23:04:49 Peter Korsgaard wrote:
> Yann> If building out-of-tree, add a Makefile wrapper that calls-out
> Yann> to the real Makefile with proper args.
> Yann> Avoids having to pass -C and O= every time we call make.
> Yann> This is highly inspired from how the Linux kernel does it, and
> Yann> portions of it have been used.
>
> Why only portions? Can't we use it all? That would make updating easier
> in the future.
Unfortunately, our 'out-of-tree' build in not similar to the one of the
kernel. In fact, we always do out-of-tree in buildroot. Let me explain...
Let's assume that $(TOPDIR) is the directory that holds the top-level
Makefile (of buildroot or the kernel).
In the Linux kernel, everything is output in $(O). The value of $(O) is
by default $(TOPDIR), and they call that "in-tree build". When the user
sets "O=blah" on the command line, then everything is put into that, and
they call that "out-of-tree build".
Now, in buildroot, we always output everything in $(O). The value of $(O)
is by default set to $(TOPDIR)/output, and we call that "in-tree build".
When the user sets "O=blah" on the command line, then everything is put
into that, and we call that "out-of-tree build".
See the slight difference in the "in-tree" case? That explains why I
couldn't use the same construct in the top-level Makefile.
Then, I have updated the mkmakefile script to remove any kernel-related
stuff. For example, we do not have a need for version and patchlevel,
and we do not have a 'quiet' build (where commands are replaced with
their beautified outputs, like CC foo/bar.o).
Next, in the Linux kernel, they always overwrite the wrapper Makefile
at each run. Doing so in buildroot caused the kconfig stuff to be always
rebuilt. So I added a check to only install the wrapper if its content
changed since last time it was isntalled.
I hope this clarifies the reasons why I said "portions of it". Those
"portions" would amount to 80-90% of this patch.
> Related to this, mkmakefile got updated in the kernel
> back in August to support make 3.82, care to resync?
Will do, yes. Thanks for the review.
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O)
@ 2010-09-26 8:56 Yann E. MORIN
2010-09-26 21:48 ` Peter Korsgaard
2010-10-16 12:34 ` Lionel Landwerlin
0 siblings, 2 replies; 8+ messages in thread
From: Yann E. MORIN @ 2010-09-26 8:56 UTC (permalink / raw)
To: buildroot
If building out-of-tree, add a Makefile wrapper that calls-out to the real
Makefile with proper args.
Avoids having to pass -C and O= every time we call make.
This is highly inspired from how the Linux kernel does it, and portions of
it have been used. We can't use exactly the same implementation as the
kernel does, because:
- the kernel always overwrites the wrapper at each call: doing so in
buildroot makes the kconfig stuff be rebuilt every time;
- the script writing the wrapper has been expunged of the few lines
that were too kernel-related: in buildroot we do not need the version
string in the wrapper, and we do not have a patchlevel version;
- "in-tree build" does not have the same meaning for the kernel and for
buildroot: for the kernel, $(O) point to the $(TOPDIR), while for
buildroot $(O) points to $(TOPDIR)/output.
For more complete explnanations, see:
http://lists.busybox.net/pipermail/buildroot/2010-September/037815.html
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
---
Makefile | 18 ++++++++++++++-
scripts/mkmakefile | 53 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 69 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index faa802b..ec425c6 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,7 @@ space:=$(empty) $(empty)
ifneq ("$(origin O)", "command line")
O:=output
CONFIG_DIR:=$(TOPDIR)
+NEED_WRAPPER=
else
# other packages might also support Linux-style out of tree builds
# with the O=<dir> syntax (E.G. Busybox does). As make automatically
@@ -60,6 +61,7 @@ override O:=$(O)
CONFIG_DIR:=$(O)
# we need to pass O= everywhere we call back into the toplevel makefile
EXTRAMAKEARGS = O=$(O)
+NEED_WRAPPER=y
endif
# $(shell find . -name *_defconfig |sed 's/.*\///')
@@ -324,7 +326,7 @@ prepare: $(BUILD_DIR)/buildroot-config/auto.conf
world: prepare dependencies dirs $(BASE_TARGETS) $(TARGETS_ALL)
-.PHONY: all world dirs clean distclean source \
+.PHONY: all world dirs clean distclean source outputmakefile \
$(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
$(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \
$(DL_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
@@ -453,7 +455,7 @@ all: menuconfig
HOSTCFLAGS=$(CFLAGS_FOR_BUILD)
export HOSTCFLAGS
-$(BUILD_DIR)/buildroot-config/%onf:
+$(BUILD_DIR)/buildroot-config/%onf: |outputmakefile
mkdir -p $(@D)/lxdialog
$(MAKE) CC="$(HOSTCC)" obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F)
@@ -559,6 +561,18 @@ endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
# Cleanup and misc junk
#
#############################################################
+
+ifeq ($(NEED_WRAPPER),y)
+# outputmakefile generates a Makefile in the output directory, if using a
+# separate output directory. This allows convenient use of make in the
+# output directory.
+outputmakefile:
+ $(Q)$(SHELL) $(TOPDIR)/scripts/mkmakefile $(CURDIR) $(O)
+else
+outputmakefile:
+ @true
+endif
+
clean:
rm -rf $(STAGING_DIR) $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \
$(STAMP_DIR) $(BUILD_DIR) $(TOOLCHAIN_DIR)
diff --git a/scripts/mkmakefile b/scripts/mkmakefile
new file mode 100644
index 0000000..39dd292
--- /dev/null
+++ b/scripts/mkmakefile
@@ -0,0 +1,53 @@
+#!/bin/sh
+# Generates a small Makefile used in the root of the output
+# directory, to allow make to be started from there.
+# The Makefile also allow for more convinient build of external modules
+
+# Usage
+# $1 - Kernel src directory
+# $2 - Output directory
+
+
+test ! -r $2/Makefile -o -O $2/Makefile || exit 0
+# Only overwrite automatically generated Makefiles
+# (so we do not overwrite buildroot Makefile)
+if test -e $2/Makefile && ! grep -E "^# Buildroot Makefile wrapper$" $2/Makefile >/dev/null 2>&1
+then
+ exit 0
+fi
+
+cat << EOF > $2/.Makefile
+# Buildroot Makefile wrapper
+# Automatically generated by $0: don't edit
+
+lastword = \$(word \$(words \$(1)),\$(1))
+makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST)))
+
+MAKEARGS := -C $1
+MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir))
+
+MAKEFLAGS += --no-print-directory
+
+.PHONY: all \$(MAKECMDGOALS)
+
+all := \$(filter-out all Makefile,\$(MAKECMDGOALS))
+
+all:
+ \$(MAKE) \$(MAKEARGS) \$(all)
+
+Makefile:;
+
+\$(all): all
+ @:
+
+%/: all
+ @:
+EOF
+
+if ! cmp $2/.Makefile $2/Makefile >/dev/null 2>&1; then
+ echo " GEN Makefile"
+ rm -f $2/Makefile
+ mv $2/.Makefile $2/Makefile
+else
+ rm -f $2/.Makefile
+fi
--
1.7.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O)
2010-09-26 8:56 [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O) Yann E. MORIN
@ 2010-09-26 21:48 ` Peter Korsgaard
2010-09-28 16:36 ` Yann E. MORIN
2010-10-16 12:34 ` Lionel Landwerlin
1 sibling, 1 reply; 8+ messages in thread
From: Peter Korsgaard @ 2010-09-26 21:48 UTC (permalink / raw)
To: buildroot
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@anciens.enib.fr> writes:
Yann> If building out-of-tree, add a Makefile wrapper that calls-out to the real
Yann> Makefile with proper args.
Yann> Avoids having to pass -C and O= every time we call make.
Yann> This is highly inspired from how the Linux kernel does it, and portions of
Yann> it have been used. We can't use exactly the same implementation as the
Yann> kernel does, because:
Yann> - the kernel always overwrites the wrapper at each call: doing so in
Yann> buildroot makes the kconfig stuff be rebuilt every time;
Huh? We do call mkmakefile every time, but you do the extra trick about
.Makefile (why?). I guess the reason why you have the kconfig stuff
rebuilding is that you added the phony outputmake dependency to the
kconfig binaries rather than the phony menuconfig/oldconfig/.. targets.
Yann> - the script writing the wrapper has been expunged of the few lines
Yann> that were too kernel-related: in buildroot we do not need the version
Yann> string in the wrapper, and we do not have a patchlevel version;
Yann> +
Yann> +ifeq ($(NEED_WRAPPER),y)
Yann> +# outputmakefile generates a Makefile in the output directory, if using a
Yann> +# separate output directory. This allows convenient use of make in the
Yann> +# output directory.
Yann> +outputmakefile:
Yann> + $(Q)$(SHELL) $(TOPDIR)/scripts/mkmakefile $(CURDIR) $(O)
Yann> +else
Yann> +outputmakefile:
Yann> + @true
Yann> +endif
A makefile target without any rules is OK, so you could get rid of the
true. We use TOPDIR everywhere else instead of CURDIR, so I would prefer
to use it here. It also makes more sense to make mkmakefile executable
and get rid of the SHELL.
Yann> +
Yann> +if ! cmp $2/.Makefile $2/Makefile >/dev/null 2>&1; then
Yann> + echo " GEN Makefile"
Yann> + rm -f $2/Makefile
Yann> + mv $2/.Makefile $2/Makefile
Yann> +else
Yann> + rm -f $2/.Makefile
Yann> +fi
I would prefer to stick as close as possible to the version in the
kernel sources, so I'll remove this. What is the reason for it? You
already created the Makefile, so it cannot be because of performance.
I've committed a slightly tweaked version of it, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O)
2010-09-26 21:48 ` Peter Korsgaard
@ 2010-09-28 16:36 ` Yann E. MORIN
0 siblings, 0 replies; 8+ messages in thread
From: Yann E. MORIN @ 2010-09-28 16:36 UTC (permalink / raw)
To: buildroot
On Sunday 26 September 2010 23:48:28 Peter Korsgaard wrote:
> Yann> - the kernel always overwrites the wrapper at each call: doing so in
> Yann> buildroot makes the kconfig stuff be rebuilt every time;
> Huh? We do call mkmakefile every time, but you do the extra trick about
> .Makefile (why?). I guess the reason why you have the kconfig stuff
> rebuilding is that you added the phony outputmake dependency to the
> kconfig binaries rather than the phony menuconfig/oldconfig/.. targets.
Ah, right, most probably.
> Yann> - the script writing the wrapper has been expunged of the few lines
> Yann> that were too kernel-related: in buildroot we do not need the version
> Yann> string in the wrapper, and we do not have a patchlevel version;
>
> Yann> +
> Yann> +ifeq ($(NEED_WRAPPER),y)
> Yann> +# outputmakefile generates a Makefile in the output directory, if using a
> Yann> +# separate output directory. This allows convenient use of make in the
> Yann> +# output directory.
> Yann> +outputmakefile:
> Yann> + $(Q)$(SHELL) $(TOPDIR)/scripts/mkmakefile $(CURDIR) $(O)
> Yann> +else
> Yann> +outputmakefile:
> Yann> + @true
> Yann> +endif
>
> A makefile target without any rules is OK, so you could get rid of the
> true.
The issue with an no-rule target is that it is considered to be always re-done.
But that's no issue now the kconfig is not re-built every time.
> We use TOPDIR everywhere else instead of CURDIR, so I would prefer
> to use it here.
I see. I used CURDIR as this is set by make, so it is sure set. But TOPDIR
is better indeed, as it makes it homogenous with the rest of the Makefiles.
> It also makes more sense to make mkmakefile executable
> and get rid of the SHELL.
I used $(SHELL) because I was too often bitten by scripts that lacked the
execution bit set. Using $(SHELL) is a way to not care about it.
> Yann> +
> Yann> +if ! cmp $2/.Makefile $2/Makefile >/dev/null 2>&1; then
> Yann> + echo " GEN Makefile"
> Yann> + rm -f $2/Makefile
> Yann> + mv $2/.Makefile $2/Makefile
> Yann> +else
> Yann> + rm -f $2/.Makefile
> Yann> +fi
> I would prefer to stick as close as possible to the version in the
> kernel sources, so I'll remove this. What is the reason for it? You
> already created the Makefile, so it cannot be because of performance.
It was in order not too touch the wrapper in case it did not change, so
the kconfig was not rebuilt. With the new dependencies you fixed, it is
indeed no longer needed, and we can always overwrite it.
> I've committed a slightly tweaked version of it, thanks.
Thank you for the fixes! :-)
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O)
2010-09-26 8:56 [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O) Yann E. MORIN
2010-09-26 21:48 ` Peter Korsgaard
@ 2010-10-16 12:34 ` Lionel Landwerlin
2010-10-16 13:24 ` Peter Korsgaard
1 sibling, 1 reply; 8+ messages in thread
From: Lionel Landwerlin @ 2010-10-16 12:34 UTC (permalink / raw)
To: buildroot
Yann,
I'm having a problem with the last buildroot on git. I'm not sure this
is related to your patches.
In a clean buildroot repository (no output directory already present),
if you do :
$ make menuconfig
The .config files are created in the root of the buildroot tree instead
of in the output/ directory.
I might be wrong, but I was used to the second behavior.
Could you check this isn't a problem introduced by your patches ?
Otherwise I will try figure this out later.
Thanks,
--
Lionel Landwerlin
Le dimanche 26 septembre 2010 ? 10:56 +0200, Yann E. MORIN a ?crit :
> If building out-of-tree, add a Makefile wrapper that calls-out to the real
> Makefile with proper args.
>
> Avoids having to pass -C and O= every time we call make.
>
> This is highly inspired from how the Linux kernel does it, and portions of
> it have been used. We can't use exactly the same implementation as the
> kernel does, because:
>
> - the kernel always overwrites the wrapper at each call: doing so in
> buildroot makes the kconfig stuff be rebuilt every time;
>
> - the script writing the wrapper has been expunged of the few lines
> that were too kernel-related: in buildroot we do not need the version
> string in the wrapper, and we do not have a patchlevel version;
>
> - "in-tree build" does not have the same meaning for the kernel and for
> buildroot: for the kernel, $(O) point to the $(TOPDIR), while for
> buildroot $(O) points to $(TOPDIR)/output.
>
> For more complete explnanations, see:
> http://lists.busybox.net/pipermail/buildroot/2010-September/037815.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O)
2010-10-16 12:34 ` Lionel Landwerlin
@ 2010-10-16 13:24 ` Peter Korsgaard
0 siblings, 0 replies; 8+ messages in thread
From: Peter Korsgaard @ 2010-10-16 13:24 UTC (permalink / raw)
To: buildroot
>>>>> "Lionel" == Lionel Landwerlin <llandwerlin@gmail.com> writes:
Lionel> Yann,
Lionel> I'm having a problem with the last buildroot on git. I'm not sure this
Lionel> is related to your patches.
Lionel> In a clean buildroot repository (no output directory already present),
Lionel> if you do :
Lionel> $ make menuconfig
Lionel> The .config files are created in the root of the buildroot tree instead
Lionel> of in the output/ directory.
That's how it has always been. It would be conceptually cleaner to put
it in output/, but we're keeping it in the toplevel dir for legacy
reasons (and because other projects using kconfig do that as well).
Lionel> I might be wrong, but I was used to the second behavior.
Lionel> Could you check this isn't a problem introduced by your patches ?
Lionel> Otherwise I will try figure this out later.
No, we have never put it in output by default. If you want that, simply
run make O=output menuconfig.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-10-16 13:24 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-26 8:56 [Buildroot] [PATCH] Makefile: generate a Makefile wrapper in $(O) Yann E. MORIN
2010-09-26 21:48 ` Peter Korsgaard
2010-09-28 16:36 ` Yann E. MORIN
2010-10-16 12:34 ` Lionel Landwerlin
2010-10-16 13:24 ` Peter Korsgaard
-- strict thread matches above, loose matches on Subject: below --
2010-09-21 22:25 Yann E. MORIN
2010-09-23 21:04 ` Peter Korsgaard
2010-09-23 21:35 ` Yann E. MORIN
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox