[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