postgresql/doc/Makefile
Peter Eisentraut 335248c9b7 Support for DESTDIR make variable. This is used as in `make install
DESTDIR=/else/where' and prepends the value of DESTDIR to the full
installation paths (e.g., /else/where/usr/local/pgsql/bin). This allows
users to install the package into a location different from the one that
was configured and hard-coded into various scripts, e.g., for creating
binary packages.

DESTDIR is in many cases preferrable over `make install
prefix=/else/where' because

a) `prefix' affects the path that is hard-coded into the files, which can
lead to a `make install prefix=xxx' (as done by the regression test
driver) corrupting the files in the source tree with wrong paths.

b) it doesn't work at all if a directory was overridden to not depend on
`prefix', e.g., --sysconfdir=/etc.

(Updating the regression test driver to use DESTDIR is a separate
undertaking.)

See also autoconf@gnu.org, From: Akim Demaille <akim@epita.fr>, Date: 08
Sep 2000 12:48:59 +0200, Message-ID:
<mv4em2vb1lw.fsf@nostromo.lrde.epita.fr>, Subject: Re: HTML format
documentation.
2000-09-17 13:02:52 +00:00

59 lines
1.7 KiB
Makefile

#----------------------------------------------------------------------------
#
# PostgreSQL documentation installation makefile
#
# Copyright (c) 1994, Regents of the University of California
#
# $Header: /cvsroot/pgsql/doc/Makefile,v 1.19 2000/09/17 13:02:28 petere Exp $
#
#----------------------------------------------------------------------------
# This directory doesn't build anything, it is only responsible for
# installing the documenation. It is invoked automatically by the
# top-level makefile. The files to be installed are prepared specially
# and are placed in this directory during distribution bundling. In
# CVS-based trees these files don't exist, so we skip the installation
# in that case.
#
# To actually build the documenation, look into the src/ and src/sgml
# subdirectories.
subdir = doc
top_builddir = ..
include $(top_builddir)/src/Makefile.global
MODULES := admin postgres programmer tutorial user
found_MODULES := $(foreach module, $(MODULES), $(shell test -f $(srcdir)/$(module).tar.gz && echo $(module)))
ifneq ($(wildcard $(srcdir)/man.tar.gz),)
found_man := yes
endif
all:
install: all installdirs
ifneq ($(strip $(found_MODULES)),)
for module in $(found_MODULES); do \
gzip -d -c $${module}.tar.gz | ( cd $(DESTDIR)$(docdir)/$$module && $(TAR) xf - ) || \
exit; \
done
endif
ifdef found_man
gzip -d -c man.tar.gz | ( cd $(DESTDIR)$(mandir) && $(TAR) xf - )
endif
installdirs:
$(mkinstalldirs) $(DESTDIR)$(mandir) $(addprefix $(DESTDIR)$(docdir)/, . $(found_MODULES))
uninstall:
-rm -rf $(addprefix $(DESTDIR)$(docdir)/, $(MODULES))
ifdef found_man
-rm -f $(addprefix $(DESTDIR)$(mandir)/, $(shell gunzip -c man.tar.gz | tar tf -))
endif