-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
29 lines (22 loc) · 859 Bytes
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
TOOLCHAIN_PATH = /home/tux/Dokumente/hhu/Masterarbeit/dd-OS/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin
ASM = aarch64-none-elf-gcc
CXX = aarch64-none-elf-gcc
LINKER = aarch64-none-elf-ld
OBJCPY = aarch64-none-elf-objcopy
CFILES = $(wildcard ./*.c)
OFILES = $(CFILES:.c=.o)
INCLUDES = -I./
GCCFLAGS = -Wall -O0 -ffreestanding -nostdinc -nostdlib -nostartfiles
LDFLAGS = -nostdlib -nostartfiles $(INCLUDES)
DELETE = rm
all: clean kernel8.img
startup.o: startup.S
$(TOOLCHAIN_PATH)/$(ASM) $(GCCFLAGS) -c startup.S -o startup.o
%.o: %.c
$(TOOLCHAIN_PATH)/$(CXX) $(GCCFLAGS) -c $< -o $@
kernel8.img: startup.o $(OFILES)
$(TOOLCHAIN_PATH)/$(LINKER) $(LDFLAGS) startup.o $(OFILES) -T link.ld -o kernel8.elf
$(TOOLCHAIN_PATH)/$(OBJCPY) -O binary kernel8.elf kernel8.img
clean:
$(DELETE) -rf kernel8.img
$(DELETE) -rf startup.o kernel8.elf $(OFILES)