1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
# make/Stepmake.make
include $(depth)/make/toplevel-version.make
# 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
outbase=out$(CONFIGSUFFIX)
endif
ifdef config
config_make=$(config)
else
ifeq ($(builddir),)
config_make=$(depth)/config$(CONFIGSUFFIX).make
else
config_make=$(builddir)/config$(CONFIGSUFFIX).make
endif
endif
ifeq ($(builddir),)
outroot=.
else
outroot=$(builddir)/$(patsubst $(shell cd $(depth); pwd)%,%,$(pwd))
endif
include $(config_make)
outdir=$(outroot)/$(outbase)
# why not generic ??
config_h=$(builddir)/config$(CONFIGSUFFIX).h
# 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)
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:
-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 $(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)))
|