# Copyright (C) 1989-2023 Free Software Foundation, Inc.
# Original Makefile.in written by James Clark (jjc@jclark.com)
# Migrated to Automake by Bertrand Garrigues
#
# This file is part of groff.
#
# groff 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.
#
# groff 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 <http://www.gnu.org/licenses/>.
#
# Makefile.am
#

# The variables that are listed in the following comments will be
# automatically set by automake in the generated Makefile.in

# SHELL

# PACKAGE_TARNAME

# srcdir

# top_srcdir

# VPATH

# top_builddir

# HOST
# `HOST' is the canonical host specification,
#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM

# `RT_SEP' is the operating system's native PATH SEPARATOR CHAR, which
# is to be used in runtime PATHs compiled into groff executables.
RT_SEP=@GROFF_PATH_SEPARATOR@

# `SH_SEP' is a alternative PATH SEPARATOR CHAR, to be used in shell
# scripts and makefile rules; it may be the same as `RT_SEP', but,
# particularly in some Microsoft environments, it may differ.
SH_SEP=@PATH_SEPARATOR@

# GLIBC2
# `GLIBC21' is yes if the host operating system uses GNU libc 2.1 or newer,
# otherwise no.


# VERSION is set by automake, based on what is passed to AC_INIT.

# PAGE
# Define `page' to be letter if your PostScript printer uses 8.5x11
# paper (USA) and define it to be A4, if it uses A4 paper (rest of the
# world).

# GHOSTSCRIPT
# The name of the ghostscript program. Normally, gs, on GNU/Linux
# but it might be different on MS-DOS/MS-WIN32 systems.

# ALT_GHOSTSCRIPT_PROGS
# `ALT_GHOSTSCRIPT_PROGS' specifies a list alternative names,
# which can be tried if `GHOSTSCRIPT' cannot be found at run time.

# ALT_AWK_PROGS
# Similarly, `ALT_AWK_PROGS' specifies a list of alternative names,
# which can be tried at run time, to identify the awk program.

# BROKEN_SPOOLER_FLAGS
# Normally the Postscript driver, grops, produces output that conforms
# to version 3.0 of the Adobe Document Structuring Conventions.
# Unfortunately some spoolers and previewers can't handle such output.
# The BROKEN_SPOOLER_FLAGS variable tells grops what it should do to
# make its output acceptable to such programs.  This variable controls
# only the default behaviour of grops; the behaviour can be changed at
# runtime by the grops -b option (and so by groff -P-b).
# Use a value of 0 if your spoolers and previewers are able to handle
# conforming PostScript correctly.
# Add 1 if no %%{Begin,End}DocumentSetup comments should be generated;
# this is needed for early versions of TranScript that get confused by
# anything between the %%EndProlog line and the first %%Page: comment.
# Add 2 if lines in included files beginning with %! should be
# stripped out; this is needed for the OpenWindows 2.0 pageview previewer.
# Add 4 if %%Page, %%Trailer and %%EndProlog comments should be
# stripped out of included files; this is needed for spoolers that
# don't understand the %%{Begin,End}Document comments. I suspect this
# includes early versions of TranScript.
# Add 8 if the first line of the PostScript output should be %!PS-Adobe-2.0
# rather than %!PS-Adobe-3.0; this is needed when using Sun's Newsprint
# with a printer that requires page reversal.


# `DEVICE' is the default device.
DEVICE=ps

# XDEVIDIRS
# `XDEVDIRS' is either `font/devX{75,100}{,-12}' or empty.

# XPROGDIRS
# `XPROGDIRS' is either `src/devices/xditview src/utils/xtotroff' or empty.

# XLIBDIRS
# `XLIBDIRS' is either `src/libs/libxutil' or empty.

# `TTYDEVDIRS' is either `font/devascii font/devlatin1' (for
# ASCII) or `font/devcp1047' (for EBCDIC) plus font/devutf8.
TTYDEVDIRS=@TTYDEVDIRS@ font/devutf8

# OTHERDEVDIRS
# `OTHERDEVDIRS' is either `font/devlj4 font/devlbp' (for ASCII) or
# empty (for EBCDIC).

# PSPRINT
# `PSPRINT' is the command to use for printing a PostScript file,
# for example `lpr'.

# DVIPRINT
# `DVIPRINT' is the command to use for printing a TeX dvi file,
# for example `lpr -d'.

# g
# Prefix for names of programs that have Unix counterparts.
# For example, if `g' is `g' then troff will be installed as
# gtroff.  This doesn't affect programs like grops or groff that have
# no Unix counterparts.  Note that the groff versions of eqn and tbl
# will not work with Unix troff.

# prefix
# exec_prefix
# Common prefix for installation directories.
# Used in definitions of exec_prefix, datasubdir, fontpath, manroot.
# This must already exist when you do make install.

