[gobject-introspection] Fix linking against libpython



commit 0a73abbd904150a3f97aae64be3974080af1ff2d
Author: Dieter Verfaillie <dieterv optionexplicit be>
Date:   Sat Sep 17 13:30:28 2011 +0200

    Fix linking against libpython
    
    - AM_CHECK_PYTHON_LIBS doesn't work for 64bit sytems (lib64)
    - Python extension modules do not need to be linked against
      libpython on linux anyway, but it is needed on Windows
    
    So only run AM_CHECK_PYTHON_LIBS in configure.ac for the windows
    case and make it clear in Makefile-giscanner.am linking
    against libpython is a windows only thing.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=658914

 Makefile-giscanner.am |    9 ++++++++-
 configure.ac          |    6 ++++--
 2 files changed, 12 insertions(+), 3 deletions(-)
---
diff --git a/Makefile-giscanner.am b/Makefile-giscanner.am
index 84fc2b2..3655997 100644
--- a/Makefile-giscanner.am
+++ b/Makefile-giscanner.am
@@ -58,12 +58,19 @@ _giscanner_la_CFLAGS = \
 	$(PYTHON_INCLUDES) \
 	$(GOBJECT_CFLAGS) \
 	-I$(top_srcdir)/giscanner
-_giscanner_la_LIBADD = libgiscanner.la $(GOBJECT_LIBS) $(PYTHON_LIBS)
+_giscanner_la_LIBADD = libgiscanner.la $(GOBJECT_LIBS)
 
 _giscanner_la_LDFLAGS = \
 	-module -avoid-version -export-symbols-regex init_giscanner
 
 if OS_WIN32
+# Windows requires Python extension modules to be explicitly
+# linked to libpython. Extension modules are shared libaries
+# (.dll files), but need to be called .pyd for Python to load
+# them as extension modules.
+_giscanner_la_LIBADD += \
+	$(PYTHON_LIBS)
+
 _giscanner_la_LDFLAGS += \
 	-no-undefined \
 	-shrext ".pyd"
diff --git a/configure.ac b/configure.ac
index 75c0e4e..c3f856e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,7 +32,7 @@ case "$host" in
 	os_win32=no
 	;;
 esac
-AM_CONDITIONAL(OS_WIN32, [test x"$os_win32" = "xyes"])
+AM_CONDITIONAL(OS_WIN32, [test "x$os_win32" = "xyes"])
 
 # Checks for programs.
 AC_PROG_CC
@@ -261,7 +261,9 @@ case "$host" in
 	;;
 esac
 AM_CHECK_PYTHON_HEADERS(, AC_MSG_ERROR([Python headers not found]))
-AM_CHECK_PYTHON_LIBS(, AC_MSG_ERROR([Python libs not found]))
+if test "x$os_win32" = "xyes"; then
+  AM_CHECK_PYTHON_LIBS(, AC_MSG_ERROR([Python libs not found. Windows requires Python modules to be explicitly linked to libpython.]))
+fi
 
 # Glib documentation
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]