1#### Makefile for the Emacs Manual and other documentation. 2 3# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 4# 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 5 6# This file is part of GNU Emacs. 7 8# GNU Emacs is free software; you can redistribute it and/or modify 9# it under the terms of the GNU General Public License as published by 10# the Free Software Foundation; either version 2, or (at your option) 11# any later version. 12 13# GNU Emacs is distributed in the hope that it will be useful, 14# but WITHOUT ANY WARRANTY; without even the implied warranty of 15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16# GNU General Public License for more details. 17 18# You should have received a copy of the GNU General Public License 19# along with GNU Emacs; see the file COPYING. If not, write to 20# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 21# Boston, MA 02110-1301, USA. 22 23# Where to find the source code. $(srcdir) will be the man 24# subdirectory of the source tree. This is 25# set by the configure script's `--srcdir' option. 26srcdir=@srcdir@ 27top_srcdir=@top_srcdir@ 28 29# Tell make where to find source files; this is needed for the makefiles. 30VPATH=@srcdir@ 31 32 33# The makeinfo program is part of the Texinfo distribution. 34# Use --force so that it generates output even if there are errors. 35MAKEINFO = makeinfo --force 36INFO_TARGETS = ../info/emacs ../info/ccmode ../info/cl \ 37 ../info/dired-x ../info/ediff ../info/forms ../info/gnus \ 38 ../info/message ../info/sieve ../info/pgg ../info/emacs-mime \ 39 ../info/info ../info/mh-e ../info/reftex \ 40 ../info/sc ../info/vip ../info/viper ../info/widget \ 41 ../info/efaq ../info/ada-mode ../info/autotype ../info/calc \ 42 ../info/idlwave ../info/eudc ../info/ebrowse ../info/pcl-cvs \ 43 ../info/woman ../info/eshell ../info/org ../info/url \ 44 ../info/speedbar ../info/tramp ../info/ses ../info/smtpmail \ 45 ../info/flymake ../info/newsticker ../info/rcirc ../info/erc 46DVI_TARGETS = emacs.dvi calc.dvi cc-mode.dvi cl.dvi dired-x.dvi \ 47 ediff.dvi forms.dvi gnus.dvi message.dvi emacs-mime.dvi \ 48 gnus.dvi message.dvi sieve.dvi pgg.dvi mh-e.dvi \ 49 reftex.dvi sc.dvi vip.dvi viper.dvi widget.dvi faq.dvi \ 50 ada-mode.dvi autotype.dvi idlwave.dvi eudc.dvi ebrowse.dvi \ 51 pcl-cvs.dvi woman.dvi eshell.dvi org.dvi url.dvi \ 52 speedbar.dvi tramp.dvi ses.dvi smtpmail.dvi flymake.dvi \ 53 newsticker.dvi emacs-xtra.dvi rcirc.dvi erc.dvi 54INFOSOURCES = info.texi 55 56# The following rule does not work with all versions of `make'. 57.SUFFIXES: .texi .dvi 58.texi.dvi: 59 texi2dvi $< 60 61TEXI2DVI = texi2dvi 62ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" 63 64EMACS_XTRA=\ 65 $(srcdir)/arevert-xtra.texi \ 66 $(srcdir)/cal-xtra.texi \ 67 $(srcdir)/dired-xtra.texi \ 68 $(srcdir)/picture-xtra.texi \ 69 $(srcdir)/emerge-xtra.texi \ 70 $(srcdir)/vc-xtra.texi \ 71 $(srcdir)/vc1-xtra.texi \ 72 $(srcdir)/vc2-xtra.texi \ 73 $(srcdir)/fortran-xtra.texi \ 74 $(srcdir)/msdog-xtra.texi 75 76EMACSSOURCES= \ 77 ${srcdir}/emacs.texi \ 78 ${srcdir}/doclicense.texi \ 79 ${srcdir}/screen.texi \ 80 ${srcdir}/commands.texi \ 81 ${srcdir}/entering.texi \ 82 ${srcdir}/basic.texi \ 83 ${srcdir}/mini.texi \ 84 ${srcdir}/m-x.texi \ 85 ${srcdir}/help.texi \ 86 ${srcdir}/mark.texi \ 87 ${srcdir}/killing.texi \ 88 ${srcdir}/regs.texi \ 89 ${srcdir}/display.texi \ 90 ${srcdir}/search.texi \ 91 ${srcdir}/fixit.texi \ 92 ${srcdir}/files.texi \ 93 ${srcdir}/buffers.texi \ 94 ${srcdir}/windows.texi \ 95 ${srcdir}/frames.texi \ 96 ${srcdir}/mule.texi \ 97 ${srcdir}/major.texi \ 98 ${srcdir}/indent.texi \ 99 ${srcdir}/text.texi \ 100 ${srcdir}/programs.texi \ 101 ${srcdir}/building.texi \ 102 ${srcdir}/maintaining.texi \ 103 ${srcdir}/abbrevs.texi \ 104 ${srcdir}/sending.texi \ 105 ${srcdir}/rmail.texi \ 106 ${srcdir}/dired.texi \ 107 ${srcdir}/calendar.texi \ 108 ${srcdir}/misc.texi \ 109 ${srcdir}/custom.texi \ 110 ${srcdir}/trouble.texi \ 111 ${srcdir}/cmdargs.texi \ 112 ${srcdir}/xresources.texi \ 113 ${srcdir}/anti.texi \ 114 ${srcdir}/macos.texi \ 115 ${srcdir}/msdog.texi \ 116 ${srcdir}/gnu.texi \ 117 ${srcdir}/glossary.texi \ 118 ${srcdir}/ack.texi \ 119 ${srcdir}/kmacro.texi \ 120 $(EMACS_XTRA) 121 122info: $(top_srcdir)/info $(INFO_TARGETS) 123 124$(top_srcdir)/info: 125 mkdir $@ 126 127dvi: $(DVI_TARGETS) 128 129# Note that all the Info targets build the Info files 130# in srcdir. There is no provision for Info files 131# to exist in the build directory. 132# In a distribution of Emacs, the Info files should be up to date. 133 134# The following target uses an explicit -o switch to work around 135# the @setfilename directive in info.texi, which is required for 136# the Texinfo distribution. 137 138../info/info: ${INFOSOURCES} 139 cd $(srcdir); $(MAKEINFO) --no-split info.texi -o $@ 140 141info.dvi: ${INFOSOURCES} 142 $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi 143 144../info/emacs: ${EMACSSOURCES} 145 cd $(srcdir); $(MAKEINFO) emacs.texi 146 147emacs.dvi: ${EMACSSOURCES} 148 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi 149 150# This target is here so you could easily get the list of the *.texi 151# files which belong to the Emacs manual (as opposed to the separate 152# manuals for CL, CC Mode, Ebrowse, etc.). With this target, you can 153# say things like "grep foo `make emacsman`". 154emacsman: 155 @echo $(EMACSSOURCES) 156 157../info/ccmode: cc-mode.texi 158 cd $(srcdir); $(MAKEINFO) cc-mode.texi 159cc-mode.dvi: cc-mode.texi 160 $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi 161 162../info/ada-mode: ada-mode.texi 163 cd $(srcdir); $(MAKEINFO) ada-mode.texi 164ada-mode.dvi: ada-mode.texi 165 $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi 166 167../info/pcl-cvs: pcl-cvs.texi 168 cd $(srcdir); $(MAKEINFO) pcl-cvs.texi 169pcl-cvs.dvi: pcl-cvs.texi 170 $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi 171 172../info/eshell: eshell.texi 173 cd $(srcdir); $(MAKEINFO) eshell.texi 174eshell.dvi: eshell.texi 175 $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi 176 177../info/cl: cl.texi 178 cd $(srcdir); $(MAKEINFO) cl.texi 179cl.dvi: cl.texi 180 $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi 181 182../info/dired-x: dired-x.texi 183 cd $(srcdir); $(MAKEINFO) dired-x.texi 184dired-x.dvi: dired-x.texi 185 $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi 186 187../info/ediff: ediff.texi 188 cd $(srcdir); $(MAKEINFO) ediff.texi 189ediff.dvi: ediff.texi 190 $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi 191 192emacs-xtra.dvi: emacs-xtra.texi $(EMACS_XTRA) 193 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-xtra.texi 194 195../info/forms: forms.texi 196 cd $(srcdir); $(MAKEINFO) forms.texi 197forms.dvi: forms.texi 198 $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi 199 200# gnus/message/emacs-mime/sieve/pgg are part of Gnus: 201../info/gnus: gnus.texi gnus-faq.texi 202 cd $(srcdir); $(MAKEINFO) gnus.texi 203gnus.dvi: gnus.texi gnus-faq.texi 204 sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi 205 $(ENVADD) $(TEXI2DVI) gnustmp.texi 206 cp gnustmp.dvi $*.dvi 207 rm gnustmp.* 208 209../info/message: message.texi 210 cd $(srcdir); $(MAKEINFO) message.texi 211message.dvi: message.texi 212 $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi 213 214../info/sieve: sieve.texi 215 cd $(srcdir); $(MAKEINFO) sieve.texi 216sieve.dvi: sieve.texi 217 $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi 218 219../info/emacs-mime: emacs-mime.texi 220 cd $(srcdir); $(MAKEINFO) emacs-mime.texi 221emacs-mime.dvi: emacs-mime.texi 222 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi 223 224../info/pgg: pgg.texi 225 cd $(srcdir); $(MAKEINFO) pgg.texi 226pgg.dvi: pgg.texi 227 $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi 228 229../info/mh-e: mh-e.texi 230 cd $(srcdir); $(MAKEINFO) mh-e.texi 231mh-e.dvi: mh-e.texi 232 $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi 233 234../info/reftex: reftex.texi 235 cd $(srcdir); $(MAKEINFO) reftex.texi 236reftex.dvi: reftex.texi 237 $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi 238 239../info/sc: sc.texi 240 cd $(srcdir); $(MAKEINFO) sc.texi 241sc.dvi: sc.texi 242 $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi 243 244../info/vip: vip.texi 245 cd $(srcdir); $(MAKEINFO) vip.texi 246vip.dvi: vip.texi 247 $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi 248 249../info/viper: viper.texi 250 cd $(srcdir); $(MAKEINFO) viper.texi 251viper.dvi: viper.texi 252 $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi 253 254../info/widget: widget.texi 255 cd $(srcdir); $(MAKEINFO) widget.texi 256widget.dvi: widget.texi 257 $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi 258 259../info/efaq: faq.texi 260 cd $(srcdir); $(MAKEINFO) faq.texi 261faq.dvi: faq.texi 262 $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi 263 264../etc/GNU: gnu1.texi gnu.texi 265 cd $(srcdir) && makeinfo --no-headers -o ../etc/GNU gnu1.texi 266 267../info/autotype: autotype.texi 268 cd $(srcdir); $(MAKEINFO) autotype.texi 269autotype.dvi: autotype.texi 270 $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi 271 272../info/calc: calc.texi 273 cd $(srcdir); $(MAKEINFO) calc.texi 274 275calc.dvi: calc.texi 276 $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi 277 278# This is produced with --no-split to avoid making files whose 279# names clash on DOS 8+3 filesystems 280../info/idlwave: idlwave.texi 281 cd $(srcdir); $(MAKEINFO) --no-split idlwave.texi 282idlwave.dvi: idlwave.texi 283 $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi 284 285../info/eudc: eudc.texi 286 cd $(srcdir); $(MAKEINFO) eudc.texi 287eudc.dvi: eudc.texi 288 $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi 289 290../info/ebrowse: ebrowse.texi 291 cd $(srcdir); $(MAKEINFO) ebrowse.texi 292ebrowse.dvi: ebrowse.texi 293 $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi 294 295../info/woman: woman.texi 296 cd $(srcdir); $(MAKEINFO) woman.texi 297woman.dvi: woman.texi 298 $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi 299 300../info/org: org.texi 301 cd $(srcdir); $(MAKEINFO) org.texi 302org.dvi: org.texi 303 $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi 304 305../info/url: url.texi 306 cd $(srcdir); $(MAKEINFO) url.texi 307url.dvi: url.texi 308 $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi 309 310../info/speedbar: speedbar.texi 311 cd $(srcdir); $(MAKEINFO) speedbar.texi 312speedbar.dvi: speedbar.texi 313 $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi 314 315../info/tramp: tramp.texi trampver.texi 316 cd $(srcdir); $(MAKEINFO) -D emacs tramp.texi 317tramp.dvi: tramp.texi trampver.texi 318 $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi 319 320../info/ses: ses.texi 321 cd $(srcdir); $(MAKEINFO) ses.texi 322ses.dvi: ses.texi 323 $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi 324 325../info/smtpmail: smtpmail.texi 326 cd $(srcdir); $(MAKEINFO) smtpmail.texi 327smtpmail.dvi: smtpmail.texi 328 $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi 329 330../info/flymake: flymake.texi 331 cd $(srcdir); $(MAKEINFO) flymake.texi 332flymake.dvi: flymake.texi 333 $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi 334 335../info/newsticker: newsticker.texi 336 cd $(srcdir); $(MAKEINFO) newsticker.texi 337newsticker.dvi: newsticker.texi 338 $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi 339 340../info/rcirc: rcirc.texi 341 cd $(srcdir); $(MAKEINFO) rcirc.texi 342rcirc.dvi: rcirc.texi 343 $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi 344 345../info/erc: erc.texi 346 cd $(srcdir); $(MAKEINFO) erc.texi 347erc.dvi: erc.texi 348 $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi 349 350mostlyclean: 351 rm -f *.log *.cp *.fn *.ky *.pg *.vr core *.tp *.core gnustmp.* 352 353clean: mostlyclean 354 rm -f *.dvi 355 356distclean: clean 357 358maintainer-clean: distclean 359 rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc 360 for file in $(INFO_TARGETS); do rm -f $${file}*; done 361 362 363# Formerly this directory had texindex.c and getopt.c in it 364# and this makefile built them to make texindex. 365# That caused trouble because this is run entirely in the source directory. 366# Since we expect to get texi2dvi from elsewhere, 367# it is ok to expect texindex from elsewhere also. 368