我的configure.ac允许用户指定--enable-monitor
。在一个子目录中,我有一个Makefile.in,它包含一定数量的目标要构建。我希望其中一些仅在用户指定--enable-monitor
换句话说,我希望用户只有在make monitor
与./configure
一起运行时才能运行--enable-monitor
。
我该怎么做?
答案 0 :(得分: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,您可以使用以下内容替换configure.ac中的AM_CONDITIONAL
行:
AC_SUBST([USE_MONITOR],[$use_monitor])
然后在Makefile.in
中进行检查,如:
monitor:
@if test "@USE_MONITOR@" = yes; then \
... ; \
else \
echo Target not supported >&2 && exit 1; \
fi