#Makefile(kernel) #Kernel Makefile #(C) 2014-2015 VOSystems. #Target KERNEL_BIN = Kernel.vsb # Define RM = /bin/rm CC = gcc AS = ${CC} LD = ld OBJCOPY = objcopy CFLAG = -m32 -ffreestanding -fno-common -masm=intel -nostdlib -fno-builtin -fomit-frame-pointer -O2 -c AFLAG = -m32 -ffreestanding -fno-common -fno-builtin -fomit-frame-pointer -O2 -c LFLAG = -Ttext 0x100000 -melf_i386 --oformat elf32-i386 -o #-T link.ls -melf-i386 --oformat elf32-i386 -o INCLUDE = -I${INCDIR} # Dir INCDIR = ../include BINDIR = ../bin LIBDIR = ../lib # Lib DMA_LIB = ${LIBDIR}/dma.lib VGA_LIB = ${LIBDIR}/vga.lib RFS_LIB = ${LIBDIR}/ramfs.lib KBD_LIB = ${LIBDIR}/keyboard.lib # Sufix .c.o: ${CC} ${INCLUDE} ${CFLAG} $< .S.o: ${AS} ${INCLUDE} ${AFLAG} $< # Sources_C KERNEL_C = kernel.c INIT_C = init.c PAGE_C = paging.c PHYMEM_C = physicalmem.c PROC_C = proc.c TSS_C = tss.c DIV_API_C = DivergeAPI.c STRING_C = string.c INT_C = interrupt.c KSTDIO_C = kstdio.c ENV_C = env.c #KBD_C = keyboard.c #SC_C = scancode.c MBINFO_C = mbootinfo.c DMSG_C = dmsg.c DLKB_C = DLKB.c DKSH_C = DKsh.c CPUINFO_C = cpuinfo.c #CURSOL_C = cursol.c #DRFS_C = DrFS.c BITMAP_C = BitMap.c AC_C = Account.c TIME_C = time.c # Source_ASM LOAD_S = load.S INT_S = interrupt_gate.S CPU_S = io_cpu.S TASK_S = task.S KERNEL_OBJ=${LOAD_S:.S=.o} ${KERNEL_C:.c=.o} ${CPU_S:.S=.o} ${INT_S:.S=.o} ${INIT_C:.c=.o} ${PAGE_C:.c=.o} ${PHYMEM_C:.c=.o} ${PROC_C:.c=.o} ${TSS_C:.c=.o} ${DIV_API_C:.c=.o} ${STRING_C:.c=.o} ${INT_C:.c=.o} ${KSTDIO_C:.c=.o} ${ENV_C:.c=.o} ${MBINFO_C:.c=.o} ${DMSG_C:.c=.o} ${TASK_S:.S=.o} ${DLKB_C:.c=.o} ${DKSH_C:.c=.o} ${CPUINFO_C:.c=.o} ${BITMAP_C:.c=.o} ${TIME_C:.c=.o} #${AC_C:.c=.o} ${KBD_C:.c=.o} ${CURSOL_C:.c=.o} ${DRFS_C:.c=.o} ${SC_C:.c=.o} rebuild: ${MAKE} clean ${MAKE} kernel kernel: ${MAKE} ${KERNEL_BIN} @echo " Make Kernel Succcessfully!!" ${KERNEL_BIN}:${KERNEL_OBJ} ${LD} ${LFLAG} ${KERNEL_BIN} ${KERNEL_OBJ} ${DMA_LIB} ${VGA_LIB} ${KBD_LIB} ${RFS_LIB} clean:: -${RM} -f *.~ *.lo *.o make.log *.bak .a.out .core .*.core *.vsb *~