aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 8d1c0b8b7d71e40e3299d6981feede9ed3f16869 (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
CC = gcc
CCFLAGS = -Wall -Wextra -std=c99

SRC = bfc.c
NAME = bfc

BINDIR = bin

EXAMPLESDIR = examples
EXAMPLES = $(shell find $(EXAMPLESDIR) -name '*.bf' -type f)
EXAMPLES_NAME = $(EXAMPLES:$(EXAMPLESDIR)/%.bf=$(BINDIR)/%)

all: $(NAME) $(EXAMPLES_NAME)

$(NAME): bfc.c
	$(CC) $(CCFLAGS) -o $@ $<

$(BINDIR)/%: $(EXAMPLESDIR)/%.bf $(BINDIR)
	./$(NAME) -o $@ $<

$(BINDIR):
	mkdir -pv $@

clean:
	- rm -rv $(BINDIR)
	- rm $(NAME)

re: clean all

format:
	clang-format -i bfc.c

# weird GNU make behavior where it rm's every asm files at the end
# (https://stackoverflow.com/questions/47447369)
.PRECIOUS: $(EXAMPLES_ASM)