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?