makefile中.refresh的目的是什么?

时间:2016-01-04 15:36:44

标签: makefile

我正在分析eclipse中自动生成的makefile,我发现了一些我无法找到解释的东西。

“src \ Eep.EepIO.o.opt”行中:.refresh .refresh 是什么?

@argfile 是什么意思?

以下是.mk文件内容供参考

C_FILES += "..\src\Eep\EepIO.c"
OBJ_FILES += "src\Eep\EepIO.o"
"src\Eep\EepIO.o" : "..\src\Eep\EepIO.c" "src\Eep\.EepIO.o.opt"
    @echo Compiling ${<F}
    @"${PRODDIR}\bin\cctc" -f "src\Eep\.EepIO.o.opt"

"src\Eep\.EepIO.o.opt" : .refresh
    @argfile "src\Eep\.EepIO.o.opt" -o "src\Eep\EepIO.o" "..\src\Eep\EepIO.c" -Ctc23x --lsl-core=vtc -t -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\Fbl" -Wa-H"sfr/regtc23x.def" -Wa-gAHLs --emit-locals=-equs,-symbols -Wa-Ogs -Wa--error-limit=42 -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\cnf" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\_Common" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\_Template" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\Eep" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\Fbl" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\Flash" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\SecMod" -I"C:\Users\malagonm\Documents\Projects\TC237Fbl\src\WrapNv" --iso=99 --language=-gcc,-volatile,+strings,-kanji --fp-model=3 --switch=auto --align=0 --default-near-size=8 --default-a0-size=0 --default-a1-size=0 -ONrPfceogvIlywakMsU --tradeoff=4 --compact-max-size=200 -g --source -c --dep-file="src\Eep\.EepIO.o.d" -Wc--make-target="src\Eep\EepIO.o"
DEPENDENCY_FILES += "src\Eep\.EepIO.o.d"


GENERATED_FILES += "src\Eep\EepIO.o" "src\Eep\.EepIO.o.opt" "src\Eep\.EepIO.o.d" "src\Eep\EepIO.src" "src\Eep\EepIO.lst"

1 个答案:

答案 0 :(得分:1)

该行:

"src\Eep\.EepIO.o.opt" : .refresh

表示文件src\Eep\.EepIO.o.opt取决于文件.refresh。如果.refresh已更改,它将运行以下命令来重建目标src\Eep\.EepIO.o.opt。在这种情况下,该命令是

@argfile "src\Eep\.EepIO.o.opt" -o "src\Eep\EepIO.o"...

@符号只是抑制命令的输出。所以它实际运行的命令是argfile