makefile (531B)
1 SRC_DIR := src 2 OBJ_DIR := obj 3 BIN_DIR := bin 4 5 EXE := $(BIN_DIR)/app 6 7 SRC := $(wildcard $(SRC_DIR)/*.c) 8 OBJ := $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) 9 10 CPPFLAGS := -Iinclude -MMD -MP 11 CFLAGS := -Wall 12 LDFLAGS := -L/usr/local/lib 13 LDLIBS := -lSDL2 14 15 .PHONY: all clean 16 17 all: $(EXE) 18 19 $(EXE): $(OBJ) | $(BIN_DIR) 20 $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ 21 22 $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR) 23 $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ 24 25 $(BIN_DIR) $(OBJ_DIR): 26 mkdir -p $@ 27 28 clean: 29 @$(RM) -rv $(BIN_DIR) $(OBJ_DIR) 30 31 -include $(OBJ:.o=.d)