ifeq (0,${MAKELEVEL})
MAKE:=$(MAKE) --no-builtin-rules
endif
+.SUFFIXES:
-ifndef config
- configuration=config
+# Use alternate configurations alongside eachother:
+#
+# ./configure --enable-config=debug
+# make conf=debug
+#
+# uses config-debug.make and config-debug.h; output goes to out-debug.
+#
+ifdef conf
+ CONFIGSUFFIX=-$(conf)
+endif
+
+# Use same configuration, but different output directory:
+#
+# make out=www
+#
+# uses config.make and config.h; output goes to out-www.
+#
+ifdef out
+ outbase=out-$(out)
else
- configuration=config-$(config)
+ outbase=out$(CONFIGSUFFIX)
endif
-include $(depth)/$(configuration).make
+ifdef config
+ configuration=$(config)
+else
+ ifeq ($(builddir),.)
+ configuration=$(depth)/config$(CONFIGSUFFIX).make
+ else
+ # user package
+ # configuration=$(depth)/$(builddir)/config$(CONFIGSUFFIX).make
+ # stepmake package
+ configuration=$(depth)/../$(builddir)/stepmake/config$(CONFIGSUFFIX).make
+ endif
+endif
-ifdef CONFIGSUFFIX
-outdir=out-$(CONFIGSUFFIX)
+include $(configuration)
+
+ifeq ($(builddir),.)
+ outroot=.
else
-outdir=out
+ outroot=$(depth)/$(builddir)/$(patsubst $(shell cd $(depth); pwd)%,%,$(shell cd .; pwd))
endif
+outdir=$(outroot)/$(outbase)
+config_h=$(depth)/$(builddir)/config$(CONFIGSUFFIX).h
+
+# user package
+# stepdir = $(stepmake)/stepmake
+# for stepmake package
stepdir = $(depth)/stepmake
-LOCALSTEPMAKE_TEMPLATES:=generic $(LOCALSTEPMAKE_TEMPLATES)
STEPMAKE_TEMPLATES := generic $(STEPMAKE_TEMPLATES)
+LOCALSTEPMAKE_TEMPLATES:= generic $(LOCALSTEPMAKE_TEMPLATES)
+
-default:
+all:
+-include $(addprefix $(depth)/make/,$(addsuffix -inclusions.make, $(LOCALSTEPMAKE_TEMPLATES)))
+
+-include $(addprefix $(stepdir)/,$(addsuffix -inclusions.make, $(STEPMAKE_TEMPLATES)))
+
+
+include $(addprefix $(stepdir)/,$(addsuffix -vars.make, $(STEPMAKE_TEMPLATES)))
+
+# ugh. need to do this because of PATH :=$(topdir)/..:$(PATH)
include $(addprefix $(depth)/make/,$(addsuffix -vars.make, $(LOCALSTEPMAKE_TEMPLATES)))
-include $(addprefix $(stepdir)/,$(addsuffix -vars.make, $(STEPMAKE_TEMPLATES)))
+
+
include $(addprefix $(depth)/make/,$(addsuffix -rules.make, $(LOCALSTEPMAKE_TEMPLATES)))
include $(addprefix $(stepdir)/,$(addsuffix -rules.make, $(STEPMAKE_TEMPLATES)))
include $(addprefix $(depth)/make/,$(addsuffix -targets.make, $(LOCALSTEPMAKE_TEMPLATES)))
include $(addprefix $(stepdir)/,$(addsuffix -targets.make, $(STEPMAKE_TEMPLATES)))
-