### @configure_input@ # Copyright (C) 1994, 1996-2018 Free Software Foundation, Inc. # This file is part of GNU Emacs. # GNU Emacs is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # GNU Emacs is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . SHELL = @SHELL@ # Where to find the source code. $(srcdir) will be the doc/misc subdirectory # of the source tree. This is set by configure's '--srcdir' option. srcdir=@srcdir@ ## Where the output files go. ## Note that all the Info targets build the Info files in srcdir. ## There is no provision for Info files to exist in the build directory. ## In a tarfile of Emacs, the Info files should be up to date. buildinfodir = $(srcdir)/../../info ## Directory with docstyle.texi and emacsver.texi. emacsdir = $(srcdir)/../emacs prefix = @prefix@ datarootdir = @datarootdir@ datadir = @datadir@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ docdir = @docdir@ dvidir = @dvidir@ htmldir = @htmldir@ pdfdir = @pdfdir@ psdir = @psdir@ MKDIR_P = @MKDIR_P@ ifdef GZIP_PROG COMPR_PROG = ${GZIP_PROG} COMPR_TYPE = gzip else COMPR_PROG = @COMPR_PROG@ COMPR_TYPE = @COMPR_TYPE@ endif ifeq (${COMPR_TYPE}, gzip) COMPR_ARGS = "-9n" COMPR_EXT = ".gz" else ifeq (${COMPR_TYPE}, zstd) COMPR_ARGS = "-19q --rm" COMPR_EXT = ".zst" endif HTML_OPTS = --no-split --html # Options used only when making info output. # (Note that idlwave, info used --nosplit even without the .info extension.) INFO_OPTS= --no-split INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # The makeinfo program is part of the Texinfo distribution. # Use --force so that it generates output even if there are errors. # (TODO? Why is this appropriate?) MAKEINFO = @MAKEINFO@ MAKEINFO_OPTS = --force -I$(emacsdir) ## On MS Windows, efaq-w32; otherwise blank. DOCMISC_W32 = @DOCMISC_W32@ ## Info files to build and install on all platforms. INFO_COMMON = ada-mode auth autotype bovine calc ccmode cl \ dbus dired-x ebrowse ede ediff edt eieio \ emacs-mime epa erc ert eshell eudc efaq eww \ flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \ mairix-el message mh-e newsticker nxml-mode octave-mode \ org pcl-cvs pgg rcirc remember reftex sasl \ sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp \ url vhdl-mode vip viper widget wisent woman ## Info files to install on current platform. INFO_INSTALL = $(INFO_COMMON) $(DOCMISC_W32) ## Info files to build on current platform. ## This is all of them, even though they might not all get installed, ## because the info files are pre-built in release tarfiles. INFO_TARGETS = $(INFO_COMMON) efaq-w32 # There are some naming differences between the info targets and the other # targets, so let's resolve them here. TARGETS_1 = $(INFO_INSTALL:ccmode=cc-mode) TARGETS = $(TARGETS_1:info.info=info) DVI_TARGETS = $(TARGETS:=.dvi) HTML_TARGETS = $(TARGETS:=.html) PDF_TARGETS = $(TARGETS:=.pdf) PS_TARGETS = $(TARGETS:=.ps) TEXI2DVI = texi2dvi TEXI2PDF = texi2pdf DVIPS = dvips # 'make' verbosity. AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = ENVADD = $(AM_V_GEN)TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \ MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" gfdl = ${srcdir}/doclicense.texi style = ${emacsdir}/docstyle.texi .PHONY: info dvi html pdf ps echo-info $(INFO_TARGETS) ## Prevent implicit rule triggering for foo.info. .SUFFIXES: ## Disable implicit rules. %.texi: ; # Default. info: $(INFO_TARGETS) ## Used by top-level Makefile. ## Base file names of output info files. echo-info: @echo "$(INFO_INSTALL) " | \ sed -e 's|[^ ]*/||g' -e 's/\.info//g' -e "s/ */.info /g" dvi: $(DVI_TARGETS) html: $(HTML_TARGETS) pdf: $(PDF_TARGETS) ps: $(PS_TARGETS) ${buildinfodir}: ${MKDIR_P} $@ ### The general case. EXTRA_OPTS = ${buildinfodir}/%.info: ${srcdir}/%.texi ${gfdl} ${style} | ${buildinfodir} $(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) $(EXTRA_OPTS) \ -o $@ $< ## The short aliases, eg efaq = $(buildinfodir)/efaq.info. define info_template $(1): $$(buildinfodir)/$(1).info endef ## "info" is already taken. info.info: $(buildinfodir)/info.info $(foreach ifile,$(filter-out info.info,$(INFO_TARGETS)),$(eval $(call info_template,$(ifile)))) %.dvi: ${srcdir}/%.texi ${gfdl} ${style} $(ENVADD) $(TEXI2DVI) $< %.pdf: ${srcdir}/%.texi ${gfdl} ${style} $(ENVADD) $(TEXI2PDF) $< %.html: ${srcdir}/%.texi ${gfdl} ${style} $(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) $(EXTRA_OPTS) \ -o $@ $< %.ps: %.dvi $(DVIPS) -o $@ $< ### The exceptions. ## Extra dependencies. need_emacsver = calc cl dired-x efaq efaq-w32 erc ido reftex woman need_emacsver_prefix = $(addprefix ${buildinfodir}/,${need_emacsver}) $(need_emacsver_prefix:=.info) $(need_emacsver:=.dvi) $(need_emacsver:=.pdf) $(need_emacsver:=.html) : ${emacsdir}/emacsver.texi $(buildinfodir)/gnus.info gnus.html: ${srcdir}/gnus-faq.texi $(buildinfodir)/semantic.info semantic.dvi semantic.pdf semantic.html: ${srcdir}/sem-user.texi ## Please can we just rename cc-mode.texi to ccmode.texi... ${buildinfodir}/ccmode.info: \ ${srcdir}/cc-mode.texi ${gfdl} ${style} | ${buildinfodir} $(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $< ## efaq, efaq_w32 do not depend on gfdl. ## Maybe we can use .SECONDEXPANSION for this. ${buildinfodir}/efaq%.info: ${srcdir}/efaq%.texi ${style} | ${buildinfodir} $(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $< efaq%.dvi: ${srcdir}/efaq%.texi $(ENVADD) $(TEXI2DVI) $< efaq%.pdf: ${srcdir}/efaq%.texi $(ENVADD) $(TEXI2PDF) $< efaq%.html: ${srcdir}/efaq%.texi $(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ $< ${buildinfodir}/emacs-mime.info emacs-mime.html: EXTRA_OPTS = --enable-encoding gnus_deps = ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} ${style} gnus.dvi: $(gnus_deps) sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmpdvi.texi $(ENVADD) $(TEXI2DVI) gnustmpdvi.texi cp gnustmpdvi.dvi $@ rm gnustmpdvi.* gnus.pdf: $(gnus_deps) sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmppdf.texi $(ENVADD) $(TEXI2PDF) gnustmppdf.texi cp gnustmppdf.pdf $@ rm gnustmppdf.* ${buildinfodir}/tramp.info tramp.html: ${srcdir}/trampver.texi .PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean mostlyclean: rm -f ./*.aux ./*.log ./*.toc ./*.c[mp] ./*.c[mp]s ./*.fn ./*.fns \ ./*.ky ./*.kys ./*.op ./*.ops ./*.p[gj] ./*.p[gj]s ./*.sc ./*.scs ./*.ss \ ./*.t[gp] ./*.t[gp]s ./*.vr ./*.vrs rm -f gnustmp* clean: mostlyclean rm -f ./*.dvi ./*.html ./*.pdf ./*.ps distclean: clean rm -f Makefile ## buildinfodir is relative to srcdir. infoclean: for file in $(INFO_TARGETS); do \ file=`echo $${file} | sed 's/\.info$$//'`.info; \ rm -f \ $(buildinfodir)/$${file} \ $(buildinfodir)/$${file}-[1-9] \ $(buildinfodir)/$${file}-[1-9][0-9]; \ done bootstrap-clean maintainer-clean: distclean infoclean .PHONY: install-dvi install-html install-pdf install-ps install-doc install-dvi: dvi umask 022; $(MKDIR_P) "$(DESTDIR)$(dvidir)" $(INSTALL_DATA) $(DVI_TARGETS) "$(DESTDIR)$(dvidir)" install-html: html umask 022; $(MKDIR_P) "$(DESTDIR)$(htmldir)" $(INSTALL_DATA) $(HTML_TARGETS) "$(DESTDIR)$(htmldir)" install-pdf: pdf umask 022;$(MKDIR_P) "$(DESTDIR)$(pdfdir)" $(INSTALL_DATA) $(PDF_TARGETS) "$(DESTDIR)$(pdfdir)" install-ps: ps umask 022; $(MKDIR_P) "$(DESTDIR)$(psdir)" for file in $(PS_TARGETS); do \ $(INSTALL_DATA) $${file} "$(DESTDIR)$(psdir)"; \ [ -n "${COMPR_PROG}" ] || continue; \ rm -f "$(DESTDIR)$(psdir)/$${file}${COMPR_EXT}"; \ eval ${COMPR_PROG} ${COMPR_ARGS} "\"$(DESTDIR)$(psdir)/$${file}\""; \ done ## Top-level Makefile installs the info pages. install-doc: install-dvi install-html install-pdf install-ps .PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc uninstall-dvi: for file in $(DVI_TARGETS); do \ rm -f "$(DESTDIR)$(dvidir)/$${file}"; \ done uninstall-html: for file in $(HTML_TARGETS); do \ rm -f "$(DESTDIR)$(htmldir)/$${file}"; \ done uninstall-ps: for file in $(PS_TARGETS); do \ rm -f "$(DESTDIR)$(psdir)/$${file}${COMPR_EXT}"; \ done uninstall-pdf: for file in $(PDF_TARGETS); do \ rm -f "$(DESTDIR)$(pdfdir)/$${file}"; \ done uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps ### Makefile ends here