CS3502/project2/Makefile
2025-10-28 22:15:17 -04:00

31 lines
555 B
Makefile

SRC_DIR := ./src
BUILD_DIR := ./build
EXEC ?= cpu-schedulers
INSTALL ?= $(PREFIX)/bin/
# Find all the C files we want to compile
SRCS := $(shell find $(SRC_DIR) -name '*.c')
OBJS := $(SRCS:$(SRC_DIR)/%.c=$(BUILD_DIR)/%.o)
.PHONY: build install clean
build: $(BUILD_DIR)/$(EXEC)
install: build
mkdir -p $(INSTALL)
cp $(BUILD_DIR)/$(EXEC) $(INSTALL)
# Link
$(BUILD_DIR)/$(EXEC): $(OBJS)
$(CC) $^ -o $@ $(LDFLAGS)
# Compile
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
mkdir -p $(dir $@)
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
clean:
rm -r $(BUILD_DIR)