From e1d391d2ae5447b230851eb4767679f125ac322d Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Thu, 25 Oct 2018 16:33:10 +0200
Subject: [PATCH] Add cleanup rule

---
 Makefile                 | 7 +++++++
 lib/avr/Makefile.common  | 3 +++
 pcio/linux/Makefile      | 4 ++++
 tools/find_avr_targets   | 4 +++-
 tools/find_linux_targets | 4 +++-
 5 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 9fee9e6..09c96df 100644
--- a/Makefile
+++ b/Makefile
@@ -14,6 +14,12 @@ all:
 	@echo >&2
 	@exit 1
 
+%.CLEAN:
+	for d in $$(./tools/find_linux_targets $*) \
+		 $$(./tools/find_avr_targets $*) ; do \
+	    make -C $${d} $@ ; \
+	done
+
 %.LOAD:
 	make -C $$(./tools/find_avr_targets $*) $@
 
@@ -22,3 +28,4 @@ all:
 
 %.LINUX:
 	make -C $$(./tools/find_linux_targets $*) $@
+
diff --git a/lib/avr/Makefile.common b/lib/avr/Makefile.common
index 159b24d..6341ec7 100644
--- a/lib/avr/Makefile.common
+++ b/lib/avr/Makefile.common
@@ -16,6 +16,9 @@ ifeq ($(TARGET),)
 all:	$(TARGETS:%=%.LINK)
 
 
+%.CLEAN:
+	rm -rf compiled/$*
+
 %.LINK:
 	@mkdir -p compiled/$*
 	make --no-print-directory TARGET=$* $*.LINK
diff --git a/pcio/linux/Makefile b/pcio/linux/Makefile
index 7a3863d..c00b3ab 100644
--- a/pcio/linux/Makefile
+++ b/pcio/linux/Makefile
@@ -9,6 +9,10 @@ all: pciotest.LINUX
 %.LINUX: compiled/% | compiled
 	@/bin/true
 
+.PHONY: %.CLEAN
+%.CLEAN: clean
+	@/bin/true
+
 .PRECIOUS: compiled/%
 compiled/%:	%.c | compiled
 	echo $*
diff --git a/tools/find_avr_targets b/tools/find_avr_targets
index 2fbe8f8..eff8e4d 100755
--- a/tools/find_avr_targets
+++ b/tools/find_avr_targets
@@ -16,7 +16,9 @@ all_avr_programs() {
 }
 
 target_dir() {
-    dirname $(egrep -l "$1.CHIP=" ${ROOTDIR}/*/avr/Makefile)
+    local MAKEFILE
+    MAKEFILE=$(egrep -l "$1.CHIP=" ${ROOTDIR}/*/avr/Makefile)
+    [ -n ${MAKEFILE} ] && dirname ${MAKEFILE}
 }
 
 if [ $# -eq 0 ] ; then
diff --git a/tools/find_linux_targets b/tools/find_linux_targets
index f268553..3613fc6 100755
--- a/tools/find_linux_targets
+++ b/tools/find_linux_targets
@@ -17,7 +17,9 @@ all_linux_programs() {
 }
 
 target_dir() {
-    dirname $(egrep -l "^CFLAGS.$1=" ${ROOTDIR}/*/linux/Makefile)
+    local MAKEFILE
+    MAKEFILE=$(egrep -l "^CFLAGS.$1=" ${ROOTDIR}/*/linux/Makefile)
+    [ -n ${MAKEFILE} ] && dirname ${MAKEFILE}
 }
 
 if [ $# -eq 0 ] ; then
-- 
GitLab