r17729: remove the dependence on an internet connection for building
authorAndrew Tridgell <tridge@samba.org>
Wed, 23 Aug 2006 00:42:33 +0000 (00:42 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:16:32 +0000 (14:16 -0500)
standalone ldb by only running xsltproc if we can find a local copy of
the required stylesheets
(This used to be commit 16be09e0d6bd2c9c21f9cf0291dabf661a9a3797)

source4/lib/ldb/Makefile.in
source4/lib/ldb/docs/builddocs.sh [new file with mode: 0755]
source4/lib/ldb/docs/installdocs.sh [new file with mode: 0755]

index d19037c8974e9cfa1c67c7f65c9da8a04035a212..293c260c6a861138cbc9ca1e5ab0ea7fe902b77c 100644 (file)
@@ -57,13 +57,11 @@ BINS = bin/ldbadd bin/ldbsearch bin/ldbdel bin/ldbmodify bin/ldbedit bin/ldbrena
 
 LIBS = $(LDB_LIB)($(OBJS))
 
-MANPAGES = $(patsubst %.xml,%,$(wildcard $(srcdir)/man/*.xml))
-
 EXAMPLES = examples/ldbreader examples/ldifreader
 
 DIRS = lib bin common ldb_tdb ldb_ldap ldb_sqlite3 modules tools examples tdb talloc
 
-all: dirs $(OBJS) $(BINS) $(LIBS) $(EXAMPLES) $(MANPAGES) doxygen
+all: dirs $(OBJS) $(BINS) $(LIBS) $(EXAMPLES) manpages doxygen
 
 .c.o:
        @echo Compiling $*.c
@@ -107,14 +105,8 @@ examples/ldifreader: examples/ldifreader.o $(LIBS)
 
 .SUFFIXES: .1 .1.xml .3 .3.xml .xml .html
 
-%.3: %.3.xml
-       test -z "$(XSLTPROC)" || $(XSLTPROC) -o $@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-%.1: %.1.xml
-       test -z "$(XSLTPROC)" || $(XSLTPROC) -o $@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-%.html: %.xml
-       test -z "$(XSLTPROC)" || $(XSLTPROC) -o $@ http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl $<
+manpages:
+       $(srcdir)/docs/builddocs.sh "$(XSLTPROC)" "$(srcdir)"
 
 doxygen:
        test -z "$(DOXYGEN)" || (cd $(srcdir) && "$(DOXYGEN)")
@@ -122,7 +114,7 @@ doxygen:
 clean:
        rm -f */*.o *.gcov */*.gc?? tdbtest.ldb* \
        rm -f $(BINS) $(TDB_OBJ) $(TALLOC_OBJ) $(LDB_LIB)
-       rm -f $(MANPAGES)
+       rm -f man/*.1 man/*.3 man/*.html
        rm -f $(EXAMPLES)
        rm -rf apidocs/
 
@@ -135,9 +127,6 @@ distclean: clean
        rm -f ldb.pc
        rm -f Makefile
 
-etags:
-       etags */*.[ch]
-
 installcheck: install tests
        for t in $(TESTS); do echo STARTING $${t}; $(srcdir)/tests/$${t} || exit 1; done
 
@@ -145,13 +134,11 @@ test: installcheck
 
 install: all
        mkdir -p $(includedir) $(libdir)/pkgconfig $(libdir) $(bindir)
-       mkdir -p $(mandir) $(mandir)/man3 $(mandir)/man1
        cp $(srcdir)/include/ldb.h $(srcdir)/include/ldb_errors.h $(includedir)
        cp $(LDB_LIB) $(libdir)
        cp $(BINS) $(bindir)
        cp ldb.pc $(libdir)/pkgconfig
-       test -z "$(XSLTPROC)" || cp $(filter %.1, $(MANPAGES)) $(mandir)/man1
-       test -z "$(XSLTPROC)" || cp $(filter %.3, $(MANPAGES)) $(mandir)/man3
+       $(srcdir)/docs/installdocs.sh $(mandir)
 
 gcov:
        $(GCOV) -po ldb_sqlite3 $(srcdir)/ldb_sqlite3/*.c 2| tee ldb_sqlite3.report.gcov
@@ -161,5 +148,8 @@ gcov:
        $(GCOV) -po modules $(srcdir)/modules/*.c 2| tee modules.report.gcov
        $(GCOV) -po tools $(srcdir)/tools/*.c 2| tee tools.report.gcov
 
+etags:
+       etags `find $(srcdir) -name "*.[ch]"`
+
 ctags:
        ctags `find $(srcdir) -name "*.[ch]"`
diff --git a/source4/lib/ldb/docs/builddocs.sh b/source4/lib/ldb/docs/builddocs.sh
new file mode 100755 (executable)
index 0000000..2842a7f
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+# build ldb docs
+# tridge@samba.org August 2006
+
+XSLTPROC="$1"
+SRCDIR="$2"
+
+if ! test -x "$XSLTPROC"; then
+    echo "xsltproc not installed"
+    exit 0
+fi
+
+# list of places to look for the docbook style sheet
+manxsl=/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl
+
+# list of places to look for the html style sheet
+htmlxsl=/usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl
+
+manstyle=""
+htmlstyle=""
+
+for f in $manxsl; do
+    if [ -r "$f" ]; then
+       manstyle="$f"
+    fi
+done
+
+if [ -z "$manstyle" ]; then
+    echo "manpages/docbook.xsl not found on system"
+    exit 0
+fi
+
+for f in $htmlxsl; do
+    if [ -r "$f" ]; then
+       htmlstyle="$f"
+    fi
+done
+
+if [ -z "$htmlstyle" ]; then
+    echo "html/docbook.xsl not found on system"
+    exit 0
+fi
+
+mkdir -p man html
+
+for f in $SRCDIR/man/*.xml; do
+    base=`basename $f .xml`
+    out=man/"`basename $base`"
+    if [ ! -f "$out" ] || [ "$base" -nt "$out" ]; then
+       echo Processing manpage $f
+       $XSLTPROC -o "$out" "$manstyle" $f || exit 1
+    fi
+done
+
+for f in $SRCDIR/man/*.xml; do
+    base=`basename $f .xml`
+    out=man/"`basename $base`".html
+    if [ ! -f "$out" ] || [ "$base" -nt "$out" ]; then
+       echo Processing html $f
+       $XSLTPROC -o "$out" "$htmlstyle" $f || exit 1
+    fi
+done
diff --git a/source4/lib/ldb/docs/installdocs.sh b/source4/lib/ldb/docs/installdocs.sh
new file mode 100755 (executable)
index 0000000..6cc7b74
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+# install ldb docs
+# tridge@samba.org August 2006
+
+MANDIR="$1"
+
+MAN1="`/bin/ls man/*.1`"
+MAN3="`/bin/ls man/*.3`"
+
+if [ -z "$MAN1" ] && [ -z "$MAN3" ]; then
+    echo "No manpages have been built"
+    exit 0
+fi
+
+mkdir -p "$MANDIR/man1" "$MANDIR/man3" 
+cp $MAN1 "$MANDIR/man1/" || exit 1
+cp $MAN3 "$MANDIR/man3/" || exit 1