about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2022-02-18 20:14:56 +0100
committerGitHub <noreply@github.com>2022-02-18 20:14:56 +0100
commit0e04439b61d3125b3b0232a1f6fe90bd2dc64a2e (patch)
tree38da66ce956e8b3446ded0198f00441f22dacb40
parent57fb10f0bf11351a5c5490742e61b29c36d95d38 (diff)
parent5676159aa52a734a34bf231b400ae13860e1012d (diff)
downloadprofani-tty-0e04439b61d3125b3b0232a1f6fe90bd2dc64a2e.tar.gz
Merge pull request #1642 from jugendhacker/fix/851-python-cross-compile
Fix python executed during configure
-rw-r--r--configure.ac9
-rw-r--r--src/plugins/python_api.c8
-rw-r--r--src/plugins/python_plugins.c2
3 files changed, 9 insertions, 10 deletions
diff --git a/configure.ac b/configure.ac
index d260ce50..d75ba114 100644
--- a/configure.ac
+++ b/configure.ac
@@ -98,10 +98,9 @@ elif test "x$enable_python_plugins" != xno; then
         AC_MSG_NOTICE([Symlinking Python.framework to $PYTHON_FRAMEWORK])
         rm -f Python.framework
         ln -s $PYTHON_FRAMEWORK Python.framework ])
-    AC_CHECK_PROG(PYTHON_CONFIG_EXISTS, python-config, yes, no)
-    AC_CHECK_PROG(PYTHON3_CONFIG_EXISTS, python3-config, yes, no)
+    PKG_CHECK_MODULES([python], [python-embed], [PYTHON_CONFIG_EXISTS=yes], [PYTHON_CONFIG_EXISTS=no])
+    PKG_CHECK_MODULES([python], [python3-embed], [PYTHON3_CONFIG_EXISTS=yes; AC_DEFINE(PY_IS_PYTHON3, [1], [Is Python version 3])], [PYTHON3_CONFIG_EXISTS=no])
     if test "$PYTHON_CONFIG_EXISTS" = "yes" || test "$PYTHON3_CONFIG_EXISTS" = "yes"; then
-        AX_PYTHON_DEVEL
         AM_CONDITIONAL([BUILD_PYTHON_API], [true])
         AC_DEFINE([HAVE_PYTHON], [1], [Python support])
     else
@@ -357,9 +356,9 @@ AS_IF([test "x$PLATFORM" = xosx],
     [AM_CFLAGS="$AM_CFLAGS -Qunused-arguments"])
 
 AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS $glib_CFLAGS $gio_CFLAGS $curl_CFLAGS ${SQLITE_CFLAGS}"
-AM_CFLAGS="$AM_CFLAGS $libnotify_CFLAGS ${GTK_CFLAGS} $PYTHON_CPPFLAGS" dnl https://bugs.python.org/issue15018
+AM_CFLAGS="$AM_CFLAGS $libnotify_CFLAGS ${GTK_CFLAGS} $python_CFLAGS" dnl https://bugs.python.org/issue15018
 AM_CFLAGS="$AM_CFLAGS -DTHEMES_PATH=\"\\\"$THEMES_PATH\\\"\" -DICONS_PATH=\"\\\"$ICONS_PATH\\\"\" -DGLOBAL_PYTHON_PLUGINS_PATH=\"\\\"$GLOBAL_PYTHON_PLUGINS_PATH\\\"\" -DGLOBAL_C_PLUGINS_PATH=\"\\\"$GLOBAL_C_PLUGINS_PATH\\\"\""
-LIBS="$glib_LIBS $gio_LIBS $PTHREAD_LIBS $curl_LIBS $libnotify_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_LDFLAGS ${GTK_LIBS} ${SQLITE_LIBS} $LIBS"
+LIBS="$glib_LIBS $gio_LIBS $PTHREAD_LIBS $curl_LIBS $libnotify_LIBS $python_LIBS ${GTK_LIBS} ${SQLITE_LIBS} $LIBS"
 
 AC_SUBST(AM_LDFLAGS)
 AC_SUBST(AM_CFLAGS)
diff --git a/src/plugins/python_api.c b/src/plugins/python_api.c
index 90e33579..0b91cf70 100644
--- a/src/plugins/python_api.c
+++ b/src/plugins/python_api.c
@@ -1575,7 +1575,7 @@ static PyMethodDef apiMethods[] = {
     { NULL, NULL, 0, NULL }
 };
 
-#if PY_MAJOR_VERSION >= 3
+#ifdef PY_IS_PYTHON3
 static struct PyModuleDef profModule = {
     PyModuleDef_HEAD_INIT,
     "prof",
@@ -1588,7 +1588,7 @@ static struct PyModuleDef profModule = {
 PyMODINIT_FUNC
 python_api_init(void)
 {
-#if PY_MAJOR_VERSION >= 3
+#ifdef PY_IS_PYTHON3
     PyObject* result = PyModule_Create(&profModule);
     if (!result) {
         log_debug("Failed to initialise prof module");
@@ -1604,7 +1604,7 @@ python_api_init(void)
 void
 python_init_prof(void)
 {
-#if PY_MAJOR_VERSION >= 3
+#ifdef PY_IS_PYTHON3
     PyImport_AppendInittab("prof", python_api_init);
     Py_Initialize();
     PyEval_InitThreads();
@@ -1640,7 +1640,7 @@ python_str_or_unicode_to_string(void* obj)
         return NULL;
     }
 
-#if PY_MAJOR_VERSION >= 3
+#ifdef PY_IS_PYTHON3
     if (PyUnicode_Check(pyobj)) {
         PyObject* utf8_str = PyUnicode_AsUTF8String(pyobj);
         char* result = strdup(PyBytes_AS_STRING(utf8_str));
diff --git a/src/plugins/python_plugins.c b/src/plugins/python_plugins.c
index 94c77e99..c32d177c 100644
--- a/src/plugins/python_plugins.c
+++ b/src/plugins/python_plugins.c
@@ -908,7 +908,7 @@ _handle_string_or_none_result(ProfPlugin* plugin, PyObject* result, char* hook)
         _python_undefined_error(plugin, hook, "string, unicode or None");
         return NULL;
     }
-#if PY_MAJOR_VERSION >= 3
+#ifdef PY_IS_PYTHON3
     if (result != Py_None && !PyUnicode_Check(result) && !PyBytes_Check(result)) {
         allow_python_threads();
         _python_type_error(plugin, hook, "string, unicode or None");