gpt4 book ai didi

autotools - 如何在 AS_IF 中执行多个 if-true 操作?

转载 作者:行者123 更新时间:2023-12-02 03:42:26 24 4
gpt4 key购买 nike

所以,我正在努力将非常旧的 configure.in 改造成现代的 configure.ac,但我遇到了一些绊脚石.

我正在尝试使用 AS_IF 语句执行 1-3 件事,具体取决于 PKG_CHECK_MODULESAC_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

中处理所有的 action-if-true 内容

最佳答案

AS_IF 只是 if ... 的扩展;然后 ...;别的 ...; fi

因此,您可以在 block 中添加任意数量的代码,只要它们都用换行符分隔即可:

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(...)
])

关于autotools - 如何在 AS_IF 中执行多个 if-true 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48131947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com