gdb/doc/
[deliverable/binutils-gdb.git] / gdb / doc / Makefile.in
index 34ee07c68327043d965e324dd521e0e73b735ed1..b839036f139ee6b50f31660657a4ca95820e8c46 100644 (file)
@@ -1,22 +1,20 @@
-##Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2002, 2003,
-##2007, 2008, 2009 Free Software Foundation, Inc.
+##Copyright (C) 1991-2013 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
+# the Free Software Foundation; either version 3 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 srcdir = @srcdir@
 VPATH = @srcdir@
@@ -24,8 +22,13 @@ VPATH = @srcdir@
 prefix = @prefix@
 
 infodir = @infodir@
+datarootdir = @datarootdir@
+docdir = @docdir@
 pdfdir = @pdfdir@
 htmldir = @htmldir@
+mandir = @mandir@
+man1dir = $(mandir)/man1
+man5dir = $(mandir)/man5
 
 SHELL = @SHELL@
 
@@ -35,6 +38,8 @@ INSTALL = @INSTALL@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 
+SYSTEM_GDBINIT = @SYSTEM_GDBINIT@
+
 mkinstalldirs = $(SHELL) $(srcdir)/../../mkinstalldirs
 
 # main GDB source directory
@@ -44,9 +49,12 @@ gdbdir = $(srcdir)/..
 TEXIDIR=${gdbdir}/../texinfo
 
 # where to find makeinfo, preferably one designed for texinfo-2
-MAKEINFO=makeinfo
+MAKEINFO = @MAKEINFO@
+MAKEINFOFLAGS = @MAKEINFOFLAGS@
+MAKEINFO_EXTRA_FLAGS = @MAKEINFO_EXTRA_FLAGS@
+MAKEINFO_CMD = $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFO_EXTRA_FLAGS)
 
-MAKEHTML = $(MAKEINFO) --html 
+MAKEHTML = $(MAKEINFO_CMD) --html
 MAKEHTMLFLAGS =
 
 # where to find texi2roff, ditto
@@ -62,6 +70,7 @@ BUGURL_TEXI = @REPORT_BUGS_TEXI@
 # Where is the source dir for the READLINE library doc?  
 # Traditionally readline is in .. or .
 READLINE_DIR = ${gdbdir}/../readline/doc
+READLINE_TEXI_INCFLAG = @READLINE_TEXI_INCFLAG@
 
 # The GDB/MI docs come from a sibling directory ../mi
 GDBMI_DIR = ${gdbdir}/mi
@@ -107,12 +116,15 @@ PDFTEX = pdftex
 DVIPS = dvips
 
 # Main GDB manual
+# Note that this unconditionally includes the readline texi files,
+# even when --with-system-readline is used.  This is harmless because
+# these are only used as dependencies.
 GDB_DOC_SOURCE_INCLUDES = \
        $(srcdir)/fdl.texi \
        $(srcdir)/gpl.texi \
        $(srcdir)/agentexpr.texi \
        $(READLINE_DIR)/rluser.texi \
-       $(READLINE_DIR)/inc-hist.texinfo
+       $(READLINE_DIR)/hsuser.texi
 GDB_DOC_BUILD_INCLUDES = \
        gdb-cfg.texi \
        GDBvn.texi
@@ -146,12 +158,29 @@ STABS_DOC_FILES = \
 ANNOTATE_DOC_SOURCE_INCLUDES = \
        $(srcdir)/fdl.texi
 ANNOTATE_DOC_BUILD_INCLUDES = \
-       gdb-cfg.texi
+       gdb-cfg.texi \
+       GDBvn.texi
 ANNOTATE_DOC_FILES = \
        $(srcdir)/annotate.texinfo \
        $(ANNOTATE_DOC_SOURCE_INCLUDES) \
        $(ANNOTATE_DOC_BUILD_INCLUDES)
 
+# Options to extract the man page from gdb.texinfo
+MANCONF = -Dman
+
+TEXI2POD = perl $(srcdir)/../../etc/texi2pod.pl \
+               $(MAKEINFOFLAGS) $(MAKEINFO_EXTRA_FLAGS)
+
+POD2MAN1 = pod2man --center="GNU Development Tools" \
+                  --release="gdb-`sed q $(srcdir)/../version.in`" --section=1
+POD2MAN5 = pod2man --center="GNU Development Tools" \
+                  --release="gdb-`sed q $(srcdir)/../version.in`" --section=5
+
+# List of man pages generated from gdb.texi
+MAN1S = gdb.1 gdbserver.1
+MAN5S = gdbinit.5
+MANS = $(MAN1S) $(MAN5S)
+
 #### Host, target, and site specific Makefile fragments come in here.
 ###
 
