IDE用習慣的人應該很少會去使用到makefile,但是為了生存下去,所以我也開始學習這個東西的用法.
而為了測試NMAKE.EXE 的使用方式,所以自己就會去做一些小實驗來了解一些東西,然後順便把他紀錄下來。
底下是我為了想知道$** 跟$@ 是代表什麼用意時所做的一些實驗,因為是初學者,所以各位看官就別取笑小弟我的土法煉鋼法喔~
1.準備test.mak,其內容如下:
SOURCE_FILE_NAME = test.mak
DEST_DIR = c:\maktest
BASE_NAME = test
$(DEST_DIR)\$(BASE_NAME).bin : $(SOURCE_FILE_NAME)
echo $**
echo $@
copy $** $@
all: $(BIN_DIR)\$(BASE_NAME).bin
2.進入NAMKE環境,鍵入:
C:\maktest\>NMAKE /F test.mak
3.結果
echo test.mak
test.mak
echo c:\maktest\test.bin
c:\maktest\test.bin
copy test.mak c:\maktest\test.bin
1 file(s) copied.
C:\maktest>
4.結論
可以看的到$** 是代表$(SOURCE_FILE_NAME)
而$@ 看起來是代表$(DEST_DIR)\$(BASE_NAME).bin
所以copy $** $@ 等同於 copy test.mak c:\maktest\test.bin
從makefile寫法來看:
$**應該就是[dependency]
$@ 應該就是[target]
[target]: [dependency] [dependency]
[TAB][rule] <--要注意,寫rule之前要加tab.
[TAB][rule]