欢迎来到天天文库
浏览记录
ID:40558622
大小:29.62 KB
页数:12页
时间:2019-08-04
《Makefile解释实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、OBJS=bio.oconsole.oexec.ofile.ofs.oide.oioapic.okalloc.okbd.olapic.olog.omain.omp.opicirq.opipe.oproc.osleeplock.ospinlock.ostring.oswtch.osyscall.osysfile.osysproc.otimer.otrapasm.otrap.ouart.ovectors.ovm.o定义了一个变量OBJS,内容为等号后面的内容,‘’为换行符,方便阅读#Cr
2、oss-compiling(e.g.,onMacOSX)#TOOLPREFIX=i386-jos-elf#Usingnativetools(e.g.,onX86Linux)#TOOLPREFIX=#TrytoinferthecorrectTOOLPREFIXifnotset如果变量TOOLPERFIX为空那么为TOOLPREFIX赋个值objdump命令是:查看目标文件/可执行文件的构成的gcc工具/反汇编如果都不是,则将echo错误信息信息“***Error:Couldn'tfindani386-*-elfversionofGCC/binut
3、ils......”本来是从标准输出->赋给变量,重定向到了标准错误里ifndefTOOLPREFIXTOOLPREFIX:=$(shellifi386-jos-elf-objdump-i2>&1
4、grep'^elf32-i386$$'>/dev/null2>&1;thenecho'i386-jos-elf-';elifobjdump-i2>&1
5、grep'elf32-i386'>/dev/null2>&1;thenecho'';elseecho"***"1>&2;echo"***Error:Couldn'tfindani386-*-
6、elfversionofGCC/binutils."1>&2;echo"***Isthedirectorywithi386-jos-elf-gccinyourPATH?"1>&2;echo"***Ifyouri386-*-elftoolchainisinstalledwithacommand"1>&2;echo"***prefixotherthan'i386-jos-elf-',setyourTOOLPREFIX"1>&2;echo"***environmentvariabletothatprefixandrun'make'again.
7、"1>&2;echo"***Toturnoffthiserror,run'gmakeTOOLPREFIX=...'."1>&2;echo"***"1>&2;exit1;fi)endif如果变量QEMU为空,那么给QEMU赋值前面加个shell意为要执行shell脚本了如果能够在当前路径找到可执行文件qemu,那么首先不输出(因为>/dev/null了),并把该路径赋给变量QEMU,退出。如果在当前路径下能够找到可执行文件qemu-system-i386,那么不输出(因为>/dev/null了),把该路径赋给变量QEMU,退出。如果qemu和
8、qemu-system-i386的路径都为空,那么把qemu的值设为/Applications/Q.app/Contents/MacOS/i386-softmmu.app/Contents/MacOS/i386-softmmu检测qemu文件是否存在且可执行权限如果存在,则将变量QEMU设为/Applications/Q.app/Contents/MacOS/i386-softmmu.app/Contents/MacOS/i386-softmmu,并且退出。如果上面没有退出——即上面的if没进去,那么执行下面,$(echo'错误信息'),并且由
9、于是1>&2,本来是从标准输出->赋给变量,重定向到了标准错误里#Ifthemakefilecan'tfindQEMU,specifyitspathhere#QEMU=qemu-system-i386#TrytoinferthecorrectQEMUifndefQEMUQEMU=$(shellifwhichqemu>/dev/null;thenechoqemu;exit;elifwhichqemu-system-i386>/dev/null;thenechoqemu-system-i386;exit;elseqemu=/Applica
10、tions/Q.app/Contents/MacOS/i386-softmmu.app/Contents/MacOS/i386-softmmu;if
此文档下载收益归作者所有