--crate-type=rlib --crate-name=$* $($*_RUSTFLAGS))
SRCEXT += go
-GOBLD = go build
+GOBUILD = go build
TREELIBS =
VPATH =
mLib_LIBS = -lmLib
mLib-sym_CFLAGS = -DTREE=MLIB_SYM
+c++_VARIANTS += map
+c++-map_CXXFLAGS = -DTREE=CXX_MAP
+c++_VARIANTS += uomap
+c++-uomap_CXXFLAGS = -DTREE=CXX_UOMAP
+
+rust_VARIANTS += btree
+rust-btree_RUSTFLAGS = --cfg 'feature="btree"'
+rust_VARIANTS += hash
+rust-hash_RUSTFLAGS = --cfg 'feature="hash"'
+
+ALL_VARIANTS += golang
+TARGETS += chain.golang
+CLEAN += chain.golang
+chain.golang: chain.go
+ $(call v-tag,GOBUILD)$(GOBUILD) -o $@ $<
+
+ALL_VARIANTS += perl python
+
+lisp_VARIANTS = clisp cmucl ccl ecl sbcl
+measure-lisp = \
+ runlisp -L$1 chain.lisp -Ttime.$2.new $(DICT) >chain.$2.out
+define def-lisp-variant
+ALL_VARIANTS += lisp-$1
+lisp-$1_PROGRAM = chain.lisp
+lisp-$1_MEASURE = $$(call measure-lisp,$1,$$*)
+endef
+$(foreach v,$(lisp_VARIANTS), \
+ $(eval $(call def-lisp-variant,$v)))
+
+-include local.mk
+
define def-c-variant
ALL_VARIANTS += $1-$2
TARGETS += chain.$1-$2
$(foreach v,$($t_VARIANTS), \
$(eval $(call def-c-variant,$t,$v))))
-c++_VARIANTS += map
-c++-map_CXXFLAGS = -DTREE=CXX_MAP
-c++_VARIANTS += uomap
-c++-uomap_CXXFLAGS = -DTREE=CXX_UOMAP
-
define def-c++-variant
ALL_VARIANTS += c++-$1
TARGETS += chain.c++-$1
$(foreach v,$(c++_VARIANTS), \
$(eval $(call def-c++-variant,$v)))
-rust_VARIANTS += btree
-rust-btree_RUSTFLAGS = --cfg 'feature="btree"'
-rust_VARIANTS += hash
-rust-hash_RUSTFLAGS = --cfg 'feature="hash"'
-
define def-rust-variant
ALL_VARIANTS += rust-$1
TARGETS += chain.rust-$1
$(foreach v,$(rust_VARIANTS), \
$(eval $(call def-rust-variant,$v)))
-ALL_VARIANTS += golang
-TARGETS += chain.golang
-CLEAN += chain.golang
-chain.golang: chain.go
- $(call v-tag,GOBLD)$(GOBLD) -o $@ $<
-
-ALL_VARIANTS += perl python
-
-lisp_VARIANTS = cmucl ccl ecl sbcl
-measure-lisp = \
- runlisp -L$1 chain.lisp -Ttime.$2.new $(DICT) >chain.$2.out
-define def-lisp-variant
-ALL_VARIANTS += lisp-$1
-lisp-$1_PROGRAM = chain.lisp
-lisp-$1_MEASURE = $$(call measure-lisp,$1,$$*)
-endef
-$(foreach v,$(lisp_VARIANTS), \
- $(eval $(call def-lisp-variant,$v)))
-
CLEAN += ref
ref: $(DICT)
$(call v-tag,GEN)./chain.perl $(DICT) >$@.new && mv $@.new $@
$(call v-tag,MEASURE)$(or $($*_MEASURE),$(COMMON_MEASURE)) && \
./chkref chain.$*.out ref && mv time.$*.new time.$*
+list:
+ for i in $(ALL_VARIANTS); do echo $$i; done
+.PHONY: list
+
.PHONY: measure $(MEASURES)
all: $(TARGETS)