diff options
author | Mike Crute <mike@crute.us> | 2020-05-21 14:21:29 -0700 |
---|---|---|
committer | Mike Crute <mike@crute.us> | 2020-05-28 17:55:26 -0700 |
commit | 1241cb5aaf519ac3d9187383e6784210afb1c9a9 (patch) | |
tree | 8f0437792cee037d7aebd44e7b66a130a10bee97 | |
parent | a36d0616bfee07e903e27a63348b7a65e2504c22 (diff) | |
download | alpine-ec2-ami-1241cb5aaf519ac3d9187383e6784210afb1c9a9.tar.bz2 alpine-ec2-ami-1241cb5aaf519ac3d9187383e6784210afb1c9a9.tar.xz alpine-ec2-ami-1241cb5aaf519ac3d9187383e6784210afb1c9a9.zip |
Better model make dependencies on build files
-rw-r--r-- | Makefile | 39 |
1 files changed, 20 insertions, 19 deletions
@@ -1,8 +1,9 @@ | |||
1 | # vim: ts=8 noet: | 1 | # vim: ts=8 noet: |
2 | 2 | ||
3 | ALL_SCRIPTS := $(wildcard scripts/*) | 3 | NVME_SCRIPTS := $(subst scripts/,build/,$(wildcard scripts/nvme/*)) |
4 | CORE_PROFILES := $(wildcard profiles/*/*) | 4 | CORE_PROFILES := $(wildcard profiles/*/*) |
5 | TARGET_PROFILES := $(wildcard profiles/*.conf) | 5 | TARGET_PROFILES := $(wildcard profiles/*.conf) |
6 | |||
6 | PROFILE := | 7 | PROFILE := |
7 | BUILD := | 8 | BUILD := |
8 | BUILDS := $(BUILD) | 9 | BUILDS := $(BUILD) |
@@ -24,36 +25,36 @@ __check_defined = \ | |||
24 | 25 | ||
25 | .PHONY: amis prune release-readme clean | 26 | .PHONY: amis prune release-readme clean |
26 | 27 | ||
27 | amis: build build/packer.json build/profile/$(PROFILE) build/update-release.py build/make-amis.py | 28 | amis: build/packer.json build/profile/$(PROFILE) build build/setup-ami $(NVME_SCRIPTS) |
28 | @:$(call check_defined, PROFILE, target profile name) | 29 | @:$(call check_defined, PROFILE, target profile name) |
29 | build/make-amis.py $(PROFILE) $(BUILDS) | 30 | build/builder make-amis $(PROFILE) $(BUILDS) |
30 | 31 | ||
31 | prune: build build/prune-amis.py | 32 | prune: build |
32 | @:$(call check_defined, LEVEL, pruning level) | 33 | @:$(call check_defined, LEVEL, pruning level) |
33 | @:$(call check_defined, PROFILE, target profile name) | 34 | @:$(call check_defined, PROFILE, target profile name) |
34 | build/prune-amis.py $(LEVEL) $(PROFILE) $(BUILD) | 35 | build/builder prune-amis $(LEVEL) $(PROFILE) $(BUILD) |
35 | 36 | ||
36 | release-readme: build build/gen-release-readme.py | 37 | release-readme: releases/README.md |
38 | releases/README.md: build | ||
37 | @:$(call check_defined, PROFILE, target profile name) | 39 | @:$(call check_defined, PROFILE, target profile name) |
38 | @:$(call require_var, PROFILE) | 40 | @:$(call require_var, PROFILE) |
39 | build/gen-release-readme.py $(PROFILE) | 41 | build/builder gen-release-readme $(PROFILE) |
40 | 42 | ||
41 | build: $(ALL_SCRIPTS) | 43 | build: |
44 | python3 -m venv build | ||
42 | [ -d build/profile ] || mkdir -p build/profile | 45 | [ -d build/profile ] || mkdir -p build/profile |
43 | python3 -m venv build/.py3 | 46 | build/bin/pip install -U pip pyhocon pyyaml boto3 |
44 | build/.py3/bin/pip install pyhocon pyyaml boto3 | ||
45 | (cd build; for i in $(ALL_SCRIPTS); do ln -sf ../$$i .; done) | ||
46 | 47 | ||
47 | build/packer.json: build packer.conf | 48 | echo -e "#!/bin/sh\n$$(pwd)/build/bin/python scripts/builder.py \$$@" > $@ |
48 | build/.py3/bin/pyhocon -i packer.conf -f json > build/packer.json | 49 | chmod +x $@ |
49 | 50 | ||
50 | build/profile/$(PROFILE): build build/resolve-profile.py $(CORE_PROFILES) $(TARGET_PROFILES) | 51 | build/packer.json: packer.conf build |
51 | @:$(call check_defined, PROFILE, target profile name) | 52 | build/builder convert-packer-config |
52 | build/resolve-profile.py $(PROFILE) | ||
53 | 53 | ||
54 | %.py: %.py.in build | 54 | .PHONY: build/profile/$(PROFILE) |
55 | sed "s|@PYTHON@|#!`pwd`/build/.py3/bin/python|" $< > $@ | 55 | build/profile/$(PROFILE): build $(CORE_PROFILES) $(TARGET_PROFILES) |
56 | chmod +x $@ | 56 | @:$(call check_defined, PROFILE, target profile name) |
57 | build/builder resolve-profile $(PROFILE) | ||
57 | 58 | ||
58 | clean: | 59 | clean: |
59 | rm -rf build | 60 | rm -rf build |