diff --git a/Makefile.in b/Makefile.in index 0825a85b9a..a22b764e46 100644 --- a/Makefile.in +++ b/Makefile.in @@ -812,7 +812,9 @@ distclean: clean src/wsadmin.src/Makefile \ src/xstat/Makefile \ src/helper-splint.sh - if test -d doc/man-pages ; then rm -f doc/man-pages/Makefile ; fi + if test -d doc/man-pages ; then \ + rm -f doc/man-pages/Makefile doc/man-pages/install-man ; \ + fi pristine: distclean /bin/rm -f src/config/afsconfig.h.in configure configure-libafs aclocal.m4 diff --git a/configure.in b/configure.in index f3eab26e52..ad9bd93d6c 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ AC_PROG_CC OPENAFS_CONFIGURE_COMMON if test -d 'doc/man-pages' ; then - MAN_MAKEFILE=doc/man-pages/Makefile + MAN_MAKEFILE="doc/man-pages/Makefile doc/man-pages/install-man" else MAN_MAKEFILE= fi diff --git a/doc/man-pages/.cvsignore b/doc/man-pages/.cvsignore index 70c1421d8e..549f645b84 100644 --- a/doc/man-pages/.cvsignore +++ b/doc/man-pages/.cvsignore @@ -1,4 +1,5 @@ Makefile +install-man man1 man5 man8 diff --git a/doc/man-pages/Makefile.in b/doc/man-pages/Makefile.in index a4d6b78e82..d2ce5bb806 100644 --- a/doc/man-pages/Makefile.in +++ b/doc/man-pages/Makefile.in @@ -9,26 +9,28 @@ maintclean: rm -rf man1 man5 man8 dest: + chmod +x install-man mkdir -p $(DEST)/man/man1 $(DEST)/man/man5 $(DEST)/man/man8 set -e; cd man1 && for M in *.1 ; do \ - $(INSTALL) -c -m 0644 $$M $(DEST)/man/man1/$$M ; \ + ../install-man $$M $(DEST)/man/man1/$$M ; \ done set -e; cd man5 && for M in *.5 ; do \ - $(INSTALL) -c -m 0644 $$M $(DEST)/man/man5/$$M ; \ + ../install-man $$M $(DEST)/man/man5/$$M ; \ done set -e; cd man8 && for M in *.8 ; do \ - $(INSTALL) -c -m 0644 $$M $(DEST)/man/man8/$$M ; \ + ../install-man $$M $(DEST)/man/man8/$$M ; \ done install: $(MAN1) $(MAN8) + chmod +x install-man mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 \ $(DESTDIR)$(mandir)/man8 set -e; cd man1 && for M in *.1 ; do \ - $(INSTALL) -c -m 0644 $$M $(DESTDIR)$(mandir)/man1/$$M ; \ + ../install-man $$M $(DESTDIR)$(mandir)/man1/$$M ; \ done set -e; cd man5 && for M in *.5 ; do \ - $(INSTALL) -c -m 0644 $$M $(DESTDIR)$(mandir)/man5/$$M ; \ + ../install-man $$M $(DESTDIR)$(mandir)/man5/$$M ; \ done set -e; cd man8 && for M in *.8 ; do \ - $(INSTALL) -c -m 0644 $$M $(DESTDIR)$(mandir)/man8/$$M ; \ + ../install-man $$M $(DESTDIR)$(mandir)/man8/$$M ; \ done diff --git a/doc/man-pages/install-man.in b/doc/man-pages/install-man.in new file mode 100644 index 0000000000..cd4ab34224 --- /dev/null +++ b/doc/man-pages/install-man.in @@ -0,0 +1,50 @@ +#!/bin/sh +# +# Install a man page, but fixing up paths as we go. All of the man pages +# are written to use the Transarc paths, and this script fixes those paths to +# be correct for the chosen configure options as the man pages are installed. +# Takes the source man page file and the destination path as arguments. + +set -e + +manpage="$1" +dest="$2" + +install=@TOP_OBJDIR@/src/pinstall/pinstall + +# We have to include all of the variables here since several of them refer to +# each other and this is the only way we get them all expanded. +prefix=@prefix@ +exec_prefix=@exec_prefix@ +bindir=@bindir@ +includedir=@includedir@ +libdir=@libdir@ +libexecdir=@libexecdir@ +localstatedir=@localstatedir@ +mandir=@mandir@ +sbindir=@sbindir@ +sysconfdir=@sysconfdir@ +afsbackupdir=@afsbackupdir@ +afsbosconfigdir=@afsbosconfigdir@ +afsconfdir=@afsconfdir@ +afsdbdir=@afsdbdir@ +afslocaldir=@afslocaldir@ +afslogsdir=@afslogsdir@ +afssrvbindir=@afssrvbindir@ +afskerneldir=@afskerneldir@ +afssrvlibexecdir=@afssrvlibexecdir@ +afssrvsbindir=@afssrvsbindir@ +viceetcdir=@viceetcdir@ + +# Substitute the paths into a local temporary file and then install it with +# $install. +sed -e "s%/usr/afs/local/BosConfig%${afsbosconfigdir}/BosConfig%g" \ + -e "s%/usr/afs/etc%${afsconfdir}%g" \ + -e "s%/usr/afs/backup%${afsbackupdir}%g" \ + -e "s%/usr/afs/bin%${afssrvlibexecdir}%g" \ + -e "s%/usr/afs/db%${afsdbdir}%g" \ + -e "s%/usr/afs/local%${afslocaldir}%g" \ + -e "s%/usr/afs/logs%${afslogsdir}%g" \ + -e "s%/usr/vice/etc%${viceetcdir}%g" "$manpage" > "$manpage".tmp +$install -c -f -m 0644 "$manpage".tmp "$dest" +rm "$manpage".tmp