autoconfの他のサブディレクトリに入れ子になったパッケージはありますか?

autoconfの他のサブディレクトリに入れ子になったパッケージはありますか?

さまざまな方法でコンパイルする必要があるさまざまなサブディレクトリがあります。たとえば、一部のファイルはCFLAGSを使用して他のファイルと一緒に含める必要があります。ただし、CFLAGSは設定ファイルでのみ設定できるため、複数のconfigure.acが必要になるようです。

上記のように、入れ子になったパッケージを使用するのは良い考えですか?gnu.org)これについて、それとも過剰ですか?

注:私はこれを過剰と呼びます。なぜなら、gnu.orgのソリューションがREADMEなどを追加するからです。すべてサブディレクトリ。これを避けることはできますか?

ベストアンサー1

READMEなどを含めない場合は、このforeignオプションを追加してください。たとえば、ファイルに以下をconfigure.ac追加します。

AM_INIT_AUTOMAKE([foreign])

バラよりAutomake マニュアルの厳格さ

構成ファイルを使用して、サブディレクトリに使用されるさまざまなCフラグを設定できます。しかし、深刻な車のハッカーになりたくない場合は、簡単なソリューションから始めましょう。外国の

CFLAGS以下は、他のものから設定する方法を示す小さな例です。単純化のためにCFLAGS他の環境変数に基づいて設定されるため、構成パラメータを処理する必要はありません。私はCFLAGSそれをメインファイルに設定し、あなたが望むものはサブディレクトリファイルにあります。これらすべてが簡単に変更できたらと思います。

私の設定.acファイルは次のとおりです

AC_INIT([foo], [1.0], [https://example.com])
AM_INIT_AUTOMAKE()
AC_SUBST(PROJ1_CFLAGS)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

私のMakefile.amファイルは次のとおりです。

CFLAGS=@PROJ1_CFLAGS@

今すべてをビルドしてください。

$ autoreconf -fi
$ autoconf
$ CFLAGS='-g' PROJ1_CFLAGS='-Wall' ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
$

Makefileを見ると、次のような内容が表示されます。

CFLAGS='-Wall'

PROJ1_CFLAGS実際には、環境変数ではなくCFLAGS環境変数で設定されます。

おすすめ記事