# bindir
# `bindir' says where to install executables.

# libdir
# `libdir' says where to install platform-dependent data.

# libprogramdir
# `libprogramdir' is $(libdir)/groff

# `datasubdir' says where to install platform-independent data files.
# datadir
# datarootdir
dataprogramdir=$(datadir)/groff
datasubdir=$(dataprogramdir)/$(SHORT_VERSION)

# infodir
# `infodir' says where to install info files.

# docdir
# `docdir' says where to install documentation files.  The default
# location is ${datarootdir}/doc/${PACKAGE}, but we add the version
docdir=$(datarootdir)/doc/${PACKAGE}-$(SHORT_VERSION)

# `exampledir' says where to install example files.
exampledir=$(docdir)/examples

# `htmldocdir' says where to install documentation in HTML format.
htmldocdir=$(docdir)/html

# `pdfdocdir' says where to install documentation in PDF format.
pdfdocdir=$(docdir)/pdf

# `fontdir' says where to install dev*/*.
fontdir=$(datasubdir)/font

# `oldfontdir' says where to install old font sets (as dev*/*).
oldfontdir=$(datasubdir)/oldfont

# `localfontdir' says where local fonts will be installed (as dev*/*).
localfontdir=$(dataprogramdir)/site-font

# `legacyfontdir' is for compatibility with AT&T/DWB troff.
legacyfontdir=/usr/lib/font

# `fontpath' says where to look for dev*/*.
fontpath=$(localfontdir)$(RT_SEP)$(fontdir)$(RT_SEP)$(legacyfontdir)

# `tmacdir' says where to install macros.
tmacdir=$(datasubdir)/tmac

# `systemtmacdir' says where to install platform-dependent macros.
systemtmacdir=$(libprogramdir)/site-tmac

# `localtmacdir' says where local files will be installed.
localtmacdir=$(dataprogramdir)/site-tmac

# appdefdir
# `appdefdir' says where to install the application defaults file for
# gxditview.

# glilypond_dir
# gpinyin_dir

# `tmacpath' says where to look for macro files.
# The current directory will be prepended in unsafe mode only; the home
# directory will be always added.
# `troffrc' and `troffrc-end' (and `eqnrc') are searched neither in the
# current nor in the home directory.
tmacpath=$(systemtmacdir)$(RT_SEP)$(localtmacdir)$(RT_SEP)$(tmacdir)

# sys_tmac_prefix
# `sys_tmac_prefix' is prefix (if any) for system macro packages.

# pnmtops_nosetpage
# `pnmtops_nosetpage' is the command to be run to generate an eps
# file.  Some versions of pnmtops provide the -nosetpage option.
# We detect this and use it if present.

# tmac_wrap
# `tmac_wrap' is list of system macro packages that should be made
# available to groff by creating a corresponding macro package
# in the groff macro directory that references the system macro
# package.

# compatibility_wrappers
# (groff compatibility wrappers for vendor-provided non-GNU macro sets)
#
# `compatibility_wrappers' controls the creation and installation of
# compatibility wrappers for the macro sets named in `tmac_wrap'.
# Its value must be one of:
#   `yes'    install compatibility wrappers as the original macro set name
#            (that is, the default implementation of that macro set), and
#            install the groff implementation with a prefix (usually g).
#   `no'     do not install compatibility wrappers; only install the groff
#            implementation of each macro set.
#   `manual' install the compatibility wrappers as `<macro>-os' and install
#            the groff implementation of each macro set as the default
#            implementation of that macro set.

# Don't make this empty.
wrapper_suffix_default="-os"

wrapper_suffix=`if test $(compatibility_wrappers) = manual; then echo $(wrapper_suffix_default); fi`

# When `compatibility_wrappers' is `yes', if there is a groff implementation
# of a macro set listed in $(tmac_wrap), then the groff implementation will be
# installed with a prefix of $(tmac_prefix) via the collision detection
# variables $(tmac_m_prefix), $(tmac_s_prefix), and $(tmac_an_prefix).

# Don't make this empty.
tmac_prefix=g

# The groff -mm macros will be available as -m$(tmac_m_prefix)m.
tmac_m_prefix=\
 `if test $(compatibility_wrappers) = yes; then \
    for i in $(tmac_wrap) ""; do \
      case "$$i" in m) echo $(tmac_prefix);; esac; \
    done; \
  fi`

# The groff -ms macros will be available as -m$(tmac_s_prefix)s.
tmac_s_prefix=\
 `if test $(compatibility_wrappers) = yes; then \
    for i in $(tmac_wrap) ""; do \
      case "$$i" in s) echo $(tmac_prefix);; esac; \
    done; \
  fi`

