Skip to content

Commit d77e9e8

Browse files
committed
Add a Makefile
... because they are neat!
1 parent 69dee3e commit d77e9e8

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

Makefile

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Makefile
2+
3+
# local config
4+
SWIFT_BUILD=swift build
5+
SWIFT_CLEAN=swift package clean
6+
SWIFT_BUILD_DIR=.build
7+
SWIFT_TEST=swift test
8+
CONFIGURATION=debug
9+
DOCKER=/usr/local/bin/docker
10+
#DOCKER=docker
11+
12+
# docker config
13+
SWIFT_BUILD_IMAGE="swift:5.0"
14+
#SWIFT_BUILD_IMAGE="swift:5.3.1"
15+
#SWIFT_BUILD_IMAGE="swift:5.1.3"
16+
DOCKER_BUILD_DIR=".docker$(SWIFT_BUILD_DIR)"
17+
SWIFT_DOCKER_BUILD_DIR="$(DOCKER_BUILD_DIR)/x86_64-unknown-linux/$(CONFIGURATION)"
18+
DOCKER_BUILD_PRODUCT="$(DOCKER_BUILD_DIR)/$(TOOL_NAME)"
19+
20+
21+
SWIFT_SOURCES=Sources/*/*.swift
22+
23+
all: all-native
24+
25+
#all: docker-all
26+
27+
all-native:
28+
$(SWIFT_BUILD) -c $(CONFIGURATION)
29+
30+
# Cannot test in `release` configuration?!
31+
test:
32+
$(SWIFT_TEST)
33+
34+
clean :
35+
$(SWIFT_CLEAN)
36+
# We have a different definition of "clean", might be just German
37+
# pickyness.
38+
rm -rf $(SWIFT_BUILD_DIR)
39+
40+
$(DOCKER_BUILD_PRODUCT): $(SWIFT_SOURCES)
41+
$(DOCKER) run --rm \
42+
-v "$(PWD):/src" \
43+
-v "$(PWD)/$(DOCKER_BUILD_DIR):/src/.build" \
44+
"$(SWIFT_BUILD_IMAGE)" \
45+
bash -c 'cd /src && swift build -c $(CONFIGURATION)'
46+
47+
docker-all: $(DOCKER_BUILD_PRODUCT)
48+
49+
docker-test: docker-all
50+
$(DOCKER) run --rm \
51+
-v "$(PWD):/src" \
52+
-v "$(PWD)/$(DOCKER_BUILD_DIR):/src/.build" \
53+
"$(SWIFT_BUILD_IMAGE)" \
54+
bash -c 'cd /src && swift test -c $(CONFIGURATION)'
55+
56+
docker-clean:
57+
rm $(DOCKER_BUILD_PRODUCT)
58+
59+
docker-distclean:
60+
rm -rf $(DOCKER_BUILD_DIR)
61+
62+
distclean: clean docker-distclean
63+
64+
docker-emacs:
65+
$(DOCKER) run --rm -it \
66+
-v "$(PWD):/src" \
67+
-v "$(PWD)/$(DOCKER_BUILD_DIR):/src/.build" \
68+
"$(SWIFT_BUILD_IMAGE)" \
69+
emacs /src

0 commit comments

Comments
 (0)