-----Original Message----- From: linuxbios-bounces@linuxbios.org [mailto:linuxbios- bounces@linuxbios.org] On Behalf Of Ward Vandewege Sent: Thursday, January 10, 2008 4:19 PM To: linuxbios@linuxbios.org Subject: [LinuxBIOS] [PATCH] buildrom: add extract and busybox- config,uclibc-config targets
Sorry to be so dense, but it looks like you added mkdir -p in a lot of places for directories, even though there are already makefile rules for them.
The config stuff looks fine, though.
Myles
-- Ward Vandewege ward@fsf.org Free Software Foundation - Senior System Administrator
On Thu, Jan 10, 2008 at 04:39:57PM -0700, Myles Watson wrote:
Sorry to be so dense, but it looks like you added mkdir -p in a lot of places for directories, even though there are already makefile rules for them.
Right, that was stupid, I had not noticed those. This patch fixes that, and it's updated to r94. Thanks for catching that :)
Thanks, Ward.
On Thu, Jan 10, 2008 at 04:39:57PM -0700, Myles Watson wrote:
Sorry to be so dense, but it looks like you added mkdir -p in a lot of places for directories, even though there are already makefile rules for them.
Right, that was stupid, I had not noticed those. This patch fixes that, and it's updated to r94. Thanks for catching that :)
Thanks for catching my "echo" (Debug statement I forgot to remove) too.
This patch breaks the dependencies somehow. Before your patch, I could remove the work/uclibc directory and only uclibc would get rebuilt. Now it rebuilds mkelfimage, the kernel, etc.
I looked for the problem, but didn't see it right away.
Myles
All right, third try.
On Fri, Jan 11, 2008 at 04:07:37PM -0700, Myles Watson wrote:
This patch breaks the dependencies somehow. Before your patch, I could remove the work/uclibc directory and only uclibc would get rebuilt. Now it rebuilds mkelfimage, the kernel, etc.
I looked for the problem, but didn't see it right away.
It was a little tricky - apparently adding some of those directories as prerequisites confused messed things up a bit. The 'stamp' directory timestamp ended up newer than the stamp/_unpacked file thus forcing a rebuild. This was presumably because stamp/_configured was created after stamp and stamp/_unpacked.
Anyway, I fixed the problem by turning the directory prerequisites into order-only prerequisites.
Thanks, Ward.
All right, third try.
On Fri, Jan 11, 2008 at 04:07:37PM -0700, Myles Watson wrote:
This patch breaks the dependencies somehow. Before your patch, I could remove the work/uclibc directory and only uclibc would get rebuilt. Now
it
rebuilds mkelfimage, the kernel, etc.
I looked for the problem, but didn't see it right away.
It was a little tricky - apparently adding some of those directories as prerequisites confused messed things up a bit. The 'stamp' directory timestamp ended up newer than the stamp/_unpacked file thus forcing a rebuild. This was presumably because stamp/_configured was created after stamp and stamp/_unpacked.
Anyway, I fixed the problem by turning the directory prerequisites into order-only prerequisites.
It works great for me. The only thing I would like better is if the target were added to the end of the customconfig file, so that you wouldn't accidentally pick up the wrong config. (i.e., customconfig-qemu or customconfig-s2891).
I think that could be considered a matter of taste. Maybe we should add the custom-config option for the kernel as well.
Thanks, Myles
Acked-by: Myles Watson myles@pel.cs.byu.edu
On Mon, Jan 28, 2008 at 10:51:19AM -0700, Myles Watson wrote:
It works great for me. The only thing I would like better is if the target were added to the end of the customconfig file, so that you wouldn't accidentally pick up the wrong config. (i.e., customconfig-qemu or customconfig-s2891).
I've implemented that - the naming convention for the customconfig files is now
customconfig--$(PAYLOAD)--$(COREBOOT_VENDOR)--$(COREBOOT_BOARD)
and in the case of uclibc and the kernel, I've added the architecture in there as well:
customconfig--$(PAYLOAD)--$(UCLIBC_ARCH)--$(COREBOOT_VENDOR)-$(COREBOOT_BOARD) customconfig--$(PAYLOAD)--$(KERNEL_BUILD_ARCH)--$(COREBOOT_VENDOR)-$(COREBOOT_BOARD)
Custom config files will only be used if the payload, (architecture,) vendor and board match.
If a custom config file is used, buildrom will say so on stdout.
The *-config commands are a bit smarter now: they will copy an existing custom config file back to the source directory so that doing a subsequent make something-config will have the effect of editing the custom config, rather than overwriting it.
I think that could be considered a matter of taste. Maybe we should add the custom-config option for the kernel as well.
I've added the kernel.
Thanks, Ward.
I've implemented that - the naming convention for the customconfig files is now
customconfig--$(PAYLOAD)--$(COREBOOT_VENDOR)--$(COREBOOT_BOARD)
Nice.
and in the case of uclibc and the kernel, I've added the architecture in there as well:
customconfig--$(PAYLOAD)--$(UCLIBC_ARCH)--$(COREBOOT_VENDOR)- $(COREBOOT_BOARD) customconfig--$(PAYLOAD)--$(KERNEL_BUILD_ARCH)--$(COREBOOT_VENDOR)- $(COREBOOT_BOARD)
Custom config files will only be used if the payload, (architecture,) vendor and board match.
Great!
If a custom config file is used, buildrom will say so on stdout.
The *-config commands are a bit smarter now: they will copy an existing custom config file back to the source directory so that doing a subsequent make something-config will have the effect of editing the custom config, rather than overwriting it.
I think that could be considered a matter of taste. Maybe we should add
the
custom-config option for the kernel as well.
I've added the kernel.
Thanks.
It's missing the ARCH=$(KERNEL_BUILD_ARCH) on the configure line for kernel and TARGET_ARCH=$(UCLIBC_BUILD_ARCH) for uclibc. On my x86_64 box it makes a 64-bit configuration even for 32-bit targets.
I'd like it if the verbose messages about using the custom config were printed after the configuration was done. I never saw the messages because make menuconfig is so verbose.
At first I was worried about the dependencies that you added like:
+$(FILO_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(FILO_TARBALL) $(FILO_STAMP_DIR) $(FILO_DIR)
I thought it would have the same problem we had before with the stamp directory being "modified" when the stamps were, and forcing a complete rebuild, but it didn't seem to happen. I guess I don't understand that well enough.
Besides that it looks very good.
Acked-by: Myles Watson myles@pel.cs.byu.edu
Myles
Thanks, Ward.
-- Ward Vandewege ward@fsf.org Free Software Foundation - Senior System Administrator
On Wed, Feb 06, 2008 at 01:52:23PM -0700, Myles Watson wrote:
It's missing the ARCH=$(KERNEL_BUILD_ARCH) on the configure line for kernel and TARGET_ARCH=$(UCLIBC_BUILD_ARCH) for uclibc. On my x86_64 box it makes a 64-bit configuration even for 32-bit targets.
Good catch - that should now be fixed, see attached.
I'd like it if the verbose messages about using the custom config were printed after the configuration was done. I never saw the messages because make menuconfig is so verbose.
Fixed.
At first I was worried about the dependencies that you added like:
+$(FILO_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(FILO_TARBALL) $(FILO_STAMP_DIR) $(FILO_DIR)
I thought it would have the same problem we had before with the stamp directory being "modified" when the stamps were, and forcing a complete rebuild, but it didn't seem to happen. I guess I don't understand that well enough.
I've corrected those instances by making them into order-only prerequisites just in case. I'm not entirely sure why we were not seeing the problem for those packages, but better safe than sorry.
Thanks, Ward.