[PD-dev] pd-extended build system questions

Hans-Christoph Steiner hans at eds.org
Sun Jan 7 20:43:09 CET 2007


On Jan 7, 2007, at 1:28 PM, Georg Holzmann wrote:

> (ups sorry - this should be for pd-dev)
>
> Hallo Hans+list!
>
> I just added PDContainer to the build system and have some questions:
>
> o) I have to use g++, otherwise I cannot link the binary - is this  
> okay
> for the compile farm ?

That's fine.  There are common targets for compiling .c, .cc,  
and .cpp files in externals/Makefile.  These work on all platforms  
and properly handle having all the variables like CFLAGS overloaded  
so that we can do platform-specific builds.  Look around line 88 in  
externals/Makefile.  Above it you can see all the platform-specific  
build flags.

> o) is it now, with the [declare] object, still necessary to make a
> binary out of each pd object ?
> (I made now one pdcontainer.pd_linux and installed it to
> /pd/extra/pdcontainer/ - but I think I have to split this into  
> binaries
> for each object ?)

If you want to be able to load each class individually, then they  
need to be separate files, no matter which version of Pd.  Everything  
in Pd-extended except Gem, PDP, and PiDiP are compiled this way  
(Cyrille recently converted pmpd).  The namespace stuff won't work  
with multiple classes in one file, but you can still use such a  
library in Pd-extended, its just less than ideal.

> o) in externals/Makefile:
>
> ifeq ($(OS_NAME),linux)
> [...]
>   DYLIB_EXTENSION = dll
> [..]
> endif
> ifeq ($(OS_NAME),windows)
> [...]
>   DYLIB_EXTENSION = so
> [...]
> endif
>
> shouldn't this be exchanged ? (dll for windows and so for linux ?)

Yup, thanks for spotting that.  That stuff is not used yet.  That  
will be for compiling shared code as a separate dynamic library, so  
that things like Gem and PDP can be built as one-class-per-file  
libdir format.  If you have a lot of shared code in PDContainer, then  
maybe you could try to get this working.  Basically, you would build  
all the shared code into a pdcontainer.(so|dylib|dll), then each  
class as my_class.pd_extension.  Each class would have to know how to  
find the shared library, but that shouldn't be too hard.  Thomas  
Grill has built Flext like this.

> o) are there plans to make debian packages too ? (or what has to be  
> done
> to make them work ?)

That would be lovely.  A number of people have talked about making  
Debian packges from the Pd-extended build system, I don't think it  
would be that hard.  But so far no one has done it.  I would happily  
assist.

.hc

>
>
> Thanks,
> LG
> Georg
>
>
> _______________________________________________
> PD-dev mailing list
> PD-dev at iem.at
> http://lists.puredata.info/listinfo/pd-dev


------------------------------------------------------------------------

There is no way to peace, peace is the way.       -A.J. Muste






More information about the Pd-dev mailing list