From 9ba9373d546ff96369d03dcf2d92486dbf7f3d26 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Wed, 31 May 2006 23:29:05 +0000
Subject: [PATCH] cleanup; replace .PHONY with FORCE; disable gdb by default

SVN-Revision: 3877
---
 openwrt/target/Makefile                      | 10 ++++-----
 openwrt/target/linux/ar7-2.4/Makefile        |  2 +-
 openwrt/target/linux/brcm-2.4/Makefile       |  2 +-
 openwrt/target/linux/image/Makefile          | 16 ++++++--------
 openwrt/target/linux/image/aruba/Makefile    |  4 ++--
 openwrt/target/linux/image/au1000/Makefile   |  4 ++--
 openwrt/target/linux/image/brcm/Makefile     |  4 ++--
 openwrt/target/linux/image/jffs2.mk          |  8 +++----
 openwrt/target/linux/image/jffs2/Makefile    |  2 +-
 openwrt/target/linux/image/squashfs.mk       |  6 ++---
 openwrt/target/linux/image/squashfs/Makefile |  2 +-
 openwrt/target/linux/image/tgz.mk            |  2 +-
 openwrt/target/linux/image/x86/Makefile      |  7 +-----
 openwrt/target/linux/image/xscale/Makefile   |  8 +------
 openwrt/target/linux/imagebuilder/Makefile   |  4 ++--
 openwrt/target/linux/kernel.mk               | 11 ++++------
 openwrt/target/linux/package/Makefile        |  8 +++----
 openwrt/target/lzma/Makefile                 |  6 ++---
 openwrt/target/utils/Makefile                |  4 ++--
 openwrt/toolchain/Config.in                  |  7 ++++++
 openwrt/toolchain/Makefile                   | 23 ++++++++++----------
 openwrt/toolchain/binutils/Makefile          |  5 ++---
 openwrt/toolchain/gcc/Makefile               |  2 +-
 openwrt/toolchain/gdb/Makefile               |  2 +-
 openwrt/toolchain/ipkg-utils/Makefile        |  5 +----
 openwrt/toolchain/libnotimpl/Makefile        |  2 +-
 openwrt/toolchain/sed/Makefile               |  6 ++---
 openwrt/toolchain/uClibc/Makefile            |  9 ++++----
 openwrt/toolchain/utils/Makefile             |  2 +-
 29 files changed, 81 insertions(+), 92 deletions(-)

diff --git a/openwrt/target/Makefile b/openwrt/target/Makefile
index 58fc5eb874..709a2080a5 100644
--- a/openwrt/target/Makefile
+++ b/openwrt/target/Makefile
@@ -13,20 +13,20 @@ compile: linux-compile
 install: image_clean linux-install
 clean: linux-clean utils-clean lzma-clean image_clean
 
-image_clean:
+image_clean: FORCE
 	rm -f $(BIN_DIR)/openwrt-*
 
-%-clean:
+%-clean: FORCE
 	$(MAKE) -C $(patsubst %-clean,%,$@) clean
-%-prepare:
+%-prepare: FORCE
 	$(MAKE) -C $(patsubst %-prepare,%,$@) prepare
 %-compile: %-prepare
 	$(MAKE) -C $(patsubst %-compile,%,$@) compile
-%-rebuild: 
+%-rebuild: FORCE
 	$(MAKE) -C $(patsubst %-rebuild,%,$@) rebuild
 %-install: %-compile
 	$(MAKE) -C $(patsubst %-install,%,$@) install
-linux-imagebuilder:
+linux-imagebuilder: FORCE
 	$(MAKE) -C linux imagebuilder
 
 
diff --git a/openwrt/target/linux/ar7-2.4/Makefile b/openwrt/target/linux/ar7-2.4/Makefile
index 207d95d9af..7775e88884 100644
--- a/openwrt/target/linux/ar7-2.4/Makefile
+++ b/openwrt/target/linux/ar7-2.4/Makefile
@@ -60,7 +60,7 @@ $(LINUX_DIR)/.drivers-unpacked: $(LINUX_DIR)/.unpacked
 
 linux-dirclean: drivers-clean
 
-drivers-clean:
+drivers-clean: FORCE
 	rm -rf $(BUILD_DIR)/$(ATM_FIRMWARE_DIR)
 
 
