1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #
- # Copyright (C) 2018 bzt (bztsrc@github)
- #
- # Permission is hereby granted, free of charge, to any person
- # obtaining a copy of this software and associated documentation
- # files (the "Software"), to deal in the Software without
- # restriction, including without limitation the rights to use, copy,
- # modify, merge, publish, distribute, sublicense, and/or sell copies
- # of the Software, and to permit persons to whom the Software is
- # furnished to do so, subject to the following conditions:
- #
- # The above copyright notice and this permission notice shall be
- # included in all copies or substantial portions of the Software.
- #
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- # DEALINGS IN THE SOFTWARE.
- #
- #
- SRCS = $(wildcard *.c)
- OBJS = $(SRCS:.c=.o)
- CFLAGS = -Wall -O2 -ffreestanding -nostdinc -nostdlib -mcpu=cortex-a53+nosimd
- all: clean kernel8.img
- start.o: start.S
- clang --target=aarch64-elf $(CFLAGS) -c start.S -o start.o
- %.o: %.c
- clang --target=aarch64-elf $(CFLAGS) -c $< -o $@
- tar:
- tar -cf ramdisk *.md *.c *.h
- cpio:
- ls *.md *.c *.h | cpio -H hpodc -o >ramdisk
- rd.o: ramdisk
- ld.lld -m aarch64elf -r -b binary -o rd.o ramdisk
- kernel8.img: start.o rd.o $(OBJS)
- ld.lld -m aarch64elf -nostdlib start.o rd.o $(OBJS) -T link.ld -o kernel8.elf
- llvm-objcopy -O binary kernel8.elf kernel8.img
- clean:
- rm kernel8.elf *.o >/dev/null 2>/dev/null || true
- run:
- qemu-system-aarch64 -M raspi3b -kernel kernel8.img -serial stdio
|