forked from f0rki/mapping-high-level-constructs-to-llvm-ir
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
38 lines (30 loc) · 1.47 KB
/
Makefile
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
# Minimal makefile for Sphinx documentation
# NOTE: You must either add the current user to the docker group (insecure)
# NOTE: or use 'sudo' as a prefix to make when you invoke any of the docker-*
# NOTE: commands.
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SPHINXPROJ = MappingHighLevelConstructstoLLVMIR
SOURCEDIR = .
BUILDDIR = _build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
# Build a new docker container with the name 'llvm-ir'.
docker-build:
# NOTE: The command below requires sudo: sudo make docker-build
docker build --build-arg=NATIVE_UID=$(id -u ${USER}) --build-arg=NATIVE_GID=$(id -g ${USER}) -t llvm-ir .
# Run Sphinx inside the docker container.
docker-make:
# NOTE: The command below requires sudo: sudo make docker-make O=html
docker run -w /app --mount type=bind,src="$(shell pwd)",target=/app llvm-ir sh -c "make $(SPHINXOPTS) $(O)"
# Run a command in the app folder inside the docker container.
docker-run:
# NOTE: The command below requires sudo: sudo make docker-run O="ls -l"
docker run --rm --interactive --tty --volume $(shell pwd):/app llvm-ir $(O)