CC = gcc CFLAGS = -Wall -O2 SRC_DIR = ../src OBJ_DIR = ../obj BUILD_DIR = . TARGET = $(BUILD_DIR)/cube_render SRCS = $(wildcard $(SRC_DIR)/*.c) OBJS = $(SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) all: $(TARGET) $(TARGET): $(OBJS) $(CC) $(CFLAGS) -o $@ $^ -lm $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c @mkdir -p $(OBJ_DIR) $(CC) $(CFLAGS) -c $< -o $@ clean: rm -rf $(OBJ_DIR)/*.o $(TARGET) rebuild: clean all