私の会社では、現在、サードパーティのライブラリからDebianのdeb
パッケージを作成しています。ライブラリはAutotoolsを使用して構築されます。以前はAutotoolsを使ったことがありませんでしたが、苦労しています。ライブラリソースには、configure.in
とMakefile.am
ファイルとm4/
ディレクトリが含まれています。私は、このシーケンスを使用してライブラリを構築することができる午前:autoconfを実行する頻度はどれくらいですか?
aclocal -I m4 -I /usr/share/aclocal
autoheader
libtoolize --automake
automake -a
autoconf
./configure
make
ファイルdebian/rules
では、私がCDBSを使用したいと思います。私はこれを書いた:
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk
しかし、それは動作しません。 configure
ファイルが見つからないと訴えます。 Autotoolsクラスはこのファイルが存在することを期待しているからです。しかし、そこには誰もがautoconf
とお友達と最初に電話しなければならない!
なぜAutotools CDBSクラスでautoconf
とお友達に電話をさせないのですか?どのように私はそれを回避するのですか?
余談:私はプログラムを使用する場合
、私は一度それをコンパイルしてバイナリを再利用し、それを毎回コンパイルしないでください。
人がソフトウェアをインストールすると、それ自体ではコンパイルされず、メンテナは一度コンパイルして、バイナリパッケージを再利用します。
メンテナがパッケージをコンパイルするとき、彼はコンパイルするたびにconfigure
スクリプトを作成しません。上流の作者はそれを一度作成し、メンテナはそれを再利用できます。
最後の文は本当ですか?私には、Autotools CDBSクラスの作者がそのようなことを想定しているように思えます。つまり、configure
が存在すると仮定し、別のアーキテクチャ用のパッケージをコンパイルする際に再利用します。私は正しい?
一方で、configure
を生成することができれば、それはどこにも存在してはいけません。必要に応じて他のファイルから生成したものです。一方、Autotools CDBSクラスの作成者には、この方法で実装する理由があったに違いありません。
概要:
- 私は上記のAutotool群CDBSクラスの問題に対処するにはどうすればよいですか?
- どのくらいの頻度で再生するのですか
configure
? (一般的におよびDebianパッケージを構築する。)
'configure.ac'と' Makefile.am'から 'configure'を生成できるのであれば、後者の2つを常に配布してはいけませんか? 'configure 'を私に配布することはバイナリファイルをリポジトリに入れることに似ています。 – Jasiu
GNUビルドシステムでは、tarballを解凍した直後に './configure && make && make install 'を実行する必要があるので、' configure'スクリプトをtarballに配布する必要があります。 Makefile.in、Bison生成のパーサ、Texinfoドキュメントはすべて他のファイルから生成され、エンドユーザはそれらを再生成するためにツールをインストールする必要がないように配布されています。 リポジトリに入るものは、ユーザーのtarballのものとは異なります。開発者はしばしば生成されたファイルを省略しますが、実行するのはそのすべてを再生成する作業です。 – adl