運が良ければ、私は想像します。興味があったので、解決策が出てきた。私はこれが可能configure.ac
をしているかもしれないと思った:
AC_INIT([Autohell], [0.0.1])
AC_PREREQ(2.13)
AC_ARG_ENABLE([extras],[AC_HELP_STRING([--enable-extras],[Enable extra options])],
[
AS_CASE([$enable_extras],
[yes],
[
AC_ARG_ENABLE([foo],[AC_HELP_STRING([--enable-foo],[Enable the Foo])],
[
enable_foo=$enableval
echo "Foo Enabled"
],
[
enable_foo="no"
echo "Foo Disabled"
])
],
[
echo "Extras Disabled"
])
],enable_extras="no")
AM_CONDITIONAL([FOO],[test "$enable_foo" = "yes"])
cat << EOF
Extras: ${enable_extras}
Foo: ${enable_foo}
EOF
言うまでもなくし、それは動作しませんでした。
$ ./configure
Extras: no
Foo:
$ ./configure --enable-extras
Foo Disabled
Extras: yes
Foo: no
$ ./configure --enable-extras --enable-foo
Foo Enabled
Extras: yes
Foo: yes
$ ./configure --disable-extras --enable-foo
Extras Disabled...
Extras: no
Foo: yes
出力は非常に興味深いものです::両方--enable-extras
と--enable-foo
が./configure --help
に表示され、スイッチによって設定された変数は独立しており、このサンプル出力をチェックアウトスイッチと補完的な変数が所定の位置にあるが、条件付きブロックが尊重されます本当に--enable-foo
の場合は--enable-extras
となります。