kernel: integrate flanterm into build system

This commit is contained in:
Matheus
2023-04-09 17:59:50 -03:00
parent 3ede2c4f94
commit d660aa7e49
3 changed files with 14 additions and 4 deletions
+1
View File
@@ -28,6 +28,7 @@ kernel:
clean-kernel: clean-kernel:
find builds/astral/ -name *.o -delete find builds/astral/ -name *.o -delete
find builds/astral/ -name *.asmo -delete
clean: clean:
make clean-kernel make clean-kernel
+9 -4
View File
@@ -8,14 +8,19 @@ ARCHDIR=$(shell pwd)/arch/$(TARGET)/
LDFLAGS=-ffreestanding -nostdlib -lgcc -Wl,-T,"$(ARCHDIR)/kernel.ld" -debug LDFLAGS=-ffreestanding -nostdlib -lgcc -Wl,-T,"$(ARCHDIR)/kernel.ld" -debug
# required for mpaland printf so it doesn't compile with floating point support, which results in build failures # required for mpaland printf so it doesn't compile with floating point support, which results in build failures
PRINTFOPTS=-DPRINTF_DISABLE_SUPPORT_FLOAT PRINTFOPTS=-DPRINTF_DISABLE_SUPPORT_FLOAT
CFLAGS=-ffreestanding -mcmodel=kernel -O2 -mno-red-zone -mno-mmx -mno-sse -mno-sse2 -nostdlib -Wall -I "${INCDIR}" -I "$(ARCHINCDIR)" $(PRINTFOPTS) # flanterm includes break if the headers are moved into the include dir in the tree
FLANTERMINCDIR=$(shell pwd)/flanterm
CFLAGS=-ffreestanding -mcmodel=kernel -O2 -mno-red-zone -mno-mmx -mno-sse -mno-sse2 -nostdlib -Wall -I "${INCDIR}" -I "$(ARCHINCDIR)" -I "$(FLANTERMINCDIR)" $(PRINTFOPTS)
ASFLAGS=-felf64 ASFLAGS=-felf64
astral: $(OBJS) astral: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^ @echo [LD] $@
@$(LD) $(LDFLAGS) -o $@ $^
%.o: %.c %.o: %.c
$(CC) $(CFLAGS) -c -o $@ $< @echo [CC] $@
@$(CC) $(CFLAGS) -c -o $@ $<
%.asmo: %.asm %.asmo: %.asm
nasm $(ASFLAGS) -o $@ $< @echo [AS] $@
@nasm $(ASFLAGS) -o $@ $<
+4
View File
@@ -6,6 +6,10 @@ imagedeps="wget"
flanterm_commit="f95f5584fb87577908beff8cbe0f68fee8940517" flanterm_commit="f95f5584fb87577908beff8cbe0f68fee8940517"
regenerate() { regenerate() {
rm -f include/limine.h
rm -f io/printf.c
rm -f include/printf.h
rm -rf flanterm
curl https://raw.githubusercontent.com/limine-bootloader/limine/trunk/limine.h > include/limine.h curl https://raw.githubusercontent.com/limine-bootloader/limine/trunk/limine.h > include/limine.h
pushd /tmp/ pushd /tmp/
wget https://github.com/mpaland/printf/archive/refs/tags/v4.0.0.tar.gz wget https://github.com/mpaland/printf/archive/refs/tags/v4.0.0.tar.gz