diff --git a/openwrt/target/Makefile b/openwrt/target/Makefile index 05d0023d7..88476a799 100644 --- a/openwrt/target/Makefile +++ b/openwrt/target/Makefile @@ -45,7 +45,9 @@ $(foreach fs,$(TARGET_FS),$(eval $(call BIN_template,$(fs)))) INSTALL_TARGET_DIRS:=$(patsubst %,%-install,$(TARGET_DIRS)) $(INSTALL_TARGET_DIRS): image_clean $(TARGET_DIR)/etc/sysconf $(BIN_DIR) -prepare: $(patsubst %,%-prepare,$(TARGET_DIRS)) +prepare: $(patsubst %,%-prepare,$(TARGET_DIRS)) $(TARGET_DIR) + +$(TARGET_DIR): mkdir -p $(TARGET_DIR) if [ -f "$(TARGET_SKELETON)" ] ; then \ zcat $(TARGET_SKELETON) | tar -C $(BUILD_DIR) -xf -; \ @@ -88,6 +90,8 @@ $(TARGET_DIR)/etc/sysconf: $(MAKE) -C $(patsubst %-prepare,%,$@) prepare %-compile: %-prepare $(MAKE) -C $(patsubst %-compile,%,$@) compile +%-rebuild: + $(MAKE) -C $(patsubst %-rebuild,%,$@) rebuild %-install: %-compile $(MAKE) -C $(patsubst %-install,%,$@) install diff --git a/openwrt/target/linux/Makefile b/openwrt/target/linux/Makefile index ced6dca00..d1b4d545a 100644 --- a/openwrt/target/linux/Makefile +++ b/openwrt/target/linux/Makefile @@ -11,6 +11,9 @@ $(1)/$(2)-prepare: $(1)/$(2)-compile: $(MAKE) -C $(1) BOARD="$(2)" compile +$(1)/$(2)-rebuild: + $(MAKE) -C $(1) BOARD="$(2)" rebuild + $(1)/$(2)-install: $(MAKE) -C $(1) BOARD="$(2)" install @@ -18,15 +21,17 @@ ifeq ($(BR2_LINUX_$(3)),y) clean: $(1)/$(2)-clean prepare: $(1)/$(2)-prepare compile: $(1)/$(2)-compile +rebuild: $(1)/$(2)-rebuild install: $(1)/$(2)-install endif -.PHONY: $(1)/$(2)-clean $(1)/$(2)-prepare $(1)/$(2)-compile $(1)/$(2)-install +.PHONY: $(1)/$(2)-clean $(1)/$(2)-prepare $(1)/$(2)-compile $(1)/$(2)-rebuild $(1)/$(2)-install endef prepare: compile: install: +rebuild: clean: rm -rf $(BUILD_DIR)/kernel diff --git a/openwrt/target/linux/linux-2.4/Makefile b/openwrt/target/linux/linux-2.4/Makefile index 08e91da6d..9a594b77f 100644 --- a/openwrt/target/linux/linux-2.4/Makefile +++ b/openwrt/target/linux/linux-2.4/Makefile @@ -213,6 +213,8 @@ $(TARGET_MODULES_DIR): source: $(DL_DIR)/$(LINUX_SOURCE) prepare: $(LINUX_DIR)/.configured compile: $(LINUX_DIR)/.modules_done $(TARGETS) + rm -f $(LINUX_DIR) + ln -s $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(LINUX_DIR) $(MAKE) -C $(TOPDIR)/target/linux/package \ TARGET_DIR="$(LINUX_TARGET_DIR)" \ BUILD_DIR="$(LINUX_BUILD_DIR)" \ @@ -225,6 +227,18 @@ install: compile $(TARGET_MODULES_DIR) echo -e 'dest root /\noption offline_root $(LINUX_BUILD_DIR)/root' > $(LINUX_BUILD_DIR)/ipkg.conf [ "$(INSTALL_TARGETS)" != "" ] && $(IPKG_KERNEL) install $(INSTALL_TARGETS) || true +mostlyclean: + rm -f $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION)/.{drivers-unpacked,modules_done} + $(MAKE) -C $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) clean + rm -f $(LINUX_KERNEL) $(LINUX_IMAGE) + +rebuild: + -$(MAKE) mostlyclean + if [ -f $(LINUX_KERNEL) ]; then \ + $(MAKE) clean; \ + fi + $(MAKE) compile + clean: rm -rf $(LINUX_BUILD_DIR) rm -f $(TARGETS) diff --git a/openwrt/target/linux/linux-2.4/broadcom.mk b/openwrt/target/linux/linux-2.4/broadcom.mk index bd0bb9ec1..714caf6e0 100644 --- a/openwrt/target/linux/linux-2.4/broadcom.mk +++ b/openwrt/target/linux/linux-2.4/broadcom.mk @@ -10,8 +10,8 @@ LINUX_BINARY_DRIVER_SITE=http://openwrt.org/downloads/ # 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.9.tar.gz -LINUX_ET_MD5SUM=eba31483e5ff4f8420827538ab452b7c +LINUX_ET_DRIVER=kernel-source-et-0.10.tar.gz +LINUX_ET_MD5SUM=408901f0b3c672ea0f353795391f07f6 $(DL_DIR)/$(LINUX_BINARY_WL_DRIVER): $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_BINARY_WL_DRIVER) $(LINUX_BINARY_WL_MD5SUM) $(LINUX_BINARY_DRIVER_SITE) @@ -19,24 +19,21 @@ $(DL_DIR)/$(LINUX_BINARY_WL_DRIVER): $(DL_DIR)/$(LINUX_ET_DRIVER): $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_ET_DRIVER) $(LINUX_ET_MD5SUM) $(LINUX_BINARY_DRIVER_SITE) -$(LINUX_DIR)/.patched: $(LINUX_DIR)/.drivers-unpacked +$(LINUX_DIR)/.depend_done $(LINUX_DIR)/.modules_done: drivers-unpacked -$(LINUX_DIR)/.drivers-unpacked: +drivers-unpacked: -mkdir -p $(BUILD_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) - # copy binary wlan driver - mkdir $(LINUX_DIR)/drivers/net/{et,wl} + mkdir -p $(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/ - touch $@ linux-dirclean: drivers-clean drivers-clean: - rm -rf $(BUILD_DIR)/wl - rm -rf $(BUILD_DIR)/et - + rm -rf $(BUILD_DIR)/{wl,et}