##Copyright (C) 1991, 1992 Free Software Foundation, Inc. # Makefile for GDB documentation. # This file is part of GDB. # This program 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 2 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. srcdir = . prefix = /usr/local exec_prefix = $(prefix) bindir = $(exec_prefix)/bin libdir = $(exec_prefix)/lib datadir = $(prefix)/lib mandir = $(prefix)/man man1dir = $(mandir)/man1 man2dir = $(mandir)/man2 man3dir = $(mandir)/man3 man4dir = $(mandir)/man4 man5dir = $(mandir)/man5 man6dir = $(mandir)/man6 man7dir = $(mandir)/man7 man8dir = $(mandir)/man8 man9dir = $(mandir)/man9 infodir = $(prefix)/info includedir = $(prefix)/include docdir = $(datadir)/doc SHELL = /bin/sh INSTALL = install -c INSTALL_PROGRAM = $(INSTALL) INSTALL_DATA = $(INSTALL) AR = ar AR_FLAGS = qv BISON = bison RANLIB = ranlib # main GDB source directory gdbdir = .. # Documentation (gdb.dvi) needs either GNU m4 or SysV m4; # Berkeley/Sun don't have quite enough. #M4=/usr/5bin/m4 M4=m4 # where to find texinfo; GDB dist should include a recent one TEXIDIR=$(srcdir)/${gdbdir}/../texinfo # where to find makeinfo, preferably one designed for texinfo-2 MAKEINFO=makeinfo # where to find texi2roff, ditto TEXI2ROFF=texi2roff # Where is the source dir for the READLINE library? Traditionally in .. or . # (For the binary library built from it, we use ${READLINE_DIR}${subdir}.) READLINE_DIR = $(srcdir)/${gdbdir}/../readline # Main GDB manual's source files SFILES_DOCDIR = \ $(srcdir)/gdb.texinfo $(srcdir)/pretex.m4 $(srcdir)/none.m4 \ $(srcdir)/all.m4 gdbinv-m.m4 gdbinv-s.m4 gdbVN.m4 # Which version of GDB manual? default includes everything CONFIG=all #### Host, target, and site specific Makefile fragments come in here. ### all install: info: gdb.info gdbint.info stabs.info all-doc: gdb.info gdb.dvi refcard.dvi gdb-internals gdbint.dvi clean-info: -rm -f *.info* install-info: info -parent=`echo $(infodir)|sed -e 's@/[^/]*$$@@'`; \ if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi for i in *.info* ; do \ $(INSTALL_DATA) $$i $(infodir)/$$i ; \ done STAGESTUFF = *.info* gdb-all.texi gdbVN.m4 # Copy the object files from a particular stage into a subdirectory. stage1: force -mkdir stage1 -mv $(STAGESTUFF) stage1 stage2: force -mkdir stage2 -mv $(STAGESTUFF) stage2 stage3: force -mkdir stage3 -mv $(STAGESTUFF) stage3 against=stage2 comparison: force for i in $(STAGESTUFF) ; do cmp $$i $(against)/$$i ; done de-stage1: force -(cd stage1 ; mv -f * ..) -rmdir stage1 de-stage2: force -(cd stage2 ; mv -f * ..) -rmdir stage2 de-stage3: force -(cd stage3 ; mv -f * ..) -rmdir stage3 clean: rm -f gdb.dvi rluser.texinfo inc-hist.texi gdb-all* gdb.info* gdbVN.m4 rm -f gdb-internals gdbint.?? gdbint.??? gdbint.info rm -f refcard.ps refcard.dvi refcard.log *~ # GDB QUICK REFERENCE (TeX dvi file, CM fonts) refcard.dvi : $(srcdir)/refcard.tex TEXINPUTS=$(srcdir):.:$$TEXINPUTS tex refcard.tex; rm -f refcard.log rm -f rcfonts.tex # GDB QUICK REFERENCE (PostScript output, common PS fonts) refcard.ps : $(srcdir)/refcard.tex $(srcdir)/psrc.sed sed -f $(srcdir)/psrc.sed $(srcdir)/refcard.tex >psref.tex TEXINPUTS=$(srcdir):.:$$TEXINPUTS tex psref.tex dvips -t landscape psref -o; mv psref.ps refcard.ps rm -f psref.dvi psref.log # GDB QUICK REFERENCE (PostScript output, common PS fonts w/long names) lrefcard.ps : $(srcdir)/refcard.tex $(srcdir)/lpsrc.sed sed -f $(srcdir)/lpsrc.sed $(srcdir)/refcard.tex >psref.tex TEXINPUTS=$(srcdir):.:$$TEXINPUTS tex psref.tex dvips -t landscape psref -o; mv psref.ps lrefcard.ps rm -f psref.dvi psref.log # "Readline" appendices. Get them here so both TeX and texi2roff can find. rluser.texinfo: ${READLINE_DIR}/doc/rluser.texinfo ln -s ${READLINE_DIR}/doc/rluser.texinfo . || \ ln ${READLINE_DIR}/doc/rluser.texinfo . || \ cp ${READLINE_DIR}/doc/rluser.texinfo . inc-hist.texi: ${READLINE_DIR}/doc/inc-hist.texi ln -s ${READLINE_DIR}/doc/inc-hist.texi . || \ ln ${READLINE_DIR}/doc/inc-hist.texi . || \ cp ${READLINE_DIR}/doc/inc-hist.texi . # File to record current GDB version number (copied from main dir Makefile.in) gdbVN.m4 : $(srcdir)/${gdbdir}/Makefile.in echo "_define__(<_GDB_VN__>,`sed <$(srcdir)/../Makefile.in -n 's/VERSION = //p'`)" > ./gdbVN.m4 # GDB MANUAL: texinfo source, created by preprocessing w/m4 # If you want other configs in the makefile, add or modify instructions for # building source here, then change CONFIG (that way you get info, dvi, # roff targets automatically for your config). # Be sure to not create a bad gdb-all.texi if ${M4} is missing or aborts... # The nonsense with gdbVN.m4 is to get this to run with both Sun and GNU make. # Note that we can *generate* gdbVN.m4, but since we distribute one in the # source directory for the benefit of people who *don't* use this makefile, # VPATH will often tell make not to bother building it, because the one # in the srcdir is up to date. (if not, then make should build one here). gdb-all.texi: ${SFILES_DOCDIR} if [ ! -f ./gdbVN.m4 ]; then \ ln -s $(srcdir)/gdbVN.m4 . || \ ln $(srcdir)/gdbVN.m4 . || \ cp $(srcdir)/gdbVN.m4 . ; else true; fi rm -f foobus.texinfo ${M4} $(srcdir)/pretex.m4 $(srcdir)/none.m4 $(srcdir)/all.m4 \ gdbVN.m4 $(srcdir)/gdb.texinfo >foobus.texinfo rm -f gdb-all.texi mv foobus.texinfo ./gdb-all.texi # GDB MANUAL: TeX dvi file gdb.dvi : gdb-${CONFIG}.texi rluser.texinfo inc-hist.texi TEXINPUTS=${TEXIDIR}:.:$(srcdir):$$TEXINPUTS tex gdb-${CONFIG}.texi TEXINPUTS=${TEXIDIR}:.:$(srcdir):$$TEXINPUTS tex gdb-${CONFIG}.texi texindex gdb-${CONFIG}.?? TEXINPUTS=${TEXIDIR}:.:$(srcdir):$$TEXINPUTS tex gdb-${CONFIG}.texi mv gdb-${CONFIG}.dvi ./gdb.dvi rm -f gdb-${CONFIG}.?? gdb-${CONFIG}.??? # GDB MANUAL: info file # We're using texinfo2, and older makeinfo's may not be able to # cope with all the markup. In the meantime, we distribute the info # files gdb.info: gdb-${CONFIG}.texi $(MAKEINFO) -o ./gdb.info gdb-${CONFIG}.texi # GDB MANUAL: roff translations # Try to use a recent texi2roff. v2 was put on prep in jan91. # If you want an index, see texi2roff doc for postprocessing # and add -i to texi2roff invocations below. # Workarounds for texi2roff-2 (probably fixed in later texi2roff's, delete # corresponding -e lines when later texi2roff's are current) # + @ifinfo's deleted explicitly due to texi2roff-2 bug w nested constructs. # + @c's deleted explicitly because texi2roff sees texinfo commands in them # + @ (that's at-BLANK) not recognized by texi2roff, turned into blank # + @alphaenumerate is ridiculously new, turned into @enumerate # gdb manual suitable for [tn]roff -mm # '@noindent's removed due to texi2roff-2 mm bug; if yours is newer, # try leaving them in # ditto special treatment of @ftable in rluser.texinfo gdb.mm: gdb-${CONFIG}.texi ${READLINE_DIR}/doc/rluser.texinfo inc-hist.texi rm -f ./rluser.texinfo sed -e 's/^@ftable/@table/g' \ -e 's/^@end ftable/@end table/g' \ ${READLINE_DIR}/doc/rluser.texinfo > ./rluser.texinfo sed -e '/\\input texinfo/d' \ -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ -e '/^@ifinfo/,/^@end ifinfo/d' \ -e '/^@c /d' \ -e 's/{.*,,/{/' \ -e '/@noindent/d' \ -e 's/@ / /g' \ -e 's/^@alphaenumerate/@enumerate/g' \ -e 's/^@end alphaenumerate/@end enumerate/g' \ gdb-${CONFIG}.texi | \ $(TEXI2ROFF) -mm | \ sed -e 's/---/\\(em/g' \ >gdb.mm rm ./rluser.texinfo # gdb manual suitable for [gtn]roff -me gdb.me: gdb-${CONFIG}.texi ${READLINE_DIR}/doc/rluser.texinfo inc-hist.texi rm -f ./rluser.texinfo sed -e 's/^@ftable/@table/g' \ -e 's/^@end ftable/@end table/g' \ ${READLINE_DIR}/doc/rluser.texinfo > ./rluser.texinfo sed -e '/\\input texinfo/d' \ -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ -e '/^@ifinfo/,/^@end ifinfo/d' \ -e '/^@c /d' \ -e 's/{.*,,/{/' \ -e 's/@ / /g' \ -e 's/^@alphaenumerate/@enumerate/g' \ -e 's/^@end alphaenumerate/@end enumerate/g' \ gdb-${CONFIG}.texi | \ $(TEXI2ROFF) -me | \ sed -e 's/---/\\(em/g' \ >gdb.me rm ./rluser.texinfo # gdb manual suitable for [gtn]roff -ms gdb.ms: gdb-${CONFIG}.texi ${READLINE_DIR}/doc/rluser.texinfo inc-hist.texi rm -f ./rluser.texinfo sed -e 's/^@ftable/@table/g' \ -e 's/^@end ftable/@end table/g' \ ${READLINE_DIR}/doc/rluser.texinfo > ./rluser.texinfo sed -e '/\\input texinfo/d' \ -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ -e '/^@ifinfo/,/^@end ifinfo/d' \ -e '/^@c /d' \ -e 's/{.*,,/{/' \ -e 's/@ / /g' \ -e 's/^@alphaenumerate/@enumerate/g' \ -e 's/^@end alphaenumerate/@end enumerate/g' \ gdb-${CONFIG}.texi | \ $(TEXI2ROFF) -ms | \ sed -e 's/---/\\(em/g' \ >gdb.ms rm ./rluser.texinfo # GDB INTERNALS MANUAL: TeX dvi file gdbint.dvi : gdbint.texinfo TEXINPUTS=${TEXIDIR}:.:$(srcdir):$$TEXINPUTS tex gdbint.texinfo texindex gdbint.?? TEXINPUTS=${TEXIDIR}:.:$(srcdir):$$TEXINPUTS tex gdbint.texinfo rm -f gdbint.?? gdbint.aux gdbint.cps gdbint.fns gdbint.kys \ gdbint.log gdbint.pgs gdbint.toc gdbint.tps gdbint.vrs # GDB INTERNALS MANUAL: info file gdb-internals: gdbint.info gdbint.info: gdbint.texinfo $(MAKEINFO) -o gdbint.info $(srcdir)/gdbint.texinfo stabs.info: stabs.texinfo $(MAKEINFO) -o stabs.info $(srcdir)/stabs.texinfo # STABS DOCUMENTATION: TeX dvi file stabs.dvi : stabs.texinfo TEXINPUTS=${TEXIDIR}:.:$(srcdir):$$TEXINPUTS tex stabs.texinfo texindex stabs.?? TEXINPUTS=${TEXIDIR}:.:$(srcdir):$$TEXINPUTS tex stabs.texinfo rm -f stabs.?? stabs.aux stabs.cps stabs.fns stabs.kys \ stabs.log stabs.pgs stabs.toc stabs.tps stabs.vrs stabs.ps: stabs.dvi dvips -o stabs.ps stabs force: Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag) $(SHELL) ./config.status