summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Decina <alessandro.d@gmail.com>2010-08-26 17:14:32 +0200
committerAlessandro Decina <alessandro.d@gmail.com>2010-08-26 17:14:32 +0200
commite564f783caa1c845fe1946514554bbac006d7aac (patch)
tree57ef10425bbb37bb90c3ffbd2ec39d1b6416d318
parent01ce2d2060a3e1c6f41374a89c0c5af834287e30 (diff)
Make the plugin loader work on OSX with the standard python install.
-rw-r--r--acinclude.m427
-rw-r--r--plugin/Makefile.am1
-rw-r--r--plugin/gstpythonplugin.c2
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 ());