# Copyright (C) 1989-2000, 2001 Free Software Foundation, Inc. # Written by James Clark (jjc@jclark.com) # # 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 2, 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 groff; see the file COPYING. If not, write to the Free Software # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. srcdir=@srcdir@ top_srcdir=@top_srcdir@ VPATH=@srcdir@ top_builddir=@top_builddir@ version=`cat $(top_srcdir)/VERSION` # No additional number if revision is zero revision=`sed -e 's/^0$$//' -e 's/^[1-9].*$$/.&/' $(top_srcdir)/REVISION` # 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). PAGE=@PAGE@ # 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. BROKEN_SPOOLER_FLAGS=@BROKEN_SPOOLER_FLAGS@ # DEVICE is the default device. DEVICE=ps # TTYDEVDIRS is either `font/devascii font/devlatin1 font/devutf8' (for # ASCII) or `font/devcp1047' (for EBCDIC). TTYDEVDIRS=@TTYDEVDIRS@ # PSPRINT is the command to use for printing a PostScript file, # for example `lpr'. PSPRINT=@PSPRINT@ # DVIPRINT is the command to use for printing a TeX dvi file, # for example `lpr -d'. DVIPRINT=@DVIPRINT@ # 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. g=@g@ # Common prefix for installation directories. # Used in definitions of exec_prefix, datasubdir, fontpath, manroot. # This must already exist when you do make install. prefix=@prefix@ exec_prefix=@exec_prefix@ # bindir says where to install executables. bindir=@bindir@ # libdir says where to install platform-dependent data libdir=@libdir@ libprogramdir=$(libdir)/groff # datasubdir says where to install platform-independent data files datadir=@datadir@ dataprogramdir=$(datadir)/groff datasubdir=$(dataprogramdir)/$(version)$(revision) # fontdir says where to install dev*/*. fontdir=$(datasubdir)/font # fontpath says where to look for dev*/*. fontpath=$(fontdir):/usr/lib/font # 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 # 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):$(localtmacdir):$(tmacdir) # sys_tmac_prefix is prefix (if any) for system macro packages sys_tmac_prefix=@sys_tmac_prefix@ # 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. tmac_wrap=@tmac_wrap@ # If there is a groff version of a macro package listed in $(tmac_wrap), # then the groff version will be installed with a prefix of this. # Don't make this empty. tmac_prefix=g # The groff -mm macros will be available as -m$(tmac_m_prefix)m. tmac_m_prefix=\ `for i in $(tmac_wrap) ""; do case "$$i" in m) echo $(tmac_prefix);; esac; done` # The groff -ms macros will be available as -m$(tmac_s_prefix)s. tmac_s_prefix=\ `for i in $(tmac_wrap) ""; do case "$$i" in s) echo $(tmac_prefix);; esac; done` # The groff -man macros will be available as -m$(tmac_an_prefix)an. tmac_an_prefix=\ `for i in $(tmac_wrap) ""; do case "$$i" in an) echo $(tmac_prefix);; esac; done` # Extension to be used for refer index files. Index files are not # sharable 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 # manroot is the root of the man page directory tree. mandir=@mandir@ 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) # DEFINES should include the following: # -DHAVE_MMAP if you have mmap() and # -DARRAY_DELETE_NEEDS_SIZE if your C++ doesn't understand `delete []' # -DHAVE_SYS_SIGLIST if you have sys_siglist[] # -DWCOREFLAG=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 # -DHAVE_UNISTD_H if you have # -DHAVE_CC_OSFCN_H if you have a C++ # -DHAVE_DIRENT_H if you have # -DHAVE_LIMITS_H if you have # -DHAVE_CC_LIMITS_H if you have a C++ # -DHAVE_SYS_DIR_H if you have # -DHAVE_STDLIB_H if you have # -DHAVE_STRINGS_H if you have # -DHAVE_RENAME if you have rename() # -DHAVE_MKSTEMP if you have mkstemp() # -DHAVE_STRDUP if you have strdup() # -DHAVE_STRSEP if you have strsep() # -DHAVE_STRCASECMP if you have strcasecmp() # -DNEED_DECLARATION_HYPOT if your C++ doesn't declare hypot() # -DNEED_DECLARATION_PUTENV if your C++ doesn't declare putenv() # -DNEED_DECLARATION_POPEN if your C++ doesn't declare popen() # -DNEED_DECLARATION_PCLOSE if your C++ doesn't declare pclose() # -DNEED_DECLARATION_STRNCASECMP # if your C++ doesn't declare # strncasecmp() # -DRET_TYPE_SRAND_IS_VOID if your srand() returns void or int # -DHAVE_SYS_NERR if you have sysnerr in or # -DHAVE_SYS_ERRLIST if you have sys_errlist in or # # -DTRADITIONAL_CPP if your C++ compiler uses a traditional # (Reiser) preprocessor # -DLONG_FOR_TIME_T if localtime() takes a long * not a time_t * # -DHAVE_STRUCT_EXCEPTION if defines struct exception # -DRETSIGTYPE=int if signal handlers return int not void # -DIS_EBCDIC_HOST if the host's encoding is EBCDIC DEFINES=@DEFS@ # Include fmod.o, strtol.o, getcwd.o, strerror.o, putenv.o in LIBOBJS if # your C library is missing the corresponding function. LIBOBJS=@LIBOBJS@ # CCC is the compiler for C++ (.cc) files. CCC=@CXX@ CC=@CC@ # CCDEFINES are definitions for C++ compilations. CCDEFINES=$(DEFINES) # CDEFINES are definitions for C compilations. CDEFINES=$(DEFINES) CCFLAGS=@CXXFLAGS@ CFLAGS=@CFLAGS@ LDFLAGS=@LDFLAGS@ YACC=@YACC@ YACCFLAGS=-v LIBS=@LIBS@ LIBM=@LIBM@ RANLIB=@RANLIB@ INSTALL=@INSTALL@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ INSTALL_SCRIPT=@INSTALL_SCRIPT@ INSTALL_DATA=@INSTALL_DATA@ LN_S=@LN_S@ AR=ar ETAGS=etags ETAGSFLAGS= # Flag that tells etags to assume C++. ETAGSCCFLAG=-C # Full path to perl. PERLPATH=@PERLPATH@ # Sed command with which to edit sh scripts. SH_SCRIPT_SED_CMD=@SH_SCRIPT_SED_CMD@ # the program to create directory hierarchies mkinstalldirs=$(top_srcdir)/mkinstalldirs PURIFY=purify PURIFYCCFLAGS= #PURIFYCCFLAGS=-g++=yes \ # -collector=`dirname \`$(CCC) -print-libgcc-file-name\``/ld # Passing down MAKEOVERRIDES prevents $(MAKE) from containing a second # copy of $(MDEFINES) when making individual directories; this could # cause the argument list to become too long on some systems. MDEFINES= \ "MAKEOVERRIDES=$(MAKEOVERRIDES)" \ "PAGE=$(PAGE)" \ "BROKEN_SPOOLER_FLAGS=$(BROKEN_SPOOLER_FLAGS)" \ "DEVICE=$(DEVICE)" \ "TTYDEVDIRS=$(TTYDEVDIRS)" \ "PSPRINT=$(PSPRINT)" \ "DVIPRINT=$(DVIPRINT)" \ "top_srcdir=$(top_srcdir)" \ "top_builddir=$(top_builddir)" \ "prefix=$(prefix)" \ "exec_prefix=$(exec_prefix)" \ "g=$(g)" \ "datadir=$(datadir)" \ "dataprogramdir=$(dataprogramdir)" \ "datasubdir=$(datasubdir)" \ "libdir=$(libdir)" \ "libprogramdir=$(libprogramdir)" \ "bindir=$(bindir)" \ "fontdir=$(fontdir)" \ "fontpath=$(fontpath)" \ "tmacdir=$(tmacdir)" \ "systemtmacdir=$(systemtmacdir)" \ "localtmacdir=$(localtmacdir)" \ "tmacpath=$(tmacpath)" \ "indexext=$(indexext)" \ "indexdir=$(indexdir)" \ "indexname=$(indexname)" \ "common_words_file=$(common_words_file)" \ "manroot=$(manroot)" \ "man1ext=$(man1ext)" \ "man1dir=$(man1dir)" \ "man5ext=$(man5ext)" \ "man5dir=$(man5dir)" \ "man7ext=$(man7ext)" \ "man7dir=$(man7dir)" \ "mkinstalldirs=$(mkinstalldirs)" \ "tmac_wrap=$(tmac_wrap)" \ "sys_tmac_prefix=$(sys_tmac_prefix)" \ "tmac_an_prefix=$(tmac_an_prefix)" \ "tmac_s_prefix=$(tmac_s_prefix)" \ "tmac_m_prefix=$(tmac_m_prefix)" \ "CCC=$(CCC)" \ "CC=$(CC)" \ "CCDEFINES=$(CCDEFINES)" \ "CDEFINES=$(CDEFINES)" \ "CCFLAGS=$(CCFLAGS)" \ "CFLAGS=$(CFLAGS)" \ "LDFLAGS=$(LDFLAGS)" \ "YACC=$(YACC)" \ "YACCFLAGS=$(YACCFLAGS)" \ "LIBM=$(LIBM)" \ "LIBS=$(LIBS)" \ "LIBOBJS=$(LIBOBJS)" \ "RANLIB=$(RANLIB)" \ "AR=$(AR)" \ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ "INSTALL_DATA=$(INSTALL_DATA)" \ "ETAGS=$(ETAGS)" \ "ETAGSFLAGS=$(ETAGSFLAGS)" \ "ETAGSCCFLAG=$(ETAGSCCFLAG)" \ "PERLPATH=$(PERLPATH)" \ "SH_SCRIPT_SED_CMD=$(SH_SCRIPT_SED_CMD)" \ "PURIFY=$(PURIFY)" \ "PURIFYCCFLAGS=$(PURIFYCCFLAGS)" SHELL=/bin/sh INCDIRS=src/include LIBDIRS=\ src/libs/libgroff \ src/libs/libdriver \ src/libs/libbib CCPROGDIRS=\ src/roff/groff \ src/roff/troff \ src/preproc/tbl \ src/preproc/pic \ src/preproc/eqn \ src/preproc/grn \ src/preproc/refer \ src/preproc/soelim \ src/preproc/html \ src/devices/grops \ src/devices/grotty \ src/devices/grodvi \ src/devices/grolj4 \ src/devices/grohtml \ src/devices/grolbp \ src/utils/tfmtodit \ src/utils/hpftodit \ src/utils/lookbib \ src/utils/indxbib \ src/utils/lkbib \ src/utils/addftinfo CPROGDIRS=src/utils/pfbtops PROGDIRS=$(CCPROGDIRS) $(CPROGDIRS) DEVDIRS=\ font/devps \ font/devdvi \ font/devX75 \ font/devX75-12 \ font/devX100 \ font/devX100-12 \ font/devlj4 \ font/devhtml \ font/devlbp ALLTTYDEVDIRS=\ font/devascii \ font/devlatin1 \ font/devutf8 \ font/devcp1047 OTHERDIRS=\ man \ tmac \ src/utils/afmtodit \ src/roff/grog \ src/roff/nroff \ contrib/mm ALLDIRS=$(INCDIRS) $(LIBDIRS) $(PROGDIRS) \ $(DEVDIRS) $(TTYDEVDIRS) $(OTHERDIRS) EXTRADIRS=\ font/devps/generate \ font/devdvi/generate \ src/xditview \ doc DISTDIRS=$(INCDIRS) $(LIBDIRS) $(PROGDIRS) \ $(DEVDIRS) $(ALLTTYDEVDIRS) $(OTHERDIRS) $(EXTRADIRS) TARGETS=all install install_bin install_data clean distclean mostlyclean \ realclean extraclean distfiles TAGS depend uninstall_sub # This ENVSETUP gork is required by the DJGPP build on Windows 9X, # where Make needs to be case-sensitive to find files like BI and VERSION. ENVSETUP=\ if test -f $(srcdir)/makefile.ccpg* && \ test -f $(srcdir)/Makefile.ccpg*; \ then FNCASE=y; export FNCASE; \ else :; \ fi do=all dodirs=$(ALLDIRS) dot # Default target for subdir_Makefile subdir=src/roff/troff $(TARGETS): @$(ENVSETUP); $(MAKE) $(MDEFINES) do=$@ $(dodirs) dot: FORCE @$(ENVSETUP); \ $(MAKE) $(MDEFINES) srcdir=$(srcdir) VPATH=$(srcdir) \ -f $(top_srcdir)/Makefile.comm \ -f $(top_srcdir)/Makefile.sub $(do) $(LIBDIRS): FORCE @$(ENVSETUP); \ if test $(srcdir) = .; \ then srcdir=.; \ else srcdir=`cd $(srcdir); pwd`/$@; \ fi; \ test -d $@ || $(mkinstalldirs) $@; \ cd $@; \ test -f Makefile.dep || touch Makefile.dep; \ $(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \ -f $(top_srcdir)/Makefile.comm \ -f $$srcdir/Makefile.sub \ -f $(top_srcdir)/Makefile.lib \ -f Makefile.dep $(do) $(CPROGDIRS): FORCE @$(ENVSETUP); \ if test $(srcdir) = .; \ then srcdir=.; \ else srcdir=`cd $(srcdir); pwd`/$@; \ fi; \ test -d $@ || $(mkinstalldirs) $@; \ cd $@; \ test -f Makefile.dep || touch Makefile.dep; \ $(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \ -f $(top_srcdir)/Makefile.comm \ -f $$srcdir/Makefile.sub \ -f $(top_srcdir)/Makefile.cpg \ -f Makefile.dep $(do) $(CCPROGDIRS): FORCE @$(ENVSETUP); \ if test $(srcdir) = .; \ then srcdir=.; \ else srcdir=`cd $(srcdir); pwd`/$@; \ fi; \ test -d $@ || $(mkinstalldirs) $@; \ cd $@; \ test -f Makefile.dep || touch Makefile.dep; \ $(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \ -f $(top_srcdir)/Makefile.comm \ -f $$srcdir/Makefile.sub \ -f $(top_srcdir)/Makefile.ccpg \ -f Makefile.dep $(do) $(DEVDIRS) $(TTYDEVDIRS): FORCE @$(ENVSETUP); \ if test $(srcdir) = .; \ then srcdir=.; \ else srcdir=`cd $(srcdir); pwd`/$@; \ fi; \ test -d $@ || $(mkinstalldirs) $@; \ cd $@; \ $(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \ -f $(top_srcdir)/Makefile.comm \ -f $$srcdir/Makefile.sub \ -f $(top_srcdir)/Makefile.dev $(do) $(INCDIRS) $(OTHERDIRS): FORCE @$(ENVSETUP); \ if test $(srcdir) = .; \ then srcdir=.; \ else srcdir=`cd $(srcdir); pwd`/$@; \ fi; \ test -d $@ || $(mkinstalldirs) $@; \ cd $@; \ $(MAKE) $(MDEFINES) srcdir=$$srcdir VPATH=$$srcdir \ -f $(top_srcdir)/Makefile.comm \ -f $$srcdir/Makefile.sub \ -f $(top_srcdir)/Makefile.man $(do) .PHONY: dist dist: -rm -fr tmp rm -f groff-$(version)$(revision).tar.gz mkdir tmp for d in $(DISTDIRS); do \ $(mkinstalldirs) tmp/$$d; \ done srcdir=`cd $(srcdir); pwd`; \ cd tmp; \ $(LN_S) ../Makefile .; \ $(LN_S) $$srcdir/* . 2>/dev/null || true; \ for d in $(DISTDIRS); do \ (cd $$d; $(LN_S) $$srcdir/$$d/* . 2>/dev/null || true); \ done; \ $(MAKE) srcdir=$$srcdir VPATH=$$srcdir extraclean; \ for d in $(EXTRADIRS); do \ (cd $$d; $(MAKE) extraclean); \ done; \ rm -f Makefile; \ $(LN_S) $$srcdir/Makefile.init Makefile mv tmp groff-$(version)$(revision) tar cfh - groff-$(version)$(revision) | \ gzip -c >groff-$(version)$(revision).tar.gz rm -fr groff-$(version)$(revision) # $(PROGDIRS): libgroff # grops grotty grodvi: libdriver # refer lookbib indxbib lkbib: libbib # $(LIBDIRS) $(PROGDIRS): include .PHONY: $(ALLDIRS) dot $(TARGETS) FORCE subdir_Makefile: Makefile.cfg $(MAKE) do=Makefile $(subdir) Makefile.cfg: Makefile >Makefile.cfg for var in $(MDEFINES); do \ echo "$$var" >>Makefile.cfg; \ done Makefile: Makefile.in $(SHELL) config.status .PHONY: uninstall uninstall: uninstall_sub uninstall_dirs .PHONY: uninstall_dirs uninstall_dirs: # Use rmdir here so that the directories are only removed if they're empty -rmdir $(man1dir) $(man5dir) $(man7dir) $(manroot) \ $(tmacdir) $(systemtmacdir) $(localtmacdir) $(fontdir) $(bindir) \ $(datasubdir) $(dataprogramdir) $(datadir) \ $(libprogramdir) $(libdir) .PHONY: check check: FORCE: .NOEXPORT: