PKGS=libtiff-4 raylib EXE=prog BUILD_DIR=build/ OBJ_DIR=$(BUILD_DIR)obj/ SRC_DIR=src/ INC_DIR=include/ SRCS=$(shell find $(SRC_DIR) -iname \*.c) OBJS_sub=$(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS)) OBJS=$(OBJS_sub:.c=.o) OBJ_DIRS_sub=$(shell find $(SRC_DIR) -type d) OBJ_DIRS=$(subst $(SRC_DIR),$(OBJ_DIR),$(OBJ_DIRS_sub)) PKGCONF=pkgconf CFLAGS= CFLAGS+=$(shell $(PKGCONF) --cflags $(PKGS)) CFLAGS+=-I$(INC_DIR) LDFLAGS= LDFLAGS+=$(shell $(PKGCONF) --libs $(PKGS)) default: clean build .PHONY: clean build run build: $(BUILD_DIR)$(EXE) $(BUILD_DIR)$(EXE): $(OBJS) @echo LD --\> $@ @gcc -o $@ $(LDFLAGS) $^ $(OBJ_DIR)%.o: $(SRC_DIR)%.c @echo CC $< --\> $@ @gcc -o $@ $(CFLAGS) -c $< clean: @echo Cleaning build files... @-rm -rf $(OBJ_DIR) $(BUILD_DIR) @mkdir -p $(OBJ_DIR) $(BUILD_DIR) $(OBJ_DIRS) run: $(BUILD_DIR)$(EXE) @echo Executing... @./$(BUILD_DIR)$(EXE)