4
我最近開始使用autoconf和automake作爲我正在開發的項目。該項目的文檔是用LaTeX編寫的。由於我不希望將LaTeX作爲依賴項,我想檢查是否存在使用autoconf的二進制文件,然後使用Makefile.am中的信息來決定是否簡單複製.tex文件到文檔目錄,或生成PDF並複製兩者。Autoconf/Automake條件和dist規則
這是相關部門在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")
在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
dist_doc_DATA = $(docfiles)
此設置作品當pdflatex存在,但是當它缺席時使作品,但化妝distcheck詢問的方式來建立PDF文件:
make[1]: *** No rule to make target `manual.pdf', needed by `distdir'. Stop.
尋找在的Makefile是AUTOMAKE產生我見:
#am__append_1 = manual.pdf
am__dist_doc_DATA_DIST = manual.tex QuickStart.txt manual.pdf
進一步壓低我發現:
docfiles = manual.tex QuickStart.txt $(am__append_1)
#MANNAME = manual
#MANTEXSRC = $(MANNAME).tex
#MANAUX = $(MANNAME).aux
#MANPDF = $(MANNAME).pdf
#CLEANFILES = $(MANPDF) $(MANNAME).log $(MANNAME).idx $(MANNAME).out \
# $(MANNAME).toc $(MANAUX) .btmp
dist_doc_DATA = $(docfiles)
我在這裏錯過了什麼?
非常感謝!我完全忽略了... – ph0t0nix