問題タブ [automake]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
autotools - configureスクリプトでautomake/autoconfのバージョンを確認してください
Automakeバージョンx.xxより上にある場合にこのコードを実行するconfigureスクリプトを編集しようとしていますが、そうでない場合は別のコードを実行します。
したがって、バージョンは1.10以上である必要があります。その場合は、次のようにします。
そして、そうでなければ:
だから私はそれがこのように見えると思います(でconfigure.in
):
また、autoconfまたはautomakeのバージョンを確認する必要がありますか?おそらく両方?
autotools - Automakeは、src/ではなくbin/にバイナリを生成します
私はこの質問に対する答えを探しましたが、良いものは見つかりませんでした。たぶん古くて何かが変わったので、もう一度お願いします。
私は次のようなディレクトリ構造を持っています:
私のプロジェクト
src
置き場
ルートディレクトリで作成する場合、バイナリは./srcを乱雑にするのではなく、./binに配置する必要があります。しかし、どのように?
編集:私はC++を使用しています。私のMakefile.amには特別なことは何もありません。bin_PROGRAM変数と_SOURCES変数だけです。
makeを実行すると、生成されたバイナリが./srcに配置されます。./binに入れたいだけです。
automated-tests - Automake:グローバルおよびローカルの「makecheck」を効果的に処理する方法は?
./tests/Makefile.am
大規模なプロジェクトでは、を呼び出すときにいくつかのテストを実行するように設定しましたmake check
。このファイルglobal_wrapper.c
にはセットアップ/内訳コードが含まれており、いくつかのサブディレクトリに実装されているテスト関数を呼び出します。
よく働く。ただし、テストには時間がかかるため、オプションで単一のサブディレクトリからのみテストを実行できるようにしたいと思います。これが私が最初にやった方法です。
サブディレクトリを追加しました:
サブディレクトリに、ローカルラッパーとMakefile.am
'sを追加しました。
make check
これもうまく機能します。サブディレクトリを呼び出すとfoo
、fooテストのみが実行されます。
ただし、ここで呼び出すmake check
と./tests
、すべてのテストが2回実行されます。一度global_test
、そしてローカルテストプログラムを通して一度。
SUBDIRS
グローバルでステートメントを省略するMakefile.am
と、サブディレクトリmakefilesはビルドされません。TESTS
ローカルから省略した場合Makefile.am
、make check
ローカルディレクトリに対しては何もしません。
私はautomakeにあまり詳しくありませんが、このジレンマを解決する方法があると確信しています。ここの誰かが私にヒントを与えることができますか?
makefile - autotools での pkg-config の使用
私は autotools について学習していて、hello world のシナリオを実行しましたが、いくつかの cppunit テストをパッケージにまとめて、autotools を使用してビルドしたいと考えました。パッケージをビルドするには、cppunit をシステムにインストールする必要があります。ビルドの ./configure 部分でこれを確認する最善の方法は何ですか。
調べたAC_CHECK_LIB
ところ、pkg-config の使用に関する情報に出くわしました。autotools レルムで pkg-config を使用して、ビルド システムに cppunit が存在するかどうかを確認し、インクルードとリンクの行を追加するにはどうすればよいでしょうか。
どんな助けでも大歓迎です。ありがとう。
スティーブ
makefile - GCC と autotools を使用して個々のソース ファイルにコンパイル フラグを設定する最良の方法は何ですか?
autotools を使用して、個々のファイルの最適化フラグを無効にする必要があります。それを行う最良の方法は何ですか?
c++ - autoconf/automake を介してブースト ライブラリ/ヘッダー インクルードをトラブルシューティングするにはどうすればよいですか?
autom4te は初めてで、autoconf/automake を使用して、複数のアーキテクチャで C++ プログラムをビルドおよびリンクしようとしています。リンクを複雑にしているのは、プロジェクトにブースト (filesystem、system、program_options) が必要であるという事実です。
私はboost.m4(http://github.com/tsuna/boost.m4/tree/から)を使用していますが、すべてのライブラリとヘッダーを正常に見つけているようです。
残念ながら、リンクはまだ失敗しており、混乱しています。
これらは の関連する行ですconfigure.ac
:
そしてでsrc/Makefile.am
:
これらはエラーを発生させず、ライブラリとヘッダーを見つけることさえできます:
しかし、実行するmake
とエラーが発生します。
吐き気を繰り返します。
正しいディレクトリが含まれているかどうかをテストする方法さえわかりません。はい、-t
g++ にフラグがあることは理解していますが、それを (autom4te 内から) 渡す方法が正確にはわかりません。
これは、同じマシン上のブースト ライブラリとヘッダーの複数のバージョンと関係があると考えていますが、それについてできることはあまりありません。
makefile - オブジェクト .o ファイルのみをコンパイルするように Makefile.am スクリプトで指定するにはどうすればよいですか?
Makefile.am
最終的なアプリケーション バイナリの構築を担当する があります。
ctrnn
また、src ディレクトリには、追加の を含むと呼ばれるサブディレクトリがありMakefile.am
ます。
ここで、トップレベルがサブディレクトリで生成されたオブジェクト ファイルを使用してバイナリをビルドする必要があるという考えで、ctrnn/Makefile.am
オブジェクト ファイルのみを生成する必要があります。.o
Makefile.am
ctrnn
これは次のctrnn/Makefile.am
とおりです。
このMakefile.am
ファイルに基づいて、network.o と neuron.o を完成させたいと思います。私はMakefile
Automakeなどを使用してそれに応じて生成していますが、makeファイルを実行しようとすると、何もせず、次のように表示されます:
理由はわかっています。ビルド ターゲットを指定する必要があります。しかしctrnn/Makefile.am
、bin_PROGRAMS
実際のオブジェクト ファイルnetwork.o
とneuron.o
.
(bin_PROGRAMS 名を指定すると、main への未定義の参照が正しく表示されることに注意してください)。
私は何を間違っていますか?
c - automakeを使用して、別のプロジェクトから1つのヘッダーをプロジェクトに追加します
私はautomakeビルドシステムを使用している比較的大きなプロジェクトに取り組んでいます。
ここで問題となるのは、プロジェクトを別のプロジェクトのライブラリにリンクする必要があることです(これは正常に機能します)が、他のプロジェクトのソースツリーのヘッダーも含める必要があります(api.h
)。
INCLUDES = -I@REMOTE_PROJECT_DIR@
リモートソースディレクトリに名前が一致する.hファイルがあるため、Makefile.amでは機能しません。どうすれば追加できapi.h
ますか?
プロジェクトのincludeディレクトリにシンボリックリンクを使用しましたが、ソースをパブリックリポジトリにプッシュする必要があり、それを使用するすべての人が別のディレクトリに他のプロジェクトを持っているため、configureparamを使用する必要があります。
c++ - googletest 単体テストを呼び出すための Makefile.am の作成
最初の単体テストを既存のオープン ソース プロジェクトに追加しようとしています。具体的には、audio_manager という名前の新しいクラスを追加しました。
実装ファイルの構造を反映した src/test ディレクトリ構造を作成し、googletest単体テストを作成しました。
今、単体テストをコンパイルして実行するように Makefile.am をセットアップしようとしています。
以下から Makefile.am をコピーしました。
誰かが私にとって簡単なレシピを持っていますか、それとも不可解なautomakeのドキュメントですか? :)
makefile - Makefile.amとMakefile.inとは何ですか?
これらの2つのファイルは、主にオープンソースプロジェクトで見られます。
それらは何のためにあり、どのように機能しますか?