From 966a0d54743dd1f267db49364c750cd84726a041 Mon Sep 17 00:00:00 2001 From: "Graham.Dumpleton" Date: Tue, 14 Apr 2009 00:44:44 +0000 Subject: On MacOS X, wheere there is a .a file in config directory, that would normally link to Python framework, then link against it rather than framework. This is to get around issue where MacPorts Python framework doesn't seem to embed its location properly into .so when linked against. This should also work for normal Python distributions as well. --- configure.ac | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 5dea0b9..8c7f49b 100644 --- a/configure.ac +++ b/configure.ac @@ -76,6 +76,10 @@ AC_SUBST(CPPFLAGS) PYTHONLIBDIR=`${PYTHON} -c 'from sys import stdout; \ from distutils import sysconfig; \ stdout.write(sysconfig.get_config_var("LIBDIR"))'` +PYTHONCFGDIR=`${PYTHON} -c 'from sys import stdout; \ + import distutils.sysconfig; \ + stdout.write(distutils.sysconfig.get_python_lib(plat_specific=1, \ + standard_lib=1) +"/config")'` PYTHONFRAMEWORKDIR=`${PYTHON} -c 'from sys import stdout; \ from distutils import sysconfig; \ stdout.write(sysconfig.get_config_var("PYTHONFRAMEWORKDIR"))'` @@ -88,11 +92,7 @@ PYTHONFRAMEWORK=`${PYTHON} -c 'from sys import stdout; \ if test "${PYTHONFRAMEWORKDIR}" = "no-framework"; then LDFLAGS1="-L${PYTHONLIBDIR}" - LDFLAGS2=`${PYTHON} -c 'from sys import stdout; \ - import distutils.sysconfig; \ - stdout.write("-L" + \ - distutils.sysconfig.get_python_lib(plat_specific=1, \ - standard_lib=1) +"/config")'` + LDFLAGS2="-L${PYTHONCFGDIR}" LDLIBS1="-lpython${PYTHON_VERSION}" LDLIBS2=`${PYTHON} -c 'from sys import stdout; \ @@ -102,18 +102,30 @@ if test "${PYTHONFRAMEWORKDIR}" = "no-framework"; then from distutils import sysconfig; \ stdout.write(sysconfig.get_config_var("SYSLIBS"))'` else - LDFLAGS1="-F${PYTHONFRAMEWORKPREFIX} -framework ${PYTHONFRAMEWORK}" - - VERSION="${PYTHON_VERSION}" - STRING="${PYTHONFRAMEWORKDIR}/Versions/${VERSION}/${PYTHONFRAMEWORK}" - LDFLAGS2=`${PYTHON} -c "from sys import stdout; \ - from distutils import sysconfig; \ - stdout.write(sysconfig.get_config_var(\"LINKFORSHARED\").replace( \ - \"${STRING}\", ''))"` - - LDLIBS1=`${PYTHON} -c 'from sys import stdout; \ - from distutils import sysconfig; \ - stdout.write(sysconfig.get_config_var("LIBS"))'` + if test -f "${PYTHONCFGDIR}/libpython${PYTHON_VERSION}.a"; then + LDFLAGS2="-L${PYTHONCFGDIR}" + + LDLIBS1="-lpython${PYTHON_VERSION}" + LDLIBS2=`${PYTHON} -c 'from sys import stdout; \ + from distutils import sysconfig; \ + stdout.write(sysconfig.get_config_var("LIBS"))'` + LDLIBS3=`${PYTHON} -c 'from sys import stdout; \ + from distutils import sysconfig; \ + stdout.write(sysconfig.get_config_var("SYSLIBS"))'` + else + LDFLAGS1="-F${PYTHONFRAMEWORKPREFIX} -framework ${PYTHONFRAMEWORK}" + + VERSION="${PYTHON_VERSION}" + STRING="${PYTHONFRAMEWORKDIR}/Versions/${VERSION}/${PYTHONFRAMEWORK}" + LDFLAGS2=`${PYTHON} -c "from sys import stdout; \ + from distutils import sysconfig; \ + stdout.write(sysconfig.get_config_var( + \"LINKFORSHARED\").replace(\"${STRING}\", ''))"` + + LDLIBS1=`${PYTHON} -c 'from sys import stdout; \ + from distutils import sysconfig; \ + stdout.write(sysconfig.get_config_var("LIBS"))'` + fi fi CFLAGS="" -- cgit v1.2.1