# The groff -man macros will be available as -m$(tmac_an_prefix)an.
tmac_an_prefix=\
 `if test $(compatibility_wrappers) = yes; then \
    for i in $(tmac_wrap) ""; do \
      case "$$i" in an) echo $(tmac_prefix);; esac; \
    done; \
  fi`

# Extension to be used for refer index files.  Index files are not
# shareable between different architectures, so you might want to use
# different suffixes for different architectures.  Choose an extension
# that doesn't conflict with refer or any other indexing program.
indexext=.i

# Directory containing the default index for refer.
indexdir=/usr/dict/papers

# The filename (without suffix) of the default index for refer.
indexname=Ind

# common_words_file is a file containing a list of common words.
# If your system provides /usr/lib/eign it will be copied onto this,
# otherwise the supplied eign file will be used.
common_words_file=$(datasubdir)/eign

# mandir
# `manroot' is the root of the man page directory tree.
manroot=$(mandir)

# `man1ext' is the man section for user commands.
man1ext=1
man1dir=$(manroot)/man$(man1ext)

# `man5ext' is the man section for file formats.
man5ext=5
man5dir=$(manroot)/man$(man5ext)

# `man7ext' is the man section for macros.
man7ext=7
man7dir=$(manroot)/man$(man7ext)

# The configure script checks whether all necessary utility programs for
# grohtml are available -- only then can we build the HTML documentation.
# make_htmldoc
# make_install_htmldoc
# make_uninstall_htmldoc

# The configure script also checks whether all necessary utility programs
# for pdfroff are available -- only then can we build PDF documentation.
# make_pdfdoc
# make_install_pdfdoc
# make_uninstall_pdfdoc

# Windows `.cmd' files
# make_winscripts
# make_install_winscripts
# make_uninstall_winscripts

# All the previous installation directories, when used, are prefixed with
# $(DESTDIR) during install and uninstall, to support staged installations.

# config.h might set the following defines:
#
# WORDS_BIGENDIAN		if your target platform is big-endian
# IS_EBCDIC_HOST		if the host's encoding is EBCDIC
#
# HAVE_DIRECT_H		if you have <direct.h>
# HAVE_DIRENT_H		if you have <dirent.h>
# HAVE_CC_INTTYPES_H		if you have a C++ <inttypes.h>
# HAVE_PROCESS_H		if you have <process.h>
# HAVE_LIMITS_H		if you have <limits.h>
# HAVE_CC_LIMITS_H		if you have a C++ <limits.h>
# HAVE_MATH_H			if you have <math.h>
# HAVE_CC_OSFCN_H		if you have a C++ <osfcn.h>
# HAVE_STDDEF_H		if you have <stddef.h>
# HAVE_STDLIB_H		if you have <stdlib.h>
# HAVE_STRING_H		if you have <string.h>
# HAVE_STRINGS_H		if you have <strings.h>
# HAVE_SYS_DIR_H		if you have <sys/dir.h>
# HAVE_SYS_PARAM_H		if you have <sys/param.h>
# HAVE_SYS_STAT_H		if you have <sys/stat.h>
# HAVE_SYS_TIME_H		if you have <sys/time.h>
# HAVE_SYS_TYPES_H		if you have <sys/types.h>
# HAVE_UNISTD_H		if you have <unistd.h>
#
# HAVE_FMOD			if you have fmod()
# HAVE_GETCWD			if you have getcwd()
# HAVE_GETTIMEOFDAY		if you have gettimeofday()
# HAVE_ICONV			if you have iconv()
# HAVE_ISATTY			if you have isatty()
# HAVE_KILL			if you have kill()
# HAVE_LANGINFO_CODESET	if you have nl_langinfo()
# HAVE_MKSTEMP		if you have mkstemp()
# HAVE_MMAP			if you have mmap()
# HAVE_PUTENV			if you have putenv()
# HAVE_RENAME			if you have rename()
# HAVE_SETLOCALE		if you have setlocale()
# HAVE_STRCASECMP		if you have strcasecmp()
# HAVE_STRNCASECMP		if you have strncasecmp()
# HAVE_STRERROR		if you have strerror()
# HAVE_STRSEP			if you have strsep()
# HAVE_STRTOL			if you have strtol()
# HAVE_SYMLINK		if you have symlink()
#
# NEED_DECLARATION_GETTIMEOFTODAY
#				if your C++ <sys/time.h> doesn't declare
#				gettimeofday()
# NEED_DECLARATION_HYPOT	if your C++ <math.h> doesn't declare hypot()
# NEED_DECLARATION_PCLOSE	if your C++ <stdio.h> doesn't declare pclose()
# NEED_DECLARATION_POPEN	if your C++ <stdio.h> doesn't declare popen()
# NEED_DECLARATION_PUTENV	if your C++ <stdlib.h> doesn't declare
#				putenv()
# NEED_DECLARATION_RAND	if your C++ <stdlib.h> doesn't declare rand()
# NEED_DECLARATION_SRAND	if your C++ <stdlib.h> doesn't declare srand()
# NEED_DECLARATION_STRCASECMP	if your C++ <string.h> doesn't declare
#				strcasecmp()
# NEED_DECLARATION_STRNCASECMP
#				if your C++ <string.h> doesn't declare
#				strncasecmp()
# NEED_DECLARATION_VFPRINTF	if your C++ <stdio.h> doesn't declare
#				vfprintf()
#
# HAVE_DECL_GETC_UNLOCKED	if you have getc_unlocked()
# HAVE_DECL_SYS_SIGLIST	if you have sys_siglist[]
#
# HAVE_STRUCT_EXCEPTION	if <math.h> defines struct exception
# HAVE_SYS_NERR		if you have sysnerr in <errno.h> or <stdio.h>
# HAVE_SYS_ERRLIST		if you have sys_errlist in <errno.h> or
#				<stdio.h>
# ICONV_CONST=const		if declaration of iconv() needs const
# LONG_FOR_TIME_T		if localtime() takes a long * not a time_t *
# RETSIGTYPE=int		if signal handlers return int not void
# RET_TYPE_SRAND_IS_VOID	if srand() returns void not int
#
# WCOREFLAG=0200		if the 0200 bit of the status returned by
#				wait() indicates whether a core image was
#				produced for a process that was terminated
#				by a signal
#
# HAVE_WORKING_O_NOATIME      define if <fcntl.h>'s O_NOATIME flag works
# HAVE_WORKING_O_NOFOLLOW     define if <fcntl.h>'s O_NOFOLLOW flag works
#
# uintmax_t=<value>		define to `unsigned long' or `unsigned long
#				long' if <inttypes.h> does not exist
#
# PAGE=A4			if the printer's page size is A4
# GHOSTSCRIPT=gs		the name (and directory if required) of the
#				ghostscript program

