Fix linking against libpython
authorDieter Verfaillie <dieterv@optionexplicit.be>
Sat, 17 Sep 2011 11:30:28 +0000 (13:30 +0200)
committerDieter Verfaillie <dieterv@optionexplicit.be>
Sat, 17 Sep 2011 11:30:28 +0000 (13:30 +0200)
- 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
configure.ac

index 84fc2b2d9211c04b3bb5cf34af161bc9cf48a625..3655997f630a0ff0731f7ec01ba9819b7fcf0827 100644 (file)
@@ -58,12 +58,19 @@ _giscanner_la_CFLAGS = \
        $(PYTHON_INCLUDES) \
        $(GOBJECT_CFLAGS) \
        -I$(top_srcdir)/giscanner
        $(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
 
 _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"
 _giscanner_la_LDFLAGS += \
        -no-undefined \
        -shrext ".pyd"
index 75c0e4e5c3e1f65c170f37a0e25ddb72e6b359df..c3f856e1027d038867c46d0fe3b852822a13ff37 100644 (file)
@@ -32,7 +32,7 @@ case "$host" in
        os_win32=no
        ;;
 esac
        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
 
 # 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]))
        ;;
 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
 
 
 # Glib documentation