mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-22 10:58:58 +00:00
acc24ba494
Sometimes someone may build only a subset of the documentation. The logic has to be conditional upon whether it exists, not whether it is built, since we pull pre-built docs in for CI installation.
62 lines
1.9 KiB
Makefile
62 lines
1.9 KiB
Makefile
DOC_OUT := manual/$(OUTPUT_DIR)
|
|
S_HTML_OUT := $(DOC_OUT)/singlehtml
|
|
S_HTML_TARGET := $(S_HTML_OUT)/index.html
|
|
HTML_OUT := $(DOC_OUT)/html
|
|
HTML_TARGET := $(HTML_OUT)/index.html
|
|
PDF_OUT := $(DOC_OUT)/latex
|
|
PDF_TARGET := $(PDF_OUT)/qpdf.pdf
|
|
|
|
TARGETS_manual := \
|
|
$(DOC_OUT)/qpdf.1 \
|
|
$(DOC_OUT)/fix-qdf.1 \
|
|
$(DOC_OUT)/zlib-flate.1
|
|
ifeq ($(BUILD_HTML),1)
|
|
TARGETS_manual += $(HTML_TARGET) $(S_HTML_TARGET)
|
|
endif
|
|
ifeq ($(BUILD_PDF),1)
|
|
TARGETS_manual += $(PDF_TARGET)
|
|
endif
|
|
|
|
MANUAL_DEPS = $(wildcard manual/*.rst) manual/conf.py manual/_ext/qpdf.py
|
|
|
|
# Prevent targets that run $(SPHINX) from running in parallel by using
|
|
# order-only dependencies (the dependencies listed after the |) to
|
|
# avoid clashes in temporary files that cause the build to fail with
|
|
# the error "_pickle.UnpicklingError: pickle data was truncated"
|
|
$(HTML_TARGET): $(MANUAL_DEPS)
|
|
$(SPHINX) -M html manual $(DOC_OUT) -W
|
|
|
|
$(S_HTML_TARGET): $(MANUAL_DEPS) | $(HTML_TARGET)
|
|
$(SPHINX) -M singlehtml manual $(DOC_OUT) -W
|
|
|
|
$(PDF_TARGET): $(MANUAL_DEPS) | $(S_HTML_TARGET) $(HTML_TARGET)
|
|
$(SPHINX) -M latexpdf manual $(DOC_OUT) -W
|
|
|
|
$(DOC_OUT)/%.1: manual/%.1.in
|
|
sed -e 's:@PACKAGE_VERSION@:$(PACKAGE_VERSION):g' < $< > $@
|
|
|
|
# The doc-dist target must not removed $(DOC_DEST) so that it works to
|
|
# do stuff like make doc-dist DOC_DEST=$(DESTDIR)/$(docdir). Make sure
|
|
# what this does is consistent with ../README-doc.txt and the
|
|
# information in the manual and ../README.md.
|
|
.PHONY: doc-dist
|
|
doc-dist: build_manual
|
|
@if test x"$(DOC_DEST)" = x; then \
|
|
echo DOC_DEST must be set 1>& 2; \
|
|
false; \
|
|
fi
|
|
if test -d $(DOC_DEST); then \
|
|
$(RM) -rf $(DOC_DEST)/*html $(DOC_DEST)/*.pdf; \
|
|
else \
|
|
mkdir -p $(DOC_DEST); \
|
|
fi
|
|
if [ -d $(DOC_OUT)/html ]; then \
|
|
cp -r $(DOC_OUT)/html $(DOC_DEST); \
|
|
fi
|
|
if [ -d $(DOC_OUT)/singlehtml ]; then \
|
|
cp -r $(DOC_OUT)/singlehtml $(DOC_DEST); \
|
|
fi
|
|
if [ -f $(PDF_TARGET) ]; then \
|
|
cp $(PDF_TARGET) $(DOC_DEST)/qpdf-manual.pdf; \
|
|
fi
|