summaryrefslogtreecommitdiff
path: root/Makefile
blob: 5acf3c44bb818206cd909849b4dee8721550e065 (plain)
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
PROJROOT:=$(git rev-parse --show-toplevel)

AG:=autogen
JQ:=jq
JQ_OPTIONS:=
REGION?=us-east-1
BUILD_DIR:=_build/$(REGION)
VERBOSE?=0

ifeq ($(VERBOSE),1)
	VFILTER :=
else
	VFILTER :=>/dev/null
endif

SOURCE_TEMPLATES:=$(wildcard stacks/*.tpl)
IN_SOURCES:= stacks/codecommit-build.py
SOURCE_PARAMS:=$(wildcard params/*.tpl)
TEMPLATES:=$(patsubst %.tpl, $(BUILD_DIR)/%.template, $(SOURCE_TEMPLATES))
STACK_PARAMS:=$(patsubst %.tpl, $(BUILD_DIR)/%.params, $(SOURCE_PARAMS))
IN_OUTPUTS:=$(patsubst %,%.in, $(IN_SOURCES))

SOURCES:=$(shell find stacks/ -type f -name '*.in')

.PHONY: all
all: autogen/stack.def \
	 $(TEMPLATES) \
	 $(STACK_PARAMS)

autogen/stack.def: autogen/stack.def.in
	cat $^ > $@

$(BUILD_DIR)/%.json: %.tpl $(SOURCES) $(IN_OUTPUTS)
	mkdir -p $(dir $@)
	$(AG) --override-tpl=$< --definitions=autogen/stack.def > $@

$(BUILD_DIR)/%.template: $(BUILD_DIR)/%.json
	$(JQ) . $< > $@

$(BUILD_DIR)/%.params: $(BUILD_DIR)/%.json
	$(JQ) '.' $< > $@

%.in: %
	echo "[+ autogen5 template +]" > $@
	echo '{"Fn::Join": ["\n", [' >> $@
	$(SHELL) scm/ppag.scm $^ >> $@
	echo ']]}' >> $@

.PHONY: clean
clean:
	-rm -r $(BUILD_DIR)