From 36ec36fcb2ae00213f34657fb25815296d4d111c Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Tue, 7 Oct 2014 17:36:36 +0200
Subject: [PATCH] Added rules for proper 'make clean ; make distclean' in
 examples Added some extra cleaning in lib/c/Makefile

---
 examples/Makefile              | 21 ++++++++++++++-------
 examples/dynamic/Makefile      |  5 +++++
 examples/jgrafchart/Makefile   | 15 ++++++++++++---
 examples/robot/Makefile        |  5 +++++
 examples/simple/Makefile       |  6 ++++++
 examples/tcp/Makefile          |  6 +++++-
 examples/twoway/Makefile       |  4 ++--
 examples/user_types/Makefile   |  5 +++++
 examples/wiki_example/Makefile |  5 +++++
 lib/c/Makefile                 |  1 +
 10 files changed, 60 insertions(+), 13 deletions(-)
 create mode 100644 examples/dynamic/Makefile
 create mode 100644 examples/robot/Makefile
 create mode 100644 examples/simple/Makefile
 create mode 100644 examples/user_types/Makefile
 create mode 100644 examples/wiki_example/Makefile

diff --git a/examples/Makefile b/examples/Makefile
index 072b2d8..7035255 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -1,18 +1,25 @@
+SUBDIRS=duck_typing dynamic jgrafchart robot simple tcp \
+	twoway user_types wiki_example
+
 .PHONY: all
 
 all:
-	echo To be done...
+	echo More to be done...
 	$(MAKE) -C twoway all
 
 .PHONY: test
 test:
 	echo More to be done...
 	cd simple ; sh compile.sh && sh run.sh
-	$(MAKE) -C twoway test 
 	$(MAKE) -C duck_typing test
+	$(MAKE) -C twoway test 
+
+.PHONY: clean
+clean: $(SUBDIRS:%=clean-%)
+clean-%:
+	$(MAKE) -C $* clean 
 
-.PHONY: clean distclean
-clean distclean:
-	echo To be done...
-	$(MAKE) -C twoway clean
-	$(MAKE) -C duck_typing clean
+.PHONY: distclean
+distclean: $(SUBDIRS:%=distclean-%)
+distclean-%:
+	$(MAKE) -C $* distclean 
diff --git a/examples/dynamic/Makefile b/examples/dynamic/Makefile
new file mode 100644
index 0000000..607a20a
--- /dev/null
+++ b/examples/dynamic/Makefile
@@ -0,0 +1,5 @@
+all:
+
+clean:
+
+distclean:
diff --git a/examples/jgrafchart/Makefile b/examples/jgrafchart/Makefile
index 08a8239..fc468e9 100644
--- a/examples/jgrafchart/Makefile
+++ b/examples/jgrafchart/Makefile
@@ -24,9 +24,11 @@ ${JAVA_PKG}/client/TestClient.class: ${JAVA_PKG}/client/TestClient.java ${JAVA_P
 	javac -cp ${CLASSPATH} $<
 
 
+.PHONY: runjavaserver
 runjavaserver : ${JAVA_PKG}/server/TestServer.class
 	java -cp ${CLASSPATH} $(<:.class=)
 
+.PHONY: runjavaclient 
 runjavaclient : ${JAVA_PKG}/client/TestClient.class
 	java -cp ${CLASSPATH} $(<:.class=)
 
@@ -47,16 +49,23 @@ ${TLCFILE}.c : ${TLCFILE}.lc
 
 all: client testserver ${JAVA_PKG}/server/TestServer.class ${JAVA_PKG}/client/TestClient.class turtleclient
 
-.PHONY: clean runclient runserver runjavaserver runjavaclient turtleclient
+.PHONY: clean
 clean :
-	rm ${LCFILE}.c ${LCFILE}.h client testserver turtleclient
-	rm  ${JAVA_PKG}/server/*.class ${JAVA_PKG}/client/*.class ${JAVA_PKG}/gen/* 
+	rm -f ${LCFILE}.c ${LCFILE}.h client testserver turtleclient
+	rm -f ${JAVA_PKG}/server/*.class ${JAVA_PKG}/client/*.class 
+	rm -f ${JAVA_PKG}/gen/* 
 
+.PHONY: distclean
+distclean: clean 
+
+.PHONY: runclient
 runclient : client
 	LD_LIBRARY_PATH=${LCLIBDIR} ./$< localhost 9999
 
+.PHONY: runserver
 runserver : testserver
 	LD_LIBRARY_PATH=${LCLIBDIR} ./$< 9999
 
+.PHONY: runtclient
 runtclient : turtleclient
 	LD_LIBRARY_PATH=${LCLIBDIR} ./$< localhost 8082
diff --git a/examples/robot/Makefile b/examples/robot/Makefile
new file mode 100644
index 0000000..607a20a
--- /dev/null
+++ b/examples/robot/Makefile
@@ -0,0 +1,5 @@
+all:
+
+clean:
+
+distclean:
diff --git a/examples/simple/Makefile b/examples/simple/Makefile
new file mode 100644
index 0000000..757301e
--- /dev/null
+++ b/examples/simple/Makefile
@@ -0,0 +1,6 @@
+all:
+
+clean:
+
+distclean:
+	rm -rf gen
diff --git a/examples/tcp/Makefile b/examples/tcp/Makefile
index da81761..a96c0e1 100644
--- a/examples/tcp/Makefile
+++ b/examples/tcp/Makefile
@@ -51,4 +51,8 @@ runclient : ${JAVA_PKG}/client/TestClient.class
 	java -cp ${CLASSPATH} $(<:.class=)
 
 clean :
-	rm  ${JAVA_PKG}/server/*.class ${JAVA_PKG}/client/*.class ${JAVA_PKG}/gen/* 
+	rm -f ${JAVA_PKG}/server/*.class 
+	rm -f ${JAVA_PKG}/client/*.class 
+	rm -f ${JAVA_PKG}/gen/* 
+
+distclean: clean
diff --git a/examples/twoway/Makefile b/examples/twoway/Makefile
index 60b5708..868966d 100644
--- a/examples/twoway/Makefile
+++ b/examples/twoway/Makefile
@@ -32,8 +32,8 @@ gen/server: server.c
 	$(CC) -o $@ $(CFLAGS) $^ -lpthread \
 		-L../../lib/c -llabcomm 
 
-.PHONY: clean
-clean:
+.PHONY: clean distclean
+clean distclean:
 	rm -rf gen
 
 gen/decimating.o: decimating.h
diff --git a/examples/user_types/Makefile b/examples/user_types/Makefile
new file mode 100644
index 0000000..607a20a
--- /dev/null
+++ b/examples/user_types/Makefile
@@ -0,0 +1,5 @@
+all:
+
+clean:
+
+distclean:
diff --git a/examples/wiki_example/Makefile b/examples/wiki_example/Makefile
new file mode 100644
index 0000000..607a20a
--- /dev/null
+++ b/examples/wiki_example/Makefile
@@ -0,0 +1,5 @@
+all:
+
+clean:
+
+distclean:
diff --git a/lib/c/Makefile b/lib/c/Makefile
index 37dbba9..43e892f 100644
--- a/lib/c/Makefile
+++ b/lib/c/Makefile
@@ -168,6 +168,7 @@ clean:
 	$(RM) test/test_labcomm_errors
 	$(RM) test/testdata/gen/*.[cho]
 	$(RM) test/gen/*.[cho]
+	-rmdir test/gen
 	for x in $(TESTS); do \
 		$(RM) $(TEST_DIR)/$$x ; \
 	done
-- 
GitLab