2013-10-16 83 views
2

我通常編寫一個帶有install目標的makefile,以便可以使用make && make install進行編譯和安裝。這適用於Shell和C項目。但是,當我使用Python時,我通常會編寫一個setup.py以正確安裝模塊。合併makefile和setup.py

在makefile中,我想調用./setup.py install,我不知道如何獲取makefile的所有參數,比如DESTDIR就好。 Debian使用一些特殊的魔法,當我在其中只包含一個setup.py的東西時。目前有makefile使用makefile魔術。

或者是有可能調用rst2mangzip和那些文件從setup.py安裝到$(DESTDIR)/usr/share/man?然後我可以把所有東西都放進setup.py

我如何將兩者結合?

+0

當你在沒有Make的情況下運行'setup.py'時,你如何獲得像'DESTDIR'這樣的參數? – Beta

+0

'debuild'魔法對我來說就是這樣。 –

回答

1

默認情況下,setup.py將模塊安裝到sys.prefix中(您可以使用不同的Pythons以及不同的sys.prefix)。

您可以用--prefix參數覆蓋setup.py

例如爲:

build : 
    cd module && CPPFLAGS=${CPPFLAGS} python setup.py build --prefix=${PREFIX} 

install : 
    cd module && CPPFLAGS=${CPPFLAGS} python setup.py install --prefix=${PREFIX} 

詳情請參閱How installation works

+0

問題是,在Debian上需要將佈局設置爲'deb',而我認爲不應該在上游源中設置佈局。 –

+0

@queueoverflow我對Debian不熟悉。我的意思是你可以控制安裝路徑和構建標誌。我使用GNU make從頭開始構建自己的Python堆棧,這就是我如何構建和安裝模塊。 –