From b36f59e93ed26d348ee629972e50b7fb2aac9269 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 14 Jun 2011 16:03:20 -0400 Subject: [PATCH] Fix assorted issues with build and install paths containing spaces. Apparently there is no buildfarm critter exercising this case after all, because it fails in several places. With this patch, build, install, check-world, and installcheck-world pass for me on OS X. --- config/mkinstalldirs | 8 +++++--- src/Makefile.shlib | 2 +- src/interfaces/ecpg/test/Makefile | 2 +- src/makefiles/pgxs.mk | 2 +- src/pl/plperl/GNUmakefile | 2 +- src/pl/plpython/Makefile | 2 +- src/pl/tcl/Makefile | 2 +- src/test/regress/GNUmakefile | 6 +++--- 8 files changed, 14 insertions(+), 12 deletions(-) diff --git a/config/mkinstalldirs b/config/mkinstalldirs index 070b418022b..d7b533bccef 100755 --- a/config/mkinstalldirs +++ b/config/mkinstalldirs @@ -105,13 +105,15 @@ esac for file do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + # pathcomp starts with leading slash if present, else empty + pathcomp=`echo "$file" | sed -ne 's|^\(.\).*$|\1|;s|[^/]||;p'` + # swap spaces and slashes, then split on spaces + set fnord `echo "$file" | tr ' /' '/ '` shift - pathcomp= for d do - pathcomp="$pathcomp$d" + pathcomp="$pathcomp"`echo "$d" | tr '/' ' '` case $pathcomp in -*) pathcomp=./$pathcomp ;; esac diff --git a/src/Makefile.shlib b/src/Makefile.shlib index b4f46da00ac..169b93457d0 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -135,7 +135,7 @@ ifeq ($(PORTNAME), darwin) ifneq ($(SO_MAJOR_VERSION), 0) version_link = -compatibility_version $(SO_MAJOR_VERSION) -current_version $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION) endif - LINK.shared = $(COMPILER) -dynamiclib -install_name $(libdir)/lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX) $(version_link) $(exported_symbols_list) -multiply_defined suppress + LINK.shared = $(COMPILER) -dynamiclib -install_name "$(libdir)/lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX)" $(version_link) $(exported_symbols_list) -multiply_defined suppress shlib = lib$(NAME).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)$(DLSUFFIX) shlib_major = lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX) else diff --git a/src/interfaces/ecpg/test/Makefile b/src/interfaces/ecpg/test/Makefile index cc5090f58c1..2bf44e929c3 100644 --- a/src/interfaces/ecpg/test/Makefile +++ b/src/interfaces/ecpg/test/Makefile @@ -90,4 +90,4 @@ checktcp: all ./pg_regress --dbname=regress1,connectdb --top-builddir=$(top_builddir) --temp-install=./tmp_check --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE) $(THREAD) --schedule=$(srcdir)/ecpg_schedule_tcp --create-role=connectuser,connectdb --host=localhost installcheck: all - ./pg_regress --psqldir=$(PSQLDIR) --dbname=regress1,connectdb --top-builddir=$(top_builddir) --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE) $(THREAD) --schedule=$(srcdir)/ecpg_schedule --create-role=connectuser,connectdb + ./pg_regress --psqldir="$(PSQLDIR)" --dbname=regress1,connectdb --top-builddir=$(top_builddir) --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE) $(THREAD) --schedule=$(srcdir)/ecpg_schedule --create-role=connectuser,connectdb diff --git a/src/makefiles/pgxs.mk b/src/makefiles/pgxs.mk index cf15d0d72a1..e52426685c8 100644 --- a/src/makefiles/pgxs.mk +++ b/src/makefiles/pgxs.mk @@ -257,7 +257,7 @@ endif # against installed postmaster installcheck: submake - $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir=$(PSQLDIR) $(REGRESS_OPTS) $(REGRESS) + $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir="$(PSQLDIR)" $(REGRESS_OPTS) $(REGRESS) # in-tree test doesn't work yet (no way to install my shared library) #check: all submake diff --git a/src/pl/plperl/GNUmakefile b/src/pl/plperl/GNUmakefile index 023fdde5bd6..ec9c6b4ff7d 100644 --- a/src/pl/plperl/GNUmakefile +++ b/src/pl/plperl/GNUmakefile @@ -71,7 +71,7 @@ installdirs: installdirs-lib uninstall: uninstall-lib installcheck: submake - $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir=$(PSQLDIR) $(REGRESS_OPTS) $(REGRESS) + $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir="$(PSQLDIR)" $(REGRESS_OPTS) $(REGRESS) .PHONY: submake submake: diff --git a/src/pl/plpython/Makefile b/src/pl/plpython/Makefile index 4f6e22b83ba..651e23b9d9c 100644 --- a/src/pl/plpython/Makefile +++ b/src/pl/plpython/Makefile @@ -73,7 +73,7 @@ installdirs: installdirs-lib uninstall: uninstall-lib installcheck: submake - $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir=$(PSQLDIR) $(REGRESS_OPTS) $(REGRESS) + $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir="$(PSQLDIR)" $(REGRESS_OPTS) $(REGRESS) .PHONY: submake submake: diff --git a/src/pl/tcl/Makefile b/src/pl/tcl/Makefile index 1b71c7c2319..5d82e5fb5fa 100644 --- a/src/pl/tcl/Makefile +++ b/src/pl/tcl/Makefile @@ -59,7 +59,7 @@ uninstall: uninstall-lib $(MAKE) -C modules $@ installcheck: submake - $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir=$(PSQLDIR) $(REGRESS_OPTS) $(REGRESS) + $(top_builddir)/src/test/regress/pg_regress --inputdir=$(srcdir) --psqldir="$(PSQLDIR)" $(REGRESS_OPTS) $(REGRESS) .PHONY: submake submake: diff --git a/src/test/regress/GNUmakefile b/src/test/regress/GNUmakefile index 8fe55ee3577..83b02cb4aa2 100644 --- a/src/test/regress/GNUmakefile +++ b/src/test/regress/GNUmakefile @@ -144,10 +144,10 @@ check: all $(pg_regress_call) --temp-install=./tmp_check --top-builddir=$(top_builddir) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) $(TEMP_CONF) installcheck: all - $(pg_regress_call) --psqldir=$(PSQLDIR) --schedule=$(srcdir)/serial_schedule + $(pg_regress_call) --psqldir="$(PSQLDIR)" --schedule=$(srcdir)/serial_schedule installcheck-parallel: all - $(pg_regress_call) --psqldir=$(PSQLDIR) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) + $(pg_regress_call) --psqldir="$(PSQLDIR)" --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) # old interfaces follow... @@ -157,7 +157,7 @@ runtest: installcheck runtest-parallel: installcheck-parallel bigtest: all - $(pg_regress_call) --psqldir=$(PSQLDIR) --schedule=$(srcdir)/serial_schedule numeric_big + $(pg_regress_call) --psqldir="$(PSQLDIR)" --schedule=$(srcdir)/serial_schedule numeric_big bigcheck: all $(pg_regress_call) --temp-install=./tmp_check --top-builddir=$(top_builddir) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) numeric_big