@@ -162,8 +191,10 @@ dvi: gdb.dvi gdbint.dvi stabs.dvi refcard.dvi annotate.dvi
 ps: gdb.ps gdbint.ps stabs.ps refcard.ps annotate.ps
 html: $(HTMLFILES)
 pdf: $(PDFFILES)
+man: $(MANS)
 all-doc: info dvi ps # pdf
-diststuff: info
+diststuff: info man
+       rm -f gdb-cfg.texi GDBvn.texi
 
 install-info: $(INFO_DEPS)
        $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(infodir)
@@ -233,7 +264,49 @@ install-pdf: $(PDFFILES)
          $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
        done
 
-STAGESTUFF = *.info* gdb-all.texi GDBvn.texi *.ps *.dvi *.pdf
+install-man: install-man1 install-man5
+
+install-man1: $(MAN1S)
+       test -z "$(man1dir)" || $(mkinstalldirs) "$(DESTDIR)$(man1dir)"
+       @list='$(MAN1S)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f=`echo $$p | sed -e 's|^.*/||'`; \
+         echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(man1dir)/$$f'"; \
+         $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(man1dir)/$$f"; \
+       done
+
+install-man5: $(MAN5S)
+       test -z "$(man5dir)" || $(mkinstalldirs) "$(DESTDIR)$(man5dir)"
+       @list='$(MAN5S)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f=`echo $$p | sed -e 's|^.*/||'`; \
+         echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(man5dir)/$$f'"; \
+         $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(man5dir)/$$f"; \
+       done
+
+uninstall-man: uninstall-man1 uninstall-man5
+
+uninstall-man1:
+       @test -n "$(man1dir)" || exit 0; \
+       files=`{ l2='$(MAN1S)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+
+uninstall-man5:
+       @test -n "$(man5dir)" || exit 0; \
+       files=`{ l2='$(MAN5S)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.5[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man5dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man5dir)" && rm -f $$files; }
+
+STAGESTUFF = *.info* gdb-all.texi GDBvn.texi *.ps *.dvi *.pdf *.1 *.5
 
 # Copy the object files from a particular stage into a subdirectory.
 stage1: force
@@ -301,6 +374,12 @@ GDBvn.texi : ${gdbdir}/version.in
        if [ "$(BUGURL_TEXI)" = "@uref{http://www.gnu.org/software/gdb/bugs/}" ]; then \
          echo "@set BUGURL_DEFAULT" >> ./GDBvn.new; \
        fi
+       if test -z "$(READLINE_TEXI_INCFLAG)"; then \
+         echo "@set SYSTEM_READLINE" >> ./GDBvn.new; \
+       fi
+       if [ -n "$(SYSTEM_GDBINIT)" ]; then \
+         echo "@set SYSTEM_GDBINIT $(SYSTEM_GDBINIT)" >> ./GDBvn.new; \
+       fi
        mv GDBvn.new GDBvn.texi
 
 # Updated atomically
@@ -338,7 +417,8 @@ gdb.dvi: ${GDB_DOC_FILES}
                ln $(srcdir)/GDBvn.texi . || \
                cp $(srcdir)/GDBvn.texi . ; else true; fi
        rm -f $(GDB_TEX_TMPS)
-       $(SET_TEXINPUTS) $(TEXI2DVI) $(srcdir)/gdb.texinfo
+       $(TEXI2DVI) $(READLINE_TEXI_INCFLAG) -I ${GDBMI_DIR} -I $(srcdir) \
+               $(srcdir)/gdb.texinfo
 
 gdb.ps: gdb.dvi
        $(DVIPS) -o $@ $?
@@ -349,11 +429,12 @@ gdb.pdf: ${GDB_DOC_FILES}
                ln $(srcdir)/GDBvn.texi . || \
                cp $(srcdir)/GDBvn.texi . ; else true; fi
        rm -f $(GDB_TEX_TMPS)
-       $(SET_TEXINPUTS) $(TEXI2DVI) --pdf $(srcdir)/gdb.texinfo
+       $(TEXI2DVI) --pdf $(READLINE_TEXI_INCFLAG) -I ${GDBMI_DIR} -I $(srcdir) \
+               $(srcdir)/gdb.texinfo
 
 # GDB MANUAL: info file
 gdb.info: ${GDB_DOC_FILES}
-       $(MAKEINFO) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) \
+       $(MAKEINFO_CMD) $(READLINE_TEXI_INCFLAG) -I ${GDBMI_DIR} -I $(srcdir) \
                -o gdb.info $(srcdir)/gdb.texinfo
 
 # GDB MANUAL: roff translations
