[PD-dev] libpd search paths

Joseph Larralde joseph.larralde at gmail.com
Fri Feb 15 15:11:25 CET 2019


For the moment I'm using the default Makefile of libpd (version tagged 
0.11.0), which makes use of the -DHAVE_LIBDL flag.
It can't find the HAVE_LIBPD definition anywhere, though ... is this 
normal ?
Sorry for my lack of knowledge of autotools, makefile, etc, but should I 
add `HAVE_LIBPD =` at the beginning of the Makefile ? (e.g. after 
`LIBPD_IMPLIB =` and `LIBPD_DEF =` lines ?)
Or should it be added to the cflags with -DHAVE_LIBPD ?

I added both and the addon builds fine (I got rid of the char * related 
errors by adding the -fpermissive flag), but I still get stuck when 
trying to run the js automated tests :
they fail with an `undefined symbol` error, the undefined symbol being 
`canvas_undo_undo`.
Sounds familiar to anybody ?
I have no idea how to solve this ...

Thanks,
Joseph

Le 14/02/19 à 14:32, Dan Wilcox a écrit :
> If you're building libpd via a custom Makefile, see the flags used in 
> the libpd Makefile. Also, if you're using the libpd Makefile, 
> double-check that HAVE_LIBPD is being defined.
>
> On Thu, Feb 14, 2019 at 2:30 PM Joseph Larralde 
> <joseph.larralde at gmail.com <mailto:joseph.larralde at gmail.com>> wrote:
>
>     Thank you Dan for your explanation.
>     And thanks everyone for helping.
>
>     Yesterday I tried to recompile the node addon to use it locally
>     but got into other trouble.
>     I first recompiled libpd with MULTI=false after Christof's
>     suggestion (to enable the PDINSTANCE flag) but node-gyp was the
>     first wall I was still hitting.
>     It seems there are still some slight updates I need to do in the
>     addon's code (I got some char * vs const char * error).
>     Your 3rd point makes obvious sense and I'll try this in the first
>     place today.
>
>     Joseph
>
>     Le 14/02/19 à 13:07, Dan Wilcox a écrit :
>>     A few things:
>>
>>     1. libpd does not use any paths, settings, audio/midi backends,
>>     etc from desktop pd. It is only the core and less than "pd
>>     without the gui." This is by design as it makes no assumptions
>>     about the environment since it can be running in all manner of
>>     places. This means it will only search paths relative to an
>>     opened patch and those added explicitly by
>>     llibpd_add_to_search_path().
>>
>>     2. Loading an external, whether it was compiled against 0.47 or
>>     0.49 should work as, largely, the pd API has not changed that much.
>>
>>     3. libpd needs to be built with -DHAVE_LIBDL in order to be able
>>     to load separate, precompiled externals.
>>
>>     4. Some environments do *not* allow loading dynamic libraries for
>>     legal/security reasons, ie. iOS. I don't this is the problem, but
>>     it's good to know...
>>
>>     I image you're issue is more to do with 3.
>>
>>         Message: 1
>>         Date: Wed, 13 Feb 2019 15:04:19 +0100
>>         From: Joseph Larralde <joseph.larralde at gmail.com
>>         <mailto:joseph.larralde at gmail.com>>
>>         To: Giulio Moro <giuliomoro at yahoo.it
>>         <mailto:giuliomoro at yahoo.it>>, Lucas Cordiviola
>>                 <lucarda27 at hotmail.com
>>         <mailto:lucarda27 at hotmail.com>>, pd-dev <pd-dev at lists.iem.at
>>         <mailto:pd-dev at lists.iem.at>>
>>         Subject: Re: [PD-dev] libpd search paths
>>         Message-ID: <2354c1c4-e6db-9143-1402-76dcd37b43a8 at gmail.com
>>         <mailto:2354c1c4-e6db-9143-1402-76dcd37b43a8 at gmail.com>>
>>         Content-Type: text/plain; charset="utf-8"; Format="flowed"
>>
>>         Mmmh you might have found the clue ...
>>         Actually I built the externals against pd version 0.49-0 and
>>         it makes
>>         sense that they load properly with the same version.
>>         node-libpd comes with an arm libpd binary which seems to come
>>         from an
>>         older version of pd (added 1 year ago).
>>         I can already tell that it's not an architecture issue because
>>         everything is working on my pi : the addon is loading and
>>         running
>>         abstractions when used in a node program, and pd is loading
>>         and running
>>         my externals.
>>         Only loading my externals from node-libpd doesn't work.
>>         Still trying to get a local version of node-libpd to work ...
>>         then I'll
>>         replace the libpd.so with one that I'll build from the latest
>>         version.
>>         I can't see another explanation.
>>         Do you know something about incompatibilities between
>>         different versions
>>         of pd ?
>>         The libpd.so used by the addon is probably not older than 0.47
>>
>>
>>
>>     -- 
>>     Dan Wilcox
>>     @danomatika
>>     danomatika.com <http://danomatika.com>
>>     robotcowboy.com <http://robotcowboy.com>
>
>
>
> -- 
> Dan Wilcox
> @danomatika
> danomatika.com <http://danomatika.com>
> robotcowboy.com <http://robotcowboy.com>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20190215/74ac869a/attachment.html>


More information about the Pd-dev mailing list