Files
net/exec/Makefile
2025-12-20 18:49:21 -08:00

38 lines
751 B
Makefile

# ====== Configuration ======
VHEADERS ?=
TARGET ?= i686-elf
CC := $(TARGET)-gcc
AR := $(TARGET)-ar
CFLAGS := -Wall -Wextra -ffreestanding -I . -I ../ -O2
# ====== Directories ======
OBJ_DIR := obj
# ====== File Discovery ======
SRCS := $(wildcard *.c)
OBJS := $(patsubst %.c, $(OBJ_DIR)/%.o, $(SRCS))
HEADERS := $(wildcard *.h)
# ====== Output ======
LIB := $(OBJ_DIR)/exec.a
# ====== Default Rule ======
all: $(LIB)
# ====== Build Static Library ======
$(LIB): $(OBJS)
$(AR) rcs $@ $(OBJS)
# ====== Object File Compilation ======
$(OBJ_DIR)/%.o: %.c $(HEADERS) obj
$(CC) $(CFLAGS) -c $< -o $@
# ====== Clean Rule ======
clean:
rm -rf $(OBJ_DIR) $(LIB)
obj:
mkdir -p $(OBJ_DIR)
# ====== Phony Targets ======
.PHONY: all clean obj