summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-12-09 07:29:42 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-12-09 07:29:42 +0000
commit2ff1f9b803f8b8b207c1186c94b6eabd5f9c6865 (patch)
tree2a0bfa9ff020e83ee1bd3e2657b10ed841daaefc
parent34905ea59644683368f5f16813c8f450fcd69d86 (diff)
downloadmandoc-2ff1f9b803f8b8b207c1186c94b6eabd5f9c6865.tar.gz
Integrate the makewhatis binary into the mandoc binary
just like we do it on OpenBSD. Smaller and neater. While here, let ./configure set INSTALL_TARGETS.
-rw-r--r--Makefile29
-rwxr-xr-xconfigure7
-rw-r--r--main.c9
-rw-r--r--mandocdb.c2
4 files changed, 26 insertions, 21 deletions
diff --git a/Makefile b/Makefile
index b95d08b7..ad007512 100644
--- a/Makefile
+++ b/Makefile
@@ -207,18 +207,19 @@ MANDOC_TERM_OBJS = eqn_term.o \
term_ps.o \
tbl_term.o
-MANDOC_OBJS = $(MANDOC_HTML_OBJS) \
+BASE_OBJS = $(MANDOC_HTML_OBJS) \
$(MANDOC_MAN_OBJS) \
$(MANDOC_TERM_OBJS) \
main.o \
out.o \
tree.o
-MAN_OBJS = $(MANDOC_OBJS)
+MAIN_OBJS = $(BASE_OBJS)
-MAKEWHATIS_OBJS = mandocdb.o mansearch_const.o manpath.o
-
-APROPOS_OBJS = mansearch.o mansearch_const.o manpath.o
+DB_OBJS = mandocdb.o \
+ mansearch.o \
+ mansearch_const.o \
+ manpath.o
CGI_OBJS = $(MANDOC_HTML_OBJS) \
cgi.o \
@@ -265,16 +266,12 @@ WWW_OBJS = mdocml.tar.gz \
include Makefile.local
-INSTALL_TARGETS = $(BUILD_TARGETS:-build=-install)
-
# === DEPENDENCY HANDLING ==============================================
all: base-build $(BUILD_TARGETS) Makefile.local
base-build: mandoc demandoc
-db-build: makewhatis
-
cgi-build: man.cgi
install: base-install $(INSTALL_TARGETS)
@@ -295,8 +292,7 @@ distclean: clean
clean:
rm -f libmandoc.a $(LIBMANDOC_OBJS) $(COMPAT_OBJS)
- rm -f mandoc $(MANDOC_OBJS) $(APROPOS_OBJS)
- rm -f makewhatis $(MAKEWHATIS_OBJS)
+ rm -f mandoc $(BASE_OBJS) $(DB_OBJS)
rm -f man.cgi $(CGI_OBJS)
rm -f manpage $(MANPAGE_OBJS)
rm -f demandoc $(DEMANDOC_OBJS)
@@ -322,7 +318,7 @@ base-install: base-build
$(DESTDIR)$(MANDIR)/man7
$(INSTALL_DATA) example.style.css $(DESTDIR)$(EXAMPLEDIR)
-db-install: db-build
+db-install: base-build
mkdir -p $(DESTDIR)$(BINDIR)
mkdir -p $(DESTDIR)$(SBINDIR)
mkdir -p $(DESTDIR)$(MANDIR)/man1
@@ -332,7 +328,7 @@ db-install: db-build
ln -f $(DESTDIR)$(BINDIR)/mandoc $(DESTDIR)$(BINDIR)/apropos
ln -f $(DESTDIR)$(BINDIR)/mandoc $(DESTDIR)$(BINDIR)/man
ln -f $(DESTDIR)$(BINDIR)/mandoc $(DESTDIR)$(BINDIR)/whatis
- $(INSTALL_PROGRAM) makewhatis $(DESTDIR)$(SBINDIR)
+ ln -f $(DESTDIR)$(BINDIR)/mandoc $(DESTDIR)$(SBINDIR)/makewhatis
$(INSTALL_MAN) apropos.1 man.1 $(DESTDIR)$(MANDIR)/man1
ln -f $(DESTDIR)$(MANDIR)/man1/apropos.1 \
$(DESTDIR)$(MANDIR)/man1/whatis.1
@@ -358,11 +354,8 @@ Makefile.local config.h: configure ${TESTSRCS}
libmandoc.a: $(COMPAT_OBJS) $(LIBMANDOC_OBJS)
$(AR) rs $@ $(COMPAT_OBJS) $(LIBMANDOC_OBJS)
-mandoc: $(MAN_OBJS) libmandoc.a
- $(CC) $(LDFLAGS) -o $@ $(MAN_OBJS) libmandoc.a $(DBLIB)
-
-makewhatis: $(MAKEWHATIS_OBJS) libmandoc.a
- $(CC) $(LDFLAGS) -o $@ $(MAKEWHATIS_OBJS) libmandoc.a $(DBLIB)
+mandoc: $(MAIN_OBJS) libmandoc.a
+ $(CC) $(LDFLAGS) -o $@ $(MAIN_OBJS) libmandoc.a $(DBLIB)
manpage: $(MANPAGE_OBJS) libmandoc.a
$(CC) $(LDFLAGS) -o $@ $(MANPAGE_OBJS) libmandoc.a $(DBLIB)
diff --git a/configure b/configure
index 0fb841cf..7e83d724 100755
--- a/configure
+++ b/configure
@@ -358,12 +358,15 @@ if [ ${BUILD_DB} -eq 0 -a ${BUILD_CGI} -gt 0 ]; then
fi
BUILD_TARGETS="base-build"
-[ ${BUILD_DB} -gt 0 ] && BUILD_TARGETS="${BUILD_TARGETS} db-build"
[ ${BUILD_CGI} -gt 0 ] && BUILD_TARGETS="${BUILD_TARGETS} cgi-build"
+INSTALL_TARGETS="base-install"
+[ ${BUILD_DB} -gt 0 ] && INSTALL_TARGETS="${INSTALL_TARGETS} db-install"
+[ ${BUILD_CGI} -gt 0 ] && INSTALL_TARGETS="${INSTALL_TARGETS} cgi-install"
cat << __HEREDOC__
VERSION = ${VERSION}
BUILD_TARGETS = ${BUILD_TARGETS}
+INSTALL_TARGETS = ${INSTALL_TARGETS}
CFLAGS = ${CFLAGS}
DBLIB = ${DBLIB}
STATIC = ${STATIC}
@@ -385,7 +388,7 @@ INSTALL_DATA = ${INSTALL_DATA}
__HEREDOC__
[ ${BUILD_DB} -gt 0 ] && \
- echo "MAN_OBJS = \$(MANDOC_OBJS) \$(APROPOS_OBJS)"
+ echo "MAIN_OBJS = \$(BASE_OBJS) \$(DB_OBJS)"
echo "Makefile.local: written" 1>&2
echo "Makefile.local: written" 1>&3
diff --git a/main.c b/main.c
index 34a363b5..1cc1c70c 100644
--- a/main.c
+++ b/main.c
@@ -83,6 +83,9 @@ struct curparse {
};
static int koptions(int *, char *);
+#if HAVE_SQLITE3
+int mandocdb(int, char**);
+#endif
static int moptions(int *, char *);
static void mmsg(enum mandocerr, enum mandoclevel,
const char *, int, int, const char *);
@@ -130,6 +133,12 @@ main(int argc, char *argv[])
else
++progname;
+#if HAVE_SQLITE3
+ if (0 == strncmp(progname, "mandocdb", 8) ||
+ 0 == strncmp(progname, "makewhatis", 10))
+ return(mandocdb(argc, argv));
+#endif
+
/* Search options. */
memset(&paths, 0, sizeof(struct manpaths));
diff --git a/mandocdb.c b/mandocdb.c
index c5289167..0cb487b1 100644
--- a/mandocdb.c
+++ b/mandocdb.c
@@ -336,7 +336,7 @@ static const struct mdoc_handler mdocs[MDOC_MAX] = {
int
-main(int argc, char *argv[])
+mandocdb(int argc, char *argv[])
{
int ch, i;
size_t j, sz;