Makefile 772 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. CC := gcc
  2. CFLAGS := -Wall -Wextra -Wpedantic -Werror -std=c99
  3. INCLUDES := -Iext/raylib/src/ -Isrc/
  4. LDFLAGS := -Lext/raylib/src/
  5. LIBS := -lraylib -lGL -lm -lpthread -ldl -lrt -lX11
  6. TARGET := vinora
  7. SRC_DIR := src
  8. SOURCES := $(shell find $(SRC_DIR) -type f -name "*.c")
  9. OBJECTS := $(SOURCES:.c=.o)
  10. RAYLIB_DIR := ext/raylib/src
  11. all: raylib $(TARGET)
  12. raylib:
  13. @$(MAKE) -C $(RAYLIB_DIR) PLATFORM=PLATFORM_DESKTOP -j2
  14. $(TARGET): $(OBJECTS) | raylib
  15. $(CC) $^ $(LDFLAGS) $(LIBS) -o $@
  16. %.o: %.c
  17. $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
  18. run: $(TARGET)
  19. ./$(TARGET)
  20. clean:
  21. rm -f $(OBJECTS) $(TARGET)
  22. nuke: clean
  23. @$(MAKE) -C $(RAYLIB_DIR) clean
  24. rebuild: clean all
  25. style-check:
  26. clang-format -n $(SOURCES)
  27. .PHONY: all raylib run clean clean-all rebuild