@@ -429,7 +510,7 @@ gdb.mm: $(GDB_DOC_FILES) links2roff
 # GDB MANUAL: HTML file
 
 gdb/index.html: ${GDB_DOC_FILES}
-       $(MAKEHTML) $(MAKEHTMLFLAGS) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) $(srcdir)/gdb.texinfo
+       $(MAKEHTML) $(MAKEHTMLFLAGS) $(READLINE_TEXI_INCFLAG) -I ${GDBMI_DIR} -I $(srcdir) $(srcdir)/gdb.texinfo
 
 # Clean these up before each run.  Avoids a catch 22 with not being
 # able to re-generate these files (to fix a corruption) because these
@@ -440,32 +521,32 @@ GDBINT_TEX_TMPS = gdbint.aux gdbint.cp* gdbint.fn* gdbint.ky* \
 # GDB INTERNALS MANUAL: TeX dvi file
 gdbint.dvi: $(GDBINT_DOC_FILES)
        rm -f $(GDBINT_TEX_TMPS)
-       $(SET_TEXINPUTS) $(TEXI2DVI) $(srcdir)/gdbint.texinfo
+       $(TEXI2DVI) -I $(srcdir) $(srcdir)/gdbint.texinfo
 
 gdbint.ps : gdbint.dvi
        $(DVIPS) -o $@ $?
 
 gdbint.pdf: $(GDBINT_DOC_FILES)
        rm -f $(GDBINT_TEX_TMPS)
-       $(SET_TEXINPUTS) $(TEXI2DVI) --pdf $(srcdir)/gdbint.texinfo
+       $(TEXI2DVI) --pdf -I $(srcdir) $(srcdir)/gdbint.texinfo
 
 # GDB INTERNALS MANUAL: info file
 
 gdbint.info: $(GDBINT_DOC_FILES)
-       $(MAKEINFO) -I $(srcdir) -o gdbint.info $(srcdir)/gdbint.texinfo
+       $(MAKEINFO_CMD) -I $(srcdir) -o gdbint.info $(srcdir)/gdbint.texinfo
 
 # GDB INTERNALS MANUAL: HTML file
 
 gdbint/index.html: $(GDBINT_DOC_FILES)
-       $(MAKEHTML) $(MAKEHTMLFLAGS) $(srcdir)/gdbint.texinfo
+       $(MAKEHTML) $(MAKEHTMLFLAGS) -I $(srcdir) $(srcdir)/gdbint.texinfo
 
 stabs.info: $(STABS_DOC_FILES)
-       $(MAKEINFO) -I $(srcdir) -o stabs.info $(srcdir)/stabs.texinfo
+       $(MAKEINFO_CMD) -I $(srcdir) -o stabs.info $(srcdir)/stabs.texinfo
 
 # STABS DOCUMENTATION: HTML file
 
 stabs/index.html: $(STABS_DOC_FILES)
-       $(MAKEHTML) $(MAKEHTMLFLAGS) $(srcdir)/stabs.texinfo
+       $(MAKEHTML) $(MAKEHTMLFLAGS) -I $(srcdir) $(srcdir)/stabs.texinfo
 
 # Clean these up before each run.  Avoids a catch 22 with not being
 # able to re-generate these files (to fix a corruption) because these
@@ -476,14 +557,14 @@ STABS_TEX_TMPS = stabs.aux stabs.cp* stabs.fn* stabs.ky* \
 # STABS DOCUMENTATION: TeX dvi file
 stabs.dvi : $(STABS_DOC_FILES)
        rm -f $(STABS_TEX_TMPS)
