omega/Makefile

42 lines
835 B
Makefile

CFLAGS= -Iinclude -ffreestanding -flto -nostdlib -O2 -Wall -Wextra
SRC_DIR=src
OBJ_DIR = build
SRC := $(wildcard $(SRC_DIR)/*.c $(SRC_DIR)/*.s)
SRC += $(wildcard $(SRC_DIR)/*/*.c $(SRC_DIR)/*/*.s)
OBJ := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRC))
OBJ := $(patsubst $(SRC_DIR)/%.s,$(OBJ_DIR)/%.o,$(OBJ))
DESTDIR?="/usr"
all: compile
compile: omega.a
$(OBJ_DIR):
mkdir -p $(OBJ_DIR)
omega.a: $(OBJ)
ar rcs $@ $^
build/%.o: src/%.c $(OBJ_DIR)
mkdir -p $(dir $@)
sh-elf-gcc $(CFLAGS) -c $< -o $@ -lgcc
build/%.o: src/%.s $(OBJ_DIR)
mkdir -p $(dir $@)
sh-elf-gcc $(CFLAGS) -c $< -o $@ -lgcc
install:
cp omega.a $(DESTDIR)/local/lib
cp -r include/omega $(DESTDIR)/local/include
uninstall:
rm $(DESTDIR)/local/lib/omega.a
rm -r $(DESTDIR)/local/include/omega
clean:
rm -rf build
.PHONY: all compile clean