diff options
Diffstat (limited to 'openwrt/package/linux/linux-2.4/linux.mk')
-rw-r--r-- | openwrt/package/linux/linux-2.4/linux.mk | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/openwrt/package/linux/linux-2.4/linux.mk b/openwrt/package/linux/linux-2.4/linux.mk new file mode 100644 index 000000000..8f8124ffb --- /dev/null +++ b/openwrt/package/linux/linux-2.4/linux.mk @@ -0,0 +1,114 @@ +############################################################# +# $Id$ +# +# Linux 2.4 kernel target for the OpenWRT project +# +# patches are sorted by numbers +# 0xx needed patches for board, cpu, filesystem +# 1xx addon patches for new features (netfilter, ebtables, cifs,..) +# 2xx compile fixes, driver fixes +# +############################################################# + +LINUX_FORMAT=zImage +LINUX_KARCH:=$(shell echo $(ARCH) | sed -e 's/i[3-9]86/i386/' \ + -e 's/mipsel/mips/' \ + -e 's/powerpc/ppc/' \ + -e 's/sh[234]/sh/' \ + ) + +LINUX_BINARY_DRIVER_SITE=http://openwrt.org/downloads/ +LINUX_SOURCE=linux-$(LINUX_VERSION).tar.bz2 +LINUX_KCONFIG=./linux-2.4/linux.config +LINUX_PATCHES=./linux-2.4/patches +LINUX_BINLOC=arch/$(LINUX_KARCH)/bcm947xx/compressed/piggy +# Used by pcmcia-cs and others +LINUX_SOURCE_DIR=$(LINUX_DIR)-$(LINUX_VERSION) + +# proprietary driver, extracted from asus GPL sourcetree GPL_1941.zip +LINUX_BINARY_WL_DRIVER=kernel-binary-wl-0.3.tar.gz +LINUX_BINARY_WL_MD5SUM=cc45df670bcfb4e74a709b9d7beba636 +LINUX_ET_DRIVER=kernel-source-et-0.7.tar.gz +LINUX_ET_MD5SUM=f2277895f52eae26ae37065685507031 + +TARGET_MODULES_DIR=$(TARGET_DIR)/lib/modules/$(LINUX_VERSION) + +$(DL_DIR)/$(LINUX_BINARY_WL_DRIVER): + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_BINARY_WL_DRIVER) $(LINUX_BINARY_WL_MD5SUM) $(LINUX_BINARY_DRIVER_SITE) + +$(DL_DIR)/$(LINUX_ET_DRIVER): + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_ET_DRIVER) $(LINUX_ET_MD5SUM) $(LINUX_BINARY_DRIVER_SITE) + +$(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE) $(DL_DIR)/$(LINUX_BINARY_WL_DRIVER) $(DL_DIR)/$(LINUX_ET_DRIVER) + -mkdir -p $(BUILD_DIR) + bzcat $(DL_DIR)/$(LINUX_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + ln -sf $(LINUX_DIR)-$(LINUX_VERSION) $(LINUX_DIR) + zcat $(DL_DIR)/$(LINUX_BINARY_WL_DRIVER) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + zcat $(DL_DIR)/$(LINUX_ET_DRIVER) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + touch $(LINUX_DIR)/.unpacked + +$(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked + # copy binary wlan driver + mkdir $(LINUX_DIR)/drivers/net/{et,wl} + cp -a $(BUILD_DIR)/wl/*.o $(LINUX_DIR)/drivers/net/wl + # copy proprietary et source + cp -a $(BUILD_DIR)/et/* $(LINUX_DIR)/drivers/net/et + mkdir -p $(LINUX_DIR)/arch/mips/bcm947xx/include/ + cp -a $(BUILD_DIR)/et/*.h $(LINUX_DIR)/arch/mips/bcm947xx/include/ + $(PATCH) $(LINUX_DIR) $(LINUX_PATCHES) + touch $(LINUX_DIR)/.patched + +$(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched + -cp $(LINUX_KCONFIG) $(LINUX_DIR)/.config + $(SED) "s,^CROSS_COMPILE.*,CROSS_COMPILE=$(KERNEL_CROSS),g;" \ + $(LINUX_DIR)/Makefile \ + $(LINUX_DIR)/arch/mips/Makefile + $(SED) "s,\-mcpu=,\-mtune=,g;" $(LINUX_DIR)/arch/mips/Makefile + $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) oldconfig include/linux/version.h + touch $(LINUX_DIR)/.configured + +$(LINUX_DIR)/.depend_done: $(LINUX_DIR)/.configured + $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) dep + touch $(LINUX_DIR)/.depend_done + +$(LINUX_DIR)/$(LINUX_BINLOC): $(LINUX_DIR)/.depend_done + $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) CFLAGS_KERNEL="-fno-delayed-branch " $(LINUX_FORMAT) + +$(LINUX_KERNEL): $(LINUX_DIR)/$(LINUX_BINLOC) + cp -fa $< $@ + touch -c $(LINUX_KERNEL) + +$(LINUX_IMAGE): $(LINUX_KERNEL) + cat $^ | $(BUILD_DIR)/lzma/lzma e -si -so -eos > $@ || (rm -f $@ && false) + +$(LINUX_DIR)/.modules_done: $(LINUX_KERNEL) $(LINUX_IMAGE) + rm -rf $(BUILD_DIR)/modules + $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) CFLAGS_KERNEL="-fno-delayed-branch " modules + $(MAKE) -C $(LINUX_DIR) DEPMOD=true INSTALL_MOD_PATH=$(BUILD_DIR)/modules modules_install + touch $(LINUX_DIR)/.modules_done + +$(STAGING_DIR)/include/linux/version.h: $(LINUX_DIR)/.configured + mkdir -p $(STAGING_DIR)/include + tar -ch -C $(LINUX_DIR)/include -f - linux | tar -xf - -C $(STAGING_DIR)/include/ + tar -ch -C $(LINUX_DIR)/include -f - asm | tar -xf - -C $(STAGING_DIR)/include/ + +$(TARGET_MODULES_DIR): + -mkdir -p $(TARGET_MODULES_DIR) + +linux: $(LINUX_DIR)/.modules_done $(TARGET_MODULES_DIR) + +linux-source: $(DL_DIR)/$(LINUX_SOURCE) + +# This has been renamed so we do _NOT_ by default run this on 'make clean' +linuxclean: clean + rm -f $(LINUX_KERNEL) $(LINUX_IMAGE) + -$(MAKE) -C $(LINUX_DIR) clean + +linux-dirclean: + rm -f $(BUILD_DIR)/openwrt-kmodules.tar.bz2 + rm -rf $(LINUX_DIR)-$(LINUX_VERSION) + rm -rf $(LINUX_DIR) + rm -rf $(BUILD_DIR)/modules + rm -rf $(BUILD_DIR)/wl + rm -rf $(BUILD_DIR)/et + |