📄 makefile
字号:
######################## Makefile for Tinix ####################### Entry point of Tinix# It must be as same as 'KernelEntryPointPhyAddr' in load.inc!!!ENTRYPOINT = 0xA00000# Offset of entry point in kernel file# It depends on ENTRYPOINTENTRYOFFSET = 0x400# Programs, flags, etc.ASM = nasmDASM = ndisasmCC = gccLD = ldASMBFLAGS = -I includeASMKFLAGS = -I include -f elfCFLAGS = -I include -c -fno-builtin #-fno-stack-protectorLDFLAGS = -s -Ttext $(ENTRYPOINT)DASMFLAGS = -u -o $(ENTRYPOINT) -e $(ENTRYOFFSET)# This ProgramTINIXKERNEL = kernel.binOBJS = kernel/kernel.o kernel/start.o kernel/string.o kernel/klib.o kernel/main.o kernel/proc.o kernel/systemcall.o kernel/protect.o kernel/RAM.o include/global.o driver/keyboard.o driver/clock.o driver/harddisk.o mm/main.o mm/structAlloc.o mm/hole.o graphics/graphics.o graphics/graphics1.o graphics/fonts.o graphics/fontc.o#IS/main.o fs/main.o fs/BlockBuffer.o fs/InodeBuffer.o fs/RW.o fs/DirectoryBuffer.o fs/Super.o fs/Open.o fs/elf.o
DASMOUTPUT = kernel.bin.asmOBJS
OBJS2 = kernel.o start.o string.o klib.o main.o message.o keyboard.o global.o protect.o clock.o RAM.o harddisk.o memory.o## All Phony Targets.PHONY : a final image clean realclean disasm all buildimg cpfrom cptocpto: mount /dev/fd0 /mnt/floppy -o loop
cp kernel.bin /mnt/floppy/
umount /mnt/floppytest: nasm -f elf foo.asm -o foo.o
gcc -c bar.c -o bar.o
ld -s -Ttext 0xa08040 foo.o bar.o -o foobar
boot:boot/loader.bin
mount /dev/fd0 /mnt/floppy -o loop
cp boot/loader.bin /mnt/floppy/
umount /mnt/floppy
cpfrom: mount /dev/fd0 /mnt/floppy -o loop cp /mnt/floppy/start.c /ToyOS cp /mnt/floppy/kernel.asm /ToyOS cp /mnt/floppy/type.h /ToyOS cp /mnt/floppy/const.h /ToyOS cp /mnt/floppy/protect.h /ToyOS cp /mnt/floppy/string.asm /ToyOS cp /mnt/floppy/klib.h /ToyOS cp /mnt/floppy/global.h /ToyOS cp /mnt/floppy/klib.c /ToyOS cp /mnt/floppy/proc.h /ToyOS cp /mnt/floppy/main.c /ToyOS cp /mnt/floppy/message.h /ToyOS cp /mnt/floppy/message.c /ToyOS cp /mnt/floppy/keyboard.h /ToyOS cp /mnt/floppy/keyboard.c /ToyOS cp /mnt/floppy/kernel.h /ToyOS cp /mnt/floppy/global.c /ToyOS cp /mnt/floppy/clock.c /ToyOS cp /mnt/floppy/RAM.c /ToyOS cp /mnt/floppy/harddisk.c /ToyOS cp /mnt/floppy/memory.c /ToyOS umount /mnt/floppy# Default starting positiona : $(TINIXKERNEL) cpto #realcleanall : realclean everythingfinal : all cleanimage : final buildimgclean : rm -f $(OBJS)realclean : rm -f $(OBJS) $(TINIXBOOT) $(TINIXKERNEL)disasm : $(DASM) $(DASMFLAGS) $(TINIXKERNEL) > $(DASMOUTPUT)# Write "boot.bin" & "loader.bin" into floppy image "TINIX.IMG"# We assume that "TINIX.IMG" exists in current folderbuildimg : mount TINIX.IMG /mnt/floppy -o loop cp -f boot/loader.bin /mnt/floppy/ cp -f kernel.bin /mnt/floppy umount /mnt/floppy$(TINIXKERNEL) : $(OBJS) $(LD) $(LDFLAGS) -o $(TINIXKERNEL) $(OBJS)kernel/kernel.o : kernel/kernel.asm $(ASM) $(ASMKFLAGS) -o $@ $<kernel/string.o : kernel/string.asm $(ASM) $(ASMKFLAGS) -o $@ $<kernel/start.o: kernel/start.c include/toyos.h kernel/include/start.h $(CC) $(CFLAGS) -o $@ $<kernel/klib.o: kernel/klib.c include/toyos.h kernel/include/klib.h /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include/stdarg.h /usr/include/string.h /usr/include/features.h /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include/stddef.h include/const.h include/type.h include/klib.h $(CC) $(CFLAGS) -o $@ $<kernel/main.o:kernel/main.c include/toyos.h kernel/include/main.h $(CC) $(CFLAGS) -o $@ $<kernel/proc.o:kernel/proc.c include/toyos.h kernel/include/proc.h
$(CC) $(CFLAGS) -o $@ $<kernel/protect.o :kernel/protect.c include/toyos.h kernel/include/protect.h $(CC) $(CFLAGS) -o $@ $<kernel/RAM.o :kernel/RAM.c include/toyos.h kernel/include/RAM.h $(CC) $(CFLAGS) -o $@ $<
kernel/systemcall.o:kernel/systemcall.c include/toyos.h kernel/include/systemcall.h
$(CC) $(CFLAGS) -o $@ $<include/global.o : include/global.c include/toyos.h $(CC) $(CFLAGS) -o $@ $<driver/clock.o : driver/clock.c include/toyos.h driver/clock.h $(CC) $(CFLAGS) -o $@ $<driver/keyboard.o : driver/keyboard.c include/toyos.h driver/keyboard.h $(CC) $(CFLAGS) -o $@ $<driver/harddisk.o:driver/harddisk.c include/toyos.h driver/harddisk.h $(CC) $(CFLAGS) -o $@ $<mm/main.o:mm/main.c include/toyos.h mm/main.h $(CC) $(CFLAGS) -o $@ $<
mm/structAlloc.o:mm/structAlloc.c include/toyos.h mm/structAlloc.h
$(CC) $(CFLAGS) -o $@ $<
mm/hole.o:mm/hole.c include/toyos.h mm/hole.h
$(CC) $(CFLAGS) -o $@ $<
#fs/main.o: fs/main.c kernel.h fs/FileSystem.h
# $(CC) $(CFLAGS) -o $@ $<
#fs/BlockBuffer.o: fs/BlockBuffer.c kernel.h fs/FileSystem.h
# $(CC) $(CFLAGS) -o $@ $<
#fs/InodeBuffer.o:fs/InodeBuffer.c kernel.h fs/FileSystem.h
# $(CC) $(CFLAGS) -o $@ $<
#fs/RW.o:fs/RW.c kernel.h fs/FileSystem.h
# $(CC) $(CFLAGS) -o $@ $<
#fs/elf.o:fs/elf.c kernel.h fs/FileSystem.h
# $(CC) $(CFLAGS) -o $@ $<
#fs/DirectoryBuffer.o:fs/DirectoryBuffer.c kernel.h fs/FileSystem.h
# $(CC) $(CFLAGS) -o $@ $<
#fs/Super.o:fs/Super.c kernel.h fs/FileSystem.h
# $(CC) $(CFLAGS) -o $@ $<
#fs/Open.o:fs/Open.c kernel.h fs/FileSystem.h
# $(CC) $(CFLAGS) -o $@ $<#IS/main.o:IS/main.c kernel.h
# $(CC) $(CFLAGS) -o $@ $<
boot/loader.bin : boot/loader.asm boot/load.inc boot/fat12hdr.inc boot/pm.inc
$(ASM) $(ASMBFLAGS) -o $@ $<
graphics/graphics.o: graphics/graphics.asm
$(ASM) $(ASMKFLAGS) -o $@ $<
graphics/graphics1.o: graphics/graphics.c graphics/graphics.h
$(CC) $(CFLAGS) -o $@ $<
graphics/fonts.o: graphics/font.asm
$(ASM) $(ASMKFLAGS) -o $@ $<
graphics/fontc.o: graphics/font.c include/type.h include/const.h
$(CC) $(CFLAGS) -o $@ $<
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -