add compile time options to xlock
[archipelago] / xseg / Makefile
index 8b6b84c..bc40979 100644 (file)
@@ -1,21 +1,42 @@
-.PHONY: clean
+.PHONY: default clean target-list distclean
 
-XSEG_HOME=$(shell pwd)
-export XSEG_HOME
+TARGET=default
+include ./base.mk
 
-include config.mk
-include base.mk
+XSEG_CLEAN_TARGETS=$(patsubst %,clean-%,$(XSEG_DOMAIN_TARGETS))
 
-default:
-       for f in $(MAKEDIRS); do \
-               make -C $$f || break; \
-               echo "-------------------------------------------------------------------"; \
+default: targets
+
+target-list:
+       @echo $(XSEG_DOMAIN_TARGETS)
+
+targets: $(XSEG_DOMAIN_TARGETS)
+
+clean: $(XSEG_CLEAN_TARGETS)
+
+.PHONY: $(XSEG_DOMAIN_TARGETS)
+$(XSEG_DOMAIN_TARGETS):
+       @for f in $(XSEG_DOMAIN_DIRS); do \
+               echo " "; \
+               echo "=== $@ in $$f ==="; \
+               echo " "; \
+               make -C $$f/$@ TARGET=$@ default || exit 1; \
                echo " "; \
        done
+       @echo " "
 
-clean:
-       for f in $(MAKEDIRS); do \
-               make -C $$f clean || break; \
+.PHONY: $(XSEG_CLEAN_TARGETS)
+$(XSEG_CLEAN_TARGETS):
+       @for f in $(XSEG_DOMAIN_DIRS); do \
+               echo " "; \
+               echo "=== $@ in $$f ==="; \
+               echo " "; \
+               make -C $$f/$(@:clean-%=%) TARGET=$@ clean || true; \
                echo " "; \
        done
+       rm -f ./config.mk
+       @echo " "
 
+distclean:
+       rm -f lib/user/*.so* lib/user/*.a
+       rm -f lib/kernel/*.ko