5

C で書かれたかなり大きなプログラムがあります。これは複数のファイルにまたがっており、プラットフォームの問題を補うために少しツールを変更しています。具体的には、さまざまな OS、アーキテクチャ、および処理に使用するマクロを定義するコンパイラのヘッダー ファイルがあります。例として、-vフラグは、それを構築したコンパイラの名前、構築されたオペレーティング システムとアーキテクチャを含むバージョン情報を出力します。これが重要な理由の例として、プログラムは C コード ファイルを作成し、必要に応じてそれをコンパイルできます。このタスクでは、ビルドに使用したコンパイラにシステム コールを実行するだけです。

また、GNU Readline ライブラリ (または BSD Editline ライブラリ - 同じもの) がシステムにある場合はサポートし、ない場合は純粋な ANSI であるすべての優れた Readline 機能を含まない同等のライブラリもサポートします。

肝心なのは、いくつかの機能は、使用している OS/アーキテクチャ/コンパイラにかなり大きく依存しているため、プラットフォームに依存する部分を取り除くことはできません。持っている人にもいい機能を提供したい。そして、標準./configureのインターフェースでダウンロードしてインストールしてもらいたいのです。makemake install

configure現在、Makefile をゼロから作成し、OS/アーキテクチャ/コンパイラに基づいてどのヘッダー ファイルを含めるかを決定する、申し訳ありませんが手作りのシェル スクリプトを使用しています。より効率的なアプローチが必要で、GNU Autotools を使用したより標準的なビルド システムを使用したいと考えています。そうすれば、私が行っていることは、他の人のコンピューターでテストしなくても、他の人のコンピューターで機能することがわかります。

私の質問は、そのすべてに苦労してきた人への質問です (ありがとう!)、1) 自作ビルドシステムから GNU Autotools に切り替えるにはどうすればよいですか? 2) GNU Autotools を使い始めるための優れたチュートリアルは何ですか? 3) どうすればこれを比較的簡単なプロセスにすることができますか?

4

2 に答える 2

9

まず、プロジェクトのルート ディレクトリで自動スキャンを実行できます。移植性のない機能を検出しようとしながら、プロジェクト ツリーをスキャンしてconfigure.scanを生成します。次に、名前をconfigure.acに変更し、それに応じて編集してMakefile.amファイルを書き込みます。

詳細については、GNU autotools マニュアルでこのプロセス (特にautoscan ) を調べることをお勧めします。労力は軽減されますが、少なくともこれらのファイルの作成をゼロから始めることはありません。

于 2009-02-01T10:16:52.440 に答える
1

このリンクは、この投稿を読んだ後にグーグルで検索したものです。./configure ファイルの作成方法に関する私の質問に答えてくれました。

GNU ビルド システム

于 2009-03-03T19:52:51.737 に答える