⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 参照MINIX3写的操作系统 用GCC+NASM+BOCHS开发
💻
字号:
######################## 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 + -