我最近开始使用autoconf和automake来完成我正在进行的项目.该项目的文档是用LaTeX编写的.由于我不希望将LaTeX作为依赖项,因此我想使用autoconf 检查pdflatex二进制文件是否存在,然后在Makefile.am中使用该信息来决定是否只是将.tex文件复制到文档目录,或者生成PDF并复制两者.
这是configure.ac中的相关部分:
# Check for presence of pdfLaTeX
AC_CHECK_PROG(PDFLATEX, pdflatex, pdflatex)
if test -z "$PDFLATEX"; then
AC_MSG_WARN([Unable to create PDF version of the user manual.])
fi
AM_CONDITIONAL([HAVE_PDFLATEX], test -n "$PDFLATEX")
Run Code Online (Sandbox Code Playgroud)
在doc /目录中,我有以下Makefile.am:
docfiles = manual.tex QuickStart.txt
if HAVE_PDFLATEX
docfiles += manual.pdf
MANNAME = manual
MANTEXSRC = $(MANNAME).tex
MANAUX = $(MANNAME).aux
MANPDF = $(MANNAME).pdf
CLEANFILES = $(MANPDF) $(MANNAME).log $(MANNAME).idx $(MANNAME).out \
$(MANNAME).toc $(MANAUX)
$(MANPDF): $(srcdir)/$(MANTEXSRC)
$(PDFLATEX) $<
endif …
Run Code Online (Sandbox Code Playgroud) 在我的configure.ac
文件中,我有这样的警告和错误:
AC_MSG_ERROR([Could not find the Boost Math header files, did you specify the --with-boost-include-path option correctly?])
Run Code Online (Sandbox Code Playgroud)
我比较守旧,喜欢将行宽控制在 80 个字符以内。然而,当我像这样分割线时(我也喜欢一些适当的缩进)
AC_MSG_ERROR([Could not find the Boost Math header files, did you
specify the --with-boost-include-path option correctly?])
Run Code Online (Sandbox Code Playgroud)
当通过 打印在屏幕上时,错误消息会保留换行符和缩进./configure
。
在 Autoconf 中断开字符串的正确方法是什么?