• Peter Eisentraut's avatar
    Add distprep target to take some of the job of the release_prep script. · 32163099
    Peter Eisentraut authored
    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.
    32163099
GNUmakefile.in 3.36 KB
#
# 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