1 csrc = $(wildcard src/*.c) $(wildcard src/libc/*.c)
2 ssrc = $(wildcard src/*.s) $(wildcard src/libc/*.s)
4 obj = $(csrc:.c=.o) $(ssrc:.s=.o)
10 inc = -Isrc -Isrc/libc
11 gccflags = -fno-pic -ffreestanding -nostdinc -fno-builtin -fcommon
13 CFLAGS = $(ccarch) -march=i386 $(warn) $(opt) $(dbg) $(gccflags) $(inc) $(def) -MMD
14 ASFLAGS = $(asarch) -march=i386 $(dbg) -nostdinc -fno-builtin $(inc)
15 LDFLAGS = $(ldarch) -nostdlib -T kern.ld -print-gc-sections
17 ifneq ($(shell uname -m), i386)
23 # uncomment to use a specific toolchain
24 #TOOLPREFIX = x86_64-elf-
29 OBJCOPY = $(TOOLPREFIX)objcopy
30 OBJDUMP = $(TOOLPREFIX)objdump
34 $(LD) -o $@ $(obj) -Map link.map $(LDFLAGS)
37 $(CC) -o $@ $(CFLAGS) -c $<
51 QEMUFLAGS = -serial file:serial.log
55 qemu-system-i386 -kernel $(elf) $(QEMUFLAGS)
59 qemu-system-i386 -kernel $(elf) $(QEMUFLAGS) -s -S