chiark / gitweb /
hostside: hidrawconv: declarations for hatswitches; impl'n is still no-op
[trains.git] / Makefile
index 8eb1034a6242bdf94d99dd059079e8219a29ff79..6734166c4573cc42c1e6a1dcd832719dd1a43506 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,14 +1,37 @@
 
-all:           pic hostprogs
+recurse = +set -e; for f in $($(1)_DIRS); do $(MAKE) -C $$f $(2); done
 
-PICPROGS_DIRS= iwjpictest cebpic detpic
-HOSTPROGS_DIRS=        layout hostside
+PIC_DIRS=      iwjpictest cebpic detpic
+HOST_DIRS=     pcb layout hostside
+
+all:
+       $(call recurse,HOST,recurse)
+       $(call recurse,PIC,)
+
+client:
+       $(call recurse,HOST,client)
+
+host: host_recurse
+
+host_%:
+       $(call recurse,HOST,$*)
 
 pic:
-               set -e; for f in $(PICPROGS_DIRS); do $(MAKE) -C $$f; done
+       $(call recurse,HOST,for-pic)
+       $(call recurse,PIC,)
 
 pic_%:
-               set -e; for f in $(PICPROGS_DIRS); do $(MAKE) -C $$f $*; done
+       +$(MAKE) -C layout for-pic
+       $(call recurse,PIC,$*)
+
+pic_clean:
+       $(call recurse,PIC,clean)
+
+clean:         host_clean pic_clean
+               rm -f *~ .*~
+
+tidy:          host_tidy pic_tidy
 
-hostprogs:
-               set -e; for f in $(HOSTPROGS_DIRS); do $(MAKE) -C $$f; done
+realclean:
+       $(MAKE) tidy
+       $(MAKE) clean