我想使用的autoconf/automake的工具鏈,以創建一個非常簡單的構建腳本空make文件(主要是作爲一個學習的過程。)的Autoconf/Automake的生成
大多數例子似乎表明,你需要一個將每個源目錄中的Makefile.am
分開,並且項目根目錄中的Makefile.am
文件應包含SUBDIRS
指令,該指令告訴autoconf在哪裏查找其他Makefile。
我認爲對於一個非常簡單的項目,在項目根目錄中可能只有一個Makefile.am
。但是,當我嘗試執行此操作並運行生成的configure
腳本時,它將在項目根目錄中創建一個空的Makefile(0字節)。
我不確定我在做什麼錯誤。
所以,我的目錄結構非常簡單:
MyProject
---src
------myproject.cpp
---Makefile.am
---configure.ac
的configure.ac
文件是最小的:
AC_INIT(myproject, 1.0)
AC_MSG_NOTICE([My Project])
AC_PROG_CXX
AC_LANG(C++)
AC_CHECK_HEADERS(iostream)
AC_CONFIG_SRCDIR(src/myproject.cpp)
AM_INIT_AUTOMAKE(MyProject, 1.0)
AC_OUTPUT(Makefile)
而且Makefile.am
也很簡單:
bin_PROGRAMS = myproject
myproject_SOURCES = src/myproject.cpp
myproject_CPPFLAGS = --std=c++11
我跑:
autoconf configure.ac > configure
當我運行configure腳本時,沒有錯誤。
然後我看到它產生在項目根目錄Makefile
:
# ls -lh | grep Make
-rw-r--r-- 1 root root 0 Nov 8 16:13 Makefile
-rw-r--r-- 1 root root 98 Nov 8 15:53 Makefile.am
-rw-r--r-- 1 root root 0 Nov 8 15:00 Makefile.in
而且你可以看到,它產生的Makefile文件完全是空的。
所以我顯然誤解了autoconf/automake應該如何工作的根本原因。我在這裏做錯了什麼?
你運行過'automake'嗎? – reinierpost 2014-11-09 22:43:47