diff --git a/openwrt/target/linux/brcm-2.4/Makefile b/openwrt/target/linux/brcm-2.4/Makefile
index 9447114d4e..384a1ea918 100644
--- a/openwrt/target/linux/brcm-2.4/Makefile
+++ b/openwrt/target/linux/brcm-2.4/Makefile
@@ -62,5 +62,5 @@ $(LINUX_DIR)/.drivers-installed: $(LINUX_DIR)/.modules_done
 
 linux-dirclean: drivers-clean
 
-drivers-clean:
+drivers-clean: FORCE
 	rm -rf $(BUILD_DIR)/kernel-binary-wl
diff --git a/openwrt/target/linux/image/Makefile b/openwrt/target/linux/image/Makefile
index 3b82343398..a5141cb542 100644
--- a/openwrt/target/linux/image/Makefile
+++ b/openwrt/target/linux/image/Makefile
@@ -14,25 +14,23 @@ ifeq ($(CONFIG_TARGET_ROOTFS_TGZ),y)
 include ./tgz.mk
 endif
 
-prepare:
+prepare: FORCE
 	$(MAKE) prepare-targets
-compile:
+compile: FORCE
 	$(MAKE) compile-targets
-install:
+install: FORCE
 	$(MAKE) install-targets
 
-.PHONY: prepare compile install
-
-$(BOARD)-compile:
+$(BOARD)-compile: FORCE
 	$(MAKE) -C $(BOARD) prepare
 	$(MAKE) -C $(BOARD) compile
 
-install-ib:
+install-ib: FORCE
 	-$(MAKE) -C $(BOARD) IB_DIR="$(IB_DIR)" install-ib
 	mkdir -p $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)
 	$(CP) $(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)/kernel[-_]*.ipk $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)/	
 
-install-prepare:
+install-prepare: FORCE
 	find $(BUILD_DIR)/root -type f -not -perm +0100 | xargs chmod 0644
 	find $(BUILD_DIR)/root -type f -perm +0100 | xargs chmod 0755
 	find $(BUILD_DIR)/root -type d | xargs chmod 0755
@@ -40,5 +38,5 @@ install-prepare:
 	chmod 0777 $(BUILD_DIR)/root/tmp
 
 rebuild: clean prepare compile install
-clean:
+clean: FORCE
 	$(MAKE) clean-targets
diff --git a/openwrt/target/linux/image/aruba/Makefile b/openwrt/target/linux/image/aruba/Makefile
index 0ddde20266..7ca076acc3 100644
--- a/openwrt/target/linux/image/aruba/Makefile
+++ b/openwrt/target/linux/image/aruba/Makefile
@@ -12,10 +12,10 @@ LOADER_MAKEOPTS= \
 
 KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
 
-lzma-loader-clean:
+lzma-loader-clean: FORCE
 	$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) clean
 
-lzma-loader-prepare:
+lzma-loader-prepare: FORCE
 	$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) prepare
 
 lzma-loader-compile: $(KDIR)/vmlinux.lzma lzma-loader-prepare
diff --git a/openwrt/target/linux/image/au1000/Makefile b/openwrt/target/linux/image/au1000/Makefile
index c7158ca761..2c9b1c05df 100644
--- a/openwrt/target/linux/image/au1000/Makefile
+++ b/openwrt/target/linux/image/au1000/Makefile
@@ -12,10 +12,10 @@ LOADER_MAKEOPTS= \
 
 KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
 
-lzma-loader-clean:
+lzma-loader-clean: FORCE
 	$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) clean
 
-lzma-loader-prepare:
+lzma-loader-prepare: FORCE
 	$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) prepare
 
 lzma-loader-compile: $(KDIR)/vmlinux.lzma lzma-loader-prepare
diff --git a/openwrt/target/linux/image/brcm/Makefile b/openwrt/target/linux/image/brcm/Makefile
index 0fe3ceeac7..7e328470ae 100644
--- a/openwrt/target/linux/image/brcm/Makefile
+++ b/openwrt/target/linux/image/brcm/Makefile
@@ -2,10 +2,10 @@ include $(TOPDIR)/rules.mk
 
 KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
 
-lzma-loader-clean:
+lzma-loader-clean: FORCE
 	$(MAKE) -C lzma-loader clean
 
-lzma-loader-prepare:
+lzma-loader-prepare: FORCE
 	$(MAKE) -C lzma-loader prepare
 
 lzma-loader-compile: lzma-loader-prepare
