Troubles compiling old version 0.43-4
Hi!
I'm digging up some old Pd patches that I wrote ages ago which no longer work on the current Pd version, and I need to run Pd 0.43 to compare some behaviors between the current version and that version.
Since I couldn't find any binaries at https://puredata.info/downloads/pure-data/releases/0.43.4, I downloaded the source code and I'm trying to compile it on Manjaro Linux.
Following the instructions in INSTALL.txt, it says there are two build systems, an "old" and a "new" one. I tried both and they fail with apparently very different issues.
With the "new" build system, when running make I get:
(...)
/usr/bin/ld: pd-s_audio_oss.o:(.bss+0x8): multiple definition of `sys_soundout'; pd-s_audio.o:(.bss+0x8): first defined here
/usr/bin/ld: pd-s_audio_oss.o:(.bss+0x0): multiple definition of `sys_soundin'; pd-s_audio.o:(.bss+0x0): first defined here
/usr/bin/ld: pd-s_audio_oss.o:(.bss+0x10): multiple definition of `sys_dacsr'; pd-s_audio.o:(.bss+0x10): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:706: pd] Error 1
make[2]: Leaving directory '/home/teo/programmi/puredata/releases/043-4/pd-0.43-4/src'
make[1]: *** [Makefile:919: all-recursive] Error 1
make[1]: Leaving directory '/home/teo/programmi/puredata/releases/043-4/pd-0.43-4'
make: *** [Makefile:819: all] Error 2
With the "old" build system, when running ./configure I get:
(...)
checking tcl.h usability... yes
checking tcl.h presence... yes
checking for tcl.h... yes
checking for main in -ltcl85... no
checking for main in -ltcl8.5... no
checking for main in -ltcl84... no
checking for main in -ltcl8.4... no
checking for main in -ltcl8.3... no
checking for main in -ltcl8.2... no
checking for main in -ltcl8.0... no
no tcl library found
Any idea how to fix either?
Thanks
ELSE 1.0-0 RC12 with Live Electronics Tutorial Released
I've been trying to do a build of else for 64-bit Bookworm OS on Pi 4B.
I've been able to edit the CMakeLists file to remove pdlink~.c and pdlink.c
-- Configuring Opus
-- Configuring sfizz
-- Configuring ffmpeg
-- 316 coded objects (205 signal objects / 111 control objects)
-- 225 abstractions (87 signal objects / 138 control objects)
-- Merda modules: 22
-- Configuring done
-- Generating done
-- Build files have been written to: /home/csteenson/pd-src/pd-else/Build
But I'm having problems with ffmpeg now...
[ 28%] Built target pimp_tilde
[ 28%] Built target pink_tilde
[ 28%] Building FFmpeg libraries...
ERROR: openssl not found
If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.libera.chat.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
Makefile:194: /tests/Makefile: No such file or directory
make[3]: *** No rule to make target '/tests/Makefile'. Stop.
make[2]: *** [Source/Shared/ffmpeg/CMakeFiles/ffmpeg_deps.dir/build.make:76: Source/Shared/ffmpeg/ffmpeg-7.0.1/libavformat/libavformat.a] Error 2
make[1]: *** [CMakeFiles/Makefile2:9328: Source/Shared/ffmpeg/CMakeFiles/ffmpeg_deps.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
EDIT: I got past this by installing libssl-dev and ffmpeg compiled correctly... This part took quite a while.
BUT! else fully compiled after that! Yay!
ELSE 1.0-0 RC12 with Live Electronics Tutorial Released
thank you, @timothyschoen ! unfortnately this did not work.
after commenting out the parts from your post i still got an error related to [pdlink~]
[ 25%] Built target parabolic_tilde
[ 25%] Building C object CMakeFiles/pdlink_tilde.dir/Source/Audio/pdlink~.c.o
In file included from /home/gregor/pd-else-v.1.0-rc12/Source/Audio/pdlink~.c:9:
/home/gregor/pd-else-v.1.0-rc12/Source/Shared/opus_compression.h:1:10: fatal error: opus.h: No such file or directory
1 | #include <opus.h>
| ^~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/pdlink_tilde.dir/build.make:76: CMakeFiles/pdlink_tilde.dir/Source/Audio/pdlink~.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3596: CMakeFiles/pdlink_tilde.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
I tried to just move the pdlink~.c file out of the source folder but then got errors for [pdlink]
[ 59%] Built target panic
[ 59%] Building C object CMakeFiles/pdlink.dir/Source/Control/pdlink.c.o
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:20:5: error: unknown type name ‘t_link_handle’
20 | t_link_handle x_link;
| ^~~~~~~~~~~~~
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c: In function ‘pdlink_anything’:
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:45:5: warning: implicit declaration of function ‘link_send’ [-Wimplicit-function-declaration]
45 | link_send(x->x_link, (size_t)len, buf);
| ^~~~~~~~~
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c: In function ‘pdlink_receive_loop’:
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:79:9: warning: implicit declaration of function ‘link_discover’ [-Wimplicit-function-declaration]
79 | link_discover(x->x_link);
| ^~~~~~~~~~~~~
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:81:25: warning: implicit declaration of function ‘link_get_num_peers’ [-Wimplicit-function-declaration]
81 | int num_peers = link_get_num_peers(x->x_link);
| ^~~~~~~~~~~~~~~~~~
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:84:13: error: unknown type name ‘t_link_discovery_data’
84 | t_link_discovery_data data = link_get_discovered_peer_data(x->x_link, i);
| ^~~~~~~~~~~~~~~~~~~~~
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:84:42: warning: implicit declaration of function ‘link_get_discovered_peer_data’ [-Wimplicit-function-declaration]
84 | t_link_discovery_data data = link_get_discovered_peer_data(x->x_link, i);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:85:27: error: request for member ‘sndrcv’ in something not a structure or union
85 | if(strcmp(data.sndrcv, x->x_name->s_name) == 0) {
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:87:45: error: request for member ‘ip’ in something not a structure or union
87 | if(x->x_local && strcmp(data.ip, "127.0.0.1") != 0) continue;
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:88:46: error: request for member ‘ip’ in something not a structure or union
88 | if(!x->x_local && strcmp(data.ip, "127.0.0.1") == 0) continue;
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:90:31: warning: implicit declaration of function ‘link_connect’ [-Wimplicit-function-declaration]
90 | int created = link_connect(x->x_link, data.port, data.ip);
| ^~~~~~~~~~~~
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:90:59: error: request for member ‘port’ in something not a structure or union
90 | int created = link_connect(x->x_link, data.port, data.ip);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:90:70: error: request for member ‘ip’ in something not a structure or union
90 | int created = link_connect(x->x_link, data.port, data.ip);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:93:71: error: request for member ‘hostname’ in something not a structure or union
93 | post("[pdlink]: connected to:\n%s\n%s:%i\n%s", data.hostname, data.ip, data.port, data.platform);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:93:86: error: request for member ‘ip’ in something not a structure or union
93 | post("[pdlink]: connected to:\n%s\n%s:%i\n%s", data.hostname, data.ip, data.port, data.platform);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:93:95: error: request for member ‘port’ in something not a structure or union
93 | post("[pdlink]: connected to:\n%s\n%s:%i\n%s", data.hostname, data.ip, data.port, data.platform);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:93:106: error: request for member ‘platform’ in something not a structure or union
93 | post("[pdlink]: connected to:\n%s\n%s:%i\n%s", data.hostname, data.ip, data.port, data.platform);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:96:20: error: request for member ‘hostname’ in something not a structure or union
96 | if(data.hostname) free(data.hostname);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:96:40: error: request for member ‘hostname’ in something not a structure or union
96 | if(data.hostname) free(data.hostname);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:97:20: error: request for member ‘sndrcv’ in something not a structure or union
97 | if(data.sndrcv) free(data.sndrcv);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:97:38: error: request for member ‘sndrcv’ in something not a structure or union
97 | if(data.sndrcv) free(data.sndrcv);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:98:20: error: request for member ‘platform’ in something not a structure or union
98 | if(data.platform) free(data.platform);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:98:40: error: request for member ‘platform’ in something not a structure or union
98 | if(data.platform) free(data.platform);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:99:20: error: request for member ‘ip’ in something not a structure or union
99 | if(data.ip) free(data.ip);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:99:34: error: request for member ‘ip’ in something not a structure or union
99 | if(data.ip) free(data.ip);
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:103:9: warning: implicit declaration of function ‘link_ping’ [-Wimplicit-function-declaration]
103 | link_ping(x->x_link, x, pdlink_connection_lost);
| ^~~~~~~~~
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:106:5: warning: implicit declaration of function ‘link_receive’; did you mean ‘pdlink_receive’? [-Wimplicit-function-declaration]
106 | link_receive(x->x_link, x, pdlink_receive);
| ^~~~~~~~~~~~
| pdlink_receive
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c: In function ‘pdlink_free’:
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:113:19: warning: implicit declaration of function ‘link_free’; did you mean ‘pdlink_free’? [-Wimplicit-function-declaration]
113 | if(x->x_link) link_free(x->x_link);
| ^~~~~~~~~
| pdlink_free
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c: In function ‘pdlink_set’:
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:151:17: warning: implicit declaration of function ‘link_init’ [-Wimplicit-function-declaration]
151 | x->x_link = link_init(x->x_name->s_name, pd_platform, x->x_local, 7680412);
| ^~~~~~~~~
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:155:19: warning: assignment to ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
155 | x->x_link = NULL; // TODO: handle this state!
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c: In function ‘pdlink_new’:
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:163:15: warning: assignment to ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
163 | x->x_link = NULL;
| ^
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:200:42: warning: implicit declaration of function ‘link_get_own_ip’ [-Wimplicit-function-declaration]
200 | post("[pdlink]: own IP:\n%s:%i", link_get_own_ip(x->x_link), link_get_own_port(x->x_link));
| ^~~~~~~~~~~~~~~
/home/gregor/pd-else-v.1.0-rc12/Source/Control/pdlink.c:200:70: warning: implicit declaration of function ‘link_get_own_port’ [-Wimplicit-function-declaration]
200 | post("[pdlink]: own IP:\n%s:%i", link_get_own_ip(x->x_link), link_get_own_port(x->x_link));
| ^~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/pdlink.dir/build.make:76: CMakeFiles/pdlink.dir/Source/Control/pdlink.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:7756: CMakeFiles/pdlink.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
i hope this helps to make it work 
Externals in Purr-Data
Hey @whale-av,
thanks so much for the answer, sounds pretty legit. however I tried and i am still getting the same answer without the double slash:
pd_helios-master % make PDINCLUDEDIR=../pure-data/src
ls: ../pure-data/src/m_pd.h: No such file or directory
++++ info: using Makefile.pdlibbuilder version 0.5.1
src/pd-lib-builder/Makefile.pdlibbuilder:759: Where is Pd API m_pd.h? Do 'make help' for info.
++++ info: making target all in lib helios
++++ info: evaluating implicit prerequisites in lib helios.....
src/helios.cpp:12:10: fatal error: 'm_pd.h' file not found
#include "m_pd.h"
^~~~~~~~
1 error generated.
src/pd-lib-builder/Makefile.pdlibbuilder:974: *** missing separator. Stop.
i also do not find the m_pd.h file in my finder (if thats even poissible)
i first do:
cd /Users/jakobschauer/Documents/Pd/externals/pd_helios-master
then:
PDINCLUDEDIR=../pure-data/src
right? 🤔
i also tried on another machine IOS 12.0.1. same same
Externals in Purr-Data
Hey there,
i am also trying to get this lib working on an old ios 10.14.6.
https://github.com/timredfern/pd_helios
I followed all the steps described in the readme including "brew install libusb".
however i am getting an fatal error when I try to: make PDINCLUDEDIR=../pure-data/src/
my terminal says:
ls: ../pure-data/src//m_pd.h: No such file or directory
++++ info: using Makefile.pdlibbuilder version 0.5.1
src/pd-lib-builder/Makefile.pdlibbuilder:759: Where is Pd API m_pd.h? Do 'make help' for info.
++++ info: making target all in lib helios
++++ info: evaluating implicit prerequisites in lib helios.....
src/helios.cpp:12:10: fatal error: 'm_pd.h' file not found
#include "m_pd.h"
^~~~~~~~
1 error generated.
src/pd-lib-builder/Makefile.pdlibbuilder:974: *** missing separator. Stop.
it seams like there is a m_pd.h missing.
do you guys know what this error means? am i doing something wrong?
i downloaded the package and copied it to my /Documents/pd/externals folder. is that correct?
i am a max user and never really used pd + not to versed in using the terminal.
thanks
Jakob
grambilib~ - New ambisonics externals for Pd
thanks for your help! I got the objects compiled and loaded. it's been about two weeks so I'm a little fuzzy on what might have gone wrong before, but I modified a few file names & this is the makefile I ended up with:
# Makefile for mylib
lib.name = grambi~
class.sources = grambidec~.c grambiman~.c grambipan~.c
datafiles = grambilib-help.pd readme.md
include Makefile.pdlibbuilder
thanks again~ !! 
grambilib~ - New ambisonics externals for Pd
@bklindgren I copied your makefile and compiled with the sources I have (I guess they are the same, since in GitHub they haven't changed in eight years), and [grambiman~] loads fine. I realized though the a [grambiman] compiles as well (no tilde), which indeed can't load. Did you forget to add the tilde character when you loaded the object?
I then changed the names of the source files, by adding the tilde character, and re-compiled. This time, only tilde objects were made. Maybe a bug of the makefile. I'll send to the Pd list or open an issue on GitHub.
grambilib~ - New ambisonics externals for Pd
thanks for the suggestion! I"ve never compiled anything before, but I gave it a shot...
I'm getting this error in PD after loading the 3 compiled objects (6 files: grambidec.pd_darwin, grambidec.pd_darwin.o, grambiman.pd_darwin, grambiman.pd_darwin.o, grambipan.pd_darwin, grambipan.pd_darwin.o):
load_object: Symbol "grambiman_setup" not found in "/Users/brianlindgren/Documents/Pd/externals/grambiman.pd_darwin"
Also make is generating a bunch of warnings:
++++ info: using Makefile.pdlibbuilder version 0.7.0
++++ info: using Pd API /Applications/Pd-0.54-1.app/Contents/Resources/src/m_pd.h
++++ info: making target all in lib grambidec~
++++ info: making grambidec.pd_darwin.o in lib grambidec~
cc -DPD -I "/Applications/Pd-0.54-1.app/Contents/Resources/src" -DUNIX -DMACOSX -I /sw/include -Wall -Wextra -Wshadow -Winline -Wstrict-aliasing -O3 -ffast-math -funroll-loops -fomit-frame-pointer -arch arm64 -mmacosx-version-min=10.6 -o grambidec.pd_darwin.o -c grambidec.c
grambidec.c:41:24: warning: unused variable 'x' [-Wunused-variable]
t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]);
^
grambidec.c:43:16: warning: unused variable 'APin2' [-Wunused-variable]
t_sample *APin2 = (t_sample *)(w[3]);
^
grambidec.c:44:16: warning: unused variable 'APin3' [-Wunused-variable]
t_sample *APin3 = (t_sample *)(w[4]);
^
grambidec.c:45:16: warning: unused variable 'APin4' [-Wunused-variable]
t_sample *APin4 = (t_sample *)(w[5]);
^
grambidec.c:69:24: warning: unused variable 'x' [-Wunused-variable]
t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]);
^
grambidec.c:78:23: warning: variable 'sample2' set but not used [-Wunused-but-set-variable]
t_sample sample1, sample2, sample3, sample4;
^
grambidec.c:78:41: warning: variable 'sample4' set but not used [-Wunused-but-set-variable]
t_sample sample1, sample2, sample3, sample4;
^
grambidec.c:102:24: warning: unused variable 'x' [-Wunused-variable]
t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]);
^
grambidec.c:113:41: warning: variable 'sample4' set but not used [-Wunused-but-set-variable]
t_sample sample1, sample2, sample3, sample4;
^
grambidec.c:143:24: warning: unused variable 'x' [-Wunused-variable]
t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]);
^
grambidec.c:185:24: warning: unused variable 'x' [-Wunused-variable]
t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]);
^
grambidec.c:228:24: warning: unused variable 'x' [-Wunused-variable]
t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]);
^
grambidec.c:282:24: warning: unused variable 'x' [-Wunused-variable]
t_grambidec_tilde *x = (t_grambidec_tilde *)(w[1]);
^
grambidec.c:351:37: warning: unused parameter 's' [-Wunused-parameter]
void *grambidec_tilde_new(t_symbol *s, int argc, t_atom *argv) //, t_floatarg test
^
grambidec.c:473:5: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction]
CLASS_MAINSIGNALIN(grambidec_tilde_class, t_grambidec_tilde, APf);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Pd-0.54-1.app/Contents/Resources/src/m_pd.h:529:59: note: expanded from macro 'CLASS_MAINSIGNALIN'
class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0)
^ ~~~~~~~~~
15 warnings generated.
++++ info: linking objects in grambidec.pd_darwin for lib grambidec~
cc -undefined suppress -flat_namespace -bundle -arch arm64 -mmacosx-version-min=10.6 -o grambidec.pd_darwin grambidec.pd_darwin.o -lc
ld: warning: -undefined suppress is deprecated
ld: warning: -undefined suppress is deprecated
++++ info: making grambiman.pd_darwin.o in lib grambidec~
cc -DPD -I "/Applications/Pd-0.54-1.app/Contents/Resources/src" -DUNIX -DMACOSX -I /sw/include -Wall -Wextra -Wshadow -Winline -Wstrict-aliasing -O3 -ffast-math -funroll-loops -fomit-frame-pointer -arch arm64 -mmacosx-version-min=10.6 -o grambiman.pd_darwin.o -c grambiman.c
grambiman.c:64:24: warning: unused variable 'x' [-Wunused-variable]
t_grambiman_tilde *x = (t_grambiman_tilde *)(w[1]);
^
grambiman.c:139:24: warning: unused variable 'x' [-Wunused-variable]
t_grambiman_tilde *x = (t_grambiman_tilde *)(w[1]);
^
grambiman.c:226:24: warning: unused variable 'x' [-Wunused-variable]
t_grambiman_tilde *x = (t_grambiman_tilde *)(w[1]);
^
grambiman.c:252:32: warning: variable 'sample3' set but not used [-Wunused-but-set-variable]
t_sample sample1, sample2, sample3, sample4, sample10;
^
grambiman.c:306:24: warning: unused variable 'x' [-Wunused-variable]
t_grambiman_tilde *x = (t_grambiman_tilde *)(w[1]);
^
grambiman.c:370:37: warning: unused parameter 's' [-Wunused-parameter]
void *grambiman_tilde_new(t_symbol *s, int argc, t_atom *argv)
^
grambiman.c:436:5: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction]
CLASS_MAINSIGNALIN(grambiman_tilde_class, t_grambiman_tilde, APf);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Pd-0.54-1.app/Contents/Resources/src/m_pd.h:529:59: note: expanded from macro 'CLASS_MAINSIGNALIN'
class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0)
^ ~~~~~~~~~
7 warnings generated.
++++ info: linking objects in grambiman.pd_darwin for lib grambidec~
cc -undefined suppress -flat_namespace -bundle -arch arm64 -mmacosx-version-min=10.6 -o grambiman.pd_darwin grambiman.pd_darwin.o -lc
ld: warning: -undefined suppress is deprecated
ld: warning: -undefined suppress is deprecated
++++ info: making grambipan.pd_darwin.o in lib grambidec~
cc -DPD -I "/Applications/Pd-0.54-1.app/Contents/Resources/src" -DUNIX -DMACOSX -I /sw/include -Wall -Wextra -Wshadow -Winline -Wstrict-aliasing -O3 -ffast-math -funroll-loops -fomit-frame-pointer -arch arm64 -mmacosx-version-min=10.6 -o grambipan.pd_darwin.o -c grambipan.c
grambipan.c:423:5: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction]
CLASS_MAINSIGNALIN(grambipan_tilde_class, t_grambipan_tilde, APf);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Pd-0.54-1.app/Contents/Resources/src/m_pd.h:529:59: note: expanded from macro 'CLASS_MAINSIGNALIN'
class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0)
^ ~~~~~~~~~
1 warning generated.
++++ info: linking objects in grambipan.pd_darwin for lib grambidec~
cc -undefined suppress -flat_namespace -bundle -arch arm64 -mmacosx-version-min=10.6 -o grambipan.pd_darwin grambipan.pd_darwin.o -lc
ld: warning: -undefined suppress is deprecated
ld: warning: -undefined suppress is deprecated
++++info: target all in lib grambidec~ completed
This is my Makefile:
# Makefile for mylib
lib.name = grambidec~
class.sources = grambidec.c grambiman.c grambipan.c
datafiles = grambilib-help.pd readme.md
include Makefile.pdlibbuilder
Any suggestion? Thanks again!
Help compiling a library for macOS M1 series
@icarordp you need to install the mac command line tools and change the gcc command (might be able to replace w/ clang? plain 'gcc might work too). Right now it looks like it's trying to compile for iphone.
anyways the makefile seems quite outdated, barely anyone uses pd-extended (you also need some pd directory to link against and find m_pd.h)
You might have luck with a newer version of the makefile? Is it from your professor?
You can try transitioning the build system to use pd-lib-builder, which is standard these days https://github.com/pure-data/pd-lib-builder
HID object on Raspberry Pi?
Has anyone managed to get an HID object working on Raspberry Pi? I've tried compiling this one but haven't succeeded yet. This is the error I'm getting:
/usr/bin/ld: cannot find -lusbhid_map: No such file or directory
collect2: error: ld returned 1 exit status
make[1]: *** [/home/pi/hid-pd-external/deps/pd-lib-builder/Makefile.pdlibbuilder:885: hid.pd_linux] Error 1
make[1]: Leaving directory '/home/pi/hid-pd-external/src/hid'
make: *** [Makefile.linux:20: all] Error 2```
I have installed libhidapi and libusb as described in the Readme, so I'm a bit confused.
It's in Deken on macOS and works great, I'd love to get it working on a Pi, if anyone has any tips!


