summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2020-03-13 15:32:28 +0000
committerIngo Schwarze <schwarze@openbsd.org>2020-03-13 15:32:28 +0000
commit42d5f8ddfdcc19abca690eba6b3c1bc230e43079 (patch)
tree9371c93d722eb8a93f7723cefc34599d43b0cffb /Makefile
parent65d9edcb60637a2dacc525de8389743979e31e41 (diff)
downloadmandoc-42d5f8ddfdcc19abca690eba6b3c1bc230e43079.tar.gz
Split tagging into a validation part including prioritization
in tag.{h,c} and {mdoc,man}_validate.c and into a formatting part including command line argument checking in term_tag.{h,c}, html.c, and {mdoc|man}_{term|html}.c. Immediate functional benefits include: * Improved prioritization of automatic tags for .Em and .Sy. * Avoiding bogus automatic tags when .Em, .Fn, or .Sy are explicitly tagged. * Explicit tagging of .Er and .Fl now works in HTML output. * Automatic tagging of .IP and .TP now works in HTML output. But mainly, this patch provides clean earth to build further improvements on. Technical changes: * Main program: Write a tag file for ASCII and UTF-8 output only. * All formatters: There is no more need to delay writing the tags. * mdoc(7)+man(7) formatters: No more need for elaborate syntax tree inspection. * HTML formatter: If available, use the "string" attribute as the tag. * HTML formatter: New function to write permalinks, to reduce code duplication. Style cleanup in the vicinity while here: * mdoc(7) terminal formatter: To set up bold font for children, defer to termp_bold_pre() rather than calling term_fontpush() manually. * mdoc(7) terminal formatter: Garbage collect some duplicate functions. * mdoc(7) HTML formatter: Unify <code> handling, delete redundant functions. * Where possible, use switch statements rather than if cascades. * Get rid of some more Yoda notation. The necessity for such changes was first discussed with kn@, but i didn't bother him with a request to review the resulting -673/+782 line patch.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile19
1 files changed, 12 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 38327fc1..b5c597b1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
# $Id$
#
+# Copyright (c) 2011, 2013-2020 Ingo Schwarze <schwarze@openbsd.org>
# Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
-# Copyright (c) 2011, 2013-2019 Ingo Schwarze <schwarze@openbsd.org>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -134,6 +134,7 @@ SRCS = arch.c \
term_ascii.c \
term_ps.c \
term_tab.c \
+ term_tag.c \
tree.c
DISTFILES = INSTALL \
@@ -209,6 +210,7 @@ DISTFILES = INSTALL \
tbl_int.h \
tbl_parse.h \
term.h \
+ term_tag.h \
$(SRCS) \
$(TESTSRCS)
@@ -245,7 +247,8 @@ LIBMANDOC_OBJS = $(LIBMAN_OBJS) \
mandoc_xr.o \
msec.o \
preconv.o \
- read.o
+ read.o \
+ tag.o
COMPAT_OBJS = compat_err.o \
compat_fts.o \
@@ -280,6 +283,7 @@ MANDOC_TERM_OBJS = eqn_term.o \
term_ascii.o \
term_ps.o \
term_tab.o \
+ term_tag.o \
tbl_term.o
DBM_OBJS = dbm.o \
@@ -302,7 +306,6 @@ MAIN_OBJS = $(MANDOC_HTML_OBJS) \
mdoc_man.o \
mdoc_markdown.o \
out.o \
- tag.o \
tree.o
CGI_OBJS = $(MANDOC_HTML_OBJS) \
@@ -313,8 +316,7 @@ CGI_OBJS = $(MANDOC_HTML_OBJS) \
MANDOCD_OBJS = $(MANDOC_HTML_OBJS) \
$(MANDOC_TERM_OBJS) \
mandocd.o \
- out.o \
- tag.o
+ out.o
DEMANDOC_OBJS = demandoc.o
@@ -393,7 +395,7 @@ distclean: clean
clean:
rm -f libmandoc.a $(LIBMANDOC_OBJS) $(COMPAT_OBJS)
- rm -f mandoc $(MAIN_OBJS)
+ rm -f mandoc man $(MAIN_OBJS)
rm -f man.cgi $(CGI_OBJS)
rm -f mandocd catman catman.o $(MANDOCD_OBJS)
rm -f demandoc $(DEMANDOC_OBJS)
@@ -501,7 +503,7 @@ uninstall:
rm -f $(DESTDIR)$(INCLUDEDIR)/tbl.h
[ ! -e $(DESTDIR)$(INCLUDEDIR) ] || rmdir $(DESTDIR)$(INCLUDEDIR)
-regress: all
+regress: all man
cd regress && ./regress.pl
regress-clean:
@@ -517,6 +519,9 @@ libmandoc.a: $(COMPAT_OBJS) $(LIBMANDOC_OBJS)
mandoc: $(MAIN_OBJS) libmandoc.a
$(CC) -o $@ $(LDFLAGS) $(MAIN_OBJS) libmandoc.a $(LDADD)
+man: mandoc
+ $(LN) mandoc man
+
man.cgi: $(CGI_OBJS) libmandoc.a
$(CC) $(STATIC) -o $@ $(LDFLAGS) $(CGI_OBJS) libmandoc.a $(LDADD)