# make/Stepmake.make
-include $(depth)/make/toplevel-version.make
+# If usescons=something then reroute to scons if user is using that.
+ifdef usescons
+
+SCONS_USER = $(wildcard $(depth)/.sconsign)
+ifeq ($(SCONS_USER),)
+SCONS_USER = $(wildcard $(depth)/.sconf_temp)
+endif
+ifneq ($(SCONS_USER),)
+
+ifeq ($(strip $(depth)),..)
+here = $(notdir $(CURDIR))
+else
+ifeq ($(strip $(depth)),../..)
+# ZUCHT?
+# here = $(notdir $(dir $(CURDIR)))/$(notdir $(CURDIR))
+here = $(shell basename $$(dirname $(CURDIR)))/$(notdir $(CURDIR))
+endif
+endif
+
+MAKE_TARGETS = config deb diff dist distclean doc release po \
+po-replace po-update all clean check default exe help install lib web \
+web-install web-clean TAGS
+
+$(MAKE_TARGETS): scons
+
+# To make this trickery complete, we could have ./configure remove
+# traces of scons configuration.
+scons:
+ @echo "warning: $(SCONS_USER) detected, rerouting to scons"
+ cd $(depth) && scons $(here) $(MAKECMDGOALS)
+ false
+endif
+endif
# Use alternate configurations alongside eachother:
endif
ifdef config
- configuration=$(config)
+ config_make=$(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
+ config_make=$(depth)/config$(CONFIGSUFFIX).make
endif
-include $(configuration)
+outroot=.
+
+include $(config_make)
+
+include $(depth)/make/toplevel-version.make
+
+#
+# suggested settings
+#
+# CPU_COUNT=2 ## for SMP/Multicore machine
+#
+-include $(depth)/local.make
+
+MICRO_VERSION=$(PATCH_LEVEL)
+BUILD_VERSION=1
-ifeq ($(builddir),.)
- outroot=$(builddir)
-else
- outroot=$(depth)/$(builddir)/$(patsubst $(shell cd $(depth); pwd)%,%,$(shell cd .; pwd))
-endif
outdir=$(outroot)/$(outbase)
-config_h=$(depth)/$(builddir)/config$(CONFIGSUFFIX).h
+
+# why not generic ??
+config_h=$(top-build-dir)/config$(CONFIGSUFFIX).hh
+
+# The outdir that was configured for: best guess to find binaries
+outconfbase=out$(CONFIGSUFFIX)
+outconfdir=$(outroot)/$(outconfbase)
# user package
stepdir = $(stepmake)/stepmake
# for stepmake package
# stepdir = $(depth)/stepmake
-STEPMAKE_TEMPLATES := generic $(STEPMAKE_TEMPLATES)
+STEPMAKE_TEMPLATES := generic $(STEPMAKE_TEMPLATES)
LOCALSTEPMAKE_TEMPLATES:= generic $(LOCALSTEPMAKE_TEMPLATES)
# Don't try to outsmart us, you puny computer!
# Well, UGH. This only removes builtin rules from
# subsequent $(MAKE)s, *not* from the current run!
-ifeq (0,${MAKELEVEL})
+ifeq ($(BUILTINS_REMOVED),)
+ export BUILTINS_REMOVED = yes
MAKE:=$(MAKE) --no-builtin-rules
include $(stepdir)/no-builtin-rules.make
endif
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 $(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)))
+# ugh. need to do this because of PATH :=$(top-src-dir)/..:$(PATH)
+include $(addprefix $(depth)/make/,$(addsuffix -vars.make, $(LOCALSTEPMAKE_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)))