54 lines
1.2 KiB
Makefile
54 lines
1.2 KiB
Makefile
ifeq ($(BUILDROOT),)
|
|
$(error BUILDROOT IS NOT SET!)
|
|
endif
|
|
|
|
CC := ${TARGET}-gcc
|
|
|
|
SRC := $(shell find -type f -name '*.[cS]*')
|
|
OBJ := $(patsubst %, %.o, $(basename $(basename $(SRC))))
|
|
HDR := $(shell find -type f -name '*.h')
|
|
|
|
CFLAGS := -Wall -Wextra -pedantic -ffreestanding -mcmodel=large -std=c2x
|
|
CFLAGS += -ggdb -O0
|
|
ASFLAGS += -ggdb
|
|
CPPFLAGS += -nostdinc -I include -I /opt/sysroot/usr/include
|
|
LDFLAGS := -nostdlib -r
|
|
|
|
libmittos.a: $(OBJ)
|
|
$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@
|
|
|
|
graphics/graphics.o: graphics/u_vga16.termfont.inc
|
|
graphics/u_vga16.termfont.inc:
|
|
${BUILDROOT}/toolchain/build-uni_vga.sh
|
|
|
|
# Automatic dependency tracking
|
|
DEP := $(OBJ:.o=.d)
|
|
DEPFLAGS = -MT $@ -MMD -MP -MF $*.d
|
|
$(OBJ): CPPFLAGS += $(DEPFLAGS)
|
|
%.d: ;
|
|
|
|
|
|
# Installation
|
|
DESTDIR ?= $(BUILDROOT)/sysroot
|
|
LIBDIR := $(DESTDIR)/usr/lib
|
|
INCDIR := $(DESTDIR)/usr/include/mittos
|
|
|
|
$(LIBDIR)/libmittos.a: libmittos.a
|
|
install -D $< $@
|
|
|
|
$(INCDIR)/%: include/%
|
|
mkdir -p $(INCDIR)
|
|
install -D $< $@
|
|
|
|
install: install-headers $(LIBDIR)/libmittos.a
|
|
|
|
install-headers: $(HDR:./include/%=$(INCDIR)/%)
|
|
|
|
|
|
clean:
|
|
rm -rf $(OBJ) $(DEP) libmittos.a
|
|
|
|
.PHONY: install install-headers clean
|
|
|
|
# Include automatic dependency rules
|
|
include $(DEP) |