[PD-dev] makefile template

IOhannes m zmoelnig zmoelnig at iem.at
Tue Oct 18 08:49:12 CEST 2011


-----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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk6dIWQACgkQkX2Xpv6ydvR6RQCgsYj1h1RtBM/em81QWNY8lLvD
g0cAnRROFc0t0/YlR6K153+itliVfAbA
=7EHE
-----END PGP SIGNATURE-----

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3636 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20111018/3af098fe/attachment-0001.bin>


More information about the Pd-dev mailing list