[uClibc]linux.mk patch

acmay at acmay.homeip.net acmay at acmay.homeip.net
Fri Jan 24 01:22:58 UTC 2003


Here is a patch that adds some support for a Bitkeeper tree of the
kernel in linux.mk. It seemed easier to merge it into the linux.mk file
rather than make a completely new method like usermode/system.

It may make sense to move some of the kernel vars to the Top level 
makefile.

I also slipped in a DEPMOD var to help with cross-compiles.
-------------- next part --------------
--- buildroot.main/make/linux.mk	2003-01-21 16:31:09.000000000 -0800
+++ tmp/make/linux.mk	2003-01-23 16:13:32.000000000 -0800
@@ -21,6 +21,19 @@
 #############################################################
 ifneq ($(filter $(TARGETS),linux),)
 
+#Pick a Bitkeeper head
+#LINUX_BK_HEAD=http://linux.bkbits.net/linux-2.4
+#LINUX_BK_HEAD=http://linux.bkbits.net/linux-2.5
+#LINUX_BK_HEAD=http://ppc.bkbits.net/linuxppc-2.5
+#LINUX_BK_HEAD=http://ppc.bkbits.net/linuxppc_2_4_devel
+
+#The options on the bk clone
+#-q to quiet things
+#-l if you have a local repository to clone with hard-links
+#BK_CLONE_OPT="-q"
+#BK_CLONE_OPT="-ql"
+
+ifndef LINUX_BK_HEAD
 # Version of Linux to download and then apply patches to
 DOWNLOAD_LINUX_VERSION=2.4.20
 # Version of Linux AFTER patches
@@ -36,7 +49,22 @@
 LINUX_SITE=ftp://ftp.kernel.org/pub/linux/kernel/v2.4
 LINUX_KCONFIG=$(SOURCE_DIR)/linux.config
 LINUX_KERNEL=$(BUILD_DIR)/buildroot-kernel
+else
+#Pulling from a BK Tree will get the latest version
+#so this may not be the correct version
+LINUX_VERSION=2.4.21-pre3
+LINUX_DIR=$(BUILD_DIR)/linuxppc_2_4_devel
+LINUX_FORMAT=pImage
+LINUX_BINLOC=arch/ppc/boot/images/vmlinux.PPCBoot
+LINUX_KCONFIG=$(LINUX_DIR)/snic.config
+LINUX_KERNEL=$(BASE_DIR)/pImage
+endif
 
+DEPMOD=/sbin/depmod
+#Cross-compiles need a different depmod or just fake it
+#DEPMOD=/bin/true
+
+ifndef LINUX_BK_HEAD
 $(DL_DIR)/$(LINUX_SOURCE):
 	 $(WGET) -P $(DL_DIR) $(LINUX_SITE)/$(LINUX_SOURCE)
 
@@ -51,6 +79,14 @@
 	$(SOURCE_DIR)/patch-kernel.sh $(LINUX_DIR) $(SOURCE_DIR)/kernel-patches
 	-(cd $(BUILD_DIR); ln -sf $(LINUX_DIR) linux)
 	touch $(LINUX_DIR)/.unpacked
+else
+$(LINUX_DIR)/.unpacked:
+	bk clone $(BK_CLONE_OPT) $(LINUX_BK_HEAD) $(LINUX_DIR)
+	(cd $(LINUX_DIR) && \
+	 bk -r get -Sq )
+	-(cd $(BUILD_DIR); ln -sf $(LINUX_DIR) linux)
+	touch $(LINUX_DIR)/.unpacked
+endif
 
 $(LINUX_KCONFIG):
 	@if [ ! -f "$(LINUX_KCONFIG)" ] ; then \
@@ -62,6 +98,10 @@
 	fi;
 
 $(LINUX_DIR)/.configured $(BUILD_DIR)/linux/.configured:  $(LINUX_DIR)/.unpacked  $(LINUX_KCONFIG)
+ifdef LINUX_BK_HEAD
+#Need to make the Makefile writable for the perl fixup
+	bk edit $(LINUX_DIR)/Makefile
+endif
 	perl -i -p -e "s,^CROSS_COMPILE.*,CROSS_COMPILE=$(KERNEL_CROSS),g;" $(LINUX_DIR)/Makefile
 	-cp $(LINUX_KCONFIG) $(LINUX_DIR)/.config
 	$(MAKE) -C $(LINUX_DIR) oldconfig include/linux/version.h
@@ -82,7 +122,7 @@
 $(TARGET_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep: $(LINUX_KERNEL)
 	rm -rf $(TARGET_DIR)/lib/modules
 	rm -f $(TARGET_DIR)/sbin/cardmgr
-	$(MAKE) -C $(LINUX_DIR) INSTALL_MOD_PATH=$(TARGET_DIR) modules_install
+	$(MAKE) -C $(LINUX_DIR) DEPMOD=$(DEPMOD) INSTALL_MOD_PATH=$(TARGET_DIR) modules_install
 	(cd $(TARGET_DIR)/lib/modules; ln -s $(LINUX_VERSION)/kernel/drivers .)
 
 $(STAGING_DIR)/include/linux/version.h: $(LINUX_DIR)/.configured


More information about the uClibc mailing list