C で書かれたかなり大きなプログラムがあります。これは複数のファイルにまたがっており、プラットフォームの問題を補うために少しツールを変更しています。具体的には、さまざまな OS、アーキテクチャ、および処理に使用するマクロを定義するコンパイラのヘッダー ファイルがあります。例として、-v
フラグは、それを構築したコンパイラの名前、構築されたオペレーティング システムとアーキテクチャを含むバージョン情報を出力します。これが重要な理由の例として、プログラムは C コード ファイルを作成し、必要に応じてそれをコンパイルできます。このタスクでは、ビルドに使用したコンパイラにシステム コールを実行するだけです。
また、GNU Readline ライブラリ (または BSD Editline ライブラリ - 同じもの) がシステムにある場合はサポートし、ない場合は純粋な ANSI であるすべての優れた Readline 機能を含まない同等のライブラリもサポートします。
肝心なのは、いくつかの機能は、使用している OS/アーキテクチャ/コンパイラにかなり大きく依存しているため、プラットフォームに依存する部分を取り除くことはできません。持っている人にもいい機能を提供したい。そして、標準./configure
のインターフェースでダウンロードしてインストールしてもらいたいのです。make
make install
configure
現在、Makefile をゼロから作成し、OS/アーキテクチャ/コンパイラに基づいてどのヘッダー ファイルを含めるかを決定する、申し訳ありませんが手作りのシェル スクリプトを使用しています。より効率的なアプローチが必要で、GNU Autotools を使用したより標準的なビルド システムを使用したいと考えています。そうすれば、私が行っていることは、他の人のコンピューターでテストしなくても、他の人のコンピューターで機能することがわかります。
私の質問は、そのすべてに苦労してきた人への質問です (ありがとう!)、1) 自作ビルドシステムから GNU Autotools に切り替えるにはどうすればよいですか? 2) GNU Autotools を使い始めるための優れたチュートリアルは何ですか? 3) どうすればこれを比較的簡単なプロセスにすることができますか?