[PD-dev] pd-double: how to selectively build external libs for development?
Hans-Christoph Steiner
hans at at.or.at
Mon Oct 17 18:09:52 CEST 2011
On Oct 17, 2011, at 8:29 AM, katja wrote:
> On Wed, Oct 12, 2011 at 4:27 AM, Hans-Christoph Steiner
> <hans at at.or.at> wrote:
>
>> I recommend removing the pd from svn and replacing it with the pd-
>> double.git
>> folder named as 'pd'. THen its all the same tree. That'll save
>> you a lot
>> of headaches.
>
> In the end, this seems to be the best option indeed, for selective
> development of external libs in the attempt to make them
> double-precision-ready. Description of all the steps required:
>
> - clone pd-double.git ("pd-double')
> - checkout pure-data.svn ("pd-svn")
> - replace sources in pd-svn/pd with the sources from pd-double,
> - optionally hack pd-svn/pd/src/m_pd.h to hardcode float precision
> to your need
> - from within pd-svn/pd, build pd with ./autogen.sh && ./configure
> && make
> - from within pd-svn/externals, selectively build a lib, like so:
> make DESTDIR=/path/to/your/pd-svn creb_clean creb creb_install
> - the external lib will be installed in pd-svn/pd/extra
> - skip pd-svn/pd when updating, or repeat the replace procedure
> after updating
>
> In order to use pd together with the external lib(s) in pd-svn/pd/
> extra:
> - in pd-svn/pd, create a directory named 'bin'
> - copy or move executables pd, pd-watchdog, pdreceive and pdsend from
> pd-svn/pd/src to pd-svn/pd/bin
> - a copy of executable pd must remain in pd-svn/pd/src for the linker,
> if you want to compile more
> - start pd from pd-svn/pd/bin
>
> None of the stuff in pd-svn/pd/extra is loaded at start up. In the
> help browser, corresponding help files are visible, but trying to load
> these files from the browser will make pd hang. I have observed this
> behaviour with all local ("uninstalled") test builds of vanilla Pd,
> with old buildsystem and new buildsystem alike.
>
> The only way to instantiate external objects is by using namespaces.
> Once the object created, it's corresponding help file can be found in
> the regular way. Test patches must be designed with namespaces for all
> external objects.
If you want to have default preferences loaded, which load libraries,
etc. at startup, you should be able to copy the Pd-extended prefs file
and stick it into two levels down from the 'pd' executable, i.e.:
pd-svn/pd/src/pd
pd-svn/org.puredata.pd.plist
> Now that I have a way to develop, albeit rather cumbersome, I started
> working on creb, one of the libs which refuse to be compiled with
> double precision. There is a lot of type punning involved, for various
> purposes. It took me a couple of hours to rewrite things in such a way
> as to get it compiled. Testpatches must still be developed. Helpfiles
> do not always give sufficient proof of proper functioning. Only when
> tests have proven proper functioning, code can be commited to
> pure-data.svn, since there is no development branch for this.
> There's a few more libs which defy double precision compilation. So
> it's obvious now, that even a first test build of pd-double on the
> autobuild system is still far away. All "pd-double" nightly builds so
> far have been single precision, or at best a double precision core
> with single precision externals. Or a core-only build, like
> Pd-0.43.1-double-20111016-ubuntu-lucid-amd64.deb.
Ok, I think for now, we can just force double precision on all
platforms, and skip the bitness detection. That'll give you and me a
nightly build we can test with (I run Ubuntu/natty 32-bit and Mac OS X
10.5). Then once we have nailed down complete double precision
builds, we can work on the auto-detection. How does that sound?
> I would propose that we do not publicly announce pd-double extended
> test builds before they are really there. In the meantime, pointing to
> pd-double.git is a good thing. From there it's easy to build one's own
> vanilla pd for double precision. I'll edit the announcement on
> puredata.info accordingly.
I agree, that makes sense.
Also, do you ever use IRC? I'm in #dataflow a lot, I'm _hc there. Its
a great way to work thru a lot of these kinds of dev setup issues.
.hc
----------------------------------------------------------------------------
Man has survived hitherto because he was too ignorant to know how to
realize his wishes. Now that he can realize them, he must either
change them, or perish. -William Carlos Williams
More information about the Pd-dev
mailing list