summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authornot_a_robot <hashimm06@outlook.com>2023-11-19 16:18:23 +0000
committernot_a_robot <hashimm06@outlook.com>2023-11-19 16:18:23 +0000
commitbee57c12a4582d56f2eb18ea632e416cbffe5528 (patch)
tree2e9a4ba2de035bf334f733996a482a3b6cb4d728 /Makefile
downloadretris-bee57c12a4582d56f2eb18ea632e416cbffe5528.tar.gz
retris-bee57c12a4582d56f2eb18ea632e416cbffe5528.tar.bz2
retris-bee57c12a4582d56f2eb18ea632e416cbffe5528.zip
initial commit
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile45
1 files changed, 45 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b2bb6df
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,45 @@
+ifneq (, $(shell which clang))
+ CC:=clang
+else ifneq (, $(shell which gcc))
+ CC:=gcc
+else ifneq (, $(shell which cc))
+ CC:=cc
+else
+ $(error "No C compiler found (!)")
+endif
+
+CFLAGS:=-Wall -Wextra -Wpedantic -std=c99 -g3
+LDFLAGS:=-I/usr/local/include/ -I/usr/X11R6/include/ -I./src/raylib/src/
+LDLIBS:=-Lobj/ -lraylib -lGL -lm -lpthread -lX11 -ldl -lrt
+DIRS:=obj bin
+BINS:=bin/retris
+
+.PHONY: all dirs clean
+
+all: dirs $(BINS)
+
+run: dirs $(BINS)
+ bin/retris
+
+bin/retris: obj/retris.o obj/libraylib.a
+ $(CC) $(CFLAGS) $(LDFLAGS) $(LDLIBS) $^ -o $@
+
+obj/%.o: src/%.c src/%.h
+ $(CC) $(CFLAGS) $(LDFLAGS) -c $< -o $@
+obj/%.o: src/%.c
+ $(CC) $(CFLAGS) $(LDFLAGS) -c $< -o $@
+obj/libraylib.a: src/raylib/src/*
+ mkdir -p src/raylib/build
+ cmake -DBUILD_EXAMPLES=OFF -S src/raylib -B src/raylib/build
+ $(MAKE) -C src/raylib/build -j8
+ cp src/raylib/build/raylib/libraylib.a obj/
+
+dirs: $(DIRS)
+$(DIRS):
+ @mkdir -p $(DIRS)
+
+clean:
+ rm -rf bin/* obj/* src/raylib/build
+# fast clean - raylib rarely, if ever, needs to be cleaned
+fclean:
+ rm -f bin/* obj/*.o