postgresql/GNUmakefile.in
Peter Eisentraut 32163099d7 Add distprep target to take some of the job of the release_prep script.
The latter updated accordingly. Also add `dist' and `distcheck' targets
to play with, but caveat packager.

Updated backend/bootstrap and backend/parser makefile to make them
marginally builddir aware and fix the usual set of things.

Add rule to automatically remake config.h dependent on config.h.in and
config.status. (Adopted from Autoconf manual and about every other
package.) On a good day we should now have a complete and accurate set
of dependencies throughout everything.
2000-07-19 16:30:27 +00:00

124 lines
3.4 KiB
Makefile

#
# PostgreSQL top level makefile
#
# $Header: /cvsroot/pgsql/GNUmakefile.in,v 1.9 2000/07/19 16:29:41 petere Exp $
#
subdir =
top_builddir = .
include src/Makefile.global
all:
$(MAKE) -C doc all
$(MAKE) -C src all
@echo "All of PostgreSQL successfully made. Ready to install."
install:
$(MAKE) -C doc install
$(MAKE) -C src install
@cat $(srcdir)/register.txt
installdirs uninstall clean distprep:
$(MAKE) -C doc $@
$(MAKE) -C src $@
# Important: distclean `doc' before `src', otherwise Makefile.global
# will be gone too soon.
distclean maintainer-clean:
-$(MAKE) -C doc $@
-$(MAKE) -C src $@
-rm -f config.cache config.log config.status GNUmakefile
GNUmakefile: GNUmakefile.in $(top_builddir)/config.status
CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
# These dependencies are risky because both the target and the sources
# are in CVS and CVS doesn't preserve timestamps, thus leading to
# unnecessary reruns of these rules.
AUTOCONF = autoconf
# Only use this rule if you actually said `make configure'.
ifeq ($(MAKECMDGOALS),configure)
$(top_srcdir)/configure: $(top_srcdir)/configure.in $(top_srcdir)/aclocal.m4
cd $(top_srcdir) && $(AUTOCONF)
endif
# This one we can leave unprotected because by default nothing depends
# on aclocal.m4. This rule is only invoked if you say `make
# aclocal.m4' or `make configure'.
$(top_srcdir)/aclocal.m4: $(wildcard $(top_srcdir)/config/*.m4)
cat $^ > $@
##########################################################################
distdir := postgresql-$(VERSION)
dummy := =install=
garbage := =* "#"* ."#"* *~* *.orig *.rej core postgresql-*
dist: $(distdir).tar.gz
ifeq ($(split-dist), yes)
dist: $(distdir).base.tar.gz $(distdir).docs.tar.gz $(distdir).support.tar.gz $(distdir).test.tar.gz
endif
dist:
-rm -rf $(distdir)
$(distdir).tar: distdir
$(TAR) chf $@ $(distdir)
$(distdir).base.tar: distdir
$(TAR) -c $(addprefix --exclude $(distdir)/, doc src/test src/interfaces src/bin) \
-f $@ $(distdir)
$(distdir).docs.tar: distdir
$(TAR) cf $@ $(distdir)/doc
$(distdir).support.tar: distdir
$(TAR) cf $@ $(distdir)/src/interfaces $(distdir)/src/bin
$(distdir).test.tar: distdir
$(TAR) cf $@ $(distdir)/src/test
%.gz: %
gzip -f --best $<
@text="$@ is ready for distribution." ; \
frame=`echo "$$text" | sed -e 's/./=/g'` ; \
echo "$$frame" ; echo "$$text" ; echo "$$frame"
distdir: distprep
-rm -rf $(distdir)* $(install)
for x in `cd $(top_srcdir) && find . -name CVS -prune -o -print`; do \
file=`expr $$x : '\./\(.*\)'`; \
if test -d "$(top_srcdir)/$$file" ; then \
mkdir "$(distdir)/$$file" && chmod 777 "$(distdir)/$$file"; \
else \
ln "$(top_srcdir)/$$file" "$(distdir)/$$file"; \
fi || exit; \
done
$(MAKE) -C $(distdir) distclean
distcheck: dist
-rm -rf $(dummy)
mkdir $(dummy)
gunzip -c $(distdir).tar.gz | $(TAR) xf -
install_prefix=`cd $(dummy) && pwd`; \
cd $(distdir) \
&& ./configure --prefix="$$install_prefix"
$(MAKE) -C $(distdir) -q distprep
$(MAKE) -C $(distdir)
$(MAKE) -C $(distdir) install
$(MAKE) -C $(distdir) uninstall
@echo "checking whether \`$(MAKE) uninstall' works"
test `find $(dummy) -not -type d | wc -l` -eq 0
$(MAKE) -C $(distdir) dist
# Room for improvement: Check here whether this distribution tarball
# is sufficiently similar to the original one.
-rm -rf $(distdir) $(dummy)
@echo "Distribution integrity checks out."
.PHONY: dist distdir distcheck