diff --git a/openwrt/target/linux/image/jffs2.mk b/openwrt/target/linux/image/jffs2.mk
index 44d892415e..c1d07a22b2 100644
--- a/openwrt/target/linux/image/jffs2.mk
+++ b/openwrt/target/linux/image/jffs2.mk
@@ -6,13 +6,13 @@ endif
 
 #JFFS2OPTS += -Xlzo -msize -Xlzari
 
-jffs2-prepare:
+jffs2-prepare: FORCE
 	$(MAKE) -C jffs2 prepare
 
 jffs2-compile: prepare-targets
 	$(MAKE) -C jffs2 compile
 
-jffs2-clean:
+jffs2-clean: FORCE
 	$(MAKE) -C jffs2 clean
 	rm -f $(KDIR)/root.jffs2*
 
@@ -28,11 +28,11 @@ ifeq ($(IB),)
 jffs2-install: compile-targets $(BOARD)-compile
 endif
 
-jffs2-install: $(KDIR)/root.jffs2-4MB $(KDIR)/root.jffs2-8MB
+jffs2-install: $(KDIR)/root.jffs2-4MB $(KDIR)/root.jffs2-8MB FORCE
 	$(MAKE) -C $(BOARD) install KERNEL="$(KERNEL)" FS="jffs2-4MB"
 	$(MAKE) -C $(BOARD) install KERNEL="$(KERNEL)" FS="jffs2-8MB"
 
-jffs2-install-ib: compile-targets
+jffs2-install-ib: compile-targets FORCE
 	mkdir -p $(IB_DIR)/staging_dir_$(ARCH)/bin
 	$(CP) $(STAGING_DIR)/bin/mkfs.jffs2 $(IB_DIR)/staging_dir_$(ARCH)/bin
 
diff --git a/openwrt/target/linux/image/jffs2/Makefile b/openwrt/target/linux/image/jffs2/Makefile
index 071bacdd47..0273d52fd1 100644
--- a/openwrt/target/linux/image/jffs2/Makefile
+++ b/openwrt/target/linux/image/jffs2/Makefile
@@ -24,6 +24,6 @@ source: $(DL_DIR)/$(MTD_SOURCE)
 prepare: $(MTD_DIR)/.unpacked
 compile: $(MTD_DIR)/util/mkfs.jffs2 $(STAGING_DIR)/bin/mkfs.jffs2
 install: 
-clean:
+clean: FORCE
 	rm -rf $(MTD_DIR)
 
diff --git a/openwrt/target/linux/image/squashfs.mk b/openwrt/target/linux/image/squashfs.mk
index abe21563ec..184330cfe7 100644
--- a/openwrt/target/linux/image/squashfs.mk
+++ b/openwrt/target/linux/image/squashfs.mk
@@ -4,13 +4,13 @@ else
 endian := be
 endif
 
-squashfs-prepare:
+squashfs-prepare: FORCE
 	$(MAKE) -C squashfs prepare
 
 squashfs-compile: prepare-targets
 	$(MAKE) -C squashfs compile
 	
-squashfs-clean:
+squashfs-clean: FORCE
 	$(MAKE) -C squashfs clean
 	rm -f $(KDIR)/root.squashfs
 
@@ -22,7 +22,7 @@ ifeq ($(IB),)
 squashfs-install: compile-targets $(BOARD)-compile
 endif
 
-squashfs-install: $(KDIR)/root.squashfs
+squashfs-install: $(KDIR)/root.squashfs FORCE
 	$(MAKE) -C $(BOARD) install KERNEL="$(KERNEL)" FS="squashfs"
 
 squashfs-install-ib: compile-targets
diff --git a/openwrt/target/linux/image/squashfs/Makefile b/openwrt/target/linux/image/squashfs/Makefile
index b5a51f8a3a..a2b3671876 100644
--- a/openwrt/target/linux/image/squashfs/Makefile
+++ b/openwrt/target/linux/image/squashfs/Makefile
@@ -23,5 +23,5 @@ source: $(DL_DIR)/$(SQUASHFSLZMA_SOURCE)
 prepare: $(SQUASHFSLZMA_DIR)/.unpacked
 compile: $(SQUASHFSLZMA_DIR)/squashfs-tools/mksquashfs-lzma $(STAGING_DIR)/bin/mksquashfs-lzma
 install:
