]> git.donarmstrong.com Git - lilypond.git/blobdiff - make/stepmake.make
* stepmake/stepmake/*:
[lilypond.git] / make / stepmake.make
index 47b5cd6a9037658ac48aedeb984e9edab058187f..6ca2126168d234aaf06abc6bb1619b0cf0bbed26 100644 (file)
 # make/Stepmake.make
 
-include $(depth)/make/toplevel-version.make
+# If usescons=something then reroute to scons if user is using that.
+ifdef usescons
 
-# Don't try to outsmart us, you puny computer!
-ifeq (0,${MAKELEVEL})
-  MAKE:=$(MAKE) --no-builtin-rules
+SCONS_USER = $(wildcard $(depth)/.sconsign)
+ifeq ($(SCONS_USER),)
+SCONS_USER = $(wildcard $(depth)/.sconf_temp)
 endif
-.SUFFIXES:
+ifneq ($(SCONS_USER),)
 
-
-ifndef config
-  configuration=config
+ifeq ($(strip $(depth)),..)
+here = $(notdir $(CURDIR))
 else
-  configuration=config-$(config)
+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
 
-include $(depth)/$(configuration).make
+include $(depth)/make/toplevel-version.make
+MICRO_VERSION=$(PATCH_LEVEL)
+BUILD_VERSION=1
+
+# 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
 
-ifdef CONFIGSUFFIX
-outdir=out-$(CONFIGSUFFIX)
+# 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
-outdir=out
+  outbase=out$(CONFIGSUFFIX)
 endif
 
+ifdef config
+  config_make=$(config)
+else
+  config_make=$(depth)/config$(CONFIGSUFFIX).make
+endif
+
+outroot=.
+
+include $(config_make)
+
+outdir=$(outroot)/$(outbase)
+
+# 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 packageg
+# for stepmake package
 # stepdir = $(depth)/stepmake
 
 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 ($(BUILTINS_REMOVED),)
+  export BUILTINS_REMOVED = yes
+  MAKE:=$(MAKE) --no-builtin-rules
+  include $(stepdir)/no-builtin-rules.make
+endif
+.SUFFIXES:
 
 all:
 
@@ -41,7 +107,7 @@ all:
 
 include $(addprefix $(stepdir)/,$(addsuffix -vars.make, $(STEPMAKE_TEMPLATES)))
 
-# ugh. need to do this because of PATH :=$(topdir)/..:$(PATH) 
+# ugh. need to do this because of PATH :=$(top-src-dir)/..:$(PATH) 
 include $(addprefix $(depth)/make/,$(addsuffix -vars.make, $(LOCALSTEPMAKE_TEMPLATES))) 
 
 
@@ -49,5 +115,3 @@ include $(addprefix $(depth)/make/,$(addsuffix -rules.make, $(LOCALSTEPMAKE_TEMP
 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))) 
-
-