-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2011-10-18 05:01, Patrice Colet wrote:
Also I still have same question about pd includes, but more accurately...
i missed that question :-)
gui externals needs m_imp.h, because of this:
[...]
c_externdir->s_name and c_name->s_name are declared in m_imp.h but it's not in pd/include, there only is m_pd.h.
where did you get the "pd/include" from? i don't have it on my system.
So do I have to add this file to my project or, do I have to modify the Makefile to look for it? For the moment I keep a copy of m_imp.h in my project it's easier to handle ^^.
you should definitely NOT keep it in your project. unlike m_pd.h, m_imp.h is a private header, things in there might change significantly from release to release. this is not an empty threat, changes in the private header files are the reason why some nifty (mainly gui related) externals compiled with 0.41 will crash when used on 0.42.
so if you must include m_imp.h, you should always use the one that comes with the version of Pd that it relates to. therefore you must tell the buld process where it should look for those headers. in template/Makefile, this is done via the "PD_INCLUDE" variable. it defaults to something like /usr/local/include/pd (ah, i guess your "pd/include" above was meant to be "include/pd"?), which is where headers are expected on un*x like systems adhering to the FSS. w32 does not really care about FSS, hence the default doesn't really work.
there are a couple of workarounds to get your build going: set the PD_INCLUDE to the path of your Pd-headers (or sources) when building. something like: $ make PD_INCLUDE=/c/cygdrive/Programmas/Pd/src should do the trick. afair, the Pd-extended nightly builds will set the PD_INCLUDE to point to the correct path automatically.
if this is too much annoying during the test phase and if you are working from a "standard layout" (with Pd-sources in ..../pd/src and your external in ..../externals/yourexternal) you might _additionally_ add "../../pd/src" to the includes in ALL_CXXFLAGS _after_ PD_INCLUDE. something like Makefile:57 ALL_CFLAGS = -I"$(PD_INCLUDE)" -I../../pd/src
it should be after the PD_INCLUDE so that the user can point PD_INCLUDE to the directory with the correct m_imp.h, and use ../../pd/src only as fallback.
fgamdr IOhannes