[LinuxBIOS] [PATCH] buildrom: add extract and busybox-config, uclibc-config targets

Ward Vandewege ward at gnu.org
Fri Jan 11 23:48:49 CET 2008


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.

-- 
Ward Vandewege <ward at fsf.org>
Free Software Foundation - Senior System Administrator
-------------- next part --------------
This patch adds extract targets, as well as the first of a a bunch of config
targets: busybox-config and uclibc-config.

The extract targets will just extract the component(s) under work.

The config targets will run a configure command for the component, and then
copy the resulting config file to packages/component/conf/customconfig. That
config file will then be used to build the image when 'make' is issued.

Signed-off-by: Ward Vandewege <ward at gnu.org>

Index: Makefile
===================================================================
--- Makefile	(revision 94)
+++ Makefile	(working copy)
@@ -21,7 +21,7 @@
 config-targets := 1
 endif
 
-ifneq ($(filter config %config,$(MAKECMDGOALS)),)
+ifneq ($(filter textconfig oldconfig defconfig menuconfig,$(MAKECMDGOALS)),)
 config-targets := 1
 dot-config := 0
 endif
@@ -60,6 +60,7 @@
 
 PKG_clean=$(patsubst %, %-clean, $(PKGLIST))
 PKG_distclean=$(patsubst %, %-distclean, $(PKGLIST))
+PKG_extract=$(patsubst %, %-extract, $(PKGLIST))
 
 # This is the top level target - for v2, the final deliverable is built
 # by LinuxBIOS, for v3 it is built by us, so we have ifdef magic here
@@ -78,6 +79,8 @@
 
 payload: $(PAYLOAD_TARGET)
 
+extract: $(PKG_extract)
+
 clean: $(PKG_clean)
 	@ rm -rf $(INITRD_DIR) $(OUTPUT_DIR)
 
Index: packages/kernel/kernel.inc
===================================================================
--- packages/kernel/kernel.inc	(revision 94)
+++ packages/kernel/kernel.inc	(working copy)
@@ -25,7 +25,7 @@
 KERNEL_INSTALL_LOG=$(KERNEL_LOG_DIR)/install.log
 endif
 
