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