# Include
#
#   {fmod,getcwd,mkstemp,putenv,strcasecmp,
#    strerror,strncasecmp,strtol}.$(OBJEXT)
#
# LIBOBJS
# in LIBOBJS if your C library is missing the corresponding function.

# `CCC' is the compiler for C++ (.cpp) files.
CCC=@CXX@
# CC
# CFLAGS
# CPPFLAGS
# LDFLAGS

# X_CFLAGS
# X_LIBS
# X_EXTRA_LIBS
# X_PRE_LIBS

# YACC

# GREP
# EGREP

# MAKEINFO

# EXEEXT
# OBJEXT
# LIBEXT
# LIBS
# LIBM
# LIBICONV
# AR
# RANLIB
# INSTALL
# INSTALL_PROGRAM
# INSTALL_SCRIPT
# INSTALL_DATA
# INSTALL_INFO
# LN_S

ETAGS=etags
ETAGSFLAGS=
# Flag that tells etags to assume C++.
ETAGSCCFLAG=-C
# Full path to perl.
# PERL
# PERLVERSION
# Sed command with which to edit sh scripts.
# SH_SCRIPT_SED_CMD
# Sed script to deal with OS dependencies in sh scripts.
SH_DEPS_SED_SCRIPT=$(top_builddir)/shdeps.sed

# On some platforms we need to set LANG and LC_ALL to C for sed
SED=\
  LANG=C \
  LC_ALL=C \
  sed

# The program to create directory hierarchies.
# mkinstalldirs is now in gnulib/build-aux

PURIFY=purify
PURIFYCCFLAGS=
#PURIFYCCFLAGS=-g++=yes \
#  -collector=`dirname \`$(CCC) -print-libgcc-file-name\``/ld

# Add groff and gnulib m4 macros
ACLOCAL_AMFLAGS = -I m4 -I gnulib_m4

# Common preprocessor flags: gnulib includes, common includes in
# src/include, and config.h that is generated in the build tree
AM_CPPFLAGS = \
  -I$(top_srcdir)/src/include \
  -I$(top_srcdir)/lib \
  -I$(top_builddir)/src/include \
  -I$(top_builddir)/lib

# Define a custom string for rules that call groff in make's silence mode.
GROFF_V = $(GROFF_V_@AM_V@)
GROFF_V_ = $(GROFF_V_@AM_DEFAULT_V@)
GROFF_V_0 = @echo "  GROFF   " $@;

# The following Automake variables will be supplemented by the various
# .am files.
bin_PROGRAMS =
nobase_bin_PROGRAMS =
bin_SCRIPTS =
dist_bin_SCRIPTS =
# stuff that should be in distribution archives but not in source repo
MAINTAINERCLEANFILES =
MOSTLYCLEANFILES =
noinst_LIBRARIES =
BUILT_SOURCES =
CLEANFILES =
# gnulib asks to include this file
EXTRA_DIST = gnulib_m4/gnulib-cache.m4
FONTFILES =
PREFIXMAN1 =
man1_MANS =
man5_MANS =
man7_MANS =

