# Set to 1 if you want verbose output
V=0
+# Set to 'y' (or 'n') if you want to auto-confirm (auto-reject) all questions in build/installer
+CONFIRM=
+
# Disable all built-in rules and variables. Speeds up make and simplifies debugging.
MAKEFLAGS+=-rR
-s=$(SRCDIR)
-o=obj
-
-CFLAGS=$(CLANG) $(COPT) $(CDEBUG) $(CWARNS) -I. -I$(o) -I$(s)
-LDFLAGS=$(LOPT)
+CFLAGS=$(CLANG) $(COPT) $(CDEBUG) $(CWARNS) $(CEXTRA) -I. -I$(o) -I$(s)
+LDFLAGS=$(LOPT) $(LEXTRA)
DIRS=
PROGS=
# to define their own cleanup actions.
dust::
rm -f `find . -path "*~" -or -name "\#*\#" -or -name core`
- rm -f allocs.tmp cscope.out
+ rm -f allocs.tmp cscope.out TAGS
clean:: dust
- rm -rf obj tests run/bin/* run/lib/* run/include/* run/.tree-stamp TAGS
+ rm -rf `find obj -mindepth 1 -maxdepth 1 -not \( -name config.mk -o -name autoconf.h \)`
+ rm -rf tests run/{bin,lib,include,.tree-stamp}
distclean:: clean
- rm -rf run
+ rm -rf obj run
testclean::
rm -f `find obj -name "*.test"`
+# Extra default rules (appended to by submakefiles)
+extras::
+
# Relative symlinks and other pathname manipulation macros
empty:=
space:=$(empty) $(empty)
backref=$(subst $(space),/,$(patsubst %,..,$(subst /,$(space),$(1))))
tack-on=$(if $(patsubst /%,,$(2)),$(1)/$(2),$(2))
symlink=ln -sf $(call tack-on,$(call backref,$(2)),$(1)) $(2)/
+symlink-alias=ln -sf $(call tack-on,$(call backref,$(2)),$(1)) $(2)/$(3)