## Makefile for the gettext-tools/doc subdirectory of GNU gettext
## Copyright (C) 1995-1997, 2001-2007, 2009, 2013-2015, 2018-2020 Free
## Software Foundation, Inc.
##
## 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 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, see <https://www.gnu.org/licenses/>.

## Process this file with automake to produce Makefile.in.

AUTOMAKE_OPTIONS = 1.2 gnits

# This directory does not support parallel make.
# So, turn off parallel execution (at least in GNU make >= 4.0).
GNUMAKEFLAGS = -j1

EXTRA_DIST =
MOSTLYCLEANFILES =

# List of -I options referring to directories that contain texinfo
# sources used by this directory.
TEXINCLUDES = -I $(top_srcdir)/../gettext-runtime/doc

SED = sed
RM = rm -f

MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
MAKEINFOFLAGS = $(TEXINCLUDES) --no-split

info_TEXINFOS = gettext.texi
# List of texinfo sources @included by gettext.texi, excluding version.texi.
gettext_TEXINFOS = \
  xgettext.texi \
  msginit.texi \
  msgmerge.texi \
  msgcat.texi \
  msgconv.texi \
  msggrep.texi \
  msgfilter.texi \
  msguniq.texi \
  msgcomm.texi \
  msgcmp.texi \
  msgattrib.texi \
  msgen.texi \
  msgexec.texi \
  msgfmt.texi \
  msgunfmt.texi \
  gettextize.texi \
  autopoint.texi \
  lang-c.texi \
  lang-python.texi \
  lang-java.texi \
  lang-csharp.texi \
  lang-javascript.texi \
  lang-scheme.texi \
  lang-lisp.texi \
  lang-clisp-c.texi \
  lang-elisp.texi \
  lang-librep.texi \
  lang-ruby.texi \
  lang-sh.texi \
    $(top_srcdir)/../gettext-runtime/doc/rt-gettext.texi \
    $(top_srcdir)/../gettext-runtime/doc/rt-ngettext.texi \
    $(top_srcdir)/../gettext-runtime/doc/rt-envsubst.texi \
  lang-bash.texi \
  lang-gawk.texi \
  lang-lua.texi \
  lang-pascal.texi \
  lang-smalltalk.texi \
  lang-vala.texi \
  lang-wxwidgets.texi \
  lang-tcl.texi \
  lang-perl.texi \
  lang-php.texi \
  lang-pike.texi \
  lang-gcc-source.texi \
  lang-ycp.texi \
  $(top_srcdir)/../gettext-runtime/doc/nls.texi \
    $(top_srcdir)/../gettext-runtime/doc/matrix.texi \
  iso-639.texi \
  iso-639-2.texi \
  iso-3166.texi \
  gpl.texi \
  lgpl.texi \
  fdl.texi

# The FAQ. To be edited with Mozilla.
# The tutorial. To be edited by hand.
doc_DATA = FAQ.html tutorial.html
EXTRA_DIST += $(doc_DATA)

EXTRA_DIST += \
  iso-639.sed iso-639-2.sed iso-3166.sed \
  ISO_639 ISO_639-2 ISO_3166 ISO_3166_de

iso-639.texi: ISO_639 iso-639.sed
	$(SED) -f $(srcdir)/iso-639.sed $(srcdir)/ISO_639 > iso-639.tmp
	rm -f $(srcdir)/iso-639.texi
	mv iso-639.tmp $(srcdir)/iso-639.texi

iso-639-2.texi: ISO_639-2 iso-639-2.sed
	$(SED) -f $(srcdir)/iso-639-2.sed $(srcdir)/ISO_639-2 > iso-639-2.tmp
	rm -f $(srcdir)/iso-639-2.texi
	mv iso-639-2.tmp $(srcdir)/iso-639-2.texi

iso-3166.texi: ISO_3166 iso-3166.sed
	$(SED) -f $(srcdir)/iso-3166.sed $(srcdir)/ISO_3166 > iso-3166.tmp
	rm -f $(srcdir)/iso-3166.texi
	mv iso-3166.tmp $(srcdir)/iso-3166.texi

# The dependencies of stamp-vti generated by automake are incomplete.
# So we have to duplicate the entire rule which would otherwise be generated
# by automake.
$(srcdir)/stamp-vti: $(info_TEXINFOS) $(gettext_TEXINFOS) $(top_srcdir)/../.version
	(dir=.; test -f ./gettext.texi || dir=$(srcdir); \
	set `$(SHELL) $(top_srcdir)/../build-aux/mdate-sh $$dir/gettext.texi`; \
	echo "@set UPDATED $$1 $$2 $$3"; \
	echo "@set UPDATED-MONTH $$2 $$3"; \
	echo "@set EDITION $(VERSION)"; \
	echo "@set VERSION $(VERSION)"; \
	echo "@set ARCHIVE-VERSION $(ARCHIVE_VERSION)") > vti.tmp
	cmp -s vti.tmp $(srcdir)/version.texi \
	  || (echo "Updating $(srcdir)/version.texi"; \
	      cp vti.tmp $(srcdir)/version.texi)
	rm -f vti.tmp
	cp $(srcdir)/version.texi $@

# We distribute only the split HTML documentation.
# The user can generate the others, via
#   make gettext.ps
#   make gettext.pdf
#   make gettext.html

all-local: html-local
install-data-local: install-html
installdirs-local: installdirs-html
uninstall-local: uninstall-html
dist-hook: dist-html

