From fa8d539e0fbce952266a246364e5e9cd537b29fd Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 27 Jun 2005 12:09:52 +0000 Subject: r7943: Add 'make manpages', fix 'make installman' and 'make uninstallman'. Not part of the "all" make target yet, as it requires xsltproc (This used to be commit fd3f4636438cf1d9c0dd802064033271b9e4d935) --- source4/build/m4/check_doc.m4 | 1 + source4/build/m4/env.m4 | 1 + source4/build/smb_build/config_mk.pm | 3 +- source4/build/smb_build/makefile.pm | 73 +++++++++++++++++++++++++++++------- 4 files changed, 64 insertions(+), 14 deletions(-) create mode 100644 source4/build/m4/check_doc.m4 (limited to 'source4/build') diff --git a/source4/build/m4/check_doc.m4 b/source4/build/m4/check_doc.m4 new file mode 100644 index 0000000000..2aaf9596de --- /dev/null +++ b/source4/build/m4/check_doc.m4 @@ -0,0 +1 @@ +AC_PATH_PROG(XSLTPROC, xsltproc) diff --git a/source4/build/m4/env.m4 b/source4/build/m4/env.m4 index c272247661..7d43f920dd 100644 --- a/source4/build/m4/env.m4 +++ b/source4/build/m4/env.m4 @@ -21,3 +21,4 @@ sinclude(build/m4/check_cc.m4) sinclude(build/m4/check_ld.m4) sinclude(build/m4/check_shld.m4) sinclude(build/m4/check_types.m4) +sinclude(build/m4/check_doc.m4) diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index 12d62437e3..2194e3d596 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -25,7 +25,8 @@ my %attribute_types = ( "RELEASE_VERSION" => "string", "ENABLE" => "bool", "TARGET_CFLAGS" => "list", - "CMD" => "string" + "CMD" => "string", + "MANPAGE" => "string" ); ########################################################### diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index d38572e951..fc4c7fd2b9 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -61,17 +61,15 @@ LOCKDIR = @lockdir@ # the directory where pid files go PIDDIR = @piddir@ -PASSWD_FLAGS = -DSMB_PASSWD_FILE=\"$(SMB_PASSWD_FILE)\" -DPRIVATE_DIR=\"$(PRIVATEDIR)\" -PATH_FLAGS1 = -DCONFIGFILE=\"$(CONFIGFILE)\" -DSBINDIR=\"$(SBINDIR)\" -PATH_FLAGS2 = $(PATH_FLAGS1) -DBINDIR=\"$(BINDIR)\" -PATH_FLAGS3 = $(PATH_FLAGS2) -DLMHOSTSFILE=\"$(LMHOSTSFILE)\" -PATH_FLAGS4 = $(PATH_FLAGS3) -DLOCKDIR=\"$(LOCKDIR)\" -DPIDDIR=\"$(PIDDIR)\" -PATH_FLAGS5 = $(PATH_FLAGS4) -DLIBDIR=\"$(LIBDIR)\" \ - -DLOGFILEBASE=\"$(LOGFILEBASE)\" -DSHLIBEXT=\"@SHLIBEXT@\" -PATH_FLAGS6 = $(PATH_FLAGS5) -DCONFIGDIR=\"$(CONFIGDIR)\" -DNCALRPCDIR=\"$(NCALRPCDIR)\" -PATH_FLAGS7 = $(PATH_FLAGS6) -DSWATDIR=\"$(SWATDIR)\" -PATH_FLAGS = $(PATH_FLAGS7) $(PASSWD_FLAGS) - +MANDIR = @mandir@ + +PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" -DSBINDIR=\"$(SBINDIR)\" \ + -DBINDIR=\"$(BINDIR)\" -DLMHOSTSFILE=\"$(LMHOSTSFILE)\" \ + -DLOCKDIR=\"$(LOCKDIR)\" -DPIDDIR=\"$(PIDDIR)\" -DLIBDIR=\"$(LIBDIR)\" \ + -DLOGFILEBASE=\"$(LOGFILEBASE)\" -DSHLIBEXT=\"@SHLIBEXT@\" \ + -DCONFIGDIR=\"$(CONFIGDIR)\" -DNCALRPCDIR=\"$(NCALRPCDIR)\" \ + -DSWATDIR=\"$(SWATDIR)\" -DSMB_PASSWD_FILE=\"$(SMB_PASSWD_FILE)\" \ + -DPRIVATE_DIR=\"$(PRIVATEDIR)\" __EOD__ return $output; @@ -94,6 +92,8 @@ STLD_FLAGS=-rc SHLD=@CC@ SHLD_FLAGS=@LDSHFLAGS@ @LDFLAGS@ -Lbin +XSLTPROC=@XSLTPROC@ + __EOD__ } @@ -117,7 +117,7 @@ sub _prepare_SUFFIXES($) $output = << '__EOD__'; .SUFFIXES: -.SUFFIXES: .c .o .h .h.gch .a .so +.SUFFIXES: .c .o .h .h.gch .a .so .1 .1.xml .3 .3.xml .5 .5.xml .7 .7.xml __EOD__ @@ -156,6 +156,38 @@ test-noswrap: all __EOD__ } +sub _prepare_man_rule($) +{ + my $suffix = shift; + + return << "__EOD__"; +.$suffix.xml.$suffix: + \$(XSLTPROC) -o \$@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl \$< + +__EOD__ +} + +sub _prepare_manpages($) +{ + my $ctx = shift; + + my @mp_list = (); + + foreach (values %$ctx) { + if (defined($_->{MANPAGE}) and $_->{MANPAGE} ne "") { + push (@mp_list, $_->{MANPAGE}); + } + } + + my $mp = join(' ', @mp_list); + return << "__EOD__"; +MANPAGES = $mp + +manpages: \$(MANPAGES) + +__EOD__ +} + sub _prepare_dummy_MAKEDIR() { my $ctx = shift; @@ -534,6 +566,7 @@ realdistclean: distclean removebackup -rm -f include/config.h.in -rm -f include/version.h -rm -f configure + -rm -f $(MANPAGES) __EOD__ return $output; @@ -586,9 +619,10 @@ showlayout: @echo " libdir: $(LIBDIR)" @echo " vardir: $(VARDIR)" @echo " privatedir: $(PRIVATEDIR)" - @echo " piddir: $(PIDDIR)" + @echo " piddir: $(PIDDIR)" @echo " lockdir: $(LOCKDIR)" @echo " swatdir: $(SWATDIR)" + @echo " mandir: $(MANDIR)" showflags: @echo "Samba will be compiled with flags:" @@ -654,6 +688,9 @@ installdat: installdirs installswat: installdirs @$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR)$(SWATDIR) $(srcdir) +installman: installdirs + @$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)$(MANDIR) $(MANPAGES) + uninstall: uninstallbin uninstalltorture uninstallldb uninstallreg uninstallbin: @@ -668,6 +705,9 @@ uninstallldb: uninstallreg: @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(DESTDIR)$(REG_PROGS) +uninstallman: + @$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)$(MANDIR) $(MANPAGES) + # Swig extensions swig: scripting/swig/_tdb.so scripting/swig/_dcerpc.so @@ -769,6 +809,13 @@ sub _prepare_makefile_in($$) $output .= _prepare_std_CC_rule("c","o",'@PICFLAG@',"Compiling","Rule for std objectfiles"); $output .= _prepare_std_CC_rule("h","h.gch",'@PICFLAG@',"Precompiling","Rule for precompiled headerfiles"); + $output .= _prepare_man_rule("1"); + $output .= _prepare_man_rule("3"); + $output .= _prepare_man_rule("5"); + $output .= _prepare_man_rule("7"); + + $output .= _prepare_manpages($CTX); + $output .= _prepare_target_settings($CTX); $output .= _prepare_rule_lists($CTX); -- cgit