3

これは、ubuntu ランチパッド ビルド ボットのリポジトリからソースがフェッチされる (メイン プログラムのソースと同様に) 静的ライブラリ (ビルド時の依存関係のみ) をコンパイルおよびリンクすることです。

現在私はやっています:

    #!/usr/bin/make -f
    export PREFIX=/usr
    export CFLAGS= -O3 -fomit-frame-pointer -flto -fwhole-program
    export CXXFLAGS= -O3 -fomit-frame-pointer -flto -fwhole-program

    %:
        dh $@
    override_dh_auto_configure:
        cd src/munt;cmake -DCMAKE_CXX_FLAGS="-O3 -fomit-frame-pointer -flto" mt32emu;make;make install
#...compile of the program that depends on mt32emu...

しかし、それは失敗します:

Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib/libmt32emu.a
CMake Error at cmake_install.cmake:36 (FILE):
  file INSTALL cannot copy file
  "/tmp/buildd/dosbox-0.74+20121225/src/munt/libmt32emu.a" to
  "/usr/local/lib/libmt32emu.a".


make[2]: *** [install] Error 1
make[2]: Leaving directory `/tmp/buildd/dosbox-0.74+20121225/src/munt'
make[1]: *** [override_dh_auto_configure] Error 2
make[1]: Leaving directory `/tmp/buildd/dosbox-0.74+20121225'
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
E: Failed autobuilding of package
I: unmounting /var/cache/pbuilder/ccache filesystem
I: unmounting dev/pts filesystem
I: unmounting proc filesystem
I: cleaning the build env 
I: removing directory /var/cache/pbuilder/build//2751 and its subdirectories

アイデアは、ランチパッド pbuilder env の ubuntu リポジトリにパッケージ化されていない静的ライブラリの依存関係をインストールすることです。これにより、既にシステムの依存関係であるかのように使用できます。

「sudo make install」(および debian/control の build-deps に sudo を追加) を実行しようとすると、ローカルでテストするときに「pbuilder」パスワードを要求されます。これにより、ubuntu でマシンがハングアップすると想定しています。ビルドボット。

編集:「ttyが存在せず、askpassプログラムが指定されていない」ため、ビルドボットで実際に失敗します。

4

3 に答える 3