mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-11-24 07:20:29 +00:00
41b7410a8c
* doc/Makefile: Do not disable garbage collection completely (as it
was after 3684c7967
) when generating docs. Use no too large 50Mb
`gc-cons-threshold' instead.
See
https://yhetil.org/emacs-devel/9778F176-E724-4E61-B0FB-327BCDD316C0@acm.org
for the testing behind the 50Mb constant.
111 lines
3.5 KiB
Makefile
111 lines
3.5 KiB
Makefile
.SUFFIXES: # we don't need default suffix rules
|
|
ifeq ($(MAKELEVEL), 0)
|
|
$(error This make needs to be started as a sub-make from the toplevel directory.)
|
|
endif
|
|
.PHONY: all info html pdf card manual guide install \
|
|
clean cleanall clean-install
|
|
|
|
all: $(ORG_MAKE_DOC)
|
|
|
|
info: org orgguide
|
|
|
|
html: org.html orgguide.html
|
|
|
|
pdf: org.pdf orgguide.pdf
|
|
|
|
card: orgcard.pdf orgcard_letter.pdf orgguide.pdf
|
|
|
|
ifneq ($(SERVERMK),)
|
|
manual guide::
|
|
-$(RMR) $@
|
|
$(MKDIR) $@
|
|
manual:: org.texi org-version.inc
|
|
$(TEXI2HTML) -o $@ $<
|
|
../mk/mansplit.pl $@/*
|
|
guide:: orgguide.texi org-version.inc
|
|
$(TEXI2HTML) -o $@ $<
|
|
../mk/guidesplit.pl $@/*
|
|
endif
|
|
|
|
# We increase GC threshold when generating documentation. This
|
|
# imrpoves the performance significantly. See
|
|
# https://yhetil.org/emacs-devel/9778F176-E724-4E61-B0FB-327BCDD316C0@acm.org
|
|
# Too high number may cause memory overflow (for example, it has
|
|
# happened in CI during automated build). We choose 50Mb threshold,
|
|
# based on the above discussion.
|
|
org.texi: org-manual.org
|
|
$(BATCH) \
|
|
--eval '(add-to-list `load-path "../lisp")' \
|
|
--eval '(load "../mk/org-fixup.el")' \
|
|
--eval '(setq gc-cons-threshold (* 50 1000 1000))' \
|
|
--eval '(org-make-manual)'
|
|
|
|
orgguide.texi: org-guide.org
|
|
$(BATCH) \
|
|
--eval '(add-to-list `load-path "../lisp")' \
|
|
--eval '(load "../mk/org-fixup.el")' \
|
|
--eval '(setq gc-cons-threshold (* 50 1000 1000))' \
|
|
--eval '(org-make-guide)'
|
|
|
|
org-version.inc: org.texi
|
|
@echo "org-version: $(ORGVERSION) ($(GITVERSION))"
|
|
@echo "@c automatically generated, do not edit" > org-version.inc
|
|
@echo "@set VERSION $(ORGVERSION) ($(GITVERSION))" >> org-version.inc
|
|
@echo "@set DATE $(DATE)" >> org-version.inc
|
|
|
|
org-version.tex: orgcard.tex
|
|
@printf "org-version: $(ORGVERSION) ($(GITVERSION))\n"
|
|
@printf "%% automatically generated, do not edit\n" > org-version.tex
|
|
@printf "\def\orgversionnumber{$(ORGVERSION)}\n" >> org-version.tex
|
|
@printf "\def\\\\versionyear{$(YEAR)}\n" >> org-version.tex
|
|
@printf "\def\year{$(YEAR)}\n" >> org-version.tex
|
|
|
|
install: org orgguide
|
|
if [ ! -d $(DESTDIR)$(infodir) ]; then $(MKDIR) $(DESTDIR)$(infodir); else true; fi ;
|
|
$(CP) org.info $(DESTDIR)$(infodir)
|
|
$(CP) orgguide.info $(DESTDIR)$(infodir)
|
|
$(INSTALL_INFO) --infodir=$(DESTDIR)$(infodir) org.info
|
|
$(INSTALL_INFO) --infodir=$(DESTDIR)$(infodir) orgguide.info
|
|
|
|
clean:
|
|
$(RM) *.pdf *.html *.info *_letter.tex org-version.inc org-version.tex \
|
|
*.aux *.cp *.cps *.dvi *.fn *.fns *.ky *.kys *.pg *.pgs *.toc \
|
|
*.tp *.tps *.vr *.vrs *.log *.ps
|
|
cleanall: clean
|
|
$(RM) org.texi orgguide.texi
|
|
$(RMR) guide manual
|
|
|
|
clean-install:
|
|
$(RM) $(DESTDIR)$(infodir)/org*
|
|
$(INSTALL_INFO) --infodir=$(DESTDIR)$(infodir) --remove org
|
|
$(INSTALL_INFO) --infodir=$(DESTDIR)$(infodir) --remove orgguide
|
|
|
|
.SUFFIXES: .texi .tex .txt _letter.tex
|
|
|
|
%: %.texi org-version.inc
|
|
$(MAKEINFO) --no-split $< -o $@.info
|
|
|
|
# the following two lines work around a bug in some versions of texi2dvi
|
|
%.pdf: LC_ALL=C
|
|
%.pdf: LANG=C
|
|
%.pdf: %.texi org-version.inc
|
|
$(TEXI2PDF) $<
|
|
%.pdf: %.tex org-version.tex
|
|
PDFLATEX=$(PDFTEX) $(TEXI2PDF) $<
|
|
|
|
%.html: %.texi org-version.inc
|
|
$(TEXI2HTML) --no-split -o $@ $<
|
|
ifneq ($(SERVERMK),)
|
|
../mk/manfull.pl $@
|
|
|
|
%.txt: %.tex
|
|
perl ../mk/orgcard2txt.pl $< > $@
|
|
endif
|
|
|
|
%_letter.tex: %.tex
|
|
$(BATCH) \
|
|
--eval '(add-to-list `load-path "../lisp")' \
|
|
--eval '(load "org-compat.el")' \
|
|
--eval '(load "../mk/org-fixup.el")' \
|
|
--eval '(org-make-letterformat "$(<F)" "$(@F)")'
|