1151497Sru# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 2104862Sru# Written by Werner Lemberg <wl@gnu.org> 3104862Sru# 4104862Sru# This file is part of groff. 5104862Sru# 6104862Sru# groff is free software; you can redistribute it and/or modify it under 7104862Sru# the terms of the GNU General Public License as published by the Free 8104862Sru# Software Foundation; either version 2, or (at your option) any later 9104862Sru# version. 10104862Sru# 11104862Sru# groff is distributed in the hope that it will be useful, but WITHOUT ANY 12104862Sru# WARRANTY; without even the implied warranty of MERCHANTABILITY or 13104862Sru# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14104862Sru# for more details. 15104862Sru# 16104862Sru# You should have received a copy of the GNU General Public License along 17104862Sru# with groff; see the file COPYING. If not, write to the Free Software 18151497Sru# Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. 19104862Sru 20114402Sru# These may be overridden if cross-compiling. 21114402SruGROFFBIN=$(top_builddir)/src/roff/groff/groff 22151497SruGROFF_BIN_PATH=`echo $(groff_bin_dirs) | sed -e 's| *|$(SH_SEP)|g'` 23114402Sru 24151497Sru# info files are distributed with the groff package, so makeinfo is 25151497Sru# usually not needed (however, to build from CVS you NEED it!) 26151497Sru# FIXME: Add autoconf test to check whether makeinfo exists. 27104862SruMAKEINFO=makeinfo 28104862Sru 29104862Srugroff_bin_dirs=\ 30104862Sru $(top_builddir)/src/roff/groff \ 31104862Sru $(top_builddir)/src/roff/troff \ 32104862Sru $(top_builddir)/src/preproc/pic \ 33104862Sru $(top_builddir)/src/preproc/eqn \ 34104862Sru $(top_builddir)/src/preproc/tbl \ 35104862Sru $(top_builddir)/src/preproc/grn \ 36104862Sru $(top_builddir)/src/preproc/refer \ 37104862Sru $(top_builddir)/src/preproc/soelim \ 38104862Sru $(top_builddir)/src/preproc/html \ 39104862Sru $(top_builddir)/src/devices/grops \ 40104862Sru $(top_builddir)/src/devices/grohtml 41104862Sru 42104862SruFFLAG=-F$(top_builddir)/font -F$(top_srcdir)/font 43104862SruTFLAG=-M$(top_builddir)/tmac -M$(top_srcdir)/tmac 44104862Sru 45104862SruGROFF=\ 46104862Sru GROFF_COMMAND_PREFIX=''; \ 47104862Sru export GROFF_COMMAND_PREFIX; \ 48114402Sru GROFF_BIN_PATH=$(GROFF_BIN_PATH); \ 49104862Sru export GROFF_BIN_PATH; \ 50104862Sru sed -e "s;@VERSION@;$(version)$(revision);" $< \ 51114402Sru | $(GROFFBIN) $(TFLAG) $(FFLAG) -Upet -ww 52104862Sru 53104862SruDOCFILES=\ 54104862Sru meref.me \ 55104862Sru meintro.me \ 56104862Sru pic.ms 57104862Sru 58104862SruPROCESSEDDOCFILES=\ 59104862Sru meref.ps \ 60104862Sru meintro.ps \ 61104862Sru pic.ps 62104862Sru 63104862SruHTMLDOCFILES=\ 64104862Sru pic.html 65104862Sru 66151497SruHTMLDOCFILESALL=\ 67151497Sru pic*.html 68151497Sru 69104862SruHTMLDOCIMAGEFILES=\ 70104862Sru pic* 71104862Sru 72104862SruEXAMPLEFILES=\ 73104862Sru webpage.ms \ 74151497Sru groff.css \ 75104862Sru grnexmpl.g \ 76104862Sru grnexmpl.me 77104862Sru 78104862SruPROCESSEDEXAMPLEFILES=\ 79104862Sru webpage.ps \ 80104862Sru grnexmpl.ps 81104862Sru 82104862SruHTMLEXAMPLEFILES=\ 83104862Sru webpage.html 84104862Sru 85104862SruHTMLEXAMPLEIMAGEFILES=\ 86104862Sru webpage* 87104862Sru 88104862Sruimagedir=img 89104862Sruhtmldocimagedir=$(htmldocdir)/$(imagedir) 90104862Sruexampleimagedir=$(exampledir)/$(imagedir) 91104862Sru 92104862SruCLEANADD=\ 93104862Sru $(PROCESSEDDOCFILES) \ 94104862Sru $(PROCESSEDEXAMPLEFILES) \ 95104862Sru $(HTMLEXAMPLEFILES) \ 96151497Sru $(HTMLDOCFILESALL) \ 97151497Sru groff.aux groff.cp* groff.dvi groff.es* groff.fn* groff.html groff.ky* \ 98151497Sru groff.log groff.ma* groff.op* groff.pdf groff.pg* groff.ps groff.rq* \ 99151497Sru groff.st* groff.toc groff.tp groff.vr* \ 100151497Sru examples.stamp 101104862Sru 102104862SruCLEANDIRADD=\ 103104862Sru $(imagedir) 104104862Sru 105104862SruCLEANNOTSRCDIRADD=\ 106151497Sru groff.css \ 107104862Sru grnexmpl.g \ 108104862Sru groff \ 109104862Sru groff-* \ 110104862Sru gnu.eps \ 111104862Sru gnu.png 112104862Sru 113104862Sru.SUFFIXES: .me .ms .ps .html 114104862Sru 115104862Sru# For simplicity, we always call grn and eqn. 116104862Sru.me.ps: 117104862Sru $(GROFF) -Tps -ge -me >$@ 118104862Sru 119104862Sru.ms.html: 120104862Sru $(GROFF) -P-p -P-b -P-I`basename $< | sed -e 's|.ms$$||'` \ 121104862Sru -P-D$(imagedir) -Thtml -ms >$@ 122104862Sru.ms.ps: 123104862Sru $(GROFF) -Tps -ms -mwww >$@ 124104862Sru 125104862Sru 126104862Sruall: groff $(PROCESSEDDOCFILES) prepare_examples \ 127104862Sru $(PROCESSEDEXAMPLEFILES) $(make_html) 128104862Sru 129104862Sruhtml: $(HTMLDOCFILES) $(HTMLEXAMPLEFILES) 130104862Sru 131151497Sruprepare_examples: examples.stamp 132151497Sru 133151497Sruexamples.stamp: grnexmpl.g groff.css gnu.eps 134104862Sru test -f grnexmpl.g || cp $(srcdir)/grnexmpl.g . 135151497Sru test -f groff.css || cp $(srcdir)/groff.css . 136151497Sru if test ! -f gnu.eps; then \ 137151497Sru if test -f $(srcdir)/gnu.eps; then \ 138151497Sru cp $(srcdir)/gnu.eps .; \ 139151497Sru elif test -f $(top_builddir)/contrib/pdfmark/gnu.eps; then \ 140151497Sru cp $(top_builddir)/contrib/pdfmark/gnu.eps .; \ 141151497Sru fi; \ 142151497Sru fi 143151497Sru echo timestamp > $@ 144104862Sru 145104862Srugroff: groff.texinfo 146151497Sru $(MAKEINFO) --enable-encoding -I$(srcdir) $(srcdir)/groff.texinfo 147104862Sru 148104862Srugnu.eps: gnu.xpm 149114402Sru xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | \ 150114402Sru $(pnmtops_nosetpage) -noturn -rle >$@ 151151497Sru 152104862Srugnu.png: gnu.xpm 153104862Sru xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | pnmtopng >$@ 154104862Sru 155151497Srupic.html: pic.ms 156151497Sru $(GROFF) -P-p -P-b -P-I`basename $< | sed -e 's|.ms$$||'` \ 157151497Sru -P-D$(imagedir) -P-j`basename $< | sed -e 's|.ms$$||'` \ 158151497Sru -Thtml -ms >$@ 159151497Sru 160151497Sruwebpage.html: webpage.ms gnu.png groff.css 161104862Sruwebpage.ps: gnu.eps 162104862Sru 163104862Srugrnexmpl.ps: grnexmpl.me grnexmpl.g 164104862Sru 165104862Srudistfiles: groff gnu.eps gnu.png 166104862Sru 167104862Sruinstall_data: groff $(DOCFILES) $(PROCESSEDDOCFILES) $(make_install_html) \ 168104862Sru $(EXAMPLEFILES) $(PROCESSEDEXAMPLEFILES) 169104862Sru -test -d $(infodir) || $(mkinstalldirs) $(infodir) 170104862Sru# Prefer info files in builddir over srcdir; we test for 171104862Sru# the existence of `groff'. 172104862Sru d=.; \ 173104862Sru test -f "groff" || d=$(srcdir); \ 174151497Sru for f in $$d/groff `ls $$d/groff-*`; do \ 175104862Sru rm -f $(infodir)/`basename $$f`; \ 176104862Sru $(INSTALL_DATA) $$f $(infodir)/`basename $$f`; \ 177104862Sru done 178104862Sru $(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/groff 179104862Sru -test -d $(docdir) || $(mkinstalldirs) $(docdir) 180104862Sru for f in $(DOCFILES); do \ 181104862Sru rm -f $(docdir)/$$f; \ 182104862Sru $(INSTALL_DATA) $(srcdir)/$$f $(docdir)/$$f; \ 183104862Sru done 184104862Sru for f in $(PROCESSEDDOCFILES); do \ 185104862Sru rm -f $(docdir)/$$f; \ 186104862Sru $(INSTALL_DATA) $$f $(docdir)/$$f; \ 187104862Sru done 188104862Sru -test -d $(exampledir) || $(mkinstalldirs) $(exampledir) 189104862Sru for f in $(EXAMPLEFILES); do \ 190104862Sru rm -f $(exampledir)/$$f; \ 191104862Sru $(INSTALL_DATA) $(srcdir)/$$f $(exampledir)/$$f; \ 192104862Sru done 193104862Sru for f in $(PROCESSEDEXAMPLEFILES); do \ 194104862Sru rm -f $(exampledir)/$$f; \ 195104862Sru $(INSTALL_DATA) $$f $(exampledir)/$$f; \ 196104862Sru done 197104862Sru 198104862Sruinstall_html: $(HTMLDOCFILES) $(HTMLEXAMPLEFILES) 199104862Sru -test -d $(htmldocdir) || $(mkinstalldirs) $(htmldocdir) 200151497Sru for f in `ls $(HTMLDOCFILESALL)`; do \ 201104862Sru rm -f $(htmldocdir)/$$f; \ 202104862Sru $(INSTALL_DATA) $$f $(htmldocdir)/$$f; \ 203104862Sru done 204104862Sru -test -d $(htmldocimagedir) || $(mkinstalldirs) $(htmldocimagedir) 205104862Sru rm -f $(htmldocimagedir)/$(HTMLDOCIMAGEFILES) 206104862Sru $(INSTALL_DATA) $(imagedir)/$(HTMLDOCIMAGEFILES) $(htmldocimagedir) 207104862Sru -test -d $(exampledir) || $(mkinstalldirs) $(exampledir) 208104862Sru for f in $(HTMLEXAMPLEFILES); do \ 209104862Sru rm -f $(exampledir)/$$f; \ 210104862Sru $(INSTALL_DATA) $$f $(exampledir)/$$f; \ 211104862Sru done 212104862Sru -test -d $(exampleimagedir) || $(mkinstalldirs) $(exampleimagedir) 213104862Sru rm -f $(exampleimagedir)/$(HTMLEXAMPLEIMAGEFILES) 214104862Sru $(INSTALL_DATA) $(imagedir)/$(HTMLEXAMPLEIMAGEFILES) $(exampleimagedir) 215104862Sru 216104862Sruuninstall_sub: 217151497Sru -for f in groff `ls groff-*`; do \ 218104862Sru rm -f $(infodir)/$$f; \ 219104862Sru done 220151497Sru $(INSTALL_INFO) --remove --info-dir=$(infodir) $(infodir)/groff 221104862Sru -for f in $(DOCFILES) $(PROCESSEDDOCFILES); do \ 222104862Sru rm -f $(docdir)/$$f; \ 223104862Sru done 224151497Sru -for f in `ls $(HTMLDOCFILESALL)`; do \ 225104862Sru rm -f $(htmldocdir)/$$f; \ 226104862Sru done 227104862Sru -rm -f $(htmldocimagedir)/$(HTMLDOCIMAGEFILES) 228104862Sru -rmdir $(htmldocimagedir) 229151497Sru -for f in $(EXAMPLEFILES) $(PROCESSEDEXAMPLEFILES) $(HTMLEXAMPLEFILES); do \ 230104862Sru rm -f $(exampledir)/$$f; \ 231104862Sru done 232104862Sru -rm -f $(exampleimagedir)/$(HTMLEXAMPLEIMAGEFILES) 233104862Sru -rmdir $(exampleimagedir) 234