-clean: 
+clean: FORCE
 	rm -rf $(SQUASHFSLZMA_DIR)
diff --git a/openwrt/target/linux/image/tgz.mk b/openwrt/target/linux/image/tgz.mk
index 4ea84ebd47..506ab891ae 100644
--- a/openwrt/target/linux/image/tgz.mk
+++ b/openwrt/target/linux/image/tgz.mk
@@ -1,4 +1,4 @@
-$(KDIR)/root.tar.gz:
+$(KDIR)/root.tar.gz: FORCE
 	tar -zcf $@ --owner=root --group=root -C $(BUILD_DIR)/root/ .
 
 ifeq ($(BOARD),x86)
diff --git a/openwrt/target/linux/image/x86/Makefile b/openwrt/target/linux/image/x86/Makefile
index 5820d022bc..8035d722f8 100644
--- a/openwrt/target/linux/image/x86/Makefile
+++ b/openwrt/target/linux/image/x86/Makefile
@@ -4,33 +4,28 @@ KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
 
 
 ifeq ($(FS),jffs2-8MB)
-
 $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img: $(KDIR)/root.$(FS)
 	$(CP) $^ $@
 
 install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img
-
 endif
 
 
 ifeq ($(FS),tgz)
-
 $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-rootfs.tar.gz: $(KDIR)/root.tar.gz
 	$(CP) $^ $@
 
 install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-rootfs.tar.gz
-
 endif
 
 
 $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz: $(KDIR)/bzImage
 	$(CP) $^ $@
 
-
 clean:
 prepare:
 compile:
 install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz
-install-ib:
+install-ib: FORCE
 	mkdir -p $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)
 	$(CP) $(KDIR)/bzImage $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)/
diff --git a/openwrt/target/linux/image/xscale/Makefile b/openwrt/target/linux/image/xscale/Makefile
index 04a89f9b19..cc47c25aba 100644
--- a/openwrt/target/linux/image/xscale/Makefile
+++ b/openwrt/target/linux/image/xscale/Makefile
@@ -2,35 +2,29 @@ include $(TOPDIR)/rules.mk
 
 KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
 
-
 ifeq ($(FS),jffs2-8MB)
-
 $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img: $(KDIR)/root.$(FS)
 	$(CP) $^ $@
 
 install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img
-
 endif
 
 
 ifeq ($(FS),tgz)
-
 $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-rootfs.tar.gz: $(KDIR)/root.tar.gz
 	$(CP) $^ $@
 
 install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-rootfs.tar.gz
-
 endif
 
 
 $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz: $(KDIR)/vmlinux
 	$(CP) $^ $@
 
-
 clean:
 prepare:
 compile:
 install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz
-install-ib:
+install-ib: FORCE
 	mkdir -p $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)
 	$(CP) $(KDIR)/bzImage $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)/
diff --git a/openwrt/target/linux/imagebuilder/Makefile b/openwrt/target/linux/imagebuilder/Makefile
index 4afb4d45a7..53e8dfc58b 100644
--- a/openwrt/target/linux/imagebuilder/Makefile
+++ b/openwrt/target/linux/imagebuilder/Makefile
@@ -21,12 +21,12 @@ endef
 
 include ./kernel.mk
 
-clean:
+clean: FORCE
 	@rm -rf $(LINUX_BUILD_DIR)/root*
 	@rm -rf $(BIN_DIR)
 all:
 
-build:
+build: FORCE
 	echo
 	echo '### BUILDING IMAGE FROM lists/$(LIST).$(BOARD)-$(KERNEL)'
 	echo
diff --git a/openwrt/target/linux/kernel.mk b/openwrt/target/linux/kernel.mk
index fc337543e0..346fb7fad9 100644
--- a/openwrt/target/linux/kernel.mk
+++ b/openwrt/target/linux/kernel.mk
@@ -72,7 +72,7 @@ $(BUILD_DIR)/kernel.mk: FORCE
 	echo "LINUX_VERSION:=$(LINUX_VERSION)" >> $@
 	echo "LINUX_RELEASE:=$(LINUX_RELEASE)" >> $@
 
-pkg-install:
+pkg-install: FORCE
 	@{ [ "$(INSTALL_TARGETS)" != "" ] && $(IPKG) install $(INSTALL_TARGETS) || true; }
 
 source: $(DL_DIR)/$(LINUX_SOURCE)
