aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJacob Janzen <jacob.a.s.janzen@gmail.com>2024-02-14 12:01:03 -0600
committerJacob Janzen <jacob.a.s.janzen@gmail.com>2024-02-14 12:01:03 -0600
commitb5b4a5d66deefa3858bedf7bc58e6c96340e829b (patch)
tree4aa42f746be3c6ce409938796ca95175dfd1da86 /Makefile
parent8bd664e467f760db6f689eb9d30c3d685abe6de5 (diff)
major refactor
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile30
1 files changed, 21 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 6ed373f..61be5b0 100644
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,27 @@
-all: main
+CC=clang
+SRCDIR=src
+BUILDDIR=build
+TARGET=$(BUILDDIR)/main
-CFLAGS=-g
+INCLUDE_PATHS=-Iinclude
+LDFLAGS=-lcurses
-main: main.c cavegen.o ht.o
- $(CC) main.c cavegen.o ht.o -lcurses -o main -D_XOPEN_SOURCE_EXTENDED $(CFLAGS)
+SRCS=$(wildcard $(SRCDIR)/*.c)
+OBJS=$(patsubst $(SRCDIR)/%.c,$(BUILDDIR)/%.o,$(SRCS))
-cavegen.o: cavegen.c
- $(CC) cavegen.c -c -o cavegen.o $(CFLAGS)
+all: $(TARGET)
-ht.o: ht.c
- $(CC) ht.c -c -o ht.o $(CFLAGS)
+$(BUILDDIR)/%.o: $(SRCDIR)/%.c
+ mkdir -p $(BUILDDIR)
+ $(CC) -c $(CFLAGS) $(INCLUDE_PATHS) $^ -o $@
+
+$(BUILDDIR)/main.o: main.c
+ mkdir -p $(BUILDDIR)
+ $(CC) -c $(CFLAGS) $(INCLUDE_PATHS) $^ -o $@
+
+$(TARGET): $(OBJS) $(BUILDDIR)/main.o
+ mkdir -p $(BUILDDIR)
+ $(CC) -o $@ $(LDFLAGS) $^
clean:
- rm -rf main cavegen.o
+ rm -rf $(BUILDDIR)