所以,我正在努力将一个非常古老的configure.in
改造成一个现代的configure.ac
,而且我已经陷入了一个绊脚石。
我尝试使用AS_IF
语句执行1-3项操作,具体取决于PKG_CHECK_MODULES
和AC_ARG_ENABLE
的结果,但我似乎无法将它们强制转换为AS_IF
action-if-true插槽。
我目前的设置如下:
# Check for libbar
PKG_CHECK_MODULES([BAR],[bar],[bar_found=yes],[bar_found=no])
AC_ARG_ENABLE([bar],
AS_HELP_STRING([--enable-bar],[enable support for bar [default=yes]]))
AS_IF([test x$enable_bar = xyes],
[AS_IF(
[test x$bar_found = xyes],
[AC_DEFINE([HAVE_BAR_SUPPORT],[1],[Define if bar support is enabled])],
[AC_MSG_ERROR([*** bar requested but not found ***])])
]
)
AS_IF([test x$enable_bar = xyes],
[AS_IF(
[test x$bar_found = xyes],
[AX_APPEND_LINK_FLAGS([$BAR_LIBS],[LDFLAGS])],
[AC_MSG_ERROR([*** bar requested but not found ***])])
]
)
AS_IF([test x$enable_bar = xyes],
[AS_IF(
[test x$bar_found = xyes],
[AX_APPEND_COMPILE_FLAGS([$BAR_CFLAGS],[CFLAGS])],
[AC_MSG_ERROR([*** bar requested but not found ***])])
]
)
正如你所看到的,它有效,但它过于冗长。我希望能够在一个AS_IF
答案 0 :(得分:4)
AS_IF
只是if ...; then ...; else ...; fi
所以你可以在块中添加尽可能多的代码,只要它们全部用换行符分隔:
AS_IF([test x$enable_bar = xyes], [
AS_IF([test x$xbar_found], [
AC_DEFINE(...)
AX_APPEND_LINK_FLAGS(...)
AX_APPEND_COMPILE_FLAGS(...)
], [
AC_MSG_ERROR(...)
])