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@iem.at http://lists.puredata.info/listinfo/pd-dev
------------------------------------------------------------------------
There is no way to peace, peace is the way. -A.J. Muste