# for lex/yacc
AM_YFLAGS = -d -v

SUFFIXES =

# tests launched by make check
check_SCRIPTS =
check_PROGRAMS =
TESTS =
XFAIL_TESTS =
AM_TESTS_ENVIRONMENT = \
  abs_top_srcdir=$(abs_top_srcdir) \
  abs_top_builddir=$(abs_top_builddir) \
  export abs_top_srcdir abs_top_builddir;

# We use Automake's Uniform Naming Scheme.
#
# prefixexecbin_PROGRAMS is the list of programs that may have a
# NAMEPREFIX if an existing non-GNU troff system was detected.
#
# This is done by the m4 macro GROFF_G that checks for the presence of
# GNU Troff built-in \n[.g] macro. If a Unix Troff binary was
# detected, the following programs and scripts names will have a 'g'
# prefix: chem, tbl, eqn, neqn, pic, soelim, grn, refer, lookbib,
# troff, nroff. Also, PROG_PREFIX will be set to 'g' in the generated
# header defs.h so that these programs could be called correctly.
#
# prefixexecbindir is used to temporary install these programs. They
# are then moved to bindir during the install-exec-hook.  Same thing
# for the scripts.
NAMEPREFIX=$(g)
prefixexecbin_PROGRAMS =
prefixexecbin_SCRIPTS =
if USEPROGRAMPREFIX
# We use datadir because the uninstall rule for the PROGRAMS attempts
# to cd into prefixexecbindir, and thus if prefixexecbindir is removed
# two consecutive uninstalls would fail
prefixexecbindir = $(datadir)
else
prefixexecbindir = $(bindir)
endif

# Path to binaries and flags used by contribs and doc to generated doc.
# These may be overridden if cross-compiling.
GROFFBIN = $(abs_top_builddir)/groff
GROFF_BIN_PATH = $(abs_top_builddir)
PDFMOMBIN = $(abs_top_builddir)/pdfmom
# Search for macro files and device/font description directories in
# source _and_ build trees; some of each are generated.
FFLAG=-F$(abs_top_builddir)/font -F$(abs_top_srcdir)/font
MFLAG=-M$(abs_top_builddir)/tmac -M$(abs_top_srcdir)/tmac

if !MAKE_DEFINES_RM
RM=rm -f
endif

# 'VERSION' is generated by gnulib script git-version-gen, using the
# command 'git describe':
#
# - From a git repository: if the current commit corresponds to a
#   tag, then 'VERSION' is simply the tag (e.g. 1.22.3).  Otherwise
#   'VERSION' has the following format:
#     <tag>-<nb_commits>-<commit>
#
#   With:
#     . tag: the most recent tag reachable from the current commit
#     . nb_commits: number of commits between the most recent tag and
#       the current commit.
#     . current commit, abbreviated.
#   For example: 1.22.3.real.434-5aafd
#   The version is stored in .version.
#
# - From a tarball, the version is taken from .tarball-version
#
# REVISION is the full revision given by git-version-gen, which can
# have non-alphanumeric symbols.
#
# Also see configure.ac for the related SHORT_VERSION macro.

MAJOR_VERSION = `echo $(VERSION) | cut -d . -f 1`
MINOR_VERSION = `echo $(VERSION) | cut -d . -f 2`
REVISION      = `echo $(VERSION) | cut -d . -f 3`

# Non-recursive makefile system. See Automake manual '7.3 An
# Alternative Approach to Subdirectories'. We use a single Makefile.am
# that includes other .am files, rather than using SUBDIRS.  Note that
# relative paths in the following .am files are relative to the top
# source directory.

