From e564f783caa1c845fe1946514554bbac006d7aac Mon Sep 17 00:00:00 2001 From: Alessandro Decina Date: Thu, 26 Aug 2010 17:14:32 +0200 Subject: [PATCH] Make the plugin loader work on OSX with the standard python install. --- acinclude.m4 | 27 +++++++++++++++++++++++++-- plugin/Makefile.am | 1 + plugin/gstpythonplugin.c | 2 +- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 25f27e6..3f71fb6 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -71,19 +71,42 @@ dnl function also defines PYTHON_LIBS AC_DEFUN([AM_CHECK_PYTHON_LIBS], [AC_REQUIRE([AM_CHECK_PYTHON_HEADERS]) AC_MSG_CHECKING(for libraries required to embed python) + dnl deduce PYTHON_LIBS -py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` if $PYTHON-config --help 2>/dev/null; then PYTHON_LIBS=`$PYTHON-config --ldflags 2>/dev/null` PYTHON_LIB=`$PYTHON -c "import distutils.sysconfig as s; print s.get_python_lib(standard_lib=1)"` - PYTHON_LIB_LOC=$PYTHON_LIB/config + if echo "$host_os" | grep darwin >/dev/null 2>&1; then + dnl OSX is a pain. Python as shipped by apple installs libpython in /usr/lib + dnl so we hardcode that. Other systems can use --with-libpython-dir to + dnl overrid this. + PYTHON_LIB_LOC=/usr/lib + else + PYTHON_LIB_LOC=$PYTHON_LIB/config + fi else asd PYTHON_LIBS="-L${py_prefix}/lib -lpython${PYTHON_VERSION}" PYTHON_LIB_LOC="${py_prefix}/lib" fi + +AC_ARG_WITH([libpython-dir], + AS_HELP_STRING([--with-libpython-dir], [the directory containing libpython${PYTHON_VERSION}]), + [ + PYTHON_LIB_LOC=`echo "$withval" | sed -e 's/\/$//g'` + ] +) + +if echo "$host_os" | grep darwin >/dev/null 2>&1; then + dnl workaround libtool brokenness under OSX + PYTHON_LIB_SUFFIX=\\\"dylib\\\" +else + PYTHON_LIB_SUFFIX=G_MODULE_SUFFIX +fi + AC_SUBST(PYTHON_LIBS) AC_SUBST(PYTHON_LIB_LOC) +AC_SUBST(PYTHON_LIB_SUFFIX) dnl check if the headers exist: save_LIBS="$LIBS" LIBS="$LIBS $PYTHON_LIBS" diff --git a/plugin/Makefile.am b/plugin/Makefile.am index fc961a0..d4a42c0 100644 --- a/plugin/Makefile.am +++ b/plugin/Makefile.am @@ -3,6 +3,7 @@ plugin_LTLIBRARIES = libgstpython.la INCLUDES = $(PYGOBJECT_CFLAGS) $(GST_CFLAGS)\ -DPYTHON_VERSION=\"$(PYTHON_VERSION)\" \ -DPY_LIB_LOC="\"$(PYTHON_LIB_LOC)\"" \ + -DPY_LIB_SUFFIX=$(PYTHON_LIB_SUFFIX) \ $(PYTHON_INCLUDES) libgstpython_la_SOURCES = gstpythonplugin.c diff --git a/plugin/gstpythonplugin.c b/plugin/gstpythonplugin.c index 0134f19..2212683 100644 --- a/plugin/gstpythonplugin.c +++ b/plugin/gstpythonplugin.c @@ -349,7 +349,7 @@ plugin_init (GstPlugin * plugin) GST_LOG ("loading libpython"); libpython = g_module_open (PY_LIB_LOC "/libpython" PYTHON_VERSION "." - G_MODULE_SUFFIX, 0); + PY_LIB_SUFFIX, 0); if (!libpython) { GST_WARNING ("Couldn't g_module_open libpython. Reason: %s", g_module_error ()); -- 2.7.4