Forked from BOURBAKI04 / YuanShen OS
Source project has a limited visibility.
Makefile 2.52 KiB
K=kernel
U=user
OBJS = \
  entry.o \
  start.o \
  console.o \
  printf.o \
  uart.o \
  kalloc.o \
  spinlock.o \
  string.o \
  main.o \
  virtualMemory/vm.o \
  proc.o \
  swtch.o \
  trampoline.o \
  trap.o \
  syscall.o \
  sysproc.o \
  FS/bio.o \
  FS/fs.o \
  log.o \
  sleeplock.o \
  FS/file.o \
  pipe.o \
  exec.o \
  sysfile.o \
  kernelvec.o \
  plic.o \
  virtio_disk.o\
  timer.o\
  signal/signal.o\
  buddy/buddy.o\
  buddy/buddy2.o\
  buddy/testbuddy.o\
  slub/slub.o\
  CFS/cfs.o\
OBJS += \
	network/e1000.o \
	network/net.o \
	network/pci.o
ifndef TOOLPREFIX
TOOLPREFIX := $(shell if riscv64-unknown-elf-objdump -i 2>&1 | grep 'elf64-big' >/dev/null 2>&1; \
	then echo 'riscv64-unknown-elf-'; \
	elif riscv64-linux-gnu-objdump -i 2>&1 | grep 'elf64-big' >/dev/null 2>&1; \
	then echo 'riscv64-linux-gnu-'; \
	elif riscv64-unknown-linux-gnu-objdump -i 2>&1 | grep 'elf64-big' >/dev/null 2>&1; \
	then echo 'riscv64-unknown-linux-gnu-'; \
	else echo "***" 1>&2; \
	echo "*** Error: Couldn't find a riscv64 version of GCC/binutils." 1>&2; \
	echo "*** To turn off this error, run 'gmake TOOLPREFIX= ...'." 1>&2; \
	echo "***" 1>&2; exit 1; fi)
endif
CFLAGS = -Wall -Werror -O -fno-omit-frame-pointer -ggdb -gdwarf-2
CFLAGS += -MD
CFLAGS += -mcmodel=medany
# CFLAGS += -ffreestanding -fno-common -nostdlib -mno-relax
CFLAGS += -fno-common -nostdlib
CFLAGS += -fno-builtin-strncpy -fno-builtin-strncmp -fno-builtin-strlen -fno-builtin-memset
CFLAGS += -fno-builtin-memmove -fno-builtin-memcmp -fno-builtin-log -fno-builtin-bzero
CFLAGS += -fno-builtin-strchr -fno-builtin-exit -fno-builtin-malloc -fno-builtin-putc
CFLAGS += -fno-builtin-free
CFLAGS += -fno-builtin-memcpy -Wno-main