html-local: html-split
# Override of automake's definition. The HTML files we want to distribute are
# not the ones that automake knows about, and we cannot define HTMLS to a value
# containing wildcards.
install-html: install-html-split
	@:
uninstall-html: uninstall-html-split
dist-html: dist-html-split

# CLEANFILES: gettext.{dvi,ps,pdf,html} are already known to automake.
MAINTAINERCLEANFILES = gettext_*.html


# Documentation in DVI format.

# Override of automake's definition:
#TEXI2DVI = texi2dvi
TEXI2DVI = texi2dvi $(TEXINCLUDES)

# The install-dvi target is already defined by automake.

installdirs-dvi:
	$(MKDIR_P) $(DESTDIR)$(dvidir)

uninstall-dvi:
	$(RM) $(DESTDIR)$(dvidir)/gettext.dvi

# Temporary index files. automake removes only the predefined ones by itself.
MOSTLYCLEANFILES += \
  gettext.am gettext.ams \
  gettext.cp gettext.cps \
  gettext.ef gettext.efs \
  gettext.em gettext.ems \
  gettext.ev gettext.evs \
  gettext.fn gettext.fns \
  gettext.kw gettext.kws \
  gettext.op gettext.ops \
  gettext.pg gettext.pgs \
  gettext.vr gettext.vrs


# Documentation in Postscript format.

# Override of automake's definition:
#DVIPS = @DVIPS@
DVIPS = @DVIPS@ -D600

gettext.ps: gettext.dvi
	$(DVIPS) -o $@ `if test -f gettext.dvi; then echo gettext.dvi; else echo $(srcdir)/gettext.dvi; fi`

# The install-ps target is already defined by automake.

installdirs-ps:
	$(MKDIR_P) $(DESTDIR)$(psdir)

uninstall-ps:
	$(RM) $(DESTDIR)$(psdir)/gettext.ps


# Documentation in Portable Document Format.

# Override of automake's definition:
#TEXI2PDF = @TEXI2PDF@
TEXI2PDF = @TEXI2PDF@ $(TEXINCLUDES)

# The install-pdf target is already defined by automake.

installdirs-pdf:
	$(MKDIR_P) $(DESTDIR)$(pdfdir)

uninstall-pdf:
	$(RM) $(DESTDIR)$(pdfdir)/gettext.pdf


# Documentation in HTML format.

TEXI2HTML = @PERL@ $(top_srcdir)/../build-aux/texi2html

html-monolithic: gettext.html
html-split: gettext_toc.html

# Override of automake's definition.
# We want to use texi2html, not makeinfo --html.
# Newer versions of texi2html also need the options --no-menu --no-sec-nav.
gettext.html: gettext.texi version.texi $(gettext_TEXINFOS)
	$(TEXI2HTML) $(TEXINCLUDES) -no-sec-nav -no-menu -toc-links -number -monolithic $(srcdir)/gettext.texi

gettext_toc.html: gettext.texi version.texi $(gettext_TEXINFOS)
	case "@PERL@" in \
	  *"/missing perl") \
	     $(TEXI2HTML) $(TEXINCLUDES) -no-sec-nav -no-menu -toc-links -number -split_chapter $(srcdir)/gettext.texi || exit 0 ;; \
	  *) $(RM) gettext_*.html ; \
	     $(TEXI2HTML) $(TEXINCLUDES) -no-sec-nav -no-menu -toc-links -number -split_chapter $(srcdir)/gettext.texi ;; \
	esac \
	&& { mv gettext/gettext.html gettext_toc.html; \
	     for file in gettext/*.html; do \
	       sed -e 's/gettext\.html/gettext_toc.html/g' < $$file > `basename $$file` && rm -f $$file; \
	     done; \
	     rmdir gettext; \
	   }

install-html-monolithic: gettext.html
	$(MKDIR_P) $(DESTDIR)$(htmldir)
	$(INSTALL_DATA) `if test -f gettext.html; then echo .; else echo $(srcdir); fi`/gettext.html $(DESTDIR)$(htmldir)/gettext.html

install-html-split: gettext_toc.html
	$(MKDIR_P) $(DESTDIR)$(htmldir)
	for file in `if test -f gettext_toc.html; then echo .; else echo $(srcdir); fi`/gettext_*.html; do \
	  $(INSTALL_DATA) $$file $(DESTDIR)$(htmldir)/`basename $$file`; \
	done

installdirs-html:
	$(MKDIR_P) $(DESTDIR)$(htmldir)

uninstall-html-monolithic:
	$(RM) $(DESTDIR)$(htmldir)/gettext.html

uninstall-html-split:
	$(RM) $(DESTDIR)$(htmldir)/gettext_*.html

dist-html-monolithic:
	$(MKDIR_P) $(distdir)/
	file=gettext.html; \
	if test -f $$file; then d=.; else d=$(srcdir); fi; \
	cp -p $$d/$$file $(distdir)/$$file || exit 1

# We would like to put gettext_*.html into EXTRA_DIST, but it doesn't work.
dist-html-split: gettext_toc.html
	$(MKDIR_P) $(distdir)/
	file=gettext_toc.html; \
	if test -f $$file; then d=.; else d=$(srcdir); fi; \
	for file in `cd $$d && echo gettext_*.html`; do \
	  cp -p $$d/$$file $(distdir)/$$file || exit 1; \
	done
