2012-07-09 24 views
0

在autotools項目中使用一些正在使用某些路徑的腳本我想將./configure期間由用戶輸入的前綴轉發給這些腳本。假設我有一個bash腳本,它在./configure期間設置的目錄中回顯文件。什麼是最好的方式來做到這一點?我正在考慮使用預處理程序使用的myscript.sh.hpp,並將-DMYPATH傳遞給預處理程序以將其替換爲myscript.sh.hpp以使用適當的路徑生成myscript.sh。這是正確的方向嗎?autotools項目 - 在腳本中使用前綴變量

+0

我不明白你的問題,你能給出一個更具體的例子嗎? – ptomato 2012-07-09 08:13:47

+0

我bash腳本像 #!/斌/慶典 LS/usr/sbin目錄 我不想硬編碼的路徑,我想這是/ usr/sbin目錄默認,但可被覆蓋時安裝。即./configure --prefix =/usr/local/sbin && make會生成這樣的文件 #!/ bin/bash ls/usr/local/sbin – Artem 2012-07-09 16:42:33

+0

很難知道這裏有什麼問題 - 是shell腳本替換或'hpp'來源? (哈哈) - 但聽起來你需要使用[AC_SUBST](http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Setting-Output-Variables.html #設置 - 輸出變量) – 2012-07-09 17:25:06

回答

1

prefix是您的軟件安裝位置,並不是真正的正確位置來尋找像bash這樣的東西。給用戶提供指定一個bash解釋器或探測PATH來查找bash並使用該值的能力會更好。但是,通常需要在腳本中引用prefix。最簡單的方法是讓config.status擴展它。在configure.ac:

AC_CONFIG_FILES([foo]) 

和foo.in

@[email protected]