2009-11-12 68 views
2

當我使用「make」運行我的autotools生成的Makefile時,它會生成當前目錄中的文件。我寧願它不「污染」我的目錄,但將程序移動到「bin /」(因爲源是在「src /」中)Autotools本地目標目錄

這是可能的autotools? (使用autoconf和automake的 - 不libtool的)

回答

3
mkdir builddir 
cd builddir 
../foobar-1.2.3/configure --my --options (or) 
/path/to/foobar-1.2.3/configure --my --options 
make 
make foobar 
make check 
make install 

我通常最終會手動構建時蒙山是一樣的東西

cd foobar-1.2.3 
(mkdir _b && cd _b && ../configure --prefix=$PWD/../_i) 
make -C _b all check install installcheck 
./_i/bin/foobar 
vi foo.c bar.c foobar.h 
gimp icons/foobar-moo.png 
make -C _b install && ./_i/bin/foobar 

然後,我有相關的foobar的程序一個目錄foobar-1.2.3內整個東西包括源代碼,構建文件和測試安裝。

foobar-1.2.3/_b內置的文件很容易與rm -rf _b去除,並且測試安裝與rm -rf _i,從與當前工作目錄foobar-1.2.3一個shell編輯源代碼樹的過程。

當然,您可以使用該版本的一個變體,並將生成/安裝目錄移至一個目錄:foobar-1.2.3--bfoobar-1.2.3--i以及foobar-1.2.3

+0

看起來不錯,我可能會最終使用這個。但是,默認情況下沒有簡單的方法來重定向嗎? – alternative 2009-11-12 00:29:18

+0

Automake創建的make規則可以編譯到源目錄樹中,並且可以編譯爲源目錄樹的一種「空白鏡像」。沒有第三種選擇。 – ndim 2009-11-12 00:43:28

+0

你能詳細說明一下嗎? – alternative 2009-11-12 01:02:52