Allow filtering by PID for "db sem"
[akaros.git] / Makefile
index 5a95b57..0bbc408 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -36,6 +36,9 @@
 #
 #      - There are a few other TODOs sprinkled throughout the makefile.
 
+# Number of make jobs to spawn.  Can override this in Makelocal
+MAKE_JOBS ?= $(shell expr `cat /proc/cpuinfo | grep processor | wc -l` - 1)
+
 # Allow people to override our setting of the --no-print-directory option in
 # their Makelocal. This is useful, for example, to allow emacs to find the
 # correct file when errors are encountered using its builtin 'M-x compile'
@@ -71,14 +74,14 @@ define make_as_parent
        $(clear_current_env)\
        $(export_parent_env)\
        $(call export_user_variables)\
-       $(MAKE) $(NO_PRINT_DIRECTORY) $(1)
+       $(MAKE) $(NO_PRINT_DIRECTORY) -j $(MAKE_JOBS) $(1)
 endef
 
 # Do not:
 # o  use make's built-in rules and variables
 #    (this increases performance and avoids hard-to-debug behaviour);
 # o  print "Entering directory ...";
-MAKEFLAGS += -rR $(NO_PRINT_DIRECTORY)
+MAKEFLAGS += -rR $(NO_PRINT_DIRECTORY) -j $(MAKE_JOBS)
 
 # That's our default target when none is given on the command line
 # This can be overriden with a Makelocal
@@ -360,7 +363,7 @@ CFLAGS_KERNEL += -O2 -pipe -MD
 CFLAGS_KERNEL += -std=gnu99 -fgnu89-inline
 CFLAGS_KERNEL += -fno-strict-aliasing -fno-omit-frame-pointer
 CFLAGS_KERNEL += -fno-stack-protector
-CFLAGS_KERNEL += -Wall -Wno-format -Wno-unused -Werror
+CFLAGS_KERNEL += -Wall -Wno-format -Wno-unused -Werror -Wreturn-type
 CFLAGS_KERNEL += -DROS_KERNEL 
 CFLAGS_KERNEL += -include include/generated/autoconf.h -include include/common.h
 CFLAGS_KERNEL += -fplan9-extensions
@@ -369,6 +372,9 @@ CFLAGS_KERNEL += -m64 -g
 else
 CFLAGS_KERNEL += -m32 -gstabs
 endif
+ifeq ($(CONFIG_BETTER_BACKTRACE),y)
+CFLAGS_KERNEL += -fno-optimize-sibling-calls
+endif
 
 # TODO: do we need this, or can we rely on the compiler's defines?
 CFLAGS_KERNEL += -D$(ARCH)
@@ -390,7 +396,7 @@ export NOSTDINC_FLAGS XCC_TARGET_ROOT XCC_TARGET_LIB XCC_TARGET_INCLUDE
 export KBUILD_BUILTIN KBUILD_CHECKSRC
 
 CFLAGS_USER += -O2 -std=gnu99 -fno-stack-protector -fgnu89-inline \
-               -Wsystem-headers
+               -Wsystem-headers -Werror -Wreturn-type
 CXXFLAGS_USER += -O2
 CFLAGS_USER_LIBS += -fPIC -static -fno-omit-frame-pointer -g
 
@@ -590,7 +596,7 @@ benchutil: parlib
 pthread: parlib benchutil
 iplib: parlib
 ndblib: iplib
-vmm: parlib benchutil
+vmm: parlib benchutil iplib ndblib
 
 PHONY += install-libs $(user-dirs)
 install-libs: $(user-dirs) symlinks cc-exists
@@ -695,6 +701,7 @@ apps-clean: $(app-dirs-clean)
        @$(call make_as_parent, -C tools/apps/ipconfig clean)
        @$(call make_as_parent, -C tools/dev-libs/elfutils clean)
        @$(call make_as_parent, -C tools/dev-util/perf clean)
+       @$(call make_as_parent, -C tools/sys-apps/bash clean)
 
 # Cross Compiler
 # =========================================================================
@@ -732,9 +739,9 @@ xcc-upgrade: xcc
        @$(MAKE) userclean
        @$(MAKE) install-libs
        @$(MAKE) testclean utestclean
-       @$(MAKE) tests utest
        @$(call make_as_parent, apps-clean)
        @$(call make_as_parent, apps-install)
+       @$(MAKE) tests utest
        @$(MAKE) fill-kfs
        @$(MAKE) akaros-kernel