42 lines
835 B
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
|