Print. Add printing for qids, cnams, and chans
[akaros.git] / Makefile
index b159817..5f7681f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -47,6 +47,10 @@ MAKEFLAGS += -rR --no-print-directory
 PHONY := all
 all: akaros-kernel
 
 PHONY := all
 all: akaros-kernel
 
+# Export the location of this top level directory
+AKAROS_ROOT = $(CURDIR)
+export AKAROS_ROOT
+
 # Setup dumping ground for object files and any temporary files we need to
 # generate for non-kbuild targets
 OBJDIR ?= obj
 # Setup dumping ground for object files and any temporary files we need to
 # generate for non-kbuild targets
 OBJDIR ?= obj
@@ -537,9 +541,11 @@ endif #ifeq ($(mixed-targets),1)
 # such as how pthread depends on parlib.
 
 user-dirs = parlib pthread benchutil iplib ndblib bsd
 # such as how pthread depends on parlib.
 
 user-dirs = parlib pthread benchutil iplib ndblib bsd
+benchutil: parlib
 pthread: parlib benchutil
 iplib: parlib
 ndblib: iplib
 pthread: parlib benchutil
 iplib: parlib
 ndblib: iplib
+bsd: parlib iplib
 
 PHONY += install-libs $(user-dirs)
 install-libs: $(user-dirs) symlinks cc-exists
 
 PHONY += install-libs $(user-dirs)
 install-libs: $(user-dirs) symlinks cc-exists
@@ -550,7 +556,7 @@ $(user-dirs):
 
 PHONY += userclean $(clean-user-dirs)
 clean-user-dirs := $(addprefix _clean_user_,$(user-dirs))
 
 PHONY += userclean $(clean-user-dirs)
 clean-user-dirs := $(addprefix _clean_user_,$(user-dirs))
-userclean: $(clean-user-dirs) testclean
+userclean: $(clean-user-dirs) testclean utestclean
 
 $(clean-user-dirs):
        @cd user/$(patsubst _clean_user_%,%,$@) && $(MAKE) clean
 
 $(clean-user-dirs):
        @cd user/$(patsubst _clean_user_%,%,$@) && $(MAKE) clean
@@ -559,9 +565,16 @@ tests/: tests
 tests: install-libs
        @$(MAKE) -f tests/Makefile
 
 tests: install-libs
        @$(MAKE) -f tests/Makefile
 
+PHONY += utest
+utest: $(user-dirs)
+       @cd user/$@ && $(MAKE) 
+
 testclean:
        @$(MAKE) -f tests/Makefile clean
 
 testclean:
        @$(MAKE) -f tests/Makefile clean
 
+utestclean:
+       @cd user/utest && $(MAKE) clean
+
 # KFS related stuff
 PHONY += fill-kfs unfill-kfs
 XCC_SO_FILES = $(addprefix $(XCC_TARGET_ROOT)/lib/, *.so*)
 # KFS related stuff
 PHONY += fill-kfs unfill-kfs
 XCC_SO_FILES = $(addprefix $(XCC_TARGET_ROOT)/lib/, *.so*)
@@ -569,14 +582,20 @@ XCC_SO_FILES = $(addprefix $(XCC_TARGET_ROOT)/lib/, *.so*)
 $(OBJDIR)/.dont-force-fill-kfs:
        $(Q)rm -rf $(addprefix $(FIRST_KFS_PATH)/lib/, $(notdir $(XCC_SO_FILES)))
        @echo "Cross Compiler 'so' files removed from KFS"
 $(OBJDIR)/.dont-force-fill-kfs:
        $(Q)rm -rf $(addprefix $(FIRST_KFS_PATH)/lib/, $(notdir $(XCC_SO_FILES)))
        @echo "Cross Compiler 'so' files removed from KFS"
-       @$(MAKE) -f tests/Makefile unfill-kfs
+       @$(MAKE) -f tests/Makefile uninstall
+       @echo "Apps from /test removed from KFS"
+       @cd user/utest && $(MAKE) uninstall
+       @echo "User space tests removed from KFS"
        @touch $(OBJDIR)/.dont-force-fill-kfs
 
 fill-kfs: $(OBJDIR)/.dont-force-fill-kfs install-libs
        @mkdir -p $(FIRST_KFS_PATH)/lib
        $(Q)cp -uP $(XCC_SO_FILES) $(FIRST_KFS_PATH)/lib
        @echo "Cross Compiler 'so' files installed to KFS"
        @touch $(OBJDIR)/.dont-force-fill-kfs
 
 fill-kfs: $(OBJDIR)/.dont-force-fill-kfs install-libs
        @mkdir -p $(FIRST_KFS_PATH)/lib
        $(Q)cp -uP $(XCC_SO_FILES) $(FIRST_KFS_PATH)/lib
        @echo "Cross Compiler 'so' files installed to KFS"
-       @$(MAKE) -f tests/Makefile fill-kfs
+       @$(MAKE) -f tests/Makefile install
+       @echo "Apps from /test installed to KFS"
+       @cd user/utest && $(MAKE) install
+       @echo "User space tests installed to KFS"
 
 # Use doxygen to make documentation for ROS (Untested since 2010 or so)
 doxygen-dir := $(CUR_DIR)/Documentation/doxygen
 
 # Use doxygen to make documentation for ROS (Untested since 2010 or so)
 doxygen-dir := $(CUR_DIR)/Documentation/doxygen