Skip to content

Commit

Permalink
app_python3: update Python3 detection mechanism
Browse files Browse the repository at this point in the history
This commit

  - removes the python calls whose output is never actually used.

  - changes the include discovery to use python3(.x)-config. This is
    preferable because it also works for cross-compiling. Calling
    python3(.x) directly will always provide host flags, which for
    cross-compiling is not feasible.

  - updates LDFLAGS discovery to also work with >= Python 3.8. To
    achieve this python3(.x)-config is first run with the argument
    "--embed". If this does not succeed (exit status 1)
    python3(.x)-config is run again without "--embed". This is the
    method suggested by Python upstream to provide backwards
    compatibility. See [1] for more details.

[1] https://docs.python.org/3/whatsnew/3.8.html

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
  • Loading branch information
micmac1 committed Apr 12, 2020
1 parent b2410d5 commit 05af36d
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions src/modules/app_python3/Makefile
Expand Up @@ -11,18 +11,16 @@ NAME=app_python3.so
# but no testing has been done with that.
PYTHON3?=python3

PYTHON3_VERSION=${shell ${PYTHON3} -c "import distutils.sysconfig;print(distutils.sysconfig.get_config_var('VERSION'))"}
PYTHON3_LIBDIR=${shell ${PYTHON3} -c "import distutils.sysconfig;print(distutils.sysconfig.get_config_var('LIBDIR'))"}
PYTHON3_LDFLAGS=${shell ${PYTHON3} -c "import distutils.sysconfig;print(distutils.sysconfig.get_config_var('LINKFORSHARED'))"}
PYTHON3_INCDIR=${shell ${PYTHON3} -c "import distutils.sysconfig;print(distutils.sysconfig.get_python_inc())"}

LIBS=${shell ${PYTHON3}-config --ldflags}
LIBS=${shell \
tmp_py3_libs=$$(${PYTHON3}-config --ldflags --embed) || \
tmp_py3_libs=$$(${PYTHON3}-config --ldflags); \
echo $$tmp_py3_libs}

ifeq ($(OS), freebsd)
LIBS+=-pthread
endif

DEFS+=-I${PYTHON3_INCDIR}
DEFS+=${shell ${PYTHON3}-config --includes}

include ../../Makefile.modules

0 comments on commit 05af36d

Please sign in to comment.