2

結果の Makefile.in と Makefile に後で渡されるように、条件を automake に渡す方法はありますか?

Makefile を使用して環境に JAVA_HOME が定義されているかどうかを確認します

ifeq (undefined,$(origin JAVA_HOME))
#CALL with defaults
else
#CALL according to the variable
endif

しかし、automake を使用して Makefile.am でこれを処理すると、次の 2 つのエラーが発生します。

else without if
endif without if

automake が ifeq を消化していないようです。これを渡す方法はありますか(そうするのが理にかなっている場合)、または同じ結果を得る別のautotoolsフレンドリーな方法はありますか?

make を実行する直前に変数を設定/変更して、さまざまな JDK を簡単にターゲットにすることもできます。

4

1 に答える 1

4

私が正しい方法だと思うのは:

$(JAVA_HOME)設定されていることに依存しMakefile.am、適切な値が によって設定されていることを確認してconfigureください。

書かれているように質問に答える:

POSIX make で動作する Makefile を生成したいためautomake、GNU-make 条件ではうまく動作しません。

だからあなたはでテストを行いますconfigure.ac

AC_SUBST([JAVA_HOME])
AM_CONDITIONAL([JAVA_HOME_SET], [test ! -z "$JAVA_HOME"])

次に Makefile.am で:

if JAVA_HOME_SET
## Something that relies on JAVA_HOME
else
## Defaults
endif
于 2013-03-12T19:59:28.493 に答える