我正在嘗試編寫一個簡單的Autotool軟件包,它只打包一個腳本。這可能看起來有些過度,但是腳本將被添加到嵌入式系統的構建系統中,並且構建系統被設計爲與Autotools良好地配合。使用Autotools打包Shell腳本時出錯
我有一個名爲wifi_query.sh
的shell腳本。要打包這個我已經按照以下步驟操作:
創建
Makefile.am
包含以下 -bin_SCRIPTS = wifi_query.sh CLEANFILES = $(bin_SCRIPTS)
- 我還創建
wifi_query.sh.in
其中包含線exec wifi_query.sh
。我不確定我瞭解.in
文件的用途。然後運行autoscan
。 然後我運行:
sed -e 's/FULL-PACKAGE-NAME/wifi_query/' \ -e 's/VERSION/1/' \ -e 's|BUG-REPORT-ADDRESS|/dev/null|' \ -e '10i\ AM_INIT_AUTOMAKE' \ <configure.scan> configure.ac
運行
touch NEWS README AUTHORS ChangeLog
。運行
autoreconf -iv
./configure
make distcheck
當我運行make distcheck
我得到一個錯誤說:「*沒有規則,使目標的wifi_query.sh」 ,'all-am'需要,停下來。「
我不明白這個錯誤,如果有人能給我任何好的指針。我的懷疑是這個錯誤可能是由於wifi_query.sh.in
,但我的autotools體驗非常有限。
你自己的回答是正確的,'wifi_query.sh.in'沒有引起問題;但也不是必要的。如果是這樣,它的目的是將平臺相關代碼交換到'wifi_query.sh'中。 – ptomato
如果你沒有對「NEWS」,「README」等有意義的內容,請考慮使用'AM_INIT_AUTOMAKE([foreign])',然後刪除空文件。 – chirlu