I'm trying to compile the [pyo~] external that comes with the Pyo module for DSP in Python http://ajaxsoundstudio.com/software/pyo/. The object uses Pd's old Makefile and does compile, giving me a pyo~.l_ia64 binary file (I'm on Linux, UbuntuStudio 22.04). When I try to load the object in Pd, I get the following error:
/home/alexandros/Documents/Pd/externals/pyo/pyo~.l_ia64: /home/alexandros/Documents/Pd/externals/pyo/pyo~.l_ia64: undefined symbol: _Py_NoneStruct
The same object compiles fine on a Rasbperry Pi 3 and 4.
I also tried to compile it with pd-lib-builder. Here's the Makefile I used, based on the existing Makefile that comes with pyo~.c:
lib.name= pyo~
class.sources= pyo~.c
common.sources= m_pyo.h
cflags= -I"$(PD_INCLUDE)" -I.. -Wno-cast-function-type
-Wno-unused-parameter $(shell python-config --cflags)
ldflags= $(shell python-config --ldflags)
libs= $(shell python-config --libs)
datafiles= pyo-help.pd README.md
PDLIBBUILDER_DIR=../pd-lib-builder/
include$(PDLIBBUILDER_DIR)/Makefile.pdlibbuilder
And here's the output when I type make
:
++++ info: using Makefile.pdlibbuilder version 0.6.0
++++ info: using Pd API /usr/include/pd/m_pd.h
++++ info: making target all in lib pyo~
++++ info: making pyo~.o in lib pyo~
cc -DPD -I "/usr/include/pd" -DUNIX -fPIC -I"" -I..
-Wno-cast-function-type -Wno-unused-parameter -I/usr/include/python3.10
-I/usr/include/python3.10 -Wno-unused-result -Wsign-compare -g
-fstack-protector-strong -Wformat -Werror=
format-security -DNDEBUG -g -fwrapv -O2 -Wall -Wall -Wextra -Wshadow
-Winline -Wstrict-aliasing -O3 -ffast-math -funroll-loops
-fomit-frame-pointer -march=core2 -mfpmath=sse -msse -msse2 -msse3 -o
pyo~.o -c pyo~.c
make: *** No rule to make target 'm_pyo.o', needed by 'pyo~.pd_linux'.
Stop.
In the pyo~.c file there's a #include "Python.h"
. Does this mean that
I should direct the Makefile to find this file? Because no Python.h file
comes with the source code.
Can anyone help?