<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>I'm trying to compile the [pyo~] external that comes with the Pyo
module for DSP in Python <a class="moz-txt-link-freetext" href="http://ajaxsoundstudio.com/software/pyo/">http://ajaxsoundstudio.com/software/pyo/</a>.
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:</p>
<p>`/home/alexandros/Documents/Pd/externals/pyo/pyo~.l_ia64:
/home/alexandros/Documents/Pd/externals/pyo/pyo~.l_ia64: undefined
symbol: _Py_NoneStruct`</p>
<p>The same object compiles fine on a Rasbperry Pi 3 and 4.<br>
</p>
<p>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:</p>
<p>```<br>
<span style="font-family:monospace"><span
style="color:#000000;background-color:#ffffff;">lib.name</span><span
style="color:#b21818;background-color:#ffffff;"> = </span><span
style="color:#000000;background-color:#ffffff;">pyo~
</span><br>
<br>
class.sources<span
style="color:#b21818;background-color:#ffffff;"> = </span><span
style="color:#000000;background-color:#ffffff;">pyo~.c
</span><br>
<br>
common.sources<span
style="color:#b21818;background-color:#ffffff;"> = </span><span
style="color:#000000;background-color:#ffffff;">m_pyo.h
</span><br>
<br>
cflags<span style="color:#b21818;background-color:#ffffff;"> = </span><span
style="color:#000000;background-color:#ffffff;">-I"</span><span
style="color:#1818b2;background-color:#ffffff;">$(PD_INCLUDE)</span><span
style="color:#000000;background-color:#ffffff;">" -I..
-Wno-cast-function-type -Wno-unused-parameter $(shell
python-config --cflags)
</span><br>
ldflags<span style="color:#b21818;background-color:#ffffff;"> =
</span><span style="color:#000000;background-color:#ffffff;">$(shell
python-config --ldflags)
</span><br>
libs<span style="color:#b21818;background-color:#ffffff;"> = </span><span
style="color:#000000;background-color:#ffffff;">$(shell
python-config --libs)
</span><br>
<br>
datafiles<span style="color:#b21818;background-color:#ffffff;">
= </span><span
style="color:#000000;background-color:#ffffff;">pyo-help.pd
README.md
</span><br>
<br>
PDLIBBUILDER_DIR=../pd-lib-builder/
<br>
<span style="color:#b218b2;background-color:#ffffff;">include</span><span
style="color:#000000;background-color:#ffffff;"> </span><span
style="color:#1818b2;background-color:#ffffff;">$(PDLIBBUILDER_DIR)</span><span
style="color:#000000;background-color:#ffffff;">/Makefile.pdlibbuilder</span><br>
</span></p>
<p>```</p>
<p>And here's the output when I type `make`:</p>
<p>```<br>
<span style="font-family:monospace"><span
style="color:#000000;background-color:#ffffff;">++++ info:
using Makefile.pdlibbuilder version 0.6.0
</span><br>
++++ info: using Pd API /usr/include/pd/m_pd.h
<br>
++++ info: making target all in lib pyo~
<br>
++++ info: making pyo~.o in lib pyo~
<br>
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=<br>
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
<br>
make: *** No rule to make target 'm_pyo.o', needed by
'pyo~.pd_linux'. Stop.<br>
</span></p>
<p>```</p>
<p>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.<br>
</p>
<p>Can anyone help?<br>
</p>
</body>
</html>