aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile30
1 files changed, 23 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 02592c9..4ee4e14 100644
--- a/Makefile
+++ b/Makefile
@@ -8,9 +8,21 @@ assembly_source_files := $(wildcard arch/$(arch)/boot/*.asm)
assembly_object_files := $(patsubst arch/$(arch)/boot/%.asm, \
build/arch/$(arch)/%.o, $(assembly_source_files))
-c_source_files := $(wildcard kernel/*.c)
-c_object_files := $(patsubst kernel/%.c, \
- build/kernel/%.o, $(c_source_files))
+dats_source_files := $(wildcard kernel/*.dats)
+dats_object_files := $(patsubst kernel/%.dats, \
+ build/kernel/%_dats.o, $(dats_source_files))
+
+PATSCC=patscc
+
+INCLUDE_ATS :=
+INCLUDE_ATS += -I${PATSHOME}
+INCLUDE_ATS += -I${PATSHOME}/ccomp/runtime
+
+CLFAGS_ATS :=
+CFLAGS_ATS += -D_ATS_CCOMP_RUNTIME_NONE_
+CFLAGS_ATS += -D_ATS_CCOMP_EXCEPTION_NONE_
+
+CFLAGS=-ffreestanding -mcmodel=large -mno-red-zone -mno-mmx -mno-sse -mno-sse2 -m64
.PHONY: all clean run iso
@@ -31,15 +43,19 @@ $(iso): $(kernel) $(grub_cfg)
@grub-mkrescue -o $(iso) build/isofiles 2> /dev/null
@rm -r build/isofiles
-$(kernel): $(assembly_object_files) $(linker_script) $(c_object_files)
- @ld -n -T $(linker_script) -o $(kernel) $(assembly_object_files) $(c_object_files) -nostdlib -z noexecstack
+$(kernel): $(assembly_object_files) $(linker_script) $(dats_object_files)
+ @ld -n -T $(linker_script) -o $(kernel) $(assembly_object_files) $(dats_object_files) -nostdlib -z noexecstack
# compile assembly files
build/arch/$(arch)/%.o: arch/$(arch)/boot/%.asm
@mkdir -p $(shell dirname $@)
@nasm -felf64 $< -o $@
-build/kernel/%.o: kernel/%.c
+build/kernel/%_dats.c: $(dats_source_files)
@mkdir -p $(shell dirname $@)
- @gcc -ffreestanding -mcmodel=large -mno-red-zone -mno-mmx -mno-sse -mno-sse2 -m64 -c $< -o $@
+ $(PATSCC) -ccats - $<
+ @mv *_dats.c build/kernel/
+build/kernel/%.o: build/kernel/%.c
+ @mkdir -p $(shell dirname $@)
+ $(CC) $(INCLUDE_ATS) $(CFLAGS) $(CFLAGS_ATS) -O2 -c $< -o $@