libkernaux/examples/arch-riscv64-min/Makefile

44 lines
836 B
Makefile
Raw Normal View History

2022-01-13 06:38:45 +00:00
all: run
2022-01-17 18:06:32 +00:00
CCPREFIX = ../../vendor/cross/root/bin/riscv64-elf-
2022-01-13 06:38:45 +00:00
AS = $(CCPREFIX)as
CC = $(CCPREFIX)gcc
2022-01-17 12:13:54 +00:00
LIBKERNAUX_BUILD = ../../build/dev-cross-riscv64
LIBKERNAUX_DEST = ../../dest/dev-cross-riscv64
2022-01-15 16:10:56 +00:00
QEMU = qemu-system-riscv64 -serial stdio -display none
2022-01-13 06:38:45 +00:00
2022-01-13 07:11:20 +00:00
KERNEL = kernel.elf
LINKERSCR = linker.ld
CFLAGS = \
-std=c99 \
-pedantic \
-Wall \
-Wextra \
-Werror \
-ffreestanding \
-mcmodel=medany
OBJS = main.c.o start.S.o
run: $(KERNEL)
2022-01-15 16:10:56 +00:00
$(QEMU) -machine virt -bios $<
2022-01-13 07:11:20 +00:00
clean:
rm -f $(KERNEL) $(OBJS)
2022-01-15 07:57:15 +00:00
$(KERNEL): $(LINKERSCR) $(OBJS) build-libkernaux.a
$(CC) -T $(LINKERSCR) -o $@ $(OBJS) -nostdlib -lkernaux -lgcc -Wl,-L$(LIBKERNAUX_DEST)/lib
2022-01-15 07:57:15 +00:00
build-libkernaux.a:
cd $(LIBKERNAUX_BUILD) && ./config && make install
2022-01-13 07:11:20 +00:00
%.c.o: %.c
$(CC) -c $< -o $@ $(CFLAGS)
%.S.o: %.S
$(AS) $< -o $@