0

autoconf/automake/libtoolize などによって真剣に方向転換されるので、私の質問が何であるか正確にはわかりません。これまでの作業のレポをここに投げました:

https://bitbucket.org/schwehr/mbsystem

nc-config を使用するように netcdf セットアップを改善しようとしていますが、これを正しく行う方法がわかりません。私はconfigure.inに取り組んでいます。INCLUDES="$INCLUDES ``$nc_config --cflags``"gdl netcdf チェックから取得した後 (間違ったバック ティックを許してください)、AC_CHECK_HEADER("netcdfcpp.h") を持つヘッダーを見つけることができないようです。からパスを更新する正しい方法は何nc-config --cflagsですか?

http://gnudatalanguage.cvs.sourceforge.net/viewvc/gnudatalanguage/gdl/configure.in?revision=1.121

次に、AX_PATH_GENERIC を使用しようとしましたが、このエラーでスタックします。m4_include([m4/ax_path_generic.m4])

Running autoconf ...
configure.in:29: error: possibly undefined macro: AC_SUBST
      If this token and others are legitimate, please use m4_pattern_allow.
     See the Autoconf documentation.
configure:12992: error: possibly undefined macro: AC_MSG_RESULT

nc-config を介してファンキーな非標準のインストール場所で実際に動作する netcdf チェックを作成し、マクロを m4 ディレクトリに適切に配置する方法を理解する上での助けは、大きな助けになります。

これを本当にきれいに行うパッケージへのポインタは、非常に役立ちます。例として、netcdf、gdal、geos、および gdl のソースを見てきました。そして、タコのnetcdfチェックのようなものはnc-configを使用しません... http://www.tddft.org/trac/octopus/browser/trunk/m4/netcdf.m4

netcdf 4.x の fink を使用した現在のセットアップ:

nc-config --cflags --libs
-I/sw/opt/netcdf7/include -I/sw/include
-L/sw/opt/netcdf7/lib -lnetcdf

ありがとう!

4

2 に答える 2

1

Makefile.amを参照してください: configure.ac で curl-config と xml2-config を使用するには? xml2/curl を netcdf に置き換えます。

使うだけ

PKG_CHECK_MODULES([libnetcdf], [netcdf])

configure.ac、次に でMakefile.am:

AM_CPPFLAGS = ${libnetcdf_CFLAGS}
bin_PROGRAMS = foo
foo_SOURCES = ...
foo_LDADD = ${libnetcdf_LIBS}
于 2011-12-18T15:50:09.447 に答える
0

サード パーティの m4 マクロを使用する「正しい」方法は、aclocal を使用して (通常は automake 経由で) aclocal.m4 を生成することです。automakeを使用している場合は、追加するだけです

ACLOCAL_AMFLAGS = -I m4

Makefile.am に入れます

AC_CONFIG_MACRO_DIR([m4])

configure.ac 内 (configure.in の名前を変更した後)。

automake を使用していない場合は、aclocal を呼び出すときに「-I m4」を追加します。aclocal を使用していない場合は、マクロの定義を aclocal.m4 の末尾に追加する必要があります (ファイルが上書きされるため、aclocal を実行しないように注意してください)。

conf スクリプトを使用してビルドを行うクリーンな方法の良い例はありません。そのようなスクリプトを使用することは本質的に欠陥のあるアプローチだからです。少しクリーンな方法は、カスタム スクリプトの使用をやめ、PKG_CHECK_MODULES 経由で pkg-config を使用することですが、これを行う最もクリーンな方法は、ユーザーを教育することです。ユーザーがファンキーな非標準の場所にライブラリをインストールしたい場合は、LDFLAGS と CPPFLAGS を適切に設定するのに十分な教育を受ける必要があります。

于 2011-12-21T14:13:01.327 に答える