-$(KERNEL_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(KERNEL_SOURCE)
+$(KERNEL_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(KERNEL_SOURCE) $(KERNEL_STAMP_DIR)
 	@ mkdir -p $(KERNEL_DIR)
 	@ echo "Unpacking kernel..."
 	@ tar -C $(KERNEL_DIR) -jxf $(SOURCE_DIR)/$(KERNEL_SOURCE)
@@ -83,3 +83,6 @@
 
 generic-kernel-distclean:
 	@ rm -rf $(KERNEL_DIR)
+
+kernel-extract: $(KERNEL_STAMP_DIR)/.patched
+
Index: packages/unifdef/unifdef.mk
===================================================================
--- packages/unifdef/unifdef.mk	(revision 94)
+++ packages/unifdef/unifdef.mk	(working copy)
@@ -17,7 +17,7 @@
 	@ mkdir -p $(SOURCE_DIR)
 	@ wget -P $(SOURCE_DIR) $(UNIFDEF_URL)/$(UNIFDEF_SOURCE)
 
-$(UNIFDEF_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(UNIFDEF_SOURCE)
+$(UNIFDEF_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(UNIFDEF_SOURCE) $(UNIFDEF_STAMP_DIR)
 	@ tar -C $(UNIFDEF_DIR) -zxf $(SOURCE_DIR)/$(UNIFDEF_SOURCE)
 	@ rm -f $(UNIFDEF_SRC_DIR)/unifdef 
 	@ rm -f $(UNIFDEF_SRC_DIR)/unifdef.o
@@ -48,4 +48,8 @@
 	echo "Source: $(UNIFDEF_URL)/$(UNIFDEF_SOURCE)"
 	echo ""
 
+unifdef-extract: $(UNIFDEF_STAMP_DIR)/.unpacked
+
 .PHONY: unifdef
+
+
Index: packages/busybox/busybox.mk
===================================================================
--- packages/busybox/busybox.mk	(revision 94)
+++ packages/busybox/busybox.mk	(working copy)
@@ -17,11 +17,18 @@
 
 BUSYBOX_CONFIG ?= defconfig
 
+ifeq ($(BUSYBOX_CONFIG),defconfig)
+ifeq ($(shell if [ -f $(PACKAGE_DIR)/busybox/conf/customconfig ]; then echo 1; fi),1)
+	BUSYBOX_CONFIG = customconfig
+endif
+endif
+
 $(SOURCE_DIR)/$(BUSYBOX_SOURCE):
+	@ echo "Downloading busybox..."
 	@ mkdir -p $(SOURCE_DIR)
 	@ wget -P $(SOURCE_DIR) $(BUSYBOX_URL)/$(BUSYBOX_SOURCE)
 
-$(BUSYBOX_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(BUSYBOX_SOURCE)
+$(BUSYBOX_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(BUSYBOX_SOURCE) $(BUSYBOX_STAMP_DIR) $(BUSYBOX_DIR)
 	@ echo "Unpacking busybox..."
 	@ tar -C $(BUSYBOX_DIR) -jxf $(SOURCE_DIR)/$(BUSYBOX_SOURCE)
 	@ touch $@	
@@ -32,7 +39,7 @@
 	@ touch $@
 
 $(BUSYBOX_SRC_DIR)/.config: $(BUSYBOX_STAMP_DIR)/.patched
-	@ cp $(PACKAGE_DIR)/busybox/conf/$(BUSYBOX_CONFIG) $@
+	@ cp -f $(PACKAGE_DIR)/busybox/conf/$(BUSYBOX_CONFIG) $@
 
 $(BUSYBOX_SRC_DIR)/busybox: $(BUSYBOX_SRC_DIR)/.config
 	@ echo "Building busybox..."
@@ -46,7 +53,7 @@
 	@ $(MAKE) -C $(BUSYBOX_SRC_DIR) \
 	PREFIX=$(INITRD_DIR) install > $(BUSYBOX_INSTALL_LOG) 2>&1
 
-$(BUSYBOX_STAMP_DIR) $(BUSYBOX_LOG_DIR):
+$(BUSYBOX_STAMP_DIR) $(BUSYBOX_LOG_DIR) $(BUSYBOX_DIR):
 	@ mkdir -p $@
 
 busybox: $(BUSYBOX_STAMP_DIR) $(BUSYBOX_LOG_DIR) $(INITRD_DIR)/bin/busybox
@@ -57,8 +64,17 @@
 
 busybox-distclean:
 	@ rm -rf $(BUSYBOX_DIR)/*
+	@ rm -f $(PACKAGE_DIR)/busybox/conf/customconfig
 
 busybox-bom:
 	@ echo "Package: busybox"
 	@ echo "Source: $(BUSYBOX_URL)/$(BUSYBOX_SOURCE)"
 	@ echo ""
+
+busybox-extract: $(BUSYBOX_STAMP_DIR)/.patched
+
+busybox-config: $(BUSYBOX_STAMP_DIR)/.patched
+	@ echo "Configure busybox..."
+	@ $(MAKE) -C $(BUSYBOX_SRC_DIR) menuconfig
+	@ cp -f $(BUSYBOX_SRC_DIR)/.config $(PACKAGE_DIR)/busybox/conf/customconfig
+
Index: packages/mkelfimage/mkelfimage.mk
===================================================================
--- packages/mkelfimage/mkelfimage.mk	(revision 94)
+++ packages/mkelfimage/mkelfimage.mk	(working copy)
@@ -19,7 +19,7 @@
 	@ mkdir -p $(SOURCE_DIR)
 	@ wget -P $(SOURCE_DIR) $(MKELFIMAGE_URL)/$(MKELFIMAGE_SOURCE)
 
-$(MKELFIMAGE_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(MKELFIMAGE_SOURCE)
+$(MKELFIMAGE_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(MKELFIMAGE_SOURCE) $(MKELFIMAGE_STAMP_DIR)
 	@ echo "Unpacking mkelfimage..."
 	@ tar -C $(MKELFIMAGE_DIR) -zxf $(SOURCE_DIR)/$(MKELFIMAGE_SOURCE)
 	@ touch $@	
@@ -60,3 +60,6 @@
 	echo "Package: mkelfimage"
 	echo "Source: $(MKELFIMAGE_URL)/$(MKELFIMAGE_SOURCE)"
 	echo ""
+
+mkelfimage-extract: $(MKELFIMAGE_STAMP_DIR)/.patched
+
Index: packages/uclibc/uclibc.mk
===================================================================
--- packages/uclibc/uclibc.mk	(revision 94)
+++ packages/uclibc/uclibc.mk	(working copy)
@@ -7,8 +7,15 @@
 UCLIBC_VER ?= 0.9.28
 UCLIBC_ARCH ?= i386
 UCLIBC_CONFIG ?= defconfig
+
+ifeq ($(UCLIBC_CONFIG),defconfig)
+ifeq ($(shell if [ -f $(PACKAGE_DIR)/ucblic/conf/customconfig ]; then echo 1; fi),1)
+	UCLIBC_CONFIG = customconfig
 endif
+endif
 
+endif
+
 UCLIBC_URL=http://www.uclibc.org/downloads
 UCLIBC_SOURCE=uClibc-$(UCLIBC_VER).tar.bz2
 UCLIBC_DIR=$(BUILD_DIR)/uclibc
@@ -25,10 +32,11 @@
 endif
 
 $(SOURCE_DIR)/$(UCLIBC_SOURCE):
+	@ echo "Downloading uclibc..." 
 	@ mkdir -p $(SOURCE_DIR)
 	@ wget -P $(SOURCE_DIR) $(UCLIBC_URL)/$(UCLIBC_SOURCE)
 
-$(UCLIBC_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(UCLIBC_SOURCE)
+$(UCLIBC_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(UCLIBC_SOURCE) $(UCLIBC_STAMP_DIR) $(UCLIBC_DIR)
 	@ echo "Unpacking uclibc..." 
 	@ tar -C $(UCLIBC_DIR) -jxf $(SOURCE_DIR)/$(UCLIBC_SOURCE)
 	@ touch $@	
@@ -61,7 +69,7 @@
 	@ install -m 755 -d $(STAGING_DIR)/bin
 	@ install -m 755 $< $@
 
-$(UCLIBC_STAMP_DIR) $(UCLIBC_LOG_DIR):
+$(UCLIBC_STAMP_DIR) $(UCLIBC_LOG_DIR) $(UCLIBC_DIR):
 	@ mkdir -p $@
 
 uclibc: $(UCLIBC_STAMP_DIR) $(UCLIBC_LOG_DIR) $(STAGING_DIR)/lib/libc.a
@@ -77,3 +85,11 @@
 	@ echo "Package: uclibc"
 	@ echo "Source: $(UCLIBC_URL)/$(UCLIBC_SOURCE)"
 	@ echo ""
+
+uclibc-extract: $(UCLIBC_STAMP_DIR)/.unpacked
+
+uclibc-config: $(UCLIBC_STAMP_DIR)/.unpacked
+	@ echo "Configure uclibc..."
+	@ $(MAKE) -C $(UCLIBC_SRC_DIR) menuconfig
+	@ cp -f $(UCLIBC_SRC_DIR)/.config $(PACKAGE_DIR)/uclibc/conf/customconfig
+
Index: packages/lzma/lzma.mk
===================================================================
--- packages/lzma/lzma.mk	(revision 94)
+++ packages/lzma/lzma.mk	(working copy)
@@ -17,7 +17,7 @@
 	@ mkdir -p $(SOURCE_DIR)
 	@ wget -P $(SOURCE_DIR) $(LZMA_URL)/$(LZMA_SOURCE)
 
-$(LZMA_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(LZMA_SOURCE)
+$(LZMA_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(LZMA_SOURCE) $(LZMA_STAMP_DIR)
 	@ mkdir -p $(LZMA_SRC_DIR)
 	@ tar -C $(LZMA_SRC_DIR) -jxf $(SOURCE_DIR)/$(LZMA_SOURCE)
 	@ touch $@
@@ -44,3 +44,6 @@
 
 lzma-distclean:
 	@ rm -rf $(LZMA_DIR)/*
+
+lzma-extract: $(LZMA_STAMP_DIR)/.unpacked
+
Index: packages/linuxbios/linuxbios.inc
===================================================================
--- packages/linuxbios/linuxbios.inc	(revision 94)
+++ packages/linuxbios/linuxbios.inc	(working copy)
@@ -58,7 +58,7 @@
 $(LBV2_PAYLOAD_TARGET): $(PAYLOAD_TARGET)
 	@ cp $< $@
 
-$(LBV2_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(LBV2_TARBALL)
+$(LBV2_STAMP_DIR)/.unpacked: $(SOURCE_DIR)/$(LBV2_TARBALL) $(LBV2_STAMP_DIR) $(LBV2_LOG_DIR)
 	@ echo "Unpacking LinuxBIOS..."
 	@ tar -C $(LBV2_DIR) -zxf $(SOURCE_DIR)/$(LBV2_TARBALL)
 	@ touch $@	
@@ -98,3 +98,5 @@
 	fi	
 
 	@ rm -rf $(LBV2_DIR)/*
+
+linuxbios-extract: $(LBV2_STAMP_DIR)/.patched


More information about the coreboot mailing list