1# Copyright (C) 1989-2000, 2001, 2002, 2003, 2004, 2005
2#   Free Software Foundation, Inc.
3#      Written by James Clark (jjc@jclark.com)
4# 
5# This file is part of groff.
6# 
7# groff is free software; you can redistribute it and/or modify it under
8# the terms of the GNU General Public License as published by the Free
9# Software Foundation; either version 2, or (at your option) any later
10# version.
11# 
12# groff is distributed in the hope that it will be useful, but WITHOUT ANY
13# WARRANTY; without even the implied warranty of MERCHANTABILITY or
14# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15# for more details.
16# 
17# You should have received a copy of the GNU General Public License along
18# with groff; see the file COPYING.  If not, write to the Free Software
19# Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA.
20
21SHELL=@SHELL@
22
23srcdir=@srcdir@
24top_srcdir=@abs_top_srcdir@
25VPATH=@srcdir@
26top_builddir=@abs_top_builddir@
27
28# `RT_SEP' is the operating system's native PATH SEPARATOR CHAR, which
29# is to be used in runtime PATHs compiled into groff executables.
30RT_SEP=@GROFF_PATH_SEPARATOR@
31
32# `SH_SEP' is a alternative PATH SEPARATOR CHAR, to be used in shell
33# scripts and makefile rules; it may be the same as `RT_SEP', but,
34# particularly in some Microsoft environments, it may differ.
35SH_SEP=@PATH_SEPARATOR@
36
37version=`cat $(top_srcdir)/VERSION`
38# No additional number if revision is zero.
39revision=`sed -e 's/^0$$//' -e 's/^[1-9].*$$/.&/' $(top_srcdir)/REVISION`
40
41# Define `page' to be letter if your PostScript printer uses 8.5x11
42# paper (USA) and define it to be A4, if it uses A4 paper (rest of the
43# world).
44PAGE=@PAGE@
45
46# The name of the ghostscript program. Normally, gs, on GNU/Linux
47# but it might be different on MS-DOS/MS-WIN32 systems.
48GHOSTSCRIPT=@GHOSTSCRIPT@
49
50# `ALT_GHOSTSCRIPT_PROGS' specifies a list alternative names,
51# which can be tried if `GHOSTSCRIPT' cannot be found at run time.
52ALT_GHOSTSCRIPT_PROGS=@ALT_GHOSTSCRIPT_PROGS@
53
54# Similarly, `ALT_AWK_PROGS' specifies a list of alternative names,
55# which can be tried at run time, to identify the awk program.
56ALT_AWK_PROGS=@ALT_AWK_PROGS@
57
58# Normally the Postscript driver, grops, produces output that conforms
59# to version 3.0 of the Adobe Document Structuring Conventions.
60# Unfortunately some spoolers and previewers can't handle such output.
61# The BROKEN_SPOOLER_FLAGS variable tells grops what it should do to
62# make its output acceptable to such programs.  This variable controls
63# only the default behaviour of grops; the behaviour can be changed at
64# runtime by the grops -b option (and so by groff -P-b).
65# Use a value of 0 if your spoolers and previewers are able to handle
66# conforming PostScript correctly.
67# Add 1 if no %%{Begin,End}DocumentSetup comments should be generated;
68# this is needed for early versions of TranScript that get confused by
69# anything between the %%EndProlog line and the first %%Page: comment.
70# Add 2 if lines in included files beginning with %! should be
71# stripped out; this is needed for the OpenWindows 2.0 pageview previewer.
72# Add 4 if %%Page, %%Trailer and %%EndProlog comments should be
73# stripped out of included files; this is needed for spoolers that
74# don't understand the %%{Begin,End}Document comments. I suspect this
75# includes early versions of TranScript.
76# Add 8 if the first line of the PostScript output should be %!PS-Adobe-2.0
77# rather than %!PS-Adobe-3.0; this is needed when using Sun's Newsprint
78# with a printer that requires page reversal.
79BROKEN_SPOOLER_FLAGS=@BROKEN_SPOOLER_FLAGS@
80
81# `DEVICE' is the default device.
82DEVICE=ps
83
84# `XDEVDIRS' is either `font/devX{75,100}{,-12}' or empty.
85XDEVDIRS=@XDEVDIRS@
86
87# `XPROGDIRS' is either `src/devices/xditview src/utils/xtotroff' or empty.
88XPROGDIRS=@XPROGDIRS@
89
90# `XLIBDIRS' is either `src/libs/libxutil' or empty.
91XLIBDIRS=@XLIBDIRS@
92
93# `TTYDEVDIRS' is either `font/devascii font/devlatin1' (for
94# ASCII) or `font/devcp1047' (for EBCDIC) plus font/devutf8.
95TTYDEVDIRS=@TTYDEVDIRS@ font/devutf8
96
97# `OTHERDEVDIRS' is either `font/devlj4 font/devlbp' (for ASCII) or
98# empty (for EBCDIC).
99OTHERDEVDIRS=@OTHERDEVDIRS@
100
101# `PSPRINT' is the command to use for printing a PostScript file,
102# for example `lpr'.
103PSPRINT=@PSPRINT@
104
105# `DVIPRINT' is the command to use for printing a TeX dvi file,
106# for example `lpr -d'.
107DVIPRINT=@DVIPRINT@
108
109# Prefix for names of programs that have Unix counterparts.
110# For example, if `g' is `g' then troff will be installed as
111# gtroff.  This doesn't affect programs like grops or groff that have
112# no Unix counterparts.  Note that the groff versions of eqn and tbl
113# will not work with Unix troff.
114g=@g@
115
116# Common prefix for installation directories.
117# Used in definitions of exec_prefix, datasubdir, fontpath, manroot.
118# This must already exist when you do make install.
119prefix=@prefix@
120exec_prefix=@exec_prefix@
121
122# `bindir' says where to install executables.
123bindir=@bindir@
124
125# `libdir' says where to install platform-dependent data.
126libdir=@libdir@
127libprogramdir=$(libdir)/groff
128
129# `datasubdir' says where to install platform-independent data files.
130datadir=@datadir@
131dataprogramdir=$(datadir)/groff
132datasubdir=$(dataprogramdir)/$(version)$(revision)
133
134# `infodir' says where to install info files.
135infodir=@infodir@
136
137# `docdir' says where to install documentation files.
138docdir=$(datadir)/doc/groff/$(version)$(revision)
139
140# `exampledir' says where to install example files.
141exampledir=$(docdir)/examples
142
143# `htmldocdir' says where to install documentation in HTML format.
144htmldocdir=$(docdir)/html
145
146# `pdfdocdir' says where to install documentation in PDF format.
147pdfdocdir=$(docdir)/pdf
148
149# `fontdir' says where to install dev*/*.
150fontdir=$(datasubdir)/font
151
152# `localfontdir' says where local fonts will be installed (as dev*/*).
153localfontdir=$(dataprogramdir)/site-font
154
155# `legacyfontdir' is for compatibility with non-GNU troff.
156legacyfontdir=/usr/lib/font
157
158# `fontpath' says where to look for dev*/*.
159fontpath=$(localfontdir)$(RT_SEP)$(fontdir)$(RT_SEP)$(legacyfontdir)
160
161# `tmacdir' says where to install macros.
162tmacdir=$(datasubdir)/tmac
163
164# `systemtmacdir' says where to install platform-dependent macros.
165systemtmacdir=$(libprogramdir)/site-tmac
166
167# `localtmacdir' says where local files will be installed.
168localtmacdir=$(dataprogramdir)/site-tmac
169
170# `appresdir' says where to install the application resource file for
171# gxditview.
172appresdir=@appresdir@
173
174# `tmacpath' says where to look for macro files.
175# The current directory will be prepended in unsafe mode only; the home
176# directory will be always added.
177# `troffrc' and `troffrc-end' (and `eqnrc') are searched neither in the
178# current nor in the home directory.
179tmacpath=$(systemtmacdir)$(RT_SEP)$(localtmacdir)$(RT_SEP)$(tmacdir)
180
181# `sys_tmac_prefix' is prefix (if any) for system macro packages.
182sys_tmac_prefix=@sys_tmac_prefix@
183
184# `pnmtops_nosetpage' is the command to be run to generate an eps
185# file.  Some versions of pnmtops provide the -nosetpage option.
186# We detect this and use it if present.
187pnmtops_nosetpage=@pnmtops_nosetpage@
188
189# `tmac_wrap' is list of system macro packages that should be made
190# available to groff by creating a corresponding macro package
191# in the groff macro directory that references the system macro
192# package.
193tmac_wrap=@tmac_wrap@
194
195# If there is a groff version of a macro package listed in $(tmac_wrap),
196# then the groff version will be installed with a prefix of this.
197# Don't make this empty.
198tmac_prefix=g
199
200# The groff -mm macros will be available as -m$(tmac_m_prefix)m.
201tmac_m_prefix=\
202 `for i in $(tmac_wrap) ""; do case "$$i" in m) echo $(tmac_prefix);; esac; done`
203# The groff -ms macros will be available as -m$(tmac_s_prefix)s.
204tmac_s_prefix=\
205 `for i in $(tmac_wrap) ""; do case "$$i" in s) echo $(tmac_prefix);; esac; done`
206# The groff -man macros will be available as -m$(tmac_an_prefix)an.
207tmac_an_prefix=\
208 `for i in $(tmac_wrap) ""; do case "$$i" in an) echo $(tmac_prefix);; esac; done`
209
210# Extension to be used for refer index files.  Index files are not
211# sharable between different architectures, so you might want to use
212# different suffixes for different architectures.  Choose an extension
213# that doesn't conflict with refer or any other indexing program.
214indexext=.i
215
216# Directory containing the default index for refer.
217indexdir=/usr/dict/papers
218
219# The filename (without suffix) of the default index for refer.
220indexname=Ind
221
222# common_words_file is a file containing a list of common words.
223# If your system provides /usr/lib/eign it will be copied onto this,
224# otherwise the supplied eign file will be used.
225common_words_file=$(datasubdir)/eign
226
227# `manroot' is the root of the man page directory tree.
228mandir=@mandir@
229manroot=$(mandir)
230
231# `man1ext' is the man section for user commands.
232man1ext=1
233man1dir=$(manroot)/man$(man1ext)
234
235# `man5ext' is the man section for file formats.
236man5ext=5
237man5dir=$(manroot)/man$(man5ext)
238
239# `man7ext' is the man section for macros.
240man7ext=7
241man7dir=$(manroot)/man$(man7ext)
242
243# The configure script checks whether all necessary utility programs for
244# grohtml are available -- only then we can build the HTML documentation.
245make_html=@make_html@
246make_install_html=@make_install_html@
247
248# The configure script also checks whether all necessary utility programs
249# for pdfroff are available -- only then we can build PDF documentation.
250make_pdfdoc=@make_pdfdoc@
251make_install_pdfdoc=@make_install_pdfdoc@
252
253# DEFINES should include the following:
254# -DHAVE_MMAP			if you have mmap() and <sys/mman.h>
255# -DARRAY_DELETE_NEEDS_SIZE	if your C++ doesn't understand `delete []'
256# -DSYS_SIGLIST_DECLARED	if you have sys_siglist[]
257# -DWCOREFLAG=0200		if the 0200 bit of the status returned by
258#				wait() indicates whether a core image was
259#				produced for a process that was terminated
260#				by a signal
261#
262# -DHAVE_DIRENT_H		if you have <dirent.h>
263# -DHAVE_LIMITS_H		if you have <limits.h>
264# -DHAVE_CC_LIMITS_H		if you have a C++ <limits.h>
265# -DHAVE_MATH_H			if you have <math.h>
266# -DHAVE_CC_OSFCN_H		if you have a C++ <osfcn.h>
267# -DHAVE_CC_INTTYPES_H		if you have a C++ <inttypes.h>
268# -DHAVE_STDLIB_H		if you have <stdlib.h>
269# -DHAVE_STRING_H		if you have <string.h>
270# -DHAVE_STRINGS_H		if you have <strings.h>
271# -DHAVE_SYS_DIR_H		if you have <sys/dir.h>
272# -DHAVE_SYS_TIME_H		if you have <sys/time.h>
273# -DHAVE_UNISTD_H		if you have <unistd.h>
274#
275# -DHAVE_FMOD			if you have fmod()
276# -DHAVE_GETCWD			if you have getcwd()
277# -DHAVE_GETTIMEOFDAY		if you have gettimeofday()
278# -DHAVE_ISATTY			if you have isatty()
279# -DHAVE_KILL			if you have kill()
280# -DHAVE_MKSTEMP		if you have mkstemp()
281# -DHAVE_MMAP			if you have mmap()
282# -DHAVE_PUTENV			if you have putenv()
283# -DHAVE_RENAME			if you have rename()
284# -DHAVE_SETLOCALE		if you have setlocale()
285# -DHAVE_SNPRINTF		if you have snprintf()
286# -DHAVE_STRCASECMP		if you have strcasecmp()
287# -DHAVE_STRNCASECMP		if you have strncasecmp()
288# -DHAVE_STRERROR		if you have strerror()
289# -DHAVE_STRSEP			if you have strsep()
290# -DHAVE_STRTOL			if you have strtol()
291# -DHAVE_VSNPRINTF		if you have vsnprintf()
292#
293# -DNEED_DECLARATION_GETTIMEOFTODAY
294#				if your C++ <sys/time.h> doesn't declare
295#				gettimeofday()
296# -DNEED_DECLARATION_HYPOT	if your C++ <math.h> doesn't declare hypot()
297# -DNEED_DECLARATION_PCLOSE	if your C++ <stdio.h> doesn't declare pclose()
298# -DNEED_DECLARATION_POPEN	if your C++ <stdio.h> doesn't declare popen()
299# -DNEED_DECLARATION_PUTENV	if your C++ <stdlib.h> doesn't declare
300#				putenv()
301# -DNEED_DECLARATION_RAND	if your C++ <stdlib.h> doesn't declare rand()
302# -DNEED_DECLARATION_SNPRINTF	if your C++ <stdio.h> doesn't declare
303# 				snprintf()
304# -DNEED_DECLARATION_SRAND	if your C++ <stdlib.h> doesn't declare srand()
305# -DNEED_DECLARATION_STRCASECMP if your C++ <string.h> doesn't declare
306#				strcasecmp()
307# -DNEED_DECLARATION_STRNCASECMP
308#				if your C++ <string.h> doesn't declare
309#				strncasecmp()
310# -DNEED_DECLARATION_VFPRINTF	if your C++ <stdio.h> doesn't declare
311#				vfprintf()
312# -DNEED_DECLARATION_VSNPRINTF	if your C++ <stdio.h> doesn't declare
313#				vsnprintf()
314#
315# -DRET_TYPE_SRAND_IS_VOID	if srand() returns void not int
316# -DHAVE_SYS_NERR		if you have sysnerr in <errno.h> or <stdio.h>
317# -DHAVE_SYS_ERRLIST		if you have sys_errlist in <errno.h> or
318#				<stdio.h>
319# -DTRADITIONAL_CPP		if your C++ compiler uses a traditional
320#				(Reiser) preprocessor
321# -DLONG_FOR_TIME_T		if localtime() takes a long * not a time_t *
322# -DHAVE_STRUCT_EXCEPTION	if <math.h> defines struct exception
323# -DRETSIGTYPE=int		if signal handlers return int not void	
324# -DIS_EBCDIC_HOST		if the host's encoding is EBCDIC
325# -DPAGE=A4			if the the printer's page size is A4
326# -DGHOSTSCRIPT=gs		the name (and directory if required) of the
327#				ghostscript program
328DEFINES=@DEFS@
329
330# Include
331#
332#   {fmod,getcwd,mkstemp,putenv,snprintf,strcasecmp,
333#    strerror,strncasecmp,strtol}.$(OBJEXT)
334#
335# in LIBOBJS if your C library is missing the corresponding function.
336# vsnprintf is defined in the snprintf.$(OBJEXT) module.
337LIBOBJS=@LIBOBJS@
338
339# `CCC' is the compiler for C++ (.cpp) files.
340CCC=@CXX@
341CC=@CC@
342# CCDEFINES are definitions for C++ compilations.
343CCDEFINES=$(DEFINES)
344# CDEFINES are definitions for C compilations.
345CDEFINES=$(DEFINES)
346
347CCFLAGS=@CXXFLAGS@
348CFLAGS=@CFLAGS@
349CPPFLAGS=@CPPFLAGS@
350LDFLAGS=@LDFLAGS@
351
352X_CFLAGS=@X_CFLAGS@
353X_LIBS=@X_LIBS@
354X_EXTRA_LIBS=@X_EXTRA_LIBS@
355X_PRE_LIBS=@X_PRE_LIBS@
356
357YACC=@YACC@
358YACCFLAGS=-v
359
360EXEEXT=@EXEEXT@
361OBJEXT=@OBJEXT@
362# a simple heuristic assumption
363LIBEXT=`case $(OBJEXT) in obj) echo lib;; *) echo a;; esac`
364LIBS=@LIBS@
365LIBM=@LIBM@
366RANLIB=@RANLIB@
367INSTALL=@INSTALL@
368INSTALL_PROGRAM=@INSTALL_PROGRAM@
369INSTALL_SCRIPT=@INSTALL_SCRIPT@
370INSTALL_DATA=@INSTALL_DATA@
371INSTALL_INFO=@INSTALL_INFO@
372LN_S=@LN_S@
373AR=ar
374ETAGS=etags
375ETAGSFLAGS=
376# Flag that tells etags to assume C++.
377ETAGSCCFLAG=-C
378# Full path to perl.
379PERLPATH=@PERLPATH@
380# Sed command with which to edit sh scripts.
381SH_SCRIPT_SED_CMD=@SH_SCRIPT_SED_CMD@
382# Sed script to deal with OS dependencies in sh scripts.
383SH_DEPS_SED_SCRIPT=$(top_builddir)/arch/misc/shdeps.sed
384
385# The program to create directory hierarchies.
386mkinstalldirs= $(SHELL) $(top_srcdir)/mkinstalldirs
387
388PURIFY=purify
389PURIFYCCFLAGS=
390#PURIFYCCFLAGS=-g++=yes \
391#  -collector=`dirname \`$(CCC) -print-libgcc-file-name\``/ld
392
393# Passing down MAKEOVERRIDES prevents $(MAKE) from containing a second
394# copy of $(MDEFINES) when making individual directories; this could
395# cause the argument list to become too long on some systems.
396MDEFINES= \
397  "ALT_AWK_PROGS=$(ALT_AWK_PROGS)" \
398  "ALT_GHOSTSCRIPT_PROGS=$(ALT_GHOSTSCRIPT_PROGS)" \
399  "AR=$(AR)" \
400  "BROKEN_SPOOLER_FLAGS=$(BROKEN_SPOOLER_FLAGS)" \
401  "CC=$(CC)" \
402  "CCC=$(CCC)" \
403  "CCDEFINES=$(CCDEFINES)" \
404  "CCFLAGS=$(CCFLAGS)" \
405  "CDEFINES=$(CDEFINES)" \
406  "CFLAGS=$(CFLAGS)" \
407  "CPPFLAGS=$(CPPFLAGS)" \
408  "DEVICE=$(DEVICE)" \
409  "DVIPRINT=$(DVIPRINT)" \
410  "ETAGS=$(ETAGS)" \
411  "ETAGSCCFLAG=$(ETAGSCCFLAG)" \
412  "ETAGSFLAGS=$(ETAGSFLAGS)" \
413  "EXEEXT=$(EXEEXT)" \
414  "INSTALL_DATA=$(INSTALL_DATA)" \
415  "INSTALL_INFO=$(INSTALL_INFO)" \
416  "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
417  "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
418  "LDFLAGS=$(LDFLAGS)" \
419  "LIBEXT=$(LIBEXT)" \
420  "LIBM=$(LIBM)" \
421  "LIBOBJS=$(LIBOBJS)" \
422  "LIBS=$(LIBS)" \
423  "MAKEOVERRIDES=$(MAKEOVERRIDES)" \
424  "OBJEXT=$(OBJEXT)" \
425  "OTHERDEVDIRS=$(OTHERDEVDIRS)" \
426  "PAGE=$(PAGE)" \
427  "GHOSTSCRIPT=$(GHOSTSCRIPT)" \
428  "PERLPATH=$(PERLPATH)" \
429  "PSPRINT=$(PSPRINT)" \
430  "PURIFY=$(PURIFY)" \
431  "PURIFYCCFLAGS=$(PURIFYCCFLAGS)" \
432  "RANLIB=$(RANLIB)" \
433  "RT_SEP=$(RT_SEP)" \
434  "SH_SEP=$(SH_SEP)" \
435  "SHELL=$(SHELL)" \
436  "SH_SCRIPT_SED_CMD=$(SH_SCRIPT_SED_CMD)" \
437  "SH_DEPS_SED_SCRIPT=$(SH_DEPS_SED_SCRIPT)" \
438  "TTYDEVDIRS=$(TTYDEVDIRS)" \
439  "XDEVDIRS=$(XDEVDIRS)" \
440  "XLIBDIRS=$(XLIBDIRS)" \
441  "XPROGDIRS=$(XPROGDIRS)" \
442  "X_CFLAGS=$(X_CFLAGS)" \
443  "X_LIBS=$(X_LIBS)" \
444  "X_EXTRA_LIBS=$(X_EXTRA_LIBS)" \
445  "X_PRE_LIBS=$(X_PRE_LIBS)" \
446  "YACC=$(YACC)" \
447  "YACCFLAGS=$(YACCFLAGS)" \
448  "appresdir=$(appresdir)" \
449  "bindir=$(bindir)" \
450  "common_words_file=$(common_words_file)" \
451  "datadir=$(datadir)" \
452  "dataprogramdir=$(dataprogramdir)" \
453  "datasubdir=$(datasubdir)" \
454  "docdir=$(docdir)" \
455  "exampledir=$(exampledir)" \
456  "exec_prefix=$(exec_prefix)" \
457  "fontdir=$(fontdir)" \
458  "fontpath=$(fontpath)" \
459  "g=$(g)" \
460  "htmldocdir=$(htmldocdir)" \
461  "pdfdocdir=$(pdfdocdir)" \
462  "indexdir=$(indexdir)" \
463  "indexext=$(indexext)" \
464  "indexname=$(indexname)" \
465  "infodir=$(infodir)" \
466  "legacyfontdir=$(legacyfontdir)" \
467  "libdir=$(libdir)" \
468  "libprogramdir=$(libprogramdir)" \
469  "localfontdir=$(localfontdir)" \
470  "localtmacdir=$(localtmacdir)" \
471  "make_html=$(make_html)" \
472  "make_install_html=$(make_install_html)" \
473  "make_pdfdoc=$(make_pdfdoc)" \
474  "make_install_pdfdoc=$(make_install_pdfdoc)" \
475  "man1dir=$(man1dir)" \
476  "man1ext=$(man1ext)" \
477  "man5dir=$(man5dir)" \
478  "man5ext=$(man5ext)" \
479  "man7dir=$(man7dir)" \
480  "man7ext=$(man7ext)" \
481  "manroot=$(manroot)" \
482  "mkinstalldirs=$(mkinstalldirs)" \
483  "prefix=$(prefix)" \
484  "revision=$(revision)" \
485  "sys_tmac_prefix=$(sys_tmac_prefix)" \
486  "pnmtops_nosetpage=$(pnmtops_nosetpage)" \
487  "systemtmacdir=$(systemtmacdir)" \
488  "tmac_an_prefix=$(tmac_an_prefix)" \
489  "tmac_m_prefix=$(tmac_m_prefix)" \
490  "tmac_s_prefix=$(tmac_s_prefix)" \
491  "tmac_wrap=$(tmac_wrap)" \
492  "tmacdir=$(tmacdir)" \
493  "tmacpath=$(tmacpath)" \
494  "top_builddir=$(top_builddir)" \
495  "top_srcdir=$(top_srcdir)" \
496  "version=$(version)"
497
498INCDIRS=src/include
499LIBDIRS=\
500  src/libs/libgroff \
501  src/libs/libdriver \
502  src/libs/libbib \
503  $(XLIBDIRS)
504CCPROGDIRS=\
505  src/roff/groff \
506  src/roff/troff \
507  src/preproc/tbl \
508  src/preproc/pic \
509  src/preproc/eqn \
510  src/preproc/grn \
511  src/preproc/refer \
512  src/preproc/soelim \
513  src/preproc/html \
514  src/devices/grops \
515  src/devices/grotty \
516  src/devices/grodvi \
517  src/devices/grolj4 \
518  src/devices/grohtml \
519  src/devices/grolbp \
520  src/utils/tfmtodit \
521  src/utils/hpftodit \
522  src/utils/lookbib \
523  src/utils/indxbib \
524  src/utils/lkbib \
525  src/utils/addftinfo
526CPROGDIRS=\
527  src/utils/pfbtops \
528  $(XPROGDIRS)
529PROGDEPDIRS=arch/misc
530PROGDIRS=$(PROGDEPDIRS) $(CCPROGDIRS) $(CPROGDIRS)
531DEVDIRS=\
532  font/devps \
533  font/devdvi \
534  font/devhtml
535ALLTTYDEVDIRS=\
536  font/devascii \
537  font/devlatin1 \
538  font/devutf8 \
539  font/devcp1047
540# `doc' must be processed before `contrib/pdfmark'.
541OTHERDIRS=\
542  man \
543  tmac \
544  src/utils/afmtodit \
545  src/roff/grog \
546  src/roff/nroff \
547  doc \
548  contrib/mm \
549  contrib/pic2graph \
550  contrib/eqn2graph \
551  contrib/grap2graph \
552  contrib/groffer \
553  contrib/mom \
554  contrib/pdfmark \
555  contrib/gdiffmk
556ALLDIRS=$(INCDIRS) $(LIBDIRS) $(PROGDIRS) \
557  $(DEVDIRS) $(XDEVDIRS) $(OTHERDEVDIRS) $(TTYDEVDIRS) $(OTHERDIRS)
558EXTRADIRS=\
559  font/devps/generate \
560  font/devdvi/generate \
561  font/devlj4/generate \
562  doc
563NOMAKEDIRS=\
564  arch/djgpp \
565  contrib/mm/examples \
566  contrib/mm/mm \
567  contrib/mom/examples \
568  contrib/mom/momdoc \
569  contrib/gdiffmk/tests \
570  src/libs/snprintf
571DISTDIRS=\
572  $(INCDIRS) $(LIBDIRS) $(PROGDIRS) $(DEVDIRS) $(XDEVDIRS) $(OTHERDEVDIRS) \
573  $(ALLTTYDEVDIRS) $(OTHERDIRS) $(EXTRADIRS) $(NOMAKEDIRS)
574TARGETS=all install install_bin install_data clean distclean mostlyclean \
575  realclean extraclean distfiles TAGS depend uninstall_sub
576
577# This ENVSETUP gork is required by the DJGPP build on Windows 9X,
578# where Make needs to be case-sensitive to find files like BI and VERSION.
579ENVSETUP=\
580	if test -f $(srcdir)/makefile.ccpg* && \
581	   test -f $(srcdir)/Makefile.ccpg*; then \
582	  FNCASE=y; export FNCASE; \
583	else :; \
584	fi
585
586do=all
587dodirs=$(ALLDIRS) dot
588# Default target for subdir_Makefile
589subdir=src/roff/troff
590
591
592$(TARGETS):
593	@$(ENVSETUP); $(MAKE) $(MDEFINES) do=$@ $(dodirs)
594
595dot: FORCE
596	@$(ENVSETUP); \
597	$(MAKE) $(MDEFINES) srcdir=$(srcdir) VPATH=$(srcdir) \
598	  -f $(top_srcdir)/Makefile.comm \
599	  -f $(top_srcdir)/Makefile.sub $(do)
600
601$(LIBDIRS): FORCE
602	@$(ENVSETUP); \
603	if test $(srcdir) = .; then \
604	  srcdir=.; \
605	else \
606	  srcdir=`cd $(srcdir); pwd`/$@; \
607	fi; \
608	test -d $@ || $(mkinstalldirs) $@; \
609	cd $@; \
610	test -f Makefile.dep || touch Makefile.dep; \
611	$(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \
612	  -f $(top_srcdir)/Makefile.comm \
613	  -f $$srcdir/Makefile.sub \
614	  -f $(top_srcdir)/Makefile.lib \
615	  -f Makefile.dep $(do)
616
617$(CPROGDIRS): FORCE
618	@$(ENVSETUP); \
619	if test $(srcdir) = .; then \
620	  srcdir=.; \
621	else \
622	  srcdir=`cd $(srcdir); pwd`/$@; \
623	fi; \
624	test -d $@ || $(mkinstalldirs) $@; \
625	cd $@; \
626	test -f Makefile.dep || touch Makefile.dep; \
627	$(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \
628	  -f $(top_srcdir)/Makefile.comm \
629	  -f $$srcdir/Makefile.sub \
630	  -f $(top_srcdir)/Makefile.cpg \
631	  -f Makefile.dep $(do)
632
633$(CCPROGDIRS): FORCE
634	@$(ENVSETUP); \
635	if test $(srcdir) = .; then \
636	  srcdir=.; \
637	else \
638	  srcdir=`cd $(srcdir); pwd`/$@; \
639	fi; \
640	test -d $@ || $(mkinstalldirs) $@; \
641	cd $@; \
642	test -f Makefile.dep || touch Makefile.dep; \
643	$(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \
644	  -f $(top_srcdir)/Makefile.comm \
645	  -f $$srcdir/Makefile.sub \
646	  -f $(top_srcdir)/Makefile.ccpg \
647	  -f Makefile.dep $(do)
648
649$(DEVDIRS) $(XDEVDIRS) $(OTHERDEVDIRS) $(TTYDEVDIRS): FORCE
650	@$(ENVSETUP); \
651	if test $(srcdir) = .; then \
652	  srcdir=.; \
653	else \
654	  srcdir=`cd $(srcdir); pwd`/$@; \
655	fi; \
656	test -d $@ || $(mkinstalldirs) $@; \
657	cd $@; \
658	$(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \
659	  -f $(top_srcdir)/Makefile.comm \
660	  -f $$srcdir/Makefile.sub \
661	  -f $(top_srcdir)/Makefile.dev $(do)
662
663$(INCDIRS) $(PROGDEPDIRS) $(OTHERDIRS): FORCE
664	@$(ENVSETUP); \
665	if test $(srcdir) = .; then \
666	  srcdir=.; \
667	else \
668	  srcdir=`cd $(srcdir); pwd`/$@; \
669	fi; \
670	test -d $@ || $(mkinstalldirs) $@; \
671	cd $@; \
672	$(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \
673	  -f $(top_srcdir)/Makefile.comm \
674	  -f $$srcdir/Makefile.sub \
675	  -f $(top_srcdir)/Makefile.man $(do)
676
677.PHONY: dist
678dist:
679	-rm -fr tmp
680	rm -f groff-$(version)$(revision).tar.gz
681	mkdir tmp
682	for d in $(DISTDIRS); do \
683	  $(mkinstalldirs) tmp/$$d; \
684	done
685	srcdir=`cd $(srcdir); pwd`; \
686	cd tmp; \
687	$(LN_S) ../Makefile .; \
688	$(LN_S) $$srcdir/* . 2>/dev/null || true; \
689	rm -rf CVS; \
690	for d in $(DISTDIRS); do \
691	  (cd $$d; \
692	   $(LN_S) $$srcdir/$$d/* . 2>/dev/null; \
693	   rm -rf CVS || true); \
694	done; \
695	$(MAKE) srcdir=. VPATH=. distfiles; \
696	$(MAKE) srcdir=. VPATH=. extraclean; \
697	for d in $(EXTRADIRS); do \
698	  (cd $$d; \
699	   if test -f Makefile; then \
700	     $(MAKE) extraclean; \
701	   else \
702	     $(MAKE) -f $(top_builddir)/$$d/Makefile extraclean; \
703	   fi); \
704	done; \
705	rm -f Makefile; \
706	$(LN_S) $$srcdir/Makefile.init Makefile
707	mv tmp groff-$(version)$(revision)
708	tar cfh - groff-$(version)$(revision) | \
709	  gzip -c >groff-$(version)$(revision).tar.gz
710	rm -fr groff-$(version)$(revision)
711
712# $(PROGDIRS): libgroff
713# grops grotty grodvi: libdriver
714# refer lookbib indxbib lkbib: libbib
715# $(LIBDIRS) $(PROGDIRS): include
716
717.PHONY: $(ALLDIRS) dot $(TARGETS) FORCE
718
719# Create a Makefile in $(subdir).  This is useful for development since it
720# avoids running make recursively.
721subdir_Makefile: Makefile.cfg
722	$(MAKE) do=Makefile $(subdir)
723
724Makefile.cfg: Makefile
725	>Makefile.cfg
726	for var in $(MDEFINES); do \
727	  echo "$$var" >>Makefile.cfg; \
728	done
729
730Makefile: Makefile.in
731	$(SHELL) config.status
732
733.PHONY: uninstall
734uninstall: uninstall_sub uninstall_dirs
735
736.PHONY: uninstall_dirs
737uninstall_dirs:
738# Use `rmdir' here so that the directories are only removed if they are empty.
739	-rmdir $(man1dir) $(man5dir) $(man7dir) $(manroot) \
740	  $(tmacdir) $(systemtmacdir) $(localtmacdir) \
741	  $(fontdir) $(localfontdir) $(bindir) \
742	  $(datasubdir) $(dataprogramdir) $(infodir) \
743	  $(exampledir) $(htmldocdir) $(pdfdocdir) $(docdir) \
744	  $(libprogramdir) $(libdir) \
745	  $(datadir)/doc/groff $(datadir)/doc $(datadir) 2>/dev/null || :
746
747.PHONY: check docheck
748check: site.exp docheck
749
750docheck:
751	if $(SHELL) -c "runtest --version" > /dev/null 2>&1; then \
752	  runtest; \
753	else \
754	  echo "WARNING: could not find \`runtest'" 1>&2; \
755	fi
756
757# This snippet has been taken from the automake package.
758
759site.exp:
760	@echo "Making a new site.exp file..."
761	@echo "## these variables are automatically generated by make ##" >site.tmp
762	@echo "# Do not edit here.  If you wish to override these values" >>site.tmp
763	@echo "# edit the last section" >>site.tmp
764	@echo "set tool groff" >>site.tmp
765	@echo "set srcdir $(srcdir)/testsuite" >>site.tmp
766	@echo "set objdir `pwd`" >> site.tmp
767	@echo "## All variables above are generated by configure.  Do not edit! ##" >> site.tmp
768	@test ! -f site.exp \
769	  || sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
770	@-rm -f site.bak
771	@test ! -f site.exp || mv site.exp site.bak
772	@mv site.tmp site.exp
773
774FORCE:
775
776.NOEXPORT:
777