我有一個Makefile,它有很多目標,每個目標的配方都很相似。如何避免使用類似食譜的Makefile目標中的重複?
foo:
gcc foo.c -o foo
mv foo ~/bin
bar:
gcc bar.c -o bar
mv bar ~/bin
baz:
gcc baz.c -o baz
mv baz ~/bin
我想避免所有這些重複。我想要下面的東西(這不是有效的語法;這隻表達我的意圖)。
TARGET_NAME:
gcc $(TARGET_NAME).c -o $(TARGET_NAME)
mv $(TARGET_NAME) ~/bin
是否可以這樣做?如果不是,我可以寫的最好的Makefile是什麼,可以最大限度地減少食譜中的重複?
像@beta已經在其他地方指出的那樣,你的'Makefile'壞了,因爲你移動了你創建的文件,所以每次都會重新映射它們,無論它是否必要。此外,'go'的'-o'選項可以顯着地佔據一個子目錄。 'bin /%:%.c; gcc $ <-o $ @' – tripleee