@@ -84,24 +84,21 @@ compile: prepare $(STAMP_DIR)/.linux-compile
 
 install: compile $(LINUX_KERNEL)
 
-mostlyclean:
+mostlyclean: FORCE
 	rm -f $(STAMP_DIR)/.linux-compile
 	rm -f $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION)/.modules_done
 	rm -f $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION)/.drivers-unpacked
 	$(MAKE) -C $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) clean
 	rm -f $(LINUX_KERNEL)
 
-rebuild:
+rebuild: FORCE
 	-$(MAKE) mostlyclean
 	if [ -f $(LINUX_KERNEL) ]; then \
 		$(MAKE) clean; \
 	fi
 	$(MAKE) compile $(MAKE_TRACE)
 
-clean:
+clean: FORCE
 	rm -f $(STAMP_DIR)/.linux-compile
 	rm -rf $(LINUX_BUILD_DIR)
 	rm -f $(TARGETS)
-	
-.PHONY: source prepare compile install mostlyclean rebuild clean pkg-install
-
diff --git a/openwrt/target/linux/package/Makefile b/openwrt/target/linux/package/Makefile
index ecaae0a41a..a8f01ff5ef 100644
--- a/openwrt/target/linux/package/Makefile
+++ b/openwrt/target/linux/package/Makefile
@@ -26,22 +26,22 @@ install: $(patsubst %,%-install,$(package-y))
 
 KPKG_MAKEOPTS += BUILD_DIR="$(LINUX_BUILD_DIR)"
 
-%-prepare:
+%-prepare: FORCE
 	$(MAKE) -C $(patsubst %-prepare,%,$@) \
 		$(KPKG_MAKEOPTS) \
 		prepare
 
-%-compile:
+%-compile: FORCE
 	$(MAKE) -C $(patsubst %-compile,%,$@) \
 		$(KPKG_MAKEOPTS) \
 		compile
 
-%-install:
+%-install: FORCE
 	$(MAKE) -C $(patsubst %-install,%,$@) \
 		$(KPKG_MAKEOPTS) \
 		install
 
-%-clean:
+%-clean: FORCE
 	@$(MAKE) -C $(patsubst %-clean,%,$@) \
 		$(KPKG_MAKEOPTS) \
 		clean
diff --git a/openwrt/target/lzma/Makefile b/openwrt/target/lzma/Makefile
index d68a5d4b79..b358a9efce 100644
--- a/openwrt/target/lzma/Makefile
+++ b/openwrt/target/lzma/Makefile
@@ -36,18 +36,18 @@ lzma: $(TARGETS)
 
 lzma-source: $(DL_DIR)/$(LZMA_SOURCE)
 
-lzma-clean:
+lzma-clean: FORCE
 	-$(MAKE) -C $(LZMA_LIB_DIR) clean
 	-$(MAKE) -C $(LZMA_ALONE_DIR) clean
 	rm -f $(LZMA_DIR)/liblzma.a $(LZMA_DIR)/lzma
 
-lzma-dirclean:
+lzma-dirclean: FORCE
 	rm -rf $(LZMA_DIR)
 
 #############################################################
 
 prepare: $(LZMA_DIR)/.unpacked
 compile: lzma
-install: lzma
+install: lzma FORCE
 	$(CP) $(LZMA_DIR)/lzma $(STAGING_DIR)/bin/
 clean: lzma-dirclean
diff --git a/openwrt/target/utils/Makefile b/openwrt/target/utils/Makefile
index 5b0f2470b4..fe354754ce 100644
--- a/openwrt/target/utils/Makefile
+++ b/openwrt/target/utils/Makefile
@@ -5,12 +5,12 @@ TARGETS := addpattern trx motorola-bin dgfirmware
 UTILS_BUILD_DIR:=$(BUILD_DIR)/target-utils
 
 prepare: $(UTILS_BUILD_DIR)
