2014-12-04 59 views
1

不同的標誌我有幾個文件進行編譯:one.ftwo.f ... ten.f的Makefile:類似文件

一些需要與不同的標誌進行編譯。例如,從one.ffive.f需要編譯ifort -Osix.ften.f需要編譯ifort -O2

我該如何制定兩個隱式規則來知道哪些文件使用哪些標誌進行編譯?或者以任何方式組合在一起,所以我不必按文件指定文件。

同理:

一些依賴於模塊mod.f上和別人不一樣。我可以指定這種依賴關係,而不用逐個文件地完成它嗎?

回答

1

你可以絕對地指定每個目標的依賴關係,但是你確實需要一種方法來指定正確的目標(可能是顯式的),但不一定需要手動指定(或者在一個變量中構建列表已經)。

one.o two.o three.o four.o five.o: mod.f將添加爲這些目標的先決條件(不管是什麼規則實際上是建立這些目標。

同樣可以分配6.11 Target-specific variables並使用這些。

one.o two.o three.o four.o five.o: FFLAGS+=-O 
six.o seven.o eight.o nine.o ten.o: FFLAGS+=-O2 

將添加正確的優化標誌內置%.o: %.f(或其他任何使用$(FFLAGS)