include $(top_srcdir)/lib/gnulib.mk
include $(top_srcdir)/arch/mingw/mingw.am
include $(top_srcdir)/arch/misc/misc.am
include $(top_srcdir)/contrib/chem/chem.am
include $(top_srcdir)/contrib/eqn2graph/eqn2graph.am
include $(top_srcdir)/contrib/gdiffmk/gdiffmk.am
include $(top_srcdir)/contrib/glilypond/glilypond.am
include $(top_srcdir)/contrib/gperl/gperl.am
include $(top_srcdir)/contrib/gpinyin/gpinyin.am
include $(top_srcdir)/contrib/grap2graph/grap2graph.am
include $(top_srcdir)/contrib/hdtbl/hdtbl.am
include $(top_srcdir)/contrib/mm/mm.am
include $(top_srcdir)/contrib/mom/mom.am
include $(top_srcdir)/contrib/pdfmark/pdfmark.am
include $(top_srcdir)/contrib/pic2graph/pic2graph.am
include $(top_srcdir)/contrib/rfc1345/rfc1345.am
include $(top_srcdir)/contrib/sboxes/sboxes.am
include $(top_srcdir)/doc/doc.am
include $(top_srcdir)/font/devX100/devX100.am
include $(top_srcdir)/font/devX100-12/devX100-12.am
include $(top_srcdir)/font/devX75/devX75.am
include $(top_srcdir)/font/devX75-12/devX75-12.am
include $(top_srcdir)/font/devascii/devascii.am
include $(top_srcdir)/font/devcp1047/devcp1047.am
include $(top_srcdir)/font/devdvi/devdvi.am
include $(top_srcdir)/font/devhtml/devhtml.am
include $(top_srcdir)/font/devlatin1/devlatin1.am
include $(top_srcdir)/font/devlbp/devlbp.am
include $(top_srcdir)/font/devlj4/devlj4.am
include $(top_srcdir)/font/devpdf/devpdf.am
include $(top_srcdir)/font/devps/devps.am
include $(top_srcdir)/font/devutf8/devutf8.am
include $(top_srcdir)/font/scripts/scripts.am
include $(top_srcdir)/man/man.am
include $(top_srcdir)/src/include/include.am
include $(top_srcdir)/src/libs/libbib/libbib.am
include $(top_srcdir)/src/libs/libdriver/libdriver.am
include $(top_srcdir)/src/libs/libgroff/libgroff.am
include $(top_srcdir)/src/libs/libxutil/libxutil.am
include $(top_srcdir)/src/devices/grodvi/grodvi.am
include $(top_srcdir)/src/devices/grohtml/grohtml.am
include $(top_srcdir)/src/devices/grolbp/grolbp.am
include $(top_srcdir)/src/devices/grolj4/grolj4.am
include $(top_srcdir)/src/devices/gropdf/gropdf.am
include $(top_srcdir)/src/devices/grops/grops.am
include $(top_srcdir)/src/devices/grotty/grotty.am
include $(top_srcdir)/src/devices/xditview/xditview.am
include $(top_srcdir)/src/preproc/eqn/eqn.am
include $(top_srcdir)/src/preproc/grn/grn.am
include $(top_srcdir)/src/preproc/html/html.am
include $(top_srcdir)/src/preproc/pic/pic.am
include $(top_srcdir)/src/preproc/preconv/preconv.am
include $(top_srcdir)/src/preproc/refer/refer.am
include $(top_srcdir)/src/preproc/soelim/soelim.am
include $(top_srcdir)/src/preproc/tbl/tbl.am
include $(top_srcdir)/src/roff/groff/groff.am
include $(top_srcdir)/src/roff/nroff/nroff.am
include $(top_srcdir)/src/roff/troff/troff.am
include $(top_srcdir)/src/utils/addftinfo/addftinfo.am
include $(top_srcdir)/src/utils/afmtodit/afmtodit.am
include $(top_srcdir)/src/utils/grog/grog.am
include $(top_srcdir)/src/utils/hpftodit/hpftodit.am
include $(top_srcdir)/src/utils/indxbib/indxbib.am
include $(top_srcdir)/src/utils/lkbib/lkbib.am
include $(top_srcdir)/src/utils/lookbib/lookbib.am
include $(top_srcdir)/src/utils/pfbtops/pfbtops.am
include $(top_srcdir)/src/utils/tfmtodit/tfmtodit.am
include $(top_srcdir)/src/utils/xtotroff/xtotroff.am
include $(top_srcdir)/tmac/tmac.am

# Adding defs.h to BUILT_SOURCES will ensure that it will be built on
# make all or make check before all other targets. However, if another
# target is built from a clean build tree, (for example make groff)
# the files in BUILT_SOURCES will not be built first. That is why
# additional dependencies were added in the .am files that list
# objects that use defs (for example in groff.am:
# src/roff/groff/groff.$(OBJEXT): defs.h)
BUILT_SOURCES += defs.h

.DELETE_ON_ERROR:
.PRECIOUS: $(TEST_SUITE_LOG)

# if there is a name prefix we install the man pages by hand
all: generate_man_files
install-data-hook: install-prefix-man
uninstall-hook: uninstall-prefix-man
if USEPROGRAMPREFIX
generate_man_files: $(PREFIXMAN1)
install-prefix-man:
	for f in $(PREFIXMAN1); do \
	  cp -f $$f $(DESTDIR)$(man1dir)/$(NAMEPREFIX)`basename $$f`; \
	done
uninstall-prefix-man:
	for f in $(PREFIXMAN1); do \
	  rm -f $(DESTDIR)$(man1dir)/$(NAMEPREFIX)`basename $$f`; \
	done
else
man1_MANS += $(PREFIXMAN1)
install-prefix-man:
uninstall-prefix-man:
generate_man_files:
endif