-       $(SET_TEXINPUTS) $(TEXI2DVI) $(srcdir)/stabs.texinfo
+       $(TEXI2DVI) -I $(srcdir) $(srcdir)/stabs.texinfo
 
 stabs.ps: stabs.dvi
        $(DVIPS) -o $@ $?
 
 stabs.pdf: $(STABS_DOC_FILES)
        rm -f $(STABS_TEX_TMPS)
-       $(SET_TEXINPUTS) $(TEXI2DVI) --pdf $(srcdir)/stabs.texinfo
+       $(TEXI2DVI) --pdf -I $(srcdir) $(srcdir)/stabs.texinfo
 
 # Clean these up before each run.  Avoids a catch 22 with not being
 # able to re-generate these files (to fix a corruption) because these
@@ -494,25 +575,47 @@ ANNOTATE_TEX_TMPS = annotate.aux annotate.cp* annotate.fn* annotate.ky* \
 # ANNOTATE DOCUMENTATION: TeX dvi file
 annotate.dvi : $(ANNOTATE_DOC_FILES)
        rm -f $(ANNOTATE_TEX_TMPS)
-       $(SET_TEXINPUTS) $(TEXI2DVI) $(srcdir)/annotate.texinfo
+       $(TEXI2DVI) -I $(srcdir) $(srcdir)/annotate.texinfo
 
 annotate.ps: annotate.dvi
        $(DVIPS) -o $@ $?
 
 annotate.pdf: $(ANNOTATE_DOC_FILES)
        rm -f $(ANNOTATE_TEX_TMPS)
-       $(SET_TEXINPUTS) $(TEXI2DVI) --pdf $(srcdir)/annotate.texinfo
+       $(TEXI2DVI) --pdf -I $(srcdir) $(srcdir)/annotate.texinfo
 
 annotate.info: $(ANNOTATE_DOC_FILES)
-       $(MAKEINFO -I $(srcdir) -o annotate.info $(srcdir)/annotate.texinfo
+       $(MAKEINFO_CMD) -I $(srcdir) -o annotate.info $(srcdir)/annotate.texinfo
 
 annotate/index.html: $(ANNOTATE_DOC_FILES)
-       $(MAKEHTML) $(MAKEHTMLFLAGS) $(srcdir)/annotate.texinfo
+       $(MAKEHTML) $(MAKEHTMLFLAGS) -I $(srcdir) $(srcdir)/annotate.texinfo
+
+# Man pages
+gdb.1: $(GDB_DOC_FILES)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dgdb < gdb.texinfo > gdb.pod
+       -($(POD2MAN1) gdb.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f gdb.pod
+
+gdbserver.1: $(GDB_DOC_FILES)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dgdbserver < gdb.texinfo > gdbserver.pod
+       -($(POD2MAN1) gdbserver.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f gdbserver.pod
+
+gdbinit.5: $(GDB_DOC_FILES)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dgdbinit < gdb.texinfo > gdbinit.pod
+       -($(POD2MAN5) gdbinit.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f gdbinit.pod
 
 force:
 
-Makefile: Makefile.in $(host_makefile_frag) config.status
-       $(SHELL) ./config.status
+Makefile: Makefile.in $(host_makefile_frag) ../config.status
+       cd .. && $(SHELL) ./config.status doc/Makefile
 
 
 # The "least clean" level of cleaning.  Get rid of files which are
@@ -527,18 +630,18 @@ mostlyclean:
        rm -f sedref.dvi sedref.tex tmp.sed
 
 clean: mostlyclean
-       rm -f gdb-cfg.texi
+       rm -f gdb-cfg.texi GDBvn.texi
 
 distclean: clean
-       rm -f Makefile config.status config.log
+       rm -f Makefile
 
 # GDBvn.texi, the dvi files, the info files, and the postscript files, 
 # are all part of the distribution, so it should not be removed by
 # "clean" or "distclean".  Use maintainer-clean to remove them.
 
 maintainer-clean realclean: distclean
-       rm -f GDBvn.texi *.info* *.dvi *.ps *.html *.pdf
+       rm -f GDBvn.texi *.info* *.dvi *.ps *.html *.pdf $(MANS)
 
-install: install-info
+install: install-info install-man
 
-uninstall: uninstall-info
+uninstall: uninstall-info uninstall-man
This page took 0.031056 seconds and 4 git commands to generate.