1

我的 configure.ac 让用户指定--enable-monitor. 在一个子目录中,我有一个 Makefile.in,其中包含一定数量的要构建的目标。我希望其中一些仅在用户指定时可用--enable-monitor

换句话说,我希望用户只能make monitor./configure使用--enable-monitor.

我怎样才能做到这一点?

4

1 回答 1

1

将其放入以下内容就足够了configure.ac

AC_ARG_ENABLE([monitor],[help string],[use_monitor=yes])
AM_CONDITIONAL([USE_MONITOR],[test "$use_monitor" = yes])

这在 Makefile.am 中:

if USE_MONITOR
bin_PROGRAMS = monitor
else
monitor:
    @echo Target not supported >&2 && exit 1
endif

带有显式监控目标的 else 子句用于覆盖 Make 可能使用的默认规则。请注意,“帮助字符串”应该更有用并使用 构造AS_HELP_STRING,但为简洁起见,这些细节已被省略。

- 编辑 -

由于未使用 automake,您可以将AM_CONDITIONALconfigure.ac 中的行替换为以下内容:

AC_SUBST([USE_MONITOR],[$use_monitor])

然后Makefile.in像这样进行检查:

monitor:
        @if test "@USE_MONITOR@" = yes; then \
            ... ; \
        else \
            echo Target not supported >&2 && exit 1; \
        fi
于 2013-04-24T14:44:22.373 回答