Makefile入门

Makefile是一个非常聪明的批处理文件。

一、Makefile的简单使用:

创建一个名称为Makefile的文件(不带扩展名),用Editplus编辑器写入以下内容:

#文件生成规则
ipl.bin : ipl.nas Makefile
  ../../tolset/z_tools/nask.exe ipl.nas ipl.bin ipl.lst
helloos.img : ipl.bin Makefile
  ../../tolset/z_tools/edimg.exe imgin:../../tolset/z_tools/fdimg0at.tek \
    wbinimg src:ipl.bin len:512 from:0 to:0 imgout:helloos.img

Makefile文件说明:

#井号行注释。
"ipl.bin : ipl.nas Makefile",此行是说:如果要制作文件ipl.bin,要
先检查ipl.nas和Makefile这两个文件是否存在,如果都存在,Make工具
就会自动执行下一行命令,即:
../../tolset/z_tools/nask.exe ipl.nas ipl.bin ipl.lst
也就是自动生成ipl.bin文件。

编辑一个make.bat文件,里面就一行代码:

..\..\tolset\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9

此时调用make.bat就可以运行了。

//生成ipl.bin的命令:
make -r ipl.bin
//生成helloos.img的命令:
make -r helloos.img

//运行报错:

E:\techdoc\30dayOS\code\day02\helloos5>..\..\tolset\z_tools\make.exe -r ipl.bin
Makefile:3: *** missing separator.  Stop.

E:\techdoc\30dayOS\code\day02\helloos5>

//修复:

Editplus>>Tools>>Preferences
File>>Settings& syntax,点击Tab/Indent按钮
将Tab size设置为:4
取消对勾:Inser spaces instead of tab
顺序点击按钮:Apply,OK
将Makefile文件中的所有行前空格修改为Tab键,OK。

再次运行命令,OK!


E:\techdoc\30dayOS\code\day02\helloos5>make -r ipl.bin

E:\techdoc\30dayOS\code\day02\helloos5>..\..\tolset\z_tools\make.exe -r ipl.bin
../../tolset/z_tools/nask.exe ipl.nas ipl.bin ipl.lst

E:\techdoc\30dayOS\code\day02\helloos5>make -r helloos.img

E:\techdoc\30dayOS\code\day02\helloos5>..\..\tolset\z_tools\make.exe -r helloos.img
../../tolset/z_tools/edimg.exe imgin:../../tolset/z_tools/fdimg0at.tek \
        wbinimg src:ipl.bin len:512 from:0 to:0 imgout:helloos.img

E:\techdoc\30dayOS\code\day02\helloos5>

查看到目录下的文件已生成:

ipl.bin
helloos.img

Makefile文件编写和简单使用完成。

二、Makefile的高级用法:

删除ipl.bin和helloos.img文件后,再次运行"make -r helloos.img"命令,会先自动生成"ipl.bin"文件,再生成"helloos.img"文件,OK

E:\techdoc\30dayOS\code\day02\helloos5>make -r helloos.img

E:\techdoc\30dayOS\code\day02\helloos5>..\..\tolset\z_tools\make.exe -r helloos.img
../../tolset/z_tools/nask.exe ipl.nas ipl.bin ipl.lst
../../tolset/z_tools/edimg.exe imgin:../../tolset/z_tools/fdimg0at.tek \
        wbinimg src:ipl.bin len:512 from:0 to:0 imgout:helloos.img

E:\techdoc\30dayOS\code\day02\helloos5>

不删除ipl.bin和helloos.img文件,再次运行"make -r helloos.img"命令,会提示:“`helloos.img’ is up to date”,已是最新版本的’helloos.img’文件,不用再次运行。

E:\techdoc\30dayOS\code\day02\helloos5>make -r helloos.img

E:\techdoc\30dayOS\code\day02\helloos5>..\..\tolset\z_tools\make.exe -r helloos.img
..\..\tolset\z_tools\make.exe: `helloos.img' is up to date.

E:\techdoc\30dayOS\code\day02\helloos5>

ipl.nas新增一行显示信息"How are you!",再次运行"make -r helloos.img"命令,make重新生成了新的ipl.bin和helloos.img文件,OK

E:\techdoc\30dayOS\code\day02\helloos5>make -r helloos.img

E:\techdoc\30dayOS\code\day02\helloos5>..\..\tolset\z_tools\make.exe -r helloos.img
../../tolset/z_tools/nask.exe ipl.nas ipl.bin ipl.lst
../../tolset/z_tools/edimg.exe imgin:../../tolset/z_tools/fdimg0at.tek \
        wbinimg src:ipl.bin len:512 from:0 to:0 imgout:helloos.img

E:\techdoc\30dayOS\code\day02\helloos5>

查看文件目录:

E:\techdoc\30dayOS\code\day02\helloos5 的目录

2023-08-31  08:52              .
2023-08-31  08:52              ..
2023-08-31  08:53         1,474,560 helloos.img
2023-08-31  08:53               512 ipl.bin
2023-08-31  08:53             5,855 ipl.lst
2023-08-31  07:45             1,335 ipl.nas
2023-08-31  07:05                56 make.bat
2023-08-31  08:53               744 Makefile
               6 个文件      1,483,062 字节
               2 个目录 61,602,693,120 可用字节

E:\techdoc\30dayOS\code\day02\helloos5>

(全文完)

你可能感兴趣的:(C,服务器,linux,C)