aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile35
1 files changed, 35 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b5c8120
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,35 @@
+CC=gcc
+CFLAGS=-Wall -Wextra -Werror -Wswitch-enum -ggdb -fsanitize=address -std=c11
+LIBS=
+ARGS=
+OUT=ovm.out
+
+SRC=src
+DIST=build
+
+CODE=$(addprefix $(SRC)/, main.c)
+OBJECTS=$(CODE:$(SRC)/%.c=$(DIST)/%.o)
+DEPS=$(OBJECTS:%.o=%.d)
+
+.PHONY: all
+all: $(OUT)
+
+$(OUT): $(DIST)/$(OUT)
+
+$(DIST)/$(OUT): $(OBJECTS)
+ mkdir -p $(DIST)
+ $(CC) $(CFLAGS) $^ -o $@ $(LIBS)
+
+-include $(DEPS)
+
+$(DIST)/%.o: $(SRC)/%.c
+ mkdir -p $(DIST)
+ $(CC) $(CFLAGS) -MMD -c $< -o $@ $(LIBS)
+
+.PHONY: run
+run: $(DIST)/$(OUT)
+ ./$^ $(ARGS)
+
+.PHONY:
+clean:
+ rm -rfv $(DIST)/*