286 lines
8.5 KiB
Gnuplot
286 lines
8.5 KiB
Gnuplot
#Copyright (C) 1989, 1990, 1991 Free Software Foundation, Inc.
|
|
# Written by James Clark (jjc@jclark.uucp)
|
|
#
|
|
#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 1, 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 LICENSE. If not, write to the Free Software
|
|
#Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
# 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=A4
|
|
#PAGE=letter
|
|
|
|
# BINDIR says where to install executables.
|
|
BINDIR=/usr/local/bin
|
|
|
|
GROFFLIBDIR=/usr/local/lib/groff
|
|
|
|
# FONTDIR says where to install dev*/*.
|
|
FONTDIR=$(GROFFLIBDIR)/font
|
|
|
|
# FONTPATH says where to look for dev*/*.
|
|
FONTPATH=.:$(FONTDIR):/usr/local/lib/font:/usr/lib/font
|
|
|
|
# MACRODIR says where to install macros.
|
|
MACRODIR=$(GROFFLIBDIR)/tmac
|
|
|
|
# MACROPATH says where to look for macro files.
|
|
MACROPATH=.:$(MACRODIR):/usr/lib/tmac
|
|
|
|
# DEVICE is the default device.
|
|
DEVICE=ps
|
|
|
|
# PSPRINT is the command to use for printing a PostScript file.
|
|
# It must be a simple command, not a pipeline.
|
|
PSPRINT=lpr
|
|
|
|
# DVIPRINT is the command to use for printing a TeX dvi file.
|
|
# It must be a simple command, not a pipeline.
|
|
DVIPRINT=lpr -d
|
|
|
|
# HYPHENFILE is the file containing the hyphenation patterns.
|
|
HYPHENFILE=$(GROFFLIBDIR)/hyphen
|
|
|
|
# MANROOT is the root of the man page directory tree.
|
|
MANROOT=/usr/local/man
|
|
|
|
# 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 groff ms macros will be available as -m$(TMAC_S).
|
|
# If you use `TMAC_S=s', you can use the Unix ms macros by using
|
|
# groff -ms -M/usr/lib/tmac.
|
|
TMAC_S=gs
|
|
|
|
# Include -DBROKEN_SPOOLER in CPPDEFINES if you have a PostScript
|
|
# spooler or previewer that is unable to cope with anything after
|
|
# %%EndProlog and before the first page (old versions of TranScript
|
|
# have this problem) or gets confused by included documents (the Sun
|
|
# pageview previewer has this problem), or if you are going to be
|
|
# sharing PostScript documents with others who might be running such a
|
|
# spooler or previewer.
|
|
# Include -DCFRONT_ANSI_BUG if you are using AT&T C++ 2.0 with an ANSI C
|
|
# compiler backend.
|
|
# Include -DHAVE_VFORK if you have vfork().
|
|
# Include -DHAVE_SYS_SIGLIST if you have sys_siglist[].
|
|
# Include -DHAVE_UNION_WAIT if wait() is declared by osfcn.h to take
|
|
# an argument of type union wait * (Sun C++ does this). Don't include
|
|
# it if you're using the libg++ header files.
|
|
CPPDEFINES=-DBROKEN_SPOOLER -DHAVE_VFORK -DHAVE_SYS_SIGLIST # -DHAVE_UNION_WAIT -DCFRONT_ANSI_BUG
|
|
|
|
# Uncomment the next line if you don't have fmod in your math library.
|
|
# I believe this is needed on Ultrix and BSD 4.3.
|
|
# FMOD=fmod.o
|
|
|
|
# Uncomment the next line if you don't have strtol in your C library.
|
|
# I believe this is needed on BSD 4.3.
|
|
# STRTOL=strtol.o
|
|
|
|
# Additional flags needed to compile lib/malloc.c
|
|
# Use this with BSD.
|
|
MALLOCFLAGS=-DBSD
|
|
# Use this with System V
|
|
# MALLOCFLAGS=-DUSG
|
|
# Use this with SunOS 4.1
|
|
# MALLOCFLAGS=-DBSD -DSUNOS_LOCALTIME_BUG
|
|
|
|
# Comment this out if the GNU malloc gives you problems, or if you would
|
|
# prefer to use the system malloc.
|
|
MALLOC=malloc.o
|
|
|
|
GROFF=
|
|
# Comment the next line out if groff.c gives problems.
|
|
GROFF=groff
|
|
|
|
# CC is the C++ compiler
|
|
CC=g++
|
|
# I'm told that -fno-inline is needed on a 68030-based Apollo
|
|
# CC=g++ -fno-inline
|
|
|
|
# OLDCC is the C compiler.
|
|
OLDCC=gcc
|
|
|
|
PROFILE_FLAG=
|
|
DEBUG_FLAG=-g
|
|
OPTIMIZE_FLAG=-O
|
|
WARNING_FLAGS=#-Wall -Wcast-qual -Wwrite-strings
|
|
|
|
# Use this to pass additional flags on the command line.
|
|
XCFLAGS=
|
|
|
|
# CFLAGS are passed to sub makes
|
|
CFLAGS=$(PROFILE_FLAG) $(DEBUG_FLAG) $(OPTIMIZE_FLAG) $(WARNING_FLAGS) \
|
|
$(CPPDEFINES) $(XCFLAGS)
|
|
|
|
XOLDCFLAGS=
|
|
# OLDCFLAGS are passed to sub makes
|
|
OLDCFLAGS=$(DEBUG_FLAG) $(PROFILE_FLAG) $(OPTIMIZE_FLAG) $(XOLDCFLAGS)
|
|
|
|
XLDFLAGS=
|
|
LDFLAGS=$(PROFILE_FLAG) $(DEBUG_FLAG) $(XLDFLAGS)
|
|
# Libraries needed for linking C++ programs.
|
|
LIBS=
|
|
# Libraries needed for linking C++ programs that use libm.a.
|
|
MLIBS=$(LIBS) -lm
|
|
|
|
AR=ar
|
|
|
|
# Define RANLIB to be empty if you don't have ranlib.
|
|
RANLIB=ranlib
|
|
|
|
# YACC can be either yacc or bison -y
|
|
YACC=bison -y
|
|
YACCFLAGS=-v
|
|
|
|
ETAGS=/usr/local/bin/etags
|
|
# Flag to make etags treat *.[ch] files as C++
|
|
ETAGSFLAGS=-p
|
|
|
|
SHELL=/bin/sh
|
|
|
|
SUBDIRS=lib troff pic tbl eqn etc driver ps tty dvi macros man
|
|
|
|
# SUBFLAGS says what flags to pass to sub makes
|
|
SUBFLAGS="CC=$(CC)" "CFLAGS=$(CFLAGS)" "LDFLAGS=$(LDFLAGS)" \
|
|
"OLDCC=$(OLDCC)" "OLDCFLAGS=$(OLDCFLAGS)" \
|
|
"YACC=$(YACC)" "YACCFLAGS=$(YACCFLAGS)" \
|
|
"DEVICE=$(DEVICE)" "FONTPATH=$(FONTPATH)" "MACROPATH=$(MACROPATH)" \
|
|
"MALLOCFLAGS=$(MALLOCFLAGS)" "MALLOC=$(MALLOC)" \
|
|
"FMOD=$(FMOD)" "STRTOL=$(STRTOL)" \
|
|
"AR=$(AR)" "RANLIB=$(RANLIB)" "LIBS=$(LIBS)" "MLIBS=$(MLIBS)" \
|
|
"FONTDIR=$(FONTDIR)" "BINDIR=$(BINDIR)" "PAGE=$(PAGE)" \
|
|
"MACRODIR=$(MACRODIR)" "HYPHENFILE=$(HYPHENFILE)" \
|
|
"TMAC_S=$(TMAC_S)" "MAN1EXT=$(MAN1EXT)" "MAN1DIR=$(MAN1DIR)" \
|
|
"MAN5EXT=$(MAN5EXT)" "MAN5DIR=$(MAN5DIR)" \
|
|
"MAN7EXT=$(MAN7EXT)" "MAN7DIR=$(MAN7DIR)"
|
|
|
|
all: $(SUBDIRS) $(GROFF) shgroff
|
|
|
|
$(SUBDIRS): FORCE
|
|
@cd $@; \
|
|
echo Making all in $@; \
|
|
$(MAKE) $(SUBFLAGS) all
|
|
|
|
troff pic tbl eqn etc ps tty dvi: lib
|
|
ps tty dvi: driver
|
|
|
|
TAGS: FORCE
|
|
@for dir in $(SUBDIRS); do \
|
|
echo Making TAGS in $$dir; \
|
|
(cd $$dir; $(MAKE) "ETAGSFLAGS=$(ETAGSFLAGS)" "ETAGS=$(ETAGS)" TAGS); \
|
|
done
|
|
|
|
topclean: FORCE
|
|
-rm -f shgroff
|
|
-rm -f groff *.o core
|
|
|
|
clean: topclean FORCE
|
|
@for dir in $(SUBDIRS) doc; do \
|
|
echo Making clean in $$dir; \
|
|
(cd $$dir; $(MAKE) clean); done
|
|
|
|
distclean: topclean FORCE
|
|
@for dir in $(SUBDIRS) doc; do \
|
|
echo Making distclean in $$dir; \
|
|
(cd $$dir; $(MAKE) distclean); done
|
|
|
|
# You really don't want to use this target.
|
|
realclean: topclean FORCE
|
|
@for dir in $(SUBDIRS) doc; do \
|
|
echo Making realclean in $$dir; \
|
|
(cd $$dir; $(MAKE) realclean); done
|
|
|
|
install.nobin: FORCE shgroff
|
|
-[ -d $(BINDIR) ] || mkdir $(BINDIR)
|
|
-[ -d $(GROFFLIBDIR) ] || mkdir $(GROFFLIBDIR)
|
|
-[ -d $(MANROOT) ] || mkdir $(MANROOT)
|
|
@for dir in $(SUBDIRS); do \
|
|
echo Making install.nobin in $$dir; \
|
|
(cd $$dir; $(MAKE) $(SUBFLAGS) install.nobin); done
|
|
if [ -z "$(GROFF)" ] ; then cp shgroff $(BINDIR)/groff ; fi
|
|
|
|
install.bin: FORCE $(GROFF)
|
|
-[ -d $(BINDIR) ] || mkdir $(BINDIR)
|
|
@for dir in $(SUBDIRS); do \
|
|
echo Making install.bin in $$dir; \
|
|
(cd $$dir; $(MAKE) $(SUBFLAGS) install.bin); done
|
|
if [ -n "$(GROFF)" ] ; then cp groff $(BINDIR)/groff ; fi
|
|
|
|
install: install.bin install.nobin
|
|
|
|
install.mm: FORCE
|
|
-[ -d $(GROFFLIBDIR) ] || mkdir $(GROFFLIBDIR)
|
|
-[ -d $(MACRODIR) ] || mkdir $(MACRODIR)
|
|
sed -f macros/fixmacros.sed -e 's;/usr/lib/tmac;$(MACRODIR);' \
|
|
/usr/lib/macros/mmt >$(MACRODIR)/tmac.m
|
|
sed -f macros/fixmacros.sed /usr/lib/tmac/sys.name \
|
|
>$(MACRODIR)/sys.name
|
|
patch -s $(MACRODIR)/tmac.m macros/mm.diff
|
|
|
|
shgroff: groff.sh
|
|
@echo Making $@ from groff.sh
|
|
@-rm -f $@
|
|
@sed -e "s;@BINDIR@;$(BINDIR);" \
|
|
-e "s;@DEVICE@;$(DEVICE);" \
|
|
-e "s;@PROG_PREFIX@;$(PROG_PREFIX);" \
|
|
-e "s;@FONTDIR@;$(FONTDIR);" \
|
|
-e "s;@PSPRINT@;$(PSPRINT);" \
|
|
-e "s;@DVIPRINT@;$(DVIPRINT);" \
|
|
groff.sh >$@ || rm -f $@
|
|
@chmod +x $@
|
|
|
|
groff: groff.o lib/libgroff.a
|
|
$(CC) $(LDFLAGS) -o $@ groff.o lib/libgroff.a $(LIBS)
|
|
|
|
lib/libgroff.a: lib
|
|
|
|
groff.o: groff.c stringify
|
|
$(CC) -c -Ilib $(CFLAGS) -DDEVICE=\"$(DEVICE)\" \
|
|
"-DPSPRINT=`$(SHELL) stringify $(PSPRINT)`" \
|
|
"-DDVIPRINT=`$(SHELL) stringify $(DVIPRINT)`" \
|
|
groff.c
|
|
|
|
groff.o: lib/lib.h lib/errarg.h lib/error.h lib/stringclass.h lib/font.h
|
|
|
|
bindist: all VERSION Makefile.bd README.bd FORCE
|
|
-[ -d bindist ] || mkdir bindist
|
|
@topdir=`pwd`; \
|
|
for dir in $(SUBDIRS); do \
|
|
(cd $$dir; $(MAKE) "BINDIR=$$topdir/bindist" install.bin); done
|
|
cp README.bd bindist/README
|
|
cp VERSION bindist
|
|
if [ "$(GROFF)" ] ; then cp groff bindist/groff ; fi
|
|
@echo Making bindist/Makefile
|
|
@sed -e "s;@GROFFLIBDIR@;$(GROFFLIBDIR);" \
|
|
-e "s;@FONTDIR@;$(FONTDIR);" \
|
|
-e "s;@FONTPATH@;$(FONTPATH);" \
|
|
-e "s;@MACRODIR@;$(MACRODIR);" \
|
|
-e "s;@MACROPATH@;$(MACROPATH);" \
|
|
-e "s;@HYPHENFILE@;$(HYPHENFILE);" \
|
|
-e "s;@DEVICE@;$(DEVICE);" \
|
|
-e "s;@GROFF@;$(GROFF);" \
|
|
Makefile.bd >bindist/Makefile
|
|
|
|
FORCE:
|