aboutsummaryrefslogtreecommitdiff
path: root/GNUmakefile.in
diff options
context:
space:
mode:
Diffstat (limited to 'GNUmakefile.in')
-rw-r--r--GNUmakefile.in32
1 files changed, 14 insertions, 18 deletions
diff --git a/GNUmakefile.in b/GNUmakefile.in
index 4d8fc794bbb..30553b2a950 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -87,29 +87,25 @@ update-unicode: | submake-generated-headers submake-libpgport
distdir = postgresql-$(VERSION)
dummy = =install=
-dist: $(distdir).tar.gz $(distdir).tar.bz2
- rm -rf $(distdir)
+GIT = git
-$(distdir).tar: distdir
- $(TAR) chf $@ $(distdir)
+dist: $(distdir).tar.gz $(distdir).tar.bz2
-.INTERMEDIATE: $(distdir).tar
+.PHONY: $(distdir).tar.gz $(distdir).tar.bz2
distdir-location:
@echo $(distdir)
-distdir:
- rm -rf $(distdir)* $(dummy)
- for x in `cd $(top_srcdir) && find . \( -name CVS -prune \) -o \( -name .git -prune \) -o -print`; do \
- file=`expr X$$x : 'X\./\(.*\)'`; \
- if test -d "$(top_srcdir)/$$file" ; then \
- mkdir "$(distdir)/$$file" && chmod 777 "$(distdir)/$$file"; \
- else \
- ln "$(top_srcdir)/$$file" "$(distdir)/$$file" >/dev/null 2>&1 \
- || cp "$(top_srcdir)/$$file" "$(distdir)/$$file"; \
- fi || exit; \
- done
- $(MAKE) -C $(distdir) distclean
+# Note: core.autocrlf=false is needed to avoid line-ending conversion
+# in case the environment has a different setting. Without this, a
+# tarball created on Windows might be different than on, and unusable
+# on, Unix machines.
+
+$(distdir).tar.gz:
+ $(GIT) -C $(srcdir) -c core.autocrlf=false archive --format tar.gz -9 --prefix $(distdir)/ HEAD -o $(abs_top_builddir)/$@
+
+$(distdir).tar.bz2:
+ $(GIT) -C $(srcdir) -c core.autocrlf=false -c tar.tar.bz2.command='$(BZIP2) -c' archive --format tar.bz2 --prefix $(distdir)/ HEAD -o $(abs_top_builddir)/$@
distcheck: dist
rm -rf $(dummy)
@@ -135,4 +131,4 @@ headerscheck: submake-generated-headers
cpluspluscheck: submake-generated-headers
$(top_srcdir)/src/tools/pginclude/headerscheck --cplusplus $(top_srcdir) $(abs_top_builddir)
-.PHONY: dist distdir distcheck docs install-docs world check-world install-world installcheck-world headerscheck cpluspluscheck
+.PHONY: dist distcheck docs install-docs world check-world install-world installcheck-world headerscheck cpluspluscheck