46 lines
858 B
Makefile
46 lines
858 B
Makefile
ifeq ($(MITTOS64),)
|
|
$(error Build environment is not activated. Please source activate)
|
|
endif
|
|
|
|
LIBDIR := $(SYSROOT)/usr/lib
|
|
LIBC := $(LIBDIR)/libc.a
|
|
|
|
CRT := crt0
|
|
CRT_OBJ := $(addprefix obj/, $(patsubst %,%.o,$(CRT)))
|
|
SRC := $(filter-out $(CRT).%, $(wildcard *.[cS]))
|
|
OBJ := $(addprefix obj/, $(patsubst %,%.o, $(basename $(SRC))))
|
|
|
|
libfile := mittos64.o
|
|
LIB_OBJ := $(LIBC)($(libfile))
|
|
|
|
CFLAGS := -Wall -Wextra -ggdb -O0
|
|
ASFLAGS := -ggdb
|
|
|
|
all: $(CRT_OBJ) $(OBJ)
|
|
|
|
OBJ_DIRS := $(sort $(dir $(CRT_OBJ) $(OBJ)))
|
|
$(CRT_OBJ): | $(OBJ_DIRS)
|
|
$(OBJ_DIRS):
|
|
mkdir -p $@
|
|
|
|
obj/%.o:%.c
|
|
$(COMPILE.c) $^ -o $@
|
|
obj/%.o:%.S
|
|
$(COMPILE.S) $^ -o $@
|
|
obj/$(libfile):$(OBJ)
|
|
$(LD) -r $^ -o $@
|
|
|
|
$(LIBC)(%):obj/%
|
|
$(AR) -d $@ $<
|
|
$(AR) -rs $@ $<
|
|
|
|
$(LIBDIR)/%: obj/%
|
|
cp $< $@
|
|
|
|
install: $(patsubst %,$(LIBDIR)/%.o,$(CRT)) $(LIB_OBJ)
|
|
|
|
clean:
|
|
rm -rf obj/
|
|
|
|
.PHONY: all clean install
|