-compile: prepare $(patsubst %,$(UTILS_BUILD_DIR)/%,$(TARGETS))
+compile: prepare $(patsubst %,$(UTILS_BUILD_DIR)/%,$(TARGETS)) FORCE
 	mkdir -p $(STAGING_DIR)/bin
 	$(CP) $(UTILS_BUILD_DIR)/* $(STAGING_DIR)/bin/
 install: compile
 package:
-clean:
+clean: FORCE
 	rm -rf $(UTILS_BUILD_DIR)
 	for f in $(TARGETS); do \
 		rm -f $(STAGING_DIR)/bin/$$f ; \
diff --git a/openwrt/toolchain/Config.in b/openwrt/toolchain/Config.in
index d376c14625..3f0d13fe9c 100644
--- a/openwrt/toolchain/Config.in
+++ b/openwrt/toolchain/Config.in
@@ -6,6 +6,13 @@ menuconfig TOOLCHAINOPTS
 source "toolchain/binutils/Config.in"
 source "toolchain/gcc/Config.in"
 
+config GDB
+	bool
+	prompt "Build gdb" if TOOLCHAINOPTS
+	default n
+	help
+		Enable if you want to build the gdb
+
 config ENABLE_MULTILIB
 	bool
 	prompt "Enable multilib support?" if TOOLCHAINOPTS
diff --git a/openwrt/toolchain/Makefile b/openwrt/toolchain/Makefile
index 8a39def374..8e26db562b 100644
--- a/openwrt/toolchain/Makefile
+++ b/openwrt/toolchain/Makefile
@@ -1,9 +1,10 @@
 # Main makefile for the toolchain
 include $(TOPDIR)/rules.mk
-TARGETS:=sed utils binutils gcc uClibc ipkg-utils gdb libnotimpl
+TARGETS-y:=sed utils binutils gcc uClibc ipkg-utils libnotimpl
+TARGETS-$(CONFIG_GDB) += gdb
 
-TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS))
-TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
+TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y))
+TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y))
 
 all: install
 install: $(TARGETS_INSTALL)
@@ -18,18 +19,18 @@ gcc-compile: uClibc-install
 TOOLCHAIN_STAMP_DIR:=$(STAGING_DIR)/stampfiles
 
 $(TOOLCHAIN_STAMP_DIR):
-	mkdir -p $(TOOLCHAIN_STAMP_DIR)
+	mkdir -p $@
 
 $(STAGING_DIR):
-	@mkdir -p $(STAGING_DIR)/lib
-	@mkdir -p $(STAGING_DIR)/include
-	@mkdir -p $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)
-	@ln -sf ../lib $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib
+	@mkdir -p $@/lib
+	@mkdir -p $@/include
+	@mkdir -p $@/$(REAL_GNU_TARGET_NAME)
+	@ln -sf ../lib $@/$(REAL_GNU_TARGET_NAME)/lib
 
 $(TOOL_BUILD_DIR):
-	@mkdir -p $(TOOL_BUILD_DIR)
+	@mkdir -p $@
 
-%-prepare: $(TOOLCHAIN_STAMP_DIR) $(STAGING_DIR) $(TOOL_BUILD_DIR)
+%-prepare: $(TOOLCHAIN_STAMP_DIR) $(STAGING_DIR) $(TOOL_BUILD_DIR) FORCE
 	@[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || { \
 		$(MAKE) -C $(patsubst %-prepare,%,$@) prepare; \
 	}
@@ -47,7 +48,7 @@ $(TOOL_BUILD_DIR):
 	}
 	@touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@
 
-%-clean:
+%-clean: FORCE
 	@$(MAKE) -C $(patsubst %-clean,%,$@) clean
 	@rm -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$(patsubst %-clean,%,$@)-*
 
diff --git a/openwrt/toolchain/binutils/Makefile b/openwrt/toolchain/binutils/Makefile
index 7d405664bb..43755c5fb6 100644
--- a/openwrt/toolchain/binutils/Makefile
+++ b/openwrt/toolchain/binutils/Makefile
@@ -5,8 +5,7 @@ include $(TOPDIR)/rules.mk
 # build binutils for use on the host system
 #
 #############################################################
-BINUTILS_VERSION:=$(strip $(subst ",, $(CONFIG_BINUTILS_VERSION)))
-#"
+BINUTILS_VERSION:=$(strip $(subst ",, $(CONFIG_BINUTILS_VERSION)))#"))
 
 BINUTILS_SITE:=http://www.fr.kernel.org/pub/linux/devel/binutils \
 	       http://www.fi.kernel.org/pub/linux/devel/binutils \
@@ -99,7 +98,7 @@ source: $(DL_DIR)/$(BINUTILS_SOURCE)
 prepare: $(BINUTILS_DIR)/.patched
 compile: $(BINUTILS_DIR1)/binutils/objdump
 install: $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-ld
-clean:
+clean: FORCE
 	rm -f $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)*
 	rm -rf $(BINUTILS_DIR) $(BINUTILS_DIR1)
 
diff --git a/openwrt/toolchain/gcc/Makefile b/openwrt/toolchain/gcc/Makefile
index 1ce00101b5..b0686297d0 100644
--- a/openwrt/toolchain/gcc/Makefile
+++ b/openwrt/toolchain/gcc/Makefile
@@ -145,7 +145,7 @@ $(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured
 	PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) all
 	touch $(GCC_BUILD_DIR2)/.compiled
 
-gcc-install: $(GCC_BUILD_DIR2)/.compiled
+gcc-install: $(GCC_BUILD_DIR2)/.compiled FORCE
 	PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) install
 	echo $(GCC_VERSION) > $(STAGING_DIR)/gcc_version
 	# Set up the symlinks to enable lying about target name.
diff --git a/openwrt/toolchain/gdb/Makefile b/openwrt/toolchain/gdb/Makefile
index b1a2ad5fe5..f122881a74 100644
--- a/openwrt/toolchain/gdb/Makefile
+++ b/openwrt/toolchain/gdb/Makefile
@@ -55,5 +55,5 @@ source: $(DL_DIR)/$(GDB_SOURCE)
 prepare: $(GDB_DIR)/.patched
 compile: 
 install: $(TARGET_CROSS)gdb
-clean:
+clean: FORCE
 	rm -rf $(GDB_CLIENT_DIR) $(GDB_DIR)
diff --git a/openwrt/toolchain/ipkg-utils/Makefile b/openwrt/toolchain/ipkg-utils/Makefile
index 41c78fc24e..0183257b3d 100644
--- a/openwrt/toolchain/ipkg-utils/Makefile
+++ b/openwrt/toolchain/ipkg-utils/Makefile
@@ -40,14 +40,11 @@ $(STAGING_DIR)/usr/bin/ipkg-build: $(PKG_BUILD_DIR)/.patched
 	install -m0755 $(PKG_BUILD_DIR)/ipkg.py $(STAGING_DIR)/usr/bin
 
 source: $(DL_DIR)/$(PKG_SOURCE_FILE)
-
 prepare: $(PKG_BUILD_DIR)/.patched
-
 compile:
-
 install: $(STAGING_DIR)/usr/bin/ipkg-build
 
-clean:
+clean: FORCE
 	rm -f $(STAGING_DIR)/etc/ipkg.conf
 	rm -f $(STAGING_DIR)/usr/bin/ipkg*
 	rm -rf $(PKG_BUILD_DIR)
diff --git a/openwrt/toolchain/libnotimpl/Makefile b/openwrt/toolchain/libnotimpl/Makefile
index f68346c371..86ab927c12 100644
--- a/openwrt/toolchain/libnotimpl/Makefile
+++ b/openwrt/toolchain/libnotimpl/Makefile
@@ -24,7 +24,7 @@ source:
 prepare: $(LIBNOTIMPL_DIR)/.prepared
 compile: $(LIBNOTIMPL_DIR)/libnotimpl.a
 install: $(STAGING_DIR)/usr/lib/libnotimpl.a
-clean: 
+clean:  FORCE
 	rm -rf \
 		$(STAGING_DIR)/usr/lib/libnotimpl.a \
 		$(LIBNOTIMPL_DIR) \
diff --git a/openwrt/toolchain/sed/Makefile b/openwrt/toolchain/sed/Makefile
index 637bc6597b..e14aadd8ff 100644
--- a/openwrt/toolchain/sed/Makefile
+++ b/openwrt/toolchain/sed/Makefile
@@ -46,7 +46,7 @@ $(SED_DIR1)/$(SED_BINARY): $(SED_DIR1)/.configured
 	$(MAKE) -C $(SED_DIR1)
 
 # This stuff is needed to work around GNU make deficiencies
-build-sed-host-binary: $(SED_DIR1)/$(SED_BINARY)
+build-sed-host-binary: $(SED_DIR1)/$(SED_BINARY) FORCE
 	@if [ -L $(STAGING_DIR)/$(SED_TARGET_BINARY) ] ; then \
 		rm -f $(STAGING_DIR)/$(SED_TARGET_BINARY); fi;
 	@if [ ! -f $(STAGING_DIR)/$(SED_TARGET_BINARY) -o $(STAGING_DIR)/$(SED_TARGET_BINARY) \
@@ -58,7 +58,7 @@ build-sed-host-binary: $(SED_DIR1)/$(SED_BINARY)
 	    rm -rf $(STAGING_DIR)/share/locale $(STAGING_DIR)/usr/info \
 		    $(STAGING_DIR)/usr/man $(STAGING_DIR)/usr/share/doc; fi
 
-use-sed-host-binary:
+use-sed-host-binary: FORCE
 	@if [ -x /usr/bin/sed ]; then SED="/usr/bin/sed"; else \
 	    if [ -x /bin/sed ]; then SED="/bin/sed"; fi; fi; \
 	    mkdir -p $(STAGING_DIR)/bin; \
@@ -69,7 +69,7 @@ source:
 prepare: 
 compile: 
 install: $(HOST_SED_TARGET)
-clean: 
+clean: FORCE
 	rm -rf $(SED_DIR1)
 	rm -f $(STAGING_DIR)/$(SED_TARGET_BINARY)
 
diff --git a/openwrt/toolchain/uClibc/Makefile b/openwrt/toolchain/uClibc/Makefile
index 1fd9b4a3bd..f7691e4f1b 100644
--- a/openwrt/toolchain/uClibc/Makefile
+++ b/openwrt/toolchain/uClibc/Makefile
@@ -9,15 +9,16 @@ include $(TOPDIR)/rules.mk
 ifeq ($(CONFIG_UCLIBC_VERSION_SNAPSHOT),y)
 # Be aware that this changes daily....
 UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc
-UCLIBC_SOURCE:=uClibc-$(strip $(subst ",, $(CONFIG_USE_UCLIBC_SNAPSHOT))).tar.bz2
-#"
+UCLIBC_SOURCE:=uClibc-$(strip $(subst ",, $(CONFIG_USE_UCLIBC_SNAPSHOT))).tar.bz2#"))
 UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots
 UCLIBC_VER:=PKG_VERSION:=0.${shell date +"%G%m%d"}
+UCLIBC_MD5SUM:=x
 else
 UCLIBC_VER:=0.9.28
 UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc-$(UCLIBC_VER)
 UCLIBC_SOURCE:=uClibc-$(UCLIBC_VER).tar.bz2
 UCLIBC_SITE:=http://www.uclibc.org/downloads
+UCLIBC_MD5SUM:=1ada58d919a82561061e4741fb6abd29
 endif
 
 UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \
@@ -37,7 +38,7 @@ UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \
 
 $(DL_DIR)/$(UCLIBC_SOURCE):
 	mkdir -p $(DL_DIR)
-	$(SCRIPT_DIR)/download.pl $(DL_DIR) $(UCLIBC_SOURCE) x $(UCLIBC_SITE)
+	$(SCRIPT_DIR)/download.pl $(DL_DIR) $(UCLIBC_SOURCE) $(UCLIBC_MD5SUM) $(UCLIBC_SITE)
 
 $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
 	mkdir -p $(TOOL_BUILD_DIR)
@@ -99,5 +100,5 @@ source: $(DL_DIR)/$(UCLIBC_SOURCE)
 prepare: $(UCLIBC_DIR)/.configured
 compile: $(UCLIBC_DIR)/lib/libc.a
 install: $(STAGING_DIR)/lib/libc.a $(UCLIBC_TARGETS)
-clean: 
+clean:  FORCE
 	rm -rf $(UCLIBC_DIR) $(TOOL_BUILD_DIR)/uClibc_dev
diff --git a/openwrt/toolchain/utils/Makefile b/openwrt/toolchain/utils/Makefile
index 2af6b139df..65e488f4e5 100644
--- a/openwrt/toolchain/utils/Makefile
+++ b/openwrt/toolchain/utils/Makefile
@@ -14,7 +14,7 @@ install: compile
 	mkdir -p $(STAGING_DIR)/bin
 	$(CP) $(UTILS_BUILD_DIR)/* $(STAGING_DIR)/bin/
 package:
-clean:
+clean: FORCE
 	rm -rf $(UTILS_BUILD_DIR)
 
 $(UTILS_BUILD_DIR):
-- 
GitLab