INPUTS = \
	 gcc \
	 gccint \
	 cpp \
	 cppinternals \
	 gccinstall \
	 gfortran \
	 gnat-style \
	 gnat_rm \
	 gnat_ugn \
	 gccgo \
	 libgomp \
	 libitm \
	 libquadmath

# Base names of manpages.
M = \
    gcc \
    gcov \
    gcov-tool \
    gcov-dump \
    cpp \
    lto-dump \
    gfortran \
    gccgo

# Where to search for the files
VPATH = gcc/doc gcc/fortran gcc/go gcc/ada libgomp libitm libquadmath

INFODOCS = $(addsuffix -$(VER).info, $(INPUTS))
HTMLDOCS = $(addsuffix .html, $(INPUTS))
PDFDOCS = $(addsuffix .pdf, $(INPUTS))

MANS = $(addsuffix -$(VER).1, $(M))
PODS = $(addsuffix .pod, $(M))

VER = $(BASE_VERSION)
FULLVER = $(GCC_VERSION)

GCCVERS = gcc/doc/gcc-vers.texi

TARGETS = $(INFODOCS) $(HTMLDOCS) $(MANS) $(PDFDOCS)
GENFILES = $(TARGETS) $(PODS) $(GCCVERS)

MKINFO_DEFINES := -D "fncpp cpp-$(VER)" \
		  -D "fncppint cppinternals-$(VER)" \
		  -D "fngcc gcc-$(VER)" \
		  -D "fngxx g++-$(VER)" \
		  -D "fngccint gccint-$(VER)" \
		  -D "fngccinstall gccinstall-$(VER)" \
		  -D "fngfortran gfortran-$(VER)" \
		  -D "fntreelang treelang-$(VER)" \
		  -D "fngnatrm gnat_rm-$(VER)" \
		  -D "fngnatrmlong GNAT $(VER) Reference Manual" \
		  -D "fngnatugn gnat_ugn-$(VER)" \
		  -D "fngnatugnlong GNAT $(VER) User's Guide" \
		  -D "fngnatstyle gnat-style-$(VER)" \
		  -D "fngccgo gccgo-$(VER)" \
		  -D "fngcov gcov-$(VER)" \
		  -D "fngcovtool gcov-tool-$(VER)" \
		  -D "fngcovdump gcov-dump-$(VER)" \
		  -D "fnlibgomp libgomp-$(VER)" \
		  -D "fnlibitm libitm-$(VER)" \
		  -D "fnlibquadmath libquadmath-$(VER)" \
		  -D "fnltodump lto-dump-$(VER)" \
		  -D "BUGURL http://bugs.debian.org/"
MKINFO_FLAGS := --no-split -Igcc/doc -Igcc/doc/include
MKINFO = makeinfo $(MKINFO_DEFINES) $(MKINFO_FLAGS)

MKHTML_DEFINES := -D "fncpp cpp" \
		  -D "fncppint cppinternals" \
		  -D "fngcc gcc" \
		  -D "fngxx g++" \
		  -D "fngccint gccint" \
		  -D "fngccinstall gccinstall" \
		  -D "fngfortran gfortran" \
		  -D "fntreelang treelang" \
		  -D "fngnatrm gnat_rm" \
		  -D "fngnatrmlong GNAT Reference Manual" \
		  -D "fngnatugn gnat_ugn" \
		  -D "fngnatugnlong GNAT User's Guide" \
		  -D "fngnatstyle gnat-style" \
		  -D "fngccgo gccgo" \
		  -D "fngcov gcov" \
		  -D "fngcovtool gcov-tool" \
		  -D "fngcovdump gcov-dump" \
		  -D "fnlibgomp libgomp" \
		  -D "fnlibitm libitm" \
		  -D "fnlibquadmath libquadmath" \
		  -D "fnltodump lto-dump" \
		  -D "BUGURL http://bugs.debian.org/"
MKHTML_FLAGS := --no-split -Igcc/doc -Igcc/doc/include
MKHTML = makeinfo $(MKHTML_DEFINES) $(MKHTML_FLAGS) --html

TEXI2POD_DEFINES := -Dfngccint=gccint-$(VER) -DBUGURL=http://bugs.debian.org/
TEXI2POD = perl ../../contrib/texi2pod.pl $(TEXI2POD_DEFINES)

TEXI2PDF_DEFINES := $(patsubst "%,--command="@set %,$(MKHTML_DEFINES:-D=))
TEXI2PDF_FLAGS = --batch -t '@errorcontextlines 16' --build-dir=build -I /usr/share/texmf/tex/texinfo -I gcc/doc -I gcc/doc/include
TEXI2PDF = texi2pdf $(TEXI2PDF_DEFINES) $(TEXI2PDF_FLAGS)


all : $(TARGETS)

# Make everything depend on gcc-vers
$(INFODOCS) $(HTMLDOCS) $(PDFDOCS) $(PODS): $(GCCVERS)

#
# Simple makeinfo rules
#

%-$(VER).info : %.texi
	$(MKINFO) -o $@ $<

%.html : %.texi
	$(MKHTML) -o $@ $<

%.pdf : %.texi
	$(TEXI2PDF) -o $@ $<

# special rules to handle install.texi -> gccinstall.{html,pdf,-N.info}
gccinstall-$(VER).info : gcc/doc/install.texi
	$(MKINFO) -o $@ $<

gccinstall.html : gcc/doc/install.texi
	$(MKHTML) -o $@ $<

gccinstall.pdf : gcc/doc/install.texi
	$(TEXI2PDF) -o $@ $<

#
# Manpages
#

%-$(VER).1 : %.pod
	pod2man --center="GNU" --release="gcc-$(FULLVER)" --section=1 $< > $@-tmp
	mv $@-tmp $@

%.pod : %.texi
	(cd $(dir $<) && $(TEXI2POD)) < $< > $@-tmp
	mv $@-tmp $@

gcc.pod: gcc/doc/invoke.texi
	(cd $(dir $<) && $(TEXI2POD)) < $< > $@-tmp
	mv $@-tmp $@

gfortran.pod: gcc/fortran/invoke.texi
	(cd $(dir $<) && $(TEXI2POD)) < $< > $@-tmp
	mv $@-tmp $@


#
# Generic targets
#

$(GCCVERS) :
	(echo @set version-GCC $(FULLVER); \
	 echo @clear DEVELOPMENT; \
	 echo @set srcdir `pwd`/gcc ) > $@

clean:
	rm -f $(GENFILES) -r build
