global: Make Makefile better and some small fixes
[h316.git] / Makefile
index 6f781ba90e7472d3fe251fff5a90bb8d986ac1a2..cb4c049e93744e2d7200d4d21a44b0d4d97b295a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,39 +1,37 @@
 # Toplevel Makefile for Hachti's H316 stuff collection
 
-# First we need the PC side tools. Nothing runs without them!
-SUBDIRS=pc-tools 
+SUBDIRS = pc-tools lib systems programs
 
-# Now we build the libraries which are always rebuild using the original compiler and 
-# assembler tapes
-SUBDIRS+=lib
-
-# Here we link the assembler - via a trick
-SUBDIRS+=systems/dap
+# If you want to build the docs, too: Uncomment next line:
+#SUBDIRS+=docs/manual
 
-# What's missing for the systems
-SUBDIRS+=programs/tools
+.done_pc-tools :
+       @$(MAKE) -C pc-tools && touch $@
 
-# Now we can build the super images and slst
-SUBDIRS+=systems
+.done_lib: .done_pc-tools
+       @$(MAKE) -C lib && touch $@
 
-# The compiler is rebuilt as well!
-SUBDIRS+=programs/fortran
+.done_systems_dap: .done_lib
+       @$(MAKE) -C systems/dap && touch $@
 
-# And all other H316 tools depending on all the other stuff
-SUBDIRS+=programs
+.done_programs_tools: .done_systems_dap
+       @$(MAKE) -C programs/tools && touch $@
 
-#lib/fortran/vpunch-help
+.done_systems: .done_programs_tools
+       @$(MAKE) -C systems && touch $@
 
-# If you want to build the docs, too: Uncomment next line:
-#SUBDIRS+=docs/manual
+.done_programs_fortran: .done_systems
+       @$(MAKE) -C programs/fortran && touch $@
 
+.done_programs: .done_programs_fortran
+       @$(MAKE) -C programs && touch $@
 
-default: 
-       @$(foreach subdir, $(SUBDIRS), $(MAKE) -C $(subdir)&&) /bin/true
+default: .done_programs
 
 clean:
        @$(foreach subdir, $(SUBDIRS), $(MAKE) -C $(subdir) $@&&) true
        @rm -f h316rc
+       @rm -f .done_*
 
 %:
        @echo $@