1# $FreeBSD: stable/11/gnu/usr.bin/groff/Makefile.inc 307631 2016-10-19 13:19:45Z emaste $
2
3BINDIR?=	/usr/bin
4SHELL=		/bin/sh
5PACKAGE=	groff
6
7# Define `page' to be letter if your PostScript printer uses 8.5x11
8# paper (USA) and define it to be A4, if it uses A4 paper (rest of the
9# world).
10PAGE=letter
11
12# Normally the Postscript driver, grops, produces output that conforms
13# to version 3.0 of the Adobe Document Structuring Conventions.
14# Unfortunately some spoolers and previewers can't handle such output.
15# The BROKEN_SPOOLER_FLAGS variable tells grops what it should do to
16# make its output acceptable to such programs.  This variable controls
17# only the default behaviour of grops; the behaviour can be changed at
18# runtime by the grops -b option (and so by groff -P-b).
19# Use a value of 0 if your spoolers and previewers are able to handle
20# conforming PostScript correctly.
21# Add 1 if no %%{Begin,End}DocumentSetup comments should be generated;
22# this is needed for early versions of TranScript that get confused by
23# anything between the %%EndProlog line and the first %%Page: comment.
24# Add 2 if lines in included files beginning with %! should be
25# stripped out; this is needed for the OpenWindows 2.0 pageview previewer.
26# Add 4 if %%Page, %%Trailer and %%EndProlog comments should be
27# stripped out of included files; this is needed for spoolers that
28# don't understand the %%{Begin,End}Document comments. I suspect this
29# includes early versions of TranScript.
30# Add 8 if the first line of the PostScript output should be %!PS-Adobe-2.0
31# rather than %!PS-Adobe-3.0; this is needed when using Sun's Newsprint
32# with a printer that requires page reversal.
33BROKEN_SPOOLER_FLAGS=7
34
35# DEVICE is the default device.
36DEVICE=ps
37
38# PSPRINT is the command to use for printing a PostScript file,
39# for example `lpr'.
40PSPRINT=lpr
41
42# DVIPRINT is the command to use for printing a TeX dvi file,
43# for example `lpr -d'.
44DVIPRINT=lpr -d
45########################################################################
46# Don't touch...
47
48g=
49tmac_s_prefix=
50tmac_m_prefix=
51tmac_an_prefix=
52fontdir=/usr/share/groff_font
53localfontdir=$(fontdir)
54legacyfontdir=$(fontdir)
55tmacdir=/usr/share/tmac
56systemtmacdir=/usr/share/tmac
57localtmacdir=/usr/share/tmac
58docdir=/usr/src/contrib/groff/doc
59exampledir=XXX
60htmldocdir=XXX
61pdfdocdir=XXX
62indexext=.i
63common_words_file=/usr/share/dict/eign
64indexdir=/usr/share/dict/papers
65indexname=Ind
66
67########################################################################
68# Libraries
69
70LIBGROFF=	${.OBJDIR}/${TOPREL}/src/libs/libgroff/libgroff.a
71LIBDRIVER=	${.OBJDIR}/${TOPREL}/src/libs/libdriver/libdriver.a
72LIBBIB=		${.OBJDIR}/${TOPREL}/src/libs/libbib/libbib.a
73
74CFLAGS+=	-DHAVE_CONFIG_H
75CFLAGS+=	-I${GROFF_DIST}/src/include -I${.CURDIR}/${TOPREL}/src/include
76CXXFLAGS+=	-fno-rtti -fno-exceptions
77
78.y.o:
79	$(YACC) $(YFLAGS) $(.IMPSRC)
80	mv -f y.tab.c $(.PREFIX).cpp
81	mv -f y.tab.h $(.PREFIX)_tab.h
82	${CXX} ${CXXFLAGS} -c $(.PREFIX).cpp -o ${.TARGET}
83
84.y.cpp:
85	$(YACC) $(YFLAGS) $(.IMPSRC)
86	mv -f y.tab.c $(.PREFIX).cpp
87	mv -f y.tab.h $(.PREFIX)_tab.h
88
89.SUFFIXES: .man .1 .2 .3 .4 .5 .6 .7 .8
90
91version=`cat $(GROFF_DIST)/VERSION`
92revision=`sed -e 's/^0$$//' -e 's/^[1-9].*$$/.&/' $(GROFF_DIST)/REVISION`
93
94.man.8 .man.7 .man.6 .man.5 .man.4 .man.3 .man.2 .man.1:
95	@${ECHO} Making $@ from $<
96	@-rm -f $@
97	@sed -e "s;@BINDIR@;${BINDIR};g" \
98	-e "s;@FONTDIR@;$(fontdir);g" \
99	-e "s;@LOCALFONTDIR@;$(localfontdir);g" \
100	-e "s;@LEGACYFONTDIR@;$(legacyfontdir);g" \
101	-e "s;@MACRODIR@;$(tmacdir);g" \
102	-e "s;@SYSTEMMACRODIR@;$(systemtmacdir);g" \
103	-e "s;@LOCALMACRODIR@;$(localtmacdir);g" \
104	-e "s;@DOCDIR@;$(docdir);g" \
105	-e "s;@EXAMPLEDIR@;$(exampledir);g" \
106	-e "s;@HTMLDOCDIR@;$(htmldocdir);g" \
107	-e "s;@PDFDOCDIR@;$(pdfdocdir);g" \
108	-e "s;@DEVICE@;$(DEVICE);g" \
109	-e "s;@DEFAULT_INDEX@;$(indexdir)/$(indexname);g" \
110	-e "s;@DEFAULT_INDEX_NAME@;$(indexname);g" \
111	-e "s;@INDEX_SUFFIX@;$(indexext);g" \
112	-e "s;@COMMON_WORDS_FILE@;$(common_words_file);g" \
113	-e "s;@MAN1EXT@;1;g" \
114	-e "s;@MAN5EXT@;5;g" \
115	-e "s;@MAN7EXT@;7;g" \
116	-e "s;@TMAC_S_PREFIX@;$(tmac_s_prefix);g" \
117	-e "s;@TMAC_M_PREFIX@;$(tmac_m_prefix);g" \
118	-e "s;@TMAC_AN_PREFIX@;$(tmac_an_prefix);g" \
119	-e "s;@TMAC_MDIR@;$(tmacdir)/mm;g" \
120	-e "s;@BROKEN_SPOOLER_FLAGS@;$(BROKEN_SPOOLER_FLAGS);g" \
121	-e "s;@VERSION@;$(version)$(revision);g" \
122	-e "s;@MDATE@;$(MDATE);g" \
123	-e "s;@g@;$(g);g" \
124	-e "s;@G@;`echo $(g) | LC_ALL=C tr a-z A-Z`;g" \
125	$< >$@
126
127.SUFFIXES: .sh .pl
128
129.sh .pl:
130	@${ECHO} Making ${.TARGET} from ${.IMPSRC}
131	@rm -f ${.TARGET}
132	@sed -e "s|@BINDIR@|${BINDIR}|g" \
133	     -e 's|@GROFF_BIN_PATH_SETUP@|GROFF_RUNTIME="$${GROFF_BIN_PATH=${BINDIR}}:"|g' \
134	     -e "s;@FONTDIR@;$(fontdir);g" \
135	     -e "s|@SEP@|:|g" \
136	     -e "s|@VERSION@|$(version)$(revision)|" \
137	     -e "s|@g@|$(g)|g" \
138	     ${.IMPSRC} >${.TARGET}
139
140TOPREL?=	..
141GROFF_DIST=	${.CURDIR}/${TOPREL}/../../../contrib/groff
142DIST_SUBDIR?=	${.CURDIR:T}
143DIST_DIR=	${GROFF_DIST}/${DIST_SUBDIR}
144MDATE!=		sh ${.CURDIR}/${TOPREL}/mdate.sh ${GROFF_DIST}/ChangeLog
145.PATH: ${DIST_DIR}
146