# Hook to create the 'current' symlink
install-data-hook: create_current_symlink
create_current_symlink:
	cd $(DESTDIR)$(dataprogramdir); \
	  rm -f current; \
	  $(LN_S) $(SHORT_VERSION) current

# Hook to move the binaries that potentially have a prefix from
# prefixexecbindir to bindir.
install-exec-hook: move_binaries_with_prefix
move_binaries_with_prefix:
if USEPROGRAMPREFIX
	if test -n "$(NAMEPREFIX)"; then \
	   for f in $(prefixexecbin_PROGRAMS) $(prefixexecbin_SCRIPTS); do \
	      mv -f $(DESTDIR)$(prefixexecbindir)/$$f$(EXEEXT) \
	         $(DESTDIR)$(bindir)/$(NAMEPREFIX)$$f$(EXEEXT); \
	   done \
	fi
endif

# Always create the site-font directory as a guide to the user.
install-data-hook: install_site_font
install_site_font:
	-test -d $(DESTDIR)$(localfontdir) \
	  || $(mkinstalldirs) $(DESTDIR)$(localfontdir)

# Create systemtmacdir if not present
install-data-hook: install_tmacdir
install_tmacdir:
	-test -d $(DESTDIR)$(systemtmacdir) \
	  || $(mkinstalldirs) $(DESTDIR)$(systemtmacdir)

