aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/python.m41
-rwxr-xr-xconfigure41
-rw-r--r--configure.in38
-rw-r--r--src/Makefile.global.in3
-rw-r--r--src/pl/plperl/GNUmakefile21
-rw-r--r--src/pl/plpython/Makefile32
-rw-r--r--src/pl/tcl/Makefile26
7 files changed, 74 insertions, 88 deletions
diff --git a/config/python.m4 b/config/python.m4
index 7012c536d79..c8f784ed47d 100644
--- a/config/python.m4
+++ b/config/python.m4
@@ -93,7 +93,6 @@ AC_MSG_RESULT([${python_libspec} ${python_additional_libs}])
AC_SUBST(python_libdir)[]dnl
AC_SUBST(python_libspec)[]dnl
AC_SUBST(python_additional_libs)[]dnl
-AC_SUBST(python_enable_shared)[]dnl
# threaded python is not supported on OpenBSD
AC_MSG_CHECKING(whether Python is compiled with thread support)
diff --git a/configure b/configure
index 7c0bd0c696f..98f6516c9a8 100755
--- a/configure
+++ b/configure
@@ -641,7 +641,6 @@ TCL_SHLIB_LD_LIBS
TCL_SHARED_BUILD
TCL_LIB_SPEC
TCL_LIBS
-TCL_LIB_FILE
TCL_INCLUDE_SPEC
TCL_CONFIG_SH
TCLSH
@@ -662,7 +661,6 @@ HAVE_IPV6
LIBOBJS
UUID_LIBS
ZIC
-python_enable_shared
python_additional_libs
python_libspec
python_libdir
@@ -7384,6 +7382,12 @@ perl_useshrplib=`$PERL -MConfig -e 'print $Config{useshrplib}'`
test "$PORTNAME" = "win32" && perl_useshrplib=`echo $perl_useshrplib | sed 's,\\\\,/,g'`
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $perl_useshrplib" >&5
$as_echo "$perl_useshrplib" >&6; }
+ if test "$perl_useshrplib" != yes && test "$perl_useshrplib" != true; then
+ as_fn_error $? "cannot build PL/Perl because libperl is not a shared library
+You might have to rebuild your Perl installation. Refer to the
+documentation for details. Use --without-perl to disable building
+PL/Perl." "$LINENO" 5
+ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for flags to link embedded Perl" >&5
$as_echo_n "checking for flags to link embedded Perl... " >&6; }
@@ -7537,6 +7541,32 @@ $as_echo "no" >&6; }
fi
+
+ # We need libpython as a shared library. With Python >=2.5, we check
+ # the Py_ENABLE_SHARED setting. OS X does supply a .dylib even
+ # though Py_ENABLE_SHARED does not get set. On Debian, the setting
+ # is not correct before the jessie release
+ # (http://bugs.debian.org/695979). We also want to support older
+ # Python versions. So as a fallback we see if there is a file that
+ # is named like a shared library.
+
+ if test "$python_enable_shared" != 1; then
+ # We don't know the platform shared library extension here yet, so
+ # we try some candidates.
+ for dlsuffix in .so .dll .dylib .sl; do
+ if ls "$python_libdir"/libpython*${dlsuffix}* >/dev/null 2>&1; then
+ python_enable_shared=1
+ break
+ fi
+ done
+ fi
+
+ if test "$python_enable_shared" != 1; then
+ as_fn_error $? "cannot build PL/Python because libpython is not a shared library
+You might have to rebuild your Python installation. Refer to the
+documentation for details. Use --without-python to disable building
+PL/Python." "$LINENO" 5
+ fi
fi
if test "$cross_compiling" = yes && test -z "$with_system_tzdata"; then
@@ -14736,12 +14766,15 @@ fi
. "$TCL_CONFIG_SH"
eval TCL_INCLUDE_SPEC=\"$TCL_INCLUDE_SPEC\"
-eval TCL_LIB_FILE=\"$TCL_LIB_FILE\"
eval TCL_LIBS=\"$TCL_LIBS\"
eval TCL_LIB_SPEC=\"$TCL_LIB_SPEC\"
eval TCL_SHARED_BUILD=\"$TCL_SHARED_BUILD\"
- # now that we have TCL_INCLUDE_SPEC, we can check for <tcl.h>
+ if test "$TCL_SHARED_BUILD" != 1; then
+ as_fn_error $? "cannot build PL/Tcl because Tcl is not a shared library
+Use --without-tcl to disable building PL/Tcl." "$LINENO" 5
+ fi
+ # now that we have TCL_INCLUDE_SPEC, we can check for <tcl.h>
ac_save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$TCL_INCLUDE_SPEC $CPPFLAGS"
ac_fn_c_check_header_mongrel "$LINENO" "tcl.h" "ac_cv_header_tcl_h" "$ac_includes_default"
diff --git a/configure.in b/configure.in
index 1cd9e1eb46f..0080515c0c6 100644
--- a/configure.in
+++ b/configure.in
@@ -889,12 +889,44 @@ if test "$with_perl" = yes; then
AC_MSG_ERROR([Perl not found])
fi
PGAC_CHECK_PERL_CONFIGS([archlibexp,privlibexp,useshrplib])
+ if test "$perl_useshrplib" != yes && test "$perl_useshrplib" != true; then
+ AC_MSG_ERROR([cannot build PL/Perl because libperl is not a shared library
+You might have to rebuild your Perl installation. Refer to the
+documentation for details. Use --without-perl to disable building
+PL/Perl.])
+ fi
PGAC_CHECK_PERL_EMBED_LDFLAGS
fi
if test "$with_python" = yes; then
PGAC_PATH_PYTHON
PGAC_CHECK_PYTHON_EMBED_SETUP
+
+ # We need libpython as a shared library. With Python >=2.5, we check
+ # the Py_ENABLE_SHARED setting. OS X does supply a .dylib even
+ # though Py_ENABLE_SHARED does not get set. On Debian, the setting
+ # is not correct before the jessie release
+ # (http://bugs.debian.org/695979). We also want to support older
+ # Python versions. So as a fallback we see if there is a file that
+ # is named like a shared library.
+
+ if test "$python_enable_shared" != 1; then
+ # We don't know the platform shared library extension here yet, so
+ # we try some candidates.
+ for dlsuffix in .so .dll .dylib .sl; do
+ if ls "$python_libdir"/libpython*${dlsuffix}* >/dev/null 2>&1; then
+ python_enable_shared=1
+ break
+ fi
+ done
+ fi
+
+ if test "$python_enable_shared" != 1; then
+ AC_MSG_ERROR([cannot build PL/Python because libpython is not a shared library
+You might have to rebuild your Python installation. Refer to the
+documentation for details. Use --without-python to disable building
+PL/Python.])
+ fi
fi
if test "$cross_compiling" = yes && test -z "$with_system_tzdata"; then
@@ -1942,8 +1974,12 @@ fi
if test "$with_tcl" = yes; then
PGAC_PATH_TCLCONFIGSH([$with_tclconfig])
PGAC_EVAL_TCLCONFIGSH([$TCL_CONFIG_SH],
- [TCL_INCLUDE_SPEC,TCL_LIB_FILE,TCL_LIBS,TCL_LIB_SPEC,TCL_SHARED_BUILD])
+ [TCL_INCLUDE_SPEC,TCL_LIBS,TCL_LIB_SPEC,TCL_SHARED_BUILD])
AC_SUBST(TCL_SHLIB_LD_LIBS)dnl don't want to double-evaluate that one
+ if test "$TCL_SHARED_BUILD" != 1; then
+ AC_MSG_ERROR([cannot build PL/Tcl because Tcl is not a shared library
+Use --without-tcl to disable building PL/Tcl.])
+ fi
# now that we have TCL_INCLUDE_SPEC, we can check for <tcl.h>
ac_save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$TCL_INCLUDE_SPEC $CPPFLAGS"
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index a0fe8e43eb9..f8b7b3541d3 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -181,7 +181,6 @@ enable_coverage = @enable_coverage@
enable_tap_tests = @enable_tap_tests@
enable_thread_safety = @enable_thread_safety@
-python_enable_shared = @python_enable_shared@
python_includespec = @python_includespec@
python_libdir = @python_libdir@
python_libspec = @python_libspec@
@@ -192,7 +191,6 @@ python_version = @python_version@
krb_srvtab = @krb_srvtab@
TCLSH = @TCLSH@
-TCL_LIB_FILE = @TCL_LIB_FILE@
TCL_LIBS = @TCL_LIBS@
TCL_LIB_SPEC = @TCL_LIB_SPEC@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
@@ -283,7 +281,6 @@ else
endif
perl_archlibexp = @perl_archlibexp@
perl_privlibexp = @perl_privlibexp@
-perl_useshrplib = @perl_useshrplib@
perl_embed_ldflags = @perl_embed_ldflags@
# Miscellaneous
diff --git a/src/pl/plperl/GNUmakefile b/src/pl/plperl/GNUmakefile
index 904a320cf6a..6e1377b53de 100644
--- a/src/pl/plperl/GNUmakefile
+++ b/src/pl/plperl/GNUmakefile
@@ -5,16 +5,6 @@ subdir = src/pl/plperl
top_builddir = ../../..
include $(top_builddir)/src/Makefile.global
-ifeq ($(perl_useshrplib),true)
-shared_libperl = yes
-endif
-ifeq ($(perl_useshrplib),yes)
-shared_libperl = yes
-endif
-
-# If we don't have a shared library, we have to skip it.
-ifeq ($(shared_libperl),yes)
-
ifeq ($(PORTNAME), win32)
override CPPFLAGS += -DPLPERL_HAVE_UID_GID
# Perl on win32 contains /* within comment all over the header file,
@@ -130,14 +120,3 @@ clean distclean maintainer-clean: clean-lib
ifeq ($(PORTNAME), win32)
rm -f $(perlwithver).def
endif
-
-else # can't build
-
-all:
- @echo ""; \
- echo "*** Cannot build PL/Perl because libperl is not a shared library."; \
- echo "*** You might have to rebuild your Perl installation. Refer to"; \
- echo "*** the documentation for details."; \
- echo ""
-
-endif # can't build
diff --git a/src/pl/plpython/Makefile b/src/pl/plpython/Makefile
index de97cbb780b..8b1d8908e68 100644
--- a/src/pl/plpython/Makefile
+++ b/src/pl/plpython/Makefile
@@ -5,24 +5,6 @@ top_builddir = ../../..
include $(top_builddir)/src/Makefile.global
-# We need libpython as a shared library. In Python >=2.5, configure
-# asks Python directly. But because this has been broken in Debian
-# for a long time (http://bugs.debian.org/695979), and to support
-# older Python versions, we see if there is a file that is named like
-# a shared library as a fallback.
-ifeq (1,$(python_enable_shared))
-shared_libpython = yes
-else
-ifeq ($(PORTNAME), darwin)
-# OS X does supply a .dylib even though Py_ENABLE_SHARED does not get set
-shared_libpython = yes
-else
-ifneq (,$(wildcard $(python_libdir)/libpython*$(DLSUFFIX)*))
-shared_libpython = yes
-endif
-endif
-endif
-
# Windows needs to convert backslashed paths to normal slashes,
# and we have to remove -lpython from the link since we are building our own
ifeq ($(PORTNAME), win32)
@@ -31,8 +13,6 @@ python_includespec := $(subst \,/,$(python_includespec))
override python_libspec =
endif
-# If we don't have a shared library, we have to skip it.
-ifeq ($(shared_libpython),yes)
override CPPFLAGS := -I. -I$(srcdir) $(python_includespec) $(CPPFLAGS)
@@ -159,18 +139,6 @@ ifeq ($(PORTNAME), win32)
rm -f python${pytverstr}.def
endif
-else # can't build
-
-all:
- @echo ""; \
- echo "*** Cannot build PL/Python because libpython is not a shared library." ; \
- echo "*** You might have to rebuild your Python installation. Refer to"; \
- echo "*** the documentation for details."; \
- echo ""
-
-endif # can't build
-
-# distprep and maintainer-clean rules should be run even if we can't build.
# Force this dependency to be known even without dependency info built:
plpy_plpymodule.o: spiexceptions.h
diff --git a/src/pl/tcl/Makefile b/src/pl/tcl/Makefile
index 533d3b4efd0..24803de7908 100644
--- a/src/pl/tcl/Makefile
+++ b/src/pl/tcl/Makefile
@@ -14,21 +14,6 @@ include $(top_builddir)/src/Makefile.global
override CPPFLAGS := $(TCL_INCLUDE_SPEC) $(CPPFLAGS)
-# Find out whether Tcl was built as a shared library --- if not, we
-# can't link a shared library that depends on it, and have to forget
-# about building pltcl. In Tcl 8, tclConfig.sh sets TCL_SHARED_BUILD
-# for us, but in older Tcl releases it doesn't. In that case we guess
-# based on the name of the Tcl library.
-
-ifndef TCL_SHARED_BUILD
-ifneq (,$(findstring $(DLSUFFIX),$(TCL_LIB_FILE)))
-TCL_SHARED_BUILD=1
-else
-TCL_SHARED_BUILD=0
-endif
-endif
-
-
# On Windows, we don't link directly with the Tcl library; see below
ifneq ($(PORTNAME), win32)
SHLIB_LINK = $(TCL_LIB_SPEC) $(TCL_LIBS) -lc
@@ -67,7 +52,6 @@ endif # win32
include $(top_srcdir)/src/Makefile.shlib
-ifeq ($(TCL_SHARED_BUILD), 1)
all: all-lib
$(MAKE) -C modules $@
@@ -102,16 +86,6 @@ installcheck: submake
submake:
$(MAKE) -C $(top_builddir)/src/test/regress pg_regress$(X)
-else # TCL_SHARED_BUILD = 0
-
-# Provide dummy targets for the case where we can't build the shared library.
-all:
- @echo "*****"; \
- echo "* Cannot build PL/Tcl because Tcl is not a shared library; skipping it."; \
- echo "*****"
-
-endif # TCL_SHARED_BUILD = 0
-
clean distclean maintainer-clean: clean-lib
rm -f $(OBJS)
rm -rf $(pg_regress_clean_files)