| 1 | ##Copyright (C) 1991 Free Software Foundation, Inc. |
| 2 | |
| 3 | # Makefile for GDB documentation. |
| 4 | # This file is part of GDB. |
| 5 | |
| 6 | # This program is free software; you can redistribute it and/or modify |
| 7 | # it under the terms of the GNU General Public License as published by |
| 8 | # the Free Software Foundation; either version 2 of the License, or |
| 9 | # (at your option) any later version. |
| 10 | # |
| 11 | # This program is distributed in the hope that it will be useful, |
| 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 14 | # GNU General Public License for more details. |
| 15 | # |
| 16 | # You should have received a copy of the GNU General Public License |
| 17 | # along with this program; if not, write to the Free Software |
| 18 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
| 19 | |
| 20 | srcdir = . |
| 21 | |
| 22 | prefix = /usr/local |
| 23 | |
| 24 | bindir = $(prefix)/bin |
| 25 | datadir = $(prefix)/lib |
| 26 | libdir = $(prefix)/lib |
| 27 | mandir = $(datadir)/man |
| 28 | man1dir = $(mandir)/man1 |
| 29 | man2dir = $(mandir)/man2 |
| 30 | man3dir = $(mandir)/man3 |
| 31 | man4dir = $(mandir)/man4 |
| 32 | man5dir = $(mandir)/man5 |
| 33 | man6dir = $(mandir)/man6 |
| 34 | man7dir = $(mandir)/man7 |
| 35 | man8dir = $(mandir)/man8 |
| 36 | man9dir = $(mandir)/man9 |
| 37 | infodir = $(datadir)/info |
| 38 | includedir = $(prefix)/include |
| 39 | docdir = $(datadir)/doc |
| 40 | |
| 41 | SHELL = /bin/sh |
| 42 | |
| 43 | INSTALL = install -c |
| 44 | INSTALL_PROGRAM = $(INSTALL) |
| 45 | INSTALL_DATA = $(INSTALL) |
| 46 | |
| 47 | AR = ar |
| 48 | AR_FLAGS = qv |
| 49 | BISON = bison |
| 50 | RANLIB = ranlib |
| 51 | |
| 52 | #### Host, target, and site specific Makefile fragments come in here. |
| 53 | ### |
| 54 | # main GDB source directory |
| 55 | gdbdir = .. |
| 56 | |
| 57 | # Documentation (gdb.dvi) needs either GNU m4 or SysV m4; |
| 58 | # Berkeley/Sun don't have quite enough. |
| 59 | #M4=/usr/5bin/m4 |
| 60 | M4=gm4 |
| 61 | |
| 62 | # where to find texinfo; GDB dist should include a recent one |
| 63 | TEXIDIR=$(srcdir)/${gdbdir}/../texinfo/fsf |
| 64 | |
| 65 | # where to find makeinfo, preferably one designed for texinfo-2 |
| 66 | MAKEINFO=makeinfo |
| 67 | |
| 68 | # where to find texi2roff, ditto |
| 69 | TEXI2ROFF=texi2roff |
| 70 | |
| 71 | # Where is the source dir for the READLINE library? Traditionally in .. or . |
| 72 | # (For the binary library built from it, we use ${READLINE_DIR}${subdir}.) |
| 73 | READLINE_DIR = $(srcdir)/${gdbdir}/../readline |
| 74 | |
| 75 | # Main GDB manual's source files |
| 76 | SFILES_DOCDIR = \ |
| 77 | $(srcdir)/gdb.texinfo $(srcdir)/pretex.m4 $(srcdir)/none.m4 \ |
| 78 | $(srcdir)/all.m4 gdbinv-m.m4 gdbinv-s.m4 gdbVN.m4 |
| 79 | |
| 80 | # Which version of GDB manual? default includes everything |
| 81 | CONFIG=all |
| 82 | |
| 83 | all install: |
| 84 | |
| 85 | info: gdb.info gdbint.info |
| 86 | #all: gdb.info gdb.dvi refcard.dvi gdb-internals gdbint.dvi |
| 87 | clean-info: |
| 88 | -rm -f *.info* |
| 89 | |
| 90 | install-info: info |
| 91 | for i in *.info* ; do \ |
| 92 | $(INSTALL_DATA) $$i $(infodir)/$$i ; \ |
| 93 | done |
| 94 | |
| 95 | STAGESTUFF = *.info* gdb-all.texi gdbVN.m4 |
| 96 | |
| 97 | # Copy the object files from a particular stage into a subdirectory. |
| 98 | stage1: force |
| 99 | -mkdir stage1 |
| 100 | -mv $(STAGESTUFF) stage1 |
| 101 | |
| 102 | stage2: force |
| 103 | -mkdir stage2 |
| 104 | -mv $(STAGESTUFF) stage2 |
| 105 | |
| 106 | stage3: force |
| 107 | -mkdir stage3 |
| 108 | -mv $(STAGESTUFF) stage3 |
| 109 | |
| 110 | against=stage2 |
| 111 | |
| 112 | comparison: force |
| 113 | for i in $(STAGESTUFF) ; do cmp $$i $(against)/$$i ; done |
| 114 | |
| 115 | de-stage1: force |
| 116 | -(cd stage1 ; mv -f * ..) |
| 117 | -rmdir stage1 |
| 118 | |
| 119 | de-stage2: force |
| 120 | -(cd stage2 ; mv -f * ..) |
| 121 | -rmdir stage2 |
| 122 | |
| 123 | de-stage3: force |
| 124 | -(cd stage3 ; mv -f * ..) |
| 125 | -rmdir stage3 |
| 126 | |
| 127 | clean: |
| 128 | rm -f gdb.dvi rluser.texinfo inc-hist.texi gdb-all* gdb.info* gdbVN.m4 |
| 129 | rm -f gdb-internals gdbint.?? gdbint.??? gdbint.info |
| 130 | rm -f refcard.ps refcard.dvi rcfonts.tex refcard.log *~ |
| 131 | |
| 132 | # GDB QUICK REFERENCE (TeX dvi file, CM fonts) |
| 133 | refcard.dvi : $(srcdir)/refcard.tex |
| 134 | rm -f rcfonts.tex; cp $(srcdir)/rc-cm.tex rcfonts.tex |
| 135 | TEXINPUTS=$(srcdir):.:$$TEXINPUTS tex refcard.tex; rm -f refcard.log |
| 136 | rm -f rcfonts.tex |
| 137 | |
| 138 | # GDB QUICK REFERENCE (PostScript output, common PS fonts) |
| 139 | refcard.ps : $(srcdir)/refcard.tex |
| 140 | rm -f rcfonts.tex; cp $(srcdir)/rc-ps.tex rcfonts.tex |
| 141 | TEXINPUTS=$(srcdir):.:$$TEXINPUTS tex refcard.tex |
| 142 | dvips -t landscape refcard -o; rm -f refcard.dvi refcard.log |
| 143 | rm -f rcfonts.tex |
| 144 | |
| 145 | # "Readline" appendices. Get them here so both TeX and texi2roff can find. |
| 146 | rluser.texinfo: ${READLINE_DIR}/doc/rluser.texinfo |
| 147 | ln -s ${READLINE_DIR}/doc/rluser.texinfo $(unsubdir) || \ |
| 148 | ln ${READLINE_DIR}/doc/rluser.texinfo $(unsubdir) || \ |
| 149 | cp ${READLINE_DIR}/doc/rluser.texinfo $(unsubdir) |
| 150 | |
| 151 | inc-hist.texi: ${READLINE_DIR}/doc/inc-hist.texi |
| 152 | ln -s ${READLINE_DIR}/doc/inc-hist.texi $(unsubdir) || \ |
| 153 | ln ${READLINE_DIR}/doc/inc-hist.texi $(unsubdir) || \ |
| 154 | cp ${READLINE_DIR}/doc/inc-hist.texi $(unsubdir) |
| 155 | |
| 156 | # File to record current GDB version number (copied from main dir Makefile.in) |
| 157 | gdbVN.m4 : $(srcdir)/${gdbdir}/Makefile.in |
| 158 | echo "_define__(<_GDB_VN__>,`sed <./../Makefile.in -n 's/VERSION = //p'`)" > ./gdbVN.m4 |
| 159 | |
| 160 | # GDB MANUAL: texinfo source, created by preprocessing w/m4 |
| 161 | # If you want other configs in the makefile, add or modify instructions for |
| 162 | # building source here, then change CONFIG (that way you get info, dvi, |
| 163 | # roff targets automatically for your config). |
| 164 | # Be sure to not create a bad gdb-all.texi if ${M4} is missing or aborts... |
| 165 | # The nonsense with gdbVN.m4 is to get this to run with both Sun and GNU make. |
| 166 | # Note that we can *generate* gdbVN.m4, but since we distribute one in the |
| 167 | # source directory for the benefit of people who *don't* use this makefile, |
| 168 | # VPATH will often tell make not to bother building it, because the one |
| 169 | # in the srcdir is up to date. (if not, then make should build one here). |
| 170 | gdb-all.texi: ${SFILES_DOCDIR} |
| 171 | if [ ! -f ./gdbVN.m4 ]; then \ |
| 172 | ln -s $(srcdir)/gdbVN.m4 . || \ |
| 173 | ln $(srcdir)/gdbVN.m4 . || \ |
| 174 | cp $(srcdir)/gdbVN.m4 . ; fi |
| 175 | rm -f foobus.texinfo |
| 176 | ${M4} $(srcdir)/pretex.m4 $(srcdir)/none.m4 $(srcdir)/all.m4 \ |
| 177 | gdbVN.m4 $(srcdir)/gdb.texinfo >foobus.texinfo |
| 178 | rm -f gdb-all.texi |
| 179 | mv foobus.texinfo $(unsubdir)/gdb-all.texi |
| 180 | |
| 181 | # GDB MANUAL: TeX dvi file |
| 182 | gdb.dvi : gdb-${CONFIG}.texi rluser.texinfo inc-hist.texi |
| 183 | TEXINPUTS=${TEXIDIR}:.:$(srcdir):$$TEXINPUTS tex gdb-${CONFIG}.texi |
| 184 | texindex gdb-${CONFIG}.?? |
| 185 | TEXINPUTS=${TEXIDIR}:.:$(srcdir):$$TEXINPUTS tex gdb-${CONFIG}.texi |
| 186 | mv gdb-${CONFIG}.dvi $(unsubdir)/gdb.dvi |
| 187 | rm -f gdb-${CONFIG}.?? gdb-${CONFIG}.??? |
| 188 | |
| 189 | # GDB MANUAL: info file |
| 190 | # We're using texinfo2, and older makeinfo's may not be able to |
| 191 | # cope with all the markup. In the meantime, we distribute the info |
| 192 | # files |
| 193 | gdb.info: gdb-${CONFIG}.texi |
| 194 | $(MAKEINFO) -o $(unsubdir)/gdb.info gdb-${CONFIG}.texi |
| 195 | |
| 196 | # GDB MANUAL: roff translations |
| 197 | # Try to use a recent texi2roff. v2 was put on prep in jan91. |
| 198 | # If you want an index, see texi2roff doc for postprocessing |
| 199 | # and add -i to texi2roff invocations below. |
| 200 | # Workarounds for texi2roff-2 (probably fixed in later texi2roff's, delete |
| 201 | # corresponding -e lines when later texi2roff's are current) |
| 202 | # + @ifinfo's deleted explicitly due to texi2roff-2 bug w nested constructs. |
| 203 | # + @c's deleted explicitly because texi2roff sees texinfo commands in them |
| 204 | # + @ (that's at-BLANK) not recognized by texi2roff, turned into blank |
| 205 | # + @alphaenumerate is ridiculously new, turned into @enumerate |
| 206 | |
| 207 | |
| 208 | # gdb manual suitable for [tn]roff -mm |
| 209 | # '@noindent's removed due to texi2roff-2 mm bug; if yours is newer, |
| 210 | # try leaving them in |
| 211 | # ditto special treatment of @ftable in rluser.texinfo |
| 212 | gdb.mm: gdb-${CONFIG}.texi ${READLINE_DIR}/doc/rluser.texinfo inc-hist.texi |
| 213 | sed -e 's/^@ftable/@table/g' \ |
| 214 | -e 's/^@end ftable/@end table/g' \ |
| 215 | ${READLINE_DIR}/doc/rluser.texinfo > rluser.texinfo |
| 216 | sed -e '/\\input texinfo/d' \ |
| 217 | -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ |
| 218 | -e '/^@ifinfo/,/^@end ifinfo/d' \ |
| 219 | -e '/^@c/d' \ |
| 220 | -e 's/{.*,,/{/' \ |
| 221 | -e '/@noindent/d' \ |
| 222 | -e 's/@ / /g' \ |
| 223 | -e 's/^@alphaenumerate/@enumerate/g' \ |
| 224 | -e 's/^@end alphaenumerate/@end enumerate/g' \ |
| 225 | gdb-${CONFIG}.texi | \ |
| 226 | $(TEXI2ROFF) -mm | \ |
| 227 | sed -e 's/---/\\(em/g' \ |
| 228 | >gdb.mm |
| 229 | rm rluser.texinfo |
| 230 | |
| 231 | # gdb manual suitable for [gtn]roff -me |
| 232 | gdb.me: gdb-${CONFIG}.texi ${READLINE_DIR}/doc/rluser.texinfo inc-hist.texi |
| 233 | sed -e 's/^@ftable/@table/g' \ |
| 234 | -e 's/^@end ftable/@end table/g' \ |
| 235 | ${READLINE_DIR}/doc/rluser.texinfo > rluser.texinfo |
| 236 | sed -e '/\\input texinfo/d' \ |
| 237 | -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ |
| 238 | -e '/^@ifinfo/,/^@end ifinfo/d' \ |
| 239 | -e '/^@c/d' \ |
| 240 | -e 's/{.*,,/{/' \ |
| 241 | -e 's/@ / /g' \ |
| 242 | -e 's/^@alphaenumerate/@enumerate/g' \ |
| 243 | -e 's/^@end alphaenumerate/@end enumerate/g' \ |
| 244 | gdb-${CONFIG}.texi | \ |
| 245 | $(TEXI2ROFF) -me | \ |
| 246 | sed -e 's/---/\\(em/g' \ |
| 247 | >gdb.me |
| 248 | rm rluser.texinfo |
| 249 | |
| 250 | # gdb manual suitable for [gtn]roff -ms |
| 251 | gdb.ms: gdb-${CONFIG}.texi ${READLINE_DIR}/doc/rluser.texinfo inc-hist.texi |
| 252 | sed -e 's/^@ftable/@table/g' \ |
| 253 | -e 's/^@end ftable/@end table/g' \ |
| 254 | ${READLINE_DIR}/doc/rluser.texinfo > rluser.texinfo |
| 255 | sed -e '/\\input texinfo/d' \ |
| 256 | -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ |
| 257 | -e '/^@ifinfo/,/^@end ifinfo/d' \ |
| 258 | -e '/^@c/d' \ |
| 259 | -e 's/{.*,,/{/' \ |
| 260 | -e 's/@ / /g' \ |
| 261 | -e 's/^@alphaenumerate/@enumerate/g' \ |
| 262 | -e 's/^@end alphaenumerate/@end enumerate/g' \ |
| 263 | gdb-${CONFIG}.texi | \ |
| 264 | $(TEXI2ROFF) -ms | \ |
| 265 | sed -e 's/---/\\(em/g' \ |
| 266 | >gdb.ms |
| 267 | rm rluser.texinfo |
| 268 | |
| 269 | # GDB INTERNALS MANUAL: TeX dvi file |
| 270 | gdbint.dvi : gdbint.texinfo |
| 271 | TEXINPUTS=${TEXIDIR}:.:$$TEXINPUTS tex gdbint.texinfo |
| 272 | texindex gdbint.?? |
| 273 | TEXINPUTS=${TEXIDIR}:.:$$TEXINPUTS tex gdbint.texinfo |
| 274 | rm -f gdbint.?? gdbint.aux gdbint.cps gdbint.fns gdbint.kys \ |
| 275 | gdbint.log gdbint.pgs gdbint.toc gdbint.tps gdbint.vrs |
| 276 | |
| 277 | # GDB INTERNALS MANUAL: info file |
| 278 | gdb-internals: gdbint.info |
| 279 | |
| 280 | gdbint.info: gdbint.texinfo |
| 281 | $(MAKEINFO) -o gdbint.info $(srcdir)/gdbint.texinfo |
| 282 | |
| 283 | force: |
| 284 | |
| 285 | Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag) |
| 286 | $(SHELL) ./config.status |