# directories specific to groff
uninstall-hook: uninstall_groffdirs
uninstall_groffdirs:
	if test -d $(DESTDIR)$(datasubdir); then \
	  rm -rf $(DESTDIR)$(fontdir); \
	  rm -rf $(DESTDIR)$(oldfontdir); \
	  rmdir $(DESTDIR)$(datasubdir); \
	fi
	if test -d $(DESTDIR)$(dataprogramdir); then \
	  if test -h $(DESTDIR)$(dataprogramdir)/current; then \
	    rm -f $(DESTDIR)$(dataprogramdir)/current; \
	  fi; \
	  if test -d $(DESTDIR)$(localfontdir); then \
	    rm -f $(DESTDIR)$(localfontdir)/*; \
	    rmdir $(DESTDIR)$(localfontdir); \
	  fi; \
	  rmdir $(DESTDIR)$(dataprogramdir); \
	fi
	if test -d $(DESTDIR)$(libprogramdir); then \
	  if test -d $(DESTDIR)$(systemtmacdir); then \
	    rm -f $(DESTDIR)$(systemtmacdir)/*; \
	    rmdir $(DESTDIR)$(systemtmacdir); \
	  fi; \
	  rmdir $(DESTDIR)$(libprogramdir); \
	fi
	if test -d $(DESTDIR)$(docdir); then \
	  if test -d $(DESTDIR)$(exampledir); then \
	    rmdir $(DESTDIR)$(exampledir); \
	  fi; \
	  if test -d $(DESTDIR)$(htmldocdir); then \
	    if test -d $(DESTDIR)$(htmldocdir)/groff.html.mono; then \
	      rmdir $(DESTDIR)$(htmldocdir)/groff.html.mono; \
	    fi; \
	    if test -d $(DESTDIR)$(htmldocdir)/groff.html.node; then \
	      rmdir $(DESTDIR)$(htmldocdir)/groff.html.node; \
	    fi; \
	    rmdir $(DESTDIR)$(htmldocdir); \
	  fi; \
	  rmdir $(DESTDIR)$(docdir); \
	fi

# Uninstall program that have a 'g' prefix
uninstall-hook: uninstall_binaries_with_prefix
uninstall_binaries_with_prefix:
if USEPROGRAMPREFIX
	if test -n "$(NAMEPREFIX)"; then \
	   for f in $(prefixexecbin_PROGRAMS) $(prefixexecbin_SCRIPTS); do \
	      rm -f $(DESTDIR)$(bindir)/$(NAMEPREFIX)$$f$(EXEEXT); \
	   done; \
	fi
endif

# Other files that should be present in the distribution tarball.
EXTRA_DIST += \
  BUG-REPORT \
  ChangeLog.115 \
  ChangeLog.116 \
  ChangeLog.117 \
  ChangeLog.118 \
  ChangeLog.119 \
  ChangeLog.120 \
  ChangeLog.121 \
  ChangeLog.122 \
  FDL \
  FOR-RELEASE \
  gendef.sh \
  HACKING \
  INSTALL.REPO \
  INSTALL.extra \
  LICENSES \
  MANIFEST \
  mdate.pl \
  MORE.STUFF \
  PROBLEMS \
  PROJECTS \
  README.MinGW \
  arch/djgpp \
  font/util/make-Rproto \
  makevarescape.sed

MOSTLYCLEANFILES += $(prefixexecbin_SCRIPTS) $(bin_SCRIPTS) \
  $(man1_MANS) $(man5_MANS) $(man7_MANS) \
  $(PREFIXMAN1)

# Suffix rule to build .1, .5 and .7 files from .1.man, .5.man and
# .7.man files.  The brackets around the @ are used to prevent the
# substitution of the variable by automake.
#
# The sed script transforms - to \-, ~ to \(ti, and so forth, (with an
# extra layer of backslashes--see below) so that Makefile variables
# containing ASCII characters that do not represent themselves literally
# in *roff (see groff_char(7)) are correctly interpolated into man page
# text.
#
# Note that while the script, combined with this target, will transform
# ` to \(ga, including grave accents in Makefile variables is likely to
# fail when the shell lexes the argument to echo within the old-style
# command substitution `` below.  Testing shows that grave accents
# should work* if POSIX-style command substitution $() is done instead.
# However, $() is less portable.  (Triple-escaping grave accents \\\`
# inside the interpolated Makefile variable will work, but is not
# attempted here.)
#
# Note also that the amount of backslash-escaping in the sed script is
# excessive (and incorrect) for normal purposes, but required here
# because a command substitution is being nested inside yet another
# invocation of sed.
#
# * For this target, no assurances about the good behavior of unusual
#   characters in Makefile variables in other aspects of the groff build
#   are offered.
#
# COMPATIBILITY_WRAPPERS is intended only for use in conditional
# expressions in man pages (to see if the legacy macro package wrappers
# feature is enabled) and not for expansion as formatted text.
makevarescape=$(top_srcdir)/makevarescape.sed

SUFFIXES += .man
.man:
	$(AM_V_GEN)$(MKDIR_P) `dirname $@` \
	&& LC_ALL=C \
	 sed -e "s|[@]APPDEFDIR[@]|`echo $(appdefdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]BINDIR[@]|`echo $(bindir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]COMMON_WORDS_FILE[@]|`echo $(common_words_file) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]COMPATIBILITY_WRAPPERS[@]|$(compatibility_wrappers)|g" \
	     -e "s|[@]DATASUBDIR[@]|`echo $(datasubdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]DEFAULT_INDEX[@]|`echo $(indexdir)/$(indexname) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]DEFAULT_INDEX_NAME[@]|`echo $(indexname) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]DEVICE[@]|\\\\%$(DEVICE)|g" \
	     -e "s|[@]DOCDIR[@]|`echo $(docdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]EXAMPLEDIR[@]|`echo $(exampledir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]FONTDIR[@]|`echo $(fontdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]g[@]|\\\\%$(g)|g" \
	     -e "s|[@]HTMLDOCDIR[@]|`echo $(htmldocdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]INDEX_SUFFIX[@]|\\\\%$(indexext)|g" \
	     -e "s|[@]LEGACYFONTDIR[@]|`echo $(legacyfontdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]LOCALFONTDIR[@]|`echo $(localfontdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]LOCALMACRODIR[@]|`echo $(localtmacdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]MACRODIR[@]|`echo $(tmacdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]MAN1EXT[@]|$(man1ext)|g" \
	     -e "s|[@]MAN5EXT[@]|$(man5ext)|g" \
	     -e "s|[@]MAN7EXT[@]|$(man7ext)|g" \
	     -e "s|[@]MDATE[@]|`$(PERL) $(top_srcdir)/mdate.pl $<`|g" \
	     -e "s|[@]OLDFONTDIR[@]|`echo $(oldfontdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]PAGE[@]|\\\\%$(PAGE)|g" \
	     -e "s|[@]PDFDOCDIR[@]|`echo $(pdfdocdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]PSPRINT[@]|`echo $(PSPRINT) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]SYSTEMMACRODIR[@]|`echo $(systemtmacdir) | sed -f $(makevarescape)`|g" \
	     -e "s|[@]TMAC_AN_PREFIX[@]|\\\\%$(tmac_an_prefix)|g" \
	     -e "s|[@]TMAC_M_PREFIX[@]|\\\\%$(tmac_m_prefix)|g" \
	     -e "s|[@]TMAC_MDIR[@]|`echo $(tmacdir) | sed -f $(makevarescape)`/mm|g" \
	     -e "s|[@]TMAC_S_PREFIX[@]|\\\\%$(tmac_s_prefix)|g" \
	     -e "s|[@]VERSION[@]|$(VERSION)|g" \
	     $< \
	     >$@

# Version files - see script 'build-aux/git-version-gen'
EXTRA_DIST += $(top_srcdir)/.version
BUILT_SOURCES += $(top_srcdir)/.version
$(top_srcdir)/.version:
	echo $(VERSION) > $@-t && mv $@-t $@
dist-hook:
	echo $(VERSION) > $(distdir)/.tarball-version

# Local Variables:
# fill-column: 72
# mode: makefile-automake
# End:
# vim: set autoindent filetype=automake textwidth=72:
