問題タブ [autoconf]
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.
c - VERSION、PACKAGEなどの再定義を回避する方法
GNU autoconf / automakeビルドに関する質問は見たことがありませんが、少なくとも何人かがそれに精通していることを願っています。ここに行きます:
別のプロジェクト(ベンダー)を含むプロジェクト(myprojectと呼びます)があります。ベンダープロジェクトは、他の誰かによって維持されているスタンドアロンプロジェクトです。このようなプロジェクトを含めるのはかなり簡単ですが、この場合は小さな問題があります。各プロジェクトは独自のconfig.h
ファイルを生成し、各ファイルはPACKAGE、VERSIONなどの標準マクロを定義します。これは、ビルド中、ベンダーがビルド中ですが、次のようなエラーがたくさん発生します。
これらは、少なくとも当面は単なる警告ですが、私はそれらを取り除きたいと思います。私がグーグル検索で見つけた唯一の関連情報は、automakeメーリングリストのこのスレッドであり、それはあまり役に立ちません。他にもっと良いアイデアはありますか?
autoconf - GNU autoconf / automakeでヘルパースクリプトをどこに置くか?
私はGNUautoconf/ automakeで配布されるプロジェクトに取り組んでおり、awkスクリプトを呼び出す一連のbashスクリプトがあります。bashスクリプトを$PATHに入れたいのですが、awkスクリプトは入れません。これらをプロジェクトにどのように挿入すればよいですか?それらは他のバイナリと一緒に入れる必要がありますか?
また、インストール後にファイルの最終的な場所を特定する方法はありますか?/ usr / local/binが実行可能ファイルの最終的な場所であるとは限らないと思います...
bash - autoconf で sh を使用する場合、SHELL=BASH が必要です。autoconf で bash を使用するにはどうすればよいですか?
autoconf を実行していて、configure で SHELL を「/bin/sh」に設定しています。これは大きな問題を引き起こします。autoconfのためにSHELLを強制的に「/bin/bash」にする方法は?
これを osx で実行しようとしていますが、Linux で動作しています。Linux は SHELL=/bin/bash を使用しています。osx のデフォルトは /bin/sh です。
java - JNI include dir の Autoconf テスト
JNI ラッパーの構成スクリプトに取り組んでいます。構成パラメータの 1 つに へのパスがありますjni.h
。このパラメーターが C++ コンパイル用に正しく設定されているかどうかを確認するための、迅速かつ汚い Autoconf テストは何ですか? Linux で実行していて、利用可能であると想定できg++
ます。
または、このパスを直接取得する方法javah
(またはサポート ツール) はありますか?
c++ - Autotools : グローバル コンパイル フラグの設定方法
私はいくつかのソースディレクトリを持つプロジェクトを持っています:
それぞれの Makefile.am には次の内容が含まれています。
各ソースフォルダーでこれを繰り返さないようにするにはどうすればよいですか?
src/Makefile.am と configure.in を変更しようとしましたが、成功しませんでした。AC_PROG_CXX を使用してコンパイル フラグをグローバルに設定できると思いましたが、これらのマクロの使用方法に関するドキュメントがあまり見つかりません (そのようなドキュメントへのポインタはありますか?)。
前もって感謝します
ruby - 非ルビープロジェクトでのレーキの使用
同僚は、非ルビープロジェクトのビルドシステムとしてレーキを使用するというアイデアを浮かび上がらせました。autoconfツールセットが通常使用される他の言語を補完するためにrakeを拡張することは可能ですか?
compilation - Autoconf を使用して可変名ライブラリを検索する
私は autoconf を使用する最初のプロジェクトを書いており、それを独学で教えています。ほとんどの場合、物事は非常にうまくいっています。最後に重要なハードルが 1 つあります。システムごとに名前が異なる可能性があるライブラリ ファイルとヘッダー ファイルを見つけるのに苦労しています。
たとえば、Mozilla の SpiderMonkey でコンパイルする必要があります。ソースからコンパイルすると、SpiderMonkey は libjs.so になります。ただし、私の Linux バリアントでは、SpiderMonkey は libmozjs.so としてインストールされます。これは同じライブラリですが、名前が異なるだけで、リンカー フラグが異なります。
ライブラリの名前を検出する適切な方法はありますか? デフォルトを「js」にして、それをオーバーライドする構成オプションを指定するだけですか?
ヘッダーファイルでも同じ状況があります。SpiderMonkey のヘッダー ファイルは、私のオペレーティング システムの /usr/include/mozjs/ にインストールされています。他のシステムでは、/usr/include/js/ または単に /usr/include/ になると確信しています。適切なヘッダー ファイルの場所を見つけるにはどうすればよいですか? バニラの「検索」を行うのは遅く、ファイルの間違ったコピーを見つける可能性があるため、躊躇していました(たとえば、 /usr/include/ ではなくユーザーのホームディレクトリでファイルを検索します)。
autotools - GNU Autotools 用に大きなプログラムを再構成する方法
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) どうすればこれを比較的簡単なプロセスにすることができますか?
autoconf - autoconfによるライブラリの解決?
私は最初のautoconf管理パッケージを構築しています。
ただし、必要なライブラリを指定する方法の簡単な例はどこにも見つかりません。また、さまざまな場所にある可能性のあるライブラリを見つけることもできません。
私は現在持っています:
しかし:
- インストールされているバージョンが見つかりません
/opt/local/lib
- ライブラリが実際に見つからなくても文句はありません
- インクルードパスもに設定する必要があり
/opt/local/include
ます
ヘルプ、またはまともなチュートリアルへのリンクは大歓迎です...