1### @configure_input@
2
3# Copyright (C) 1990-1996, 1998-2021 Free Software Foundation, Inc.
4
5# This file is part of GNU Emacs.
6
7# GNU Emacs is free software: you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation, either version 3 of the License, or
10# (at your option) any later version.
11
12# GNU Emacs is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15# GNU General Public License for more details.
16
17# You should have received a copy of the GNU General Public License
18# along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
19
20SHELL = @SHELL@
21
22# NB If you add any more configure variables,
23# update the sed rules in the dist target below.
24
25# Standard configure variables.
26srcdir = @srcdir@
27
28buildinfodir = $(srcdir)/../../info
29# Directory with the (customized) texinfo.tex file.
30texinfodir = $(srcdir)/../misc
31# Directory with docstyle.tex and emacsver.texi.
32emacsdir =  $(srcdir)/../emacs
33
34prefix = @prefix@
35datarootdir = @datarootdir@
36datadir = @datadir@
37PACKAGE_TARNAME = @PACKAGE_TARNAME@
38docdir = @docdir@
39dvidir = @dvidir@
40htmldir = @htmldir@
41pdfdir = @pdfdir@
42psdir = @psdir@
43
44MKDIR_P = @MKDIR_P@
45
46GZIP_PROG = @GZIP_PROG@
47
48HTML_OPTS = --no-split --html
49
50# Options used only when making info output.
51INFO_OPTS= --no-split
52
53INSTALL = @INSTALL@
54INSTALL_DATA = @INSTALL_DATA@
55
56MAKEINFO = @MAKEINFO@
57MAKEINFO_OPTS = --force --enable-encoding -I $(emacsdir) -I $(srcdir)
58TEXI2DVI = texi2dvi
59TEXI2PDF = texi2pdf
60DVIPS = dvips
61
62# 'make' verbosity.
63AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
64
65AM_V_GEN = $(am__v_GEN_@AM_V@)
66am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
67am__v_GEN_0 = @echo "  GEN     " $@;
68am__v_GEN_1 =
69
70ENVADD = \
71  $(AM_V_GEN)TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \
72  MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
73
74DVI_TARGETS = elisp.dvi
75HTML_TARGETS = elisp.html
76PDF_TARGETS = elisp.pdf
77PS_TARGETS = elisp.ps
78
79# List of all the texinfo files in the manual:
80
81srcs = \
82  $(srcdir)/elisp.texi \
83  $(emacsdir)/docstyle.texi \
84  $(emacsdir)/emacsver.texi \
85  $(srcdir)/abbrevs.texi \
86  $(srcdir)/anti.texi \
87  $(srcdir)/backups.texi \
88  $(srcdir)/buffers.texi \
89  $(srcdir)/commands.texi \
90  $(srcdir)/compile.texi \
91  $(srcdir)/control.texi \
92  $(srcdir)/customize.texi \
93  $(srcdir)/debugging.texi \
94  $(srcdir)/display.texi \
95  $(srcdir)/edebug.texi \
96  $(srcdir)/errors.texi \
97  $(srcdir)/eval.texi \
98  $(srcdir)/files.texi \
99  $(srcdir)/frames.texi \
100  $(srcdir)/functions.texi \
101  $(srcdir)/hash.texi \
102  $(srcdir)/help.texi \
103  $(srcdir)/hooks.texi \
104  $(srcdir)/internals.texi \
105  $(srcdir)/intro.texi \
106  $(srcdir)/keymaps.texi \
107  $(srcdir)/lists.texi \
108  $(srcdir)/loading.texi \
109  $(srcdir)/macros.texi \
110  $(srcdir)/maps.texi \
111  $(srcdir)/markers.texi \
112  $(srcdir)/minibuf.texi \
113  $(srcdir)/modes.texi \
114  $(srcdir)/nonascii.texi \
115  $(srcdir)/numbers.texi \
116  $(srcdir)/objects.texi \
117  $(srcdir)/os.texi \
118  $(srcdir)/package.texi \
119  $(srcdir)/positions.texi \
120  $(srcdir)/processes.texi \
121  $(srcdir)/records.texi \
122  $(srcdir)/searching.texi \
123  $(srcdir)/sequences.texi \
124  $(srcdir)/streams.texi \
125  $(srcdir)/strings.texi \
126  $(srcdir)/symbols.texi \
127  $(srcdir)/syntax.texi \
128  $(srcdir)/text.texi \
129  $(srcdir)/threads.texi \
130  $(srcdir)/tips.texi \
131  $(srcdir)/variables.texi \
132  $(srcdir)/windows.texi \
133  $(srcdir)/index.texi \
134  $(srcdir)/gpl.texi \
135  $(srcdir)/doclicense.texi
136
137## Disable implicit rules.
138%.texi: ;
139
140.PHONY: info dvi html pdf ps
141
142info: $(buildinfodir)/elisp.info
143dvi: $(DVI_TARGETS)
144html: $(HTML_TARGETS)
145pdf: $(PDF_TARGETS)
146ps: $(PS_TARGETS)
147
148${buildinfodir}:
149	${MKDIR_P} $@
150
151$(buildinfodir)/elisp.info: $(srcs) | ${buildinfodir}
152	$(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $<
153
154elisp.dvi: $(srcs)
155	$(ENVADD) $(TEXI2DVI) $<
156
157elisp.html: $(srcs)
158	$(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ $<
159
160elisp.pdf: $(srcs)
161	$(ENVADD) $(TEXI2PDF) $<
162
163elisp.ps: elisp.dvi
164	$(DVIPS) -o $@ $<
165
166.PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean infoclean
167
168## [12] stuff is from two-volume.make.
169mostlyclean:
170	rm -f ./*.aux ./*.log ./*.toc ./*.cp ./*.cps ./*.fn ./*.fns ./*.ky ./*.kys \
171	  ./*.op ./*.ops ./*.pg ./*.pgs ./*.tp ./*.tps ./*.vr ./*.vrs
172	rm -f elisp[12]* vol[12].tmp
173
174clean: mostlyclean
175	rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS)
176	rm -f vol[12].dvi vol[12].pdf vol[12].ps
177
178distclean: clean
179	rm -f Makefile
180
181infoclean:
182	rm -f \
183	  $(buildinfodir)/elisp.info \
184	  $(buildinfodir)/elisp.info-[1-9] \
185	  $(buildinfodir)/elisp.info-[1-9][0-9]
186
187bootstrap-clean maintainer-clean: distclean infoclean
188
189.PHONY: install-dvi install-html install-pdf install-ps install-doc
190
191install-dvi: dvi
192	umask 022; $(MKDIR_P) "$(DESTDIR)$(dvidir)"
193	$(INSTALL_DATA) $(DVI_TARGETS) "$(DESTDIR)$(dvidir)"
194install-html: html
195	umask 022; $(MKDIR_P) "$(DESTDIR)$(htmldir)"
196	$(INSTALL_DATA) $(HTML_TARGETS) "$(DESTDIR)$(htmldir)"
197install-pdf: pdf
198	 umask 022;$(MKDIR_P) "$(DESTDIR)$(pdfdir)"
199	$(INSTALL_DATA) $(PDF_TARGETS) "$(DESTDIR)$(pdfdir)"
200install-ps: ps
201	umask 022; $(MKDIR_P) "$(DESTDIR)$(psdir)"
202	for file in $(PS_TARGETS); do \
203	  $(INSTALL_DATA) $${file} "$(DESTDIR)$(psdir)"; \
204	  [ -n "${GZIP_PROG}" ] || continue; \
205	  rm -f "$(DESTDIR)$(psdir)/$${file}.gz"; \
206	  ${GZIP_PROG} -9n "$(DESTDIR)$(psdir)/$${file}"; \
207	done
208
209## Top-level Makefile installs the Info manuals.
210install-doc: install-dvi install-html install-pdf install-ps
211
212
213.PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc
214
215uninstall-dvi:
216	for file in $(DVI_TARGETS); do \
217	  rm -f "$(DESTDIR)$(dvidir)/$${file}"; \
218	done
219uninstall-html:
220	for file in $(HTML_TARGETS); do \
221	  rm -f "$(DESTDIR)$(htmldir)/$${file}"; \
222	done
223uninstall-ps:
224	ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \
225	for file in $(PS_TARGETS); do \
226	  rm -f "$(DESTDIR)$(psdir)/$${file}$${ext}"; \
227	done
228uninstall-pdf:
229	for file in $(PDF_TARGETS); do \
230	  rm -f "$(DESTDIR)$(pdfdir)/$${file}"; \
231	done
232
233uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
234
235
236### Makefile ends here
237