[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

File: [cvsweb.bsd.lv] / mandoc / Makefile (download)

Revision 1.381, Thu Nov 24 10:33:38 2011 UTC (12 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.380: +17 -2 lines

Add manup(8).  This runs through mandocdb(8) databases (in the same way that
apropos(1) does so) and updates an HTML fragment cache for use by man.cgi.
Right now man.cgi is "online" in that it requires mandoc(1) in its path,
but this doesn't work for, say, OpenBSD's apache chroot(1).  This allows
a cache to be maintained.

.PHONY: 	 clean install installwww
.SUFFIXES:	 .sgml .html .md5 .h .h.html
.SUFFIXES:	 .1       .3       .7       .8
.SUFFIXES:	 .1.txt   .3.txt   .7.txt   .8.txt
.SUFFIXES:	 .1.pdf   .3.pdf   .7.pdf   .8.pdf
.SUFFIXES:	 .1.ps    .3.ps    .7.ps    .8.ps
.SUFFIXES:	 .1.html  .3.html  .7.html  .8.html
.SUFFIXES:	 .1.xhtml .3.xhtml .7.xhtml .8.xhtml

# Specify this if you want to hard-code the operating system to appear
# in the lower-left hand corner of -mdoc manuals.
#
# CFLAGS	+= -DOSNAME="\"OpenBSD 4.5\""

VERSION		 = 1.12.0
VDATE		 = 8 October 2011

# IFF your system supports multi-byte functions (setlocale(), wcwidth(),
# putwchar()) AND has __STDC_ISO_10646__ (that is, wchar_t is simply a
# UCS-4 value) should you define USE_WCHAR.  If you define it and your
# system DOESN'T support this, -Tlocale will produce garbage.
# If you don't define it, -Tlocale is a synonym for -Tacsii.
#
CFLAGS	 	+= -DUSE_WCHAR

# If your system has manpath(1), uncomment this.  This is most any
# system that's not OpenBSD or NetBSD.  If uncommented, apropos(1),
# mandocdb(8), and man.cgi will popen(3) manpath(1) to get the MANPATH
# variable.
# CFLAGS	+= -DUSE_MANPATH

CFLAGS		+= -g -DHAVE_CONFIG_H -DVERSION="\"$(VERSION)\""
CFLAGS     	+= -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings
PREFIX		 = /usr/local
BINDIR		 = $(PREFIX)/bin
INCLUDEDIR	 = $(PREFIX)/include/mandoc
LIBDIR		 = $(PREFIX)/lib/mandoc
MANDIR		 = $(PREFIX)/man
EXAMPLEDIR	 = $(PREFIX)/share/examples/mandoc
INSTALL		 = install
INSTALL_PROGRAM	 = $(INSTALL) -m 0755
INSTALL_DATA	 = $(INSTALL) -m 0444
INSTALL_LIB	 = $(INSTALL) -m 0644
INSTALL_SOURCE	 = $(INSTALL) -m 0644
INSTALL_MAN	 = $(INSTALL_DATA)

# Non-BSD systems (Linux, etc.) need -ldb to compile mandocdb and
# apropos.
# However, if you don't have -ldb at all (or it's not native), then
# comment out apropos and mandocdb. 
#
#DBLIB		 = -ldb
DBBIN		 = apropos mandocdb man.cgi manup
DBLN		 = llib-lapropos.ln llib-lmandocdb.ln llib-lman.cgi.ln llib-lmanup.ln

all: mandoc preconv demandoc $(DBBIN)

SRCS		 = Makefile \
		   apropos.1 \
		   apropos.c \
		   arch.c \
		   arch.in \
		   att.c \
		   att.in \
		   chars.c \
		   chars.in \
		   compat_getsubopt.c \
		   compat_strlcat.c \
		   compat_strlcpy.c \
		   config.h.post \
		   config.h.pre \
		   demandoc.c \
		   demandoc.1 \
		   eqn.7 \
		   eqn.c \
		   eqn_html.c \
		   eqn_term.c \
		   example.style.css \
		   external.png \
		   html.c \
		   html.h \
		   index.css \
		   index.sgml \
		   lib.c \
		   lib.in \
		   libman.h \
		   libmandoc.h \
		   libmdoc.h \
		   libroff.h \
		   main.c \
		   main.h \
		   man.h \
		   man.7 \
		   man.c \
		   man_hash.c \
		   man_html.c \
		   man_macro.c \
		   man_term.c \
		   man_validate.c \
		   mandoc.1 \
		   mandoc.3 \
		   mandoc.c \
		   mandoc.h \
		   mandocdb.8 \
		   mandocdb.c \
		   mandocdb.h \
		   mandoc_char.7 \
		   manpath.c \
		   manpath.h \
		   manup.c \
		   manup.8 \
		   mdoc.h \
		   mdoc.7 \
		   mdoc.c \
		   mdoc_argv.c \
		   mdoc_hash.c \
		   mdoc_html.c \
		   mdoc_macro.c \
		   mdoc_man.c \
		   mdoc_term.c \
		   mdoc_validate.c \
		   msec.c \
		   msec.in \
		   out.c \
		   out.h \
		   preconv.1 \
		   preconv.c \
		   predefs.in \
		   read.c \
		   roff.7 \
		   roff.c \
		   st.c \
		   st.in \
		   style.css \
		   tbl.7 \
		   tbl.c \
		   tbl_data.c \
		   tbl_html.c \
		   tbl_layout.c \
		   tbl_opts.c \
		   tbl_term.c \
		   term.c \
		   term.h \
		   term_ascii.c \
		   term_ps.c \
		   test-getsubopt.c \
		   test-mmap.c \
		   test-strlcat.c \
		   test-strlcpy.c \
		   test-strptime.c \
		   tree.c \
		   vol.c \
		   vol.in

LIBMAN_OBJS	 = man.o \
		   man_hash.o \
		   man_macro.o \
		   man_validate.o
LIBMAN_LNS	 = man.ln \
		   man_hash.ln \
		   man_macro.ln \
		   man_validate.ln

LIBMDOC_OBJS	 = arch.o \
		   att.o \
		   lib.o \
		   mdoc.o \
		   mdoc_argv.o \
		   mdoc_hash.o \
		   mdoc_macro.o \
		   mdoc_validate.o \
		   msec.o \
		   st.o \
		   vol.o
LIBMDOC_LNS	 = arch.ln \
		   att.ln \
		   lib.ln \
		   mdoc.ln \
		   mdoc_argv.ln \
		   mdoc_hash.ln \
		   mdoc_macro.ln \
		   mdoc_validate.ln \
		   msec.ln \
		   st.ln \
		   vol.ln

LIBROFF_OBJS	 = eqn.o \
		   roff.o \
		   tbl.o \
		   tbl_data.o \
		   tbl_layout.o \
		   tbl_opts.o
LIBROFF_LNS	 = eqn.ln \
		   roff.ln \
		   tbl.ln \
		   tbl_data.ln \
		   tbl_layout.ln \
		   tbl_opts.ln

LIBMANDOC_OBJS	 = $(LIBMAN_OBJS) \
		   $(LIBMDOC_OBJS) \
		   $(LIBROFF_OBJS) \
		   chars.o \
		   mandoc.o \
		   read.o
LIBMANDOC_LNS	 = $(LIBMAN_LNS) \
		   $(LIBMDOC_LNS) \
		   $(LIBROFF_LNS) \
		   chars.ln \
		   mandoc.ln \
		   read.ln

COMPAT_OBJS	 = compat_getsubopt.o \
		   compat_strlcat.o \
		   compat_strlcpy.o
COMPAT_LNS	 = compat_getsubopt.ln \
		   compat_strlcat.ln \
		   compat_strlcpy.ln

arch.o arch.ln: arch.in
att.o att.ln: att.in
chars.o chars.ln: chars.in
lib.o lib.ln: lib.in
msec.o msec.ln: msec.in
roff.o roff.ln: predefs.in
st.o st.ln: st.in
vol.o vol.ln: vol.in

$(LIBMAN_OBJS) $(LIBMAN_LNS): libman.h
$(LIBMDOC_OBJS) $(LIBMDOC_LNS): libmdoc.h
$(LIBROFF_OBJS) $(LIBROFF_LNS): libroff.h
$(LIBMANDOC_OBJS) $(LIBMANDOC_LNS): mandoc.h mdoc.h man.h libmandoc.h config.h

$(COMPAT_OBJS) $(COMPAT_LNS): config.h

MANDOC_HTML_OBJS = eqn_html.o \
		   html.o \
		   man_html.o \
		   mdoc_html.o \
		   tbl_html.o
MANDOC_HTML_LNS	 = eqn_html.ln \
		   html.ln \
		   man_html.ln \
		   mdoc_html.ln \
		   tbl_html.ln

MANDOC_MAN_OBJS  = mdoc_man.o
MANDOC_MAN_LNS   = mdoc_man.ln

MANDOC_TERM_OBJS = eqn_term.o \
		   man_term.o \
		   mdoc_term.o \
		   term.o \
		   term_ascii.o \
		   term_ps.o \
		   tbl_term.o
MANDOC_TERM_LNS	 = eqn_term.ln \
		   man_term.ln \
		   mdoc_term.ln \
		   term.ln \
		   term_ascii.ln \
		   term_ps.ln \
		   tbl_term.ln

MANDOC_OBJS	 = $(MANDOC_HTML_OBJS) \
		   $(MANDOC_MAN_OBJS) \
		   $(MANDOC_TERM_OBJS) \
		   main.o \
		   out.o \
		   tree.o
MANDOC_LNS	 = $(MANDOC_HTML_LNS) \
		   $(MANDOC_MAN_LNS) \
		   $(MANDOC_TERM_LNS) \
		   main.ln \
		   out.ln \
		   tree.ln

$(MANDOC_HTML_OBJS) $(MANDOC_HTML_LNS): html.h
$(MANDOC_TERM_OBJS) $(MANDOC_TERM_LNS): term.h
$(MANDOC_OBJS) $(MANDOC_LNS): main.h mandoc.h mdoc.h man.h config.h out.h

MANDOCDB_OBJS	 = mandocdb.o manpath.o
MANDOCDB_LNS	 = mandocdb.ln manpath.ln

$(MANDOCDB_OBJS) $(MANDOCDB_LNS): mandocdb.h mandoc.h mdoc.h man.h config.h manpath.h

PRECONV_OBJS	 = preconv.o
PRECONV_LNS	 = preconv.ln

$(PRECONV_OBJS) $(PRECONV_LNS): config.h

APROPOS_OBJS	 = apropos.o apropos_db.o manpath.o
APROPOS_LNS	 = apropos.ln apropos_db.ln manpath.ln

$(APROPOS_OBJS) $(APROPOS_LNS): config.h mandoc.h apropos_db.h manpath.h mandocdb.h

CGI_OBJS	 = cgi.o apropos_db.o manpath.o
CGI_LNS	 	 = cgi.ln apropos_db.ln manpath.ln

$(CGI_OBJS) $(CGI_LNS): config.h mandoc.h apropos_db.h manpath.h mandocdb.h

MANUP_OBJS	 = manup.o manpath.o
MANUP_LNS 	 = manup.ln manpath.ln

$(MANUP_OBJS) $(MANUP_LNS): config.h mandoc.h manpath.h 

DEMANDOC_OBJS	 = demandoc.o
DEMANDOC_LNS	 = demandoc.ln

$(DEMANDOC_OBJS) $(DEMANDOC_LNS): config.h

INDEX_MANS	 = apropos.1.html \
		   apropos.1.xhtml \
		   apropos.1.ps \
		   apropos.1.pdf \
		   apropos.1.txt \
		   demandoc.1.html \
		   demandoc.1.xhtml \
		   demandoc.1.ps \
		   demandoc.1.pdf \
		   demandoc.1.txt \
		   mandoc.1.html \
		   mandoc.1.xhtml \
		   mandoc.1.ps \
		   mandoc.1.pdf \
		   mandoc.1.txt \
		   mandoc.3.html \
		   mandoc.3.xhtml \
		   mandoc.3.ps \
		   mandoc.3.pdf \
		   mandoc.3.txt \
		   eqn.7.html \
		   eqn.7.xhtml \
		   eqn.7.ps \
		   eqn.7.pdf \
		   eqn.7.txt \
		   man.7.html \
		   man.7.xhtml \
		   man.7.ps \
		   man.7.pdf \
		   man.7.txt \
		   mandoc_char.7.html \
		   mandoc_char.7.xhtml \
		   mandoc_char.7.ps \
		   mandoc_char.7.pdf \
		   mandoc_char.7.txt \
		   mdoc.7.html \
		   mdoc.7.xhtml \
		   mdoc.7.ps \
		   mdoc.7.pdf \
		   mdoc.7.txt \
		   preconv.1.html \
		   preconv.1.xhtml \
		   preconv.1.ps \
		   preconv.1.pdf \
		   preconv.1.txt \
		   roff.7.html \
		   roff.7.xhtml \
		   roff.7.ps \
		   roff.7.pdf \
		   roff.7.txt \
		   tbl.7.html \
		   tbl.7.xhtml \
		   tbl.7.ps \
		   tbl.7.pdf \
		   tbl.7.txt \
		   mandocdb.8.html \
		   mandocdb.8.xhtml \
		   mandocdb.8.ps \
		   mandocdb.8.pdf \
		   mandocdb.8.txt

$(INDEX_MANS): mandoc

INDEX_OBJS	 = $(INDEX_MANS) \
		   man.h.html \
		   mandoc.h.html \
		   mdoc.h.html \
		   mdocml.tar.gz \
		   mdocml.md5

www: index.html

lint: llib-lmandoc.ln llib-lpreconv.ln llib-ldemandoc.ln $(DBLN)

clean:
	rm -f libmandoc.a $(LIBMANDOC_OBJS)
	rm -f llib-llibmandoc.ln $(LIBMANDOC_LNS)
	rm -f mandocdb $(MANDOCDB_OBJS)
	rm -f llib-lmandocdb.ln $(MANDOCDB_LNS)
	rm -f preconv $(PRECONV_OBJS)
	rm -f llib-lpreconv.ln $(PRECONV_LNS)
	rm -f apropos $(APROPOS_OBJS)
	rm -f llib-lapropos.ln $(APROPOS_LNS)
	rm -f man.cgi $(CGI_OBJS)
	rm -f llib-lman.cgi.ln $(CGI_LNS)
	rm -f manup $(MANUP_OBJS)
	rm -f llib-lmanup.ln $(MANUP_LNS)
	rm -f demandoc $(DEMANDOC_OBJS)
	rm -f llib-ldemandoc.ln $(DEMANDOC_LNS)
	rm -f mandoc $(MANDOC_OBJS)
	rm -f llib-lmandoc.ln $(MANDOC_LNS)
	rm -f config.h config.log $(COMPAT_OBJS) $(COMPAT_LNS)
	rm -f mdocml.tar.gz mdocml-win32.zip mdocml-win64.zip mdocml-macosx.zip
	rm -f index.html $(INDEX_OBJS)
	rm -rf test-strlcpy.DSYM
	rm -rf test-strlcat.DSYM 
	rm -rf test-strptime.DSYM 
	rm -rf test-mmap.DSYM 
	rm -rf test-getsubopt.DSYM

install: all
	mkdir -p $(DESTDIR)$(BINDIR)
	mkdir -p $(DESTDIR)$(EXAMPLEDIR)
	mkdir -p $(DESTDIR)$(LIBDIR)
	mkdir -p $(DESTDIR)$(INCLUDEDIR)
	mkdir -p $(DESTDIR)$(MANDIR)/man1
	mkdir -p $(DESTDIR)$(MANDIR)/man3
	mkdir -p $(DESTDIR)$(MANDIR)/man7
	mkdir -p $(DESTDIR)$(MANDIR)/man8
	$(INSTALL_PROGRAM) mandoc preconv demandoc $(DESTDIR)$(BINDIR)
	$(INSTALL_LIB) libmandoc.a $(DESTDIR)$(LIBDIR)
	$(INSTALL_LIB) man.h mdoc.h mandoc.h $(DESTDIR)$(INCLUDEDIR)
	$(INSTALL_MAN) mandoc.1 preconv.1 demandoc.1 $(DESTDIR)$(MANDIR)/man1
	$(INSTALL_MAN) mandoc.3 $(DESTDIR)$(MANDIR)/man3
	$(INSTALL_MAN) man.7 mdoc.7 roff.7 eqn.7 tbl.7 mandoc_char.7 $(DESTDIR)$(MANDIR)/man7
	$(INSTALL_DATA) example.style.css $(DESTDIR)$(EXAMPLEDIR)

installwww: www
	mkdir -p $(PREFIX)/snapshots
	mkdir -p $(PREFIX)/binaries
	$(INSTALL_DATA) index.html external.png index.css $(PREFIX)
	$(INSTALL_DATA) $(INDEX_MANS) style.css $(PREFIX)
	$(INSTALL_DATA) mandoc.h.html man.h.html mdoc.h.html $(PREFIX)
	$(INSTALL_DATA) mdocml.tar.gz $(PREFIX)/snapshots
	$(INSTALL_DATA) mdocml.md5 $(PREFIX)/snapshots
	$(INSTALL_DATA) mdocml.tar.gz $(PREFIX)/snapshots/mdocml-$(VERSION).tar.gz
	$(INSTALL_DATA) mdocml.md5 $(PREFIX)/snapshots/mdocml-$(VERSION).md5

libmandoc.a: $(COMPAT_OBJS) $(LIBMANDOC_OBJS)
	$(AR) rs $@ $(COMPAT_OBJS) $(LIBMANDOC_OBJS)

llib-llibmandoc.ln: $(COMPAT_LNS) $(LIBMANDOC_LNS)
	$(LINT) $(LINTFLAGS) -Clibmandoc $(COMPAT_LNS) $(LIBMANDOC_LNS)

mandoc: $(MANDOC_OBJS) libmandoc.a
	$(CC) $(LDFLAGS) -o $@ $(MANDOC_OBJS) libmandoc.a

llib-lmandoc.ln: $(MANDOC_LNS) llib-llibmandoc.ln
	$(LINT) $(LINTFLAGS) -Cmandoc $(MANDOC_LNS) llib-llibmandoc.ln

mandocdb: $(MANDOCDB_OBJS) libmandoc.a
	$(CC) $(LDFLAGS) -o $@ $(MANDOCDB_OBJS) libmandoc.a $(DBLIB)

llib-lmandocdb.ln: $(MANDOCDB_LNS) llib-llibmandoc.ln
	$(LINT) $(LINTFLAGS) -Cmandocdb $(MANDOCDB_LNS) llib-llibmandoc.ln

preconv: $(PRECONV_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(PRECONV_OBJS)

llib-lpreconv.ln: $(PRECONV_LNS) llib-llibmandoc.ln
	$(LINT) $(LINTFLAGS) -Cpreconv $(PRECONV_LNS) llib-llibmandoc.ln

apropos: $(APROPOS_OBJS) libmandoc.a
	$(CC) $(LDFLAGS) -o $@ $(APROPOS_OBJS) libmandoc.a $(DBLIB)

llib-lapropos.ln: $(APROPOS_LNS) llib-llibmandoc.ln
	$(LINT) $(LINTFLAGS) -Capropos $(APROPOS_LNS) llib-llibmandoc.ln

manup: $(MANUP_OBJS) libmandoc.a
	$(CC) $(LDFLAGS) -o $@ $(MANUP_OBJS) libmandoc.a $(DBLIB)

llib-lmanup.ln: $(MANUP_LNS) llib-llibmandoc.ln
	$(LINT) $(LINTFLAGS) -Cmanup $(MANUP_LNS) llib-llibmandoc.ln

man.cgi: $(CGI_OBJS) libmandoc.a
	$(CC) $(LDFLAGS) -static -o $@ $(CGI_OBJS) libmandoc.a $(DBLIB)

llib-lman.cgi.ln: $(CGI_LNS) llib-llibmandoc.ln
	$(LINT) $(LINTFLAGS) -Cman.cgi $(CGI_LNS) llib-llibmandoc.ln

demandoc: $(DEMANDOC_OBJS) libmandoc.a
	$(CC) $(LDFLAGS) -o $@ $(DEMANDOC_OBJS) libmandoc.a

llib-ldemandoc.ln: $(DEMANDOC_LNS) llib-llibmandoc.ln
	$(LINT) $(LINTFLAGS) -Cdemandoc $(DEMANDOC_LNS) llib-llibmandoc.ln

mdocml.md5: mdocml.tar.gz
	md5 mdocml.tar.gz >$@

mdocml.tar.gz: $(SRCS)
	mkdir -p .dist/mdocml-$(VERSION)/
	$(INSTALL_SOURCE) $(SRCS) .dist/mdocml-$(VERSION)
	( cd .dist/ && tar zcf ../$@ ./ )
	rm -rf .dist/

mdocml-win32.zip: $(SRCS)
	mkdir -p .win32/mdocml-$(VERSION)/
	$(INSTALL_SOURCE) $(SRCS) .win32
	cp .win32/Makefile .win32/Makefile.old
	egrep -v -e DUSE_WCHAR -e ^DBBIN .win32/Makefile.old >.win32/Makefile
	( cd .win32; \
		CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-DOSNAME=\"Windows\"' make; \
		make install PREFIX=mdocml-$(VERSION) ; \
		zip -r ../$@ mdocml-$(VERSION) )
	rm -rf .win32

mdocml-win64.zip: $(SRCS)
	mkdir -p .win64/mdocml-$(VERSION)/
	$(INSTALL_SOURCE) $(SRCS) .win64
	cp .win64/Makefile .win64/Makefile.old
	egrep -v -e DUSE_WCHAR -e ^DBBIN .win64/Makefile.old >.win64/Makefile
	( cd .win64; \
		CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar CFLAGS='-DOSNAME=\"Windows\"' make; \
		make install PREFIX=mdocml-$(VERSION) ; \
		zip -r ../$@ mdocml-$(VERSION) )
	rm -rf .win64

mdocml-macosx.zip: $(SRCS)
	mkdir -p .macosx/mdocml-$(VERSION)/
	$(INSTALL_SOURCE) $(SRCS) .macosx
	( cd .macosx; \
		CFLAGS="-arch i386 -arch x86_64 -arch ppc" LDFLAGS="-arch i386 -arch x86_64 -arch ppc" make; \
		make install PREFIX=mdocml-$(VERSION) ; \
		zip -r ../$@ mdocml-$(VERSION) )
	rm -rf .macosx

index.html: $(INDEX_OBJS)

config.h: config.h.pre config.h.post
	rm -f config.log
	( cat config.h.pre; \
	  echo; \
	  if $(CC) $(CFLAGS) -Werror -o test-strptime test-strptime.c >> config.log 2>&1; then \
		echo '#define HAVE_STRPTIME'; \
		rm test-strptime; \
	  fi; \
	  if $(CC) $(CFLAGS) -Werror -o test-getsubopt test-getsubopt.c >> config.log 2>&1; then \
		echo '#define HAVE_GETSUBOPT'; \
		rm test-getsubopt; \
	  fi; \
	  if $(CC) $(CFLAGS) -Werror -o test-strlcat test-strlcat.c >> config.log 2>&1; then \
		echo '#define HAVE_STRLCAT'; \
		rm test-strlcat; \
	  fi; \
	  if $(CC) $(CFLAGS) -Werror -o test-mmap test-mmap.c >> config.log 2>&1; then \
		echo '#define HAVE_MMAP'; \
		rm test-mmap; \
	  fi; \
	  if $(CC) $(CFLAGS) -Werror -o test-strlcpy test-strlcpy.c >> config.log 2>&1; then \
		echo '#define HAVE_STRLCPY'; \
		rm test-strlcpy; \
	  fi; \
	  echo; \
	  cat config.h.post \
	) > $@

.h.h.html:
	highlight -I $< >$@

.1.1.txt .3.3.txt .7.7.txt .8.8.txt:
	./mandoc -Tascii -Wall,stop $< | col -b >$@

.1.1.html .3.3.html .7.7.html .8.8.html:
	./mandoc -Thtml -Wall,stop -Ostyle=style.css,man=%N.%S.html,includes=%I.html $< >$@

.1.1.ps .3.3.ps .7.7.ps .8.8.ps:
	./mandoc -Tps -Wall,stop $< >$@

.1.1.xhtml .3.3.xhtml .7.7.xhtml .8.8.xhtml:
	./mandoc -Txhtml -Wall,stop -Ostyle=style.css,man=%N.%S.xhtml,includes=%I.html $< >$@

.1.1.pdf .3.3.pdf .7.7.pdf .8.8.pdf:
	./mandoc -Tpdf -Wall,stop $< >$@

.sgml.html:
	validate --warn $<
	sed -e "s!@VERSION@!$(VERSION)!" -e "s!@VDATE@!$(VDATE)!" $< >$@