CC := /usr/bin/gcc CFLAGS = -Wall -Wpedantic -I$(INC_DIR) -O2 LDLIBS := -lm # DIRS BASE_DIR = $(pwd) SRC_DIR = src BIN_DIR = bin OBJ_DIR = obj #LIB_DIR := lib BUILD_DIR = build INC_DIR = include # TARGETS TARGET := $(BIN_DIR)/catragmx SOURCES := $(wildcard $(SRC_DIR)/*.c) OBJECTS := $(SOURCES:$(SRC_DIR)/%.c=$(BUILD_DIR)/%.o) # ALL TARGET all: $(TARGET) # COMPILE MAIN TARGET $(TARGET): $(OBJECTS) | $(BIN_DIR) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) # COMPILE OBJECTS $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR) $(CC) $(CFLAGS) -c $< -o $@ # MAKE DIRS $(BUILD_DIR): mkdir -p $(BUILD_DIR) $(BIN_DIR): mkdir -p $(BIN_DIR) # CLEAN clean: rm -rf $(BIN_DIR) rm -rf $(BUILD_DIR) distclean: clean git submodule deinit --all -f .PHONY: all clean