autotools文檔非常混亂。我正在編寫Fortran,所以AM_CFLAGS等價物是AM_FCFLAGS。兩者的工作方式完全相同(推測)。那麼AM_(F)CFLAGS是什麼?
首先,AM_CFLAGS究竟是「什麼」,概念上?顯然,「CFLAGS」位用於設置編譯器標誌。但是「AM_」部分是什麼意思?
關於如何使用它,似乎存在相互矛盾的建議。有人說不要把它放在Makefile.am中,有人說不要把它放在configure.ac中。誰是對的?
這是我目前的Makefile.am:
AM_FCFLAGS = -Wall -O0 -C -fbacktrace
.f90.o:
$(FC) -c $(AM_FCFLAGS) $<
我希望發生的是默認使用「-Wall -O0 -C -fbacktrace」編譯如果我用gfortran編譯。但是,用戶可能希望使用不同的編譯器,例如FC = ifort,在這種情況下,他們可能必須通過FCFLAGS =「whatever」並且完全廢棄AM_FCFLAGS
用戶是否也可以覆蓋默認的AM_FCFLAGS配置選項,如果他們仍然使用gfortran?
基本上,WTF?
'AM' == automake。有關[程序變量](https://www.gnu.org/software/automake/manual/html_node/Program-Variables.html),[標誌變量排序](https://www.gnu.org/software /automake/manual/html_node/Flag-Variables-Ordering.html)和[Fortran 9x支持](https://www.gnu。org/software/automake/manual/html_node/Fortran-9x-Support.html#index-AM_005fFCFLAGS)手冊頁的部分可能在這裏最常用(從快速搜索中)。 –
使用autotools有一個[walk-through tutorial](https://autotools.io/index.html)是很好的。手冊實際上僅用於參考目的。 –