[PD-dev] general makefile question

Hans-Christoph Steiner hans at at.or.at
Sat Dec 4 00:58:01 CET 2010


On Dec 3, 2010, at 5:03 AM, IOhannes zmölnig wrote:

> On 12/02/2010 09:40 PM, Hans-Christoph Steiner wrote:
>>
>> On Dec 2, 2010, at 3:11 PM, Bryan Jurish wrote:
>>
>>> Maybe I'm misreading this thread, but wasn't there something like:
>>>> something like 'PD_LDFLAGS="-Wl,--export-dynamic  -shared $ 
>>>> (LDFLAGS)"'
>>>> and then consequently using $(PD_LDFLAGS) in the linking stage?
>
> yes, this would be my suggestion.
>
>>
>> Sorry for the complaint, the bug in question cost me a full day of  
>> time
>> re-doing really unfun stuff.  That's a full day of my free, unpaid
>> time.  Code has bugs, therefore it needs testing, that's all I'm  
>> saying.
>
> sure.
> however, in order to properly test, it would be great to have a test
> defined (even if it only was an instruction like, apply your changes  
> to
> library X (because this uses feature A) and library Y (using feature  
> A &
> B), then run
> $ make
> $ make clean
> $ make install
> $ make uninstall
> $ make install DESTDIR="/tmp"
> $ make uninstall DESTDIR="/tmp"
> $ make dist
> and see if all this succeeds.
>
> doing a "thorough test" on the template Makefile without having a test
> defined, is probably taking more time then a full day (and yes, i do a
> lot of work in my free unpaid time as well)

For the bug in question, we'd need a way to test for changes in which  
files are installed and included in the dist tarball.  I guess the  
nightly build could log the file list and then a compare could be  
scripted.  I haven't thought of a great way to do this.


>> So I say take the template Makefile and go nuts with it, fix all the
>> bugs add features, but do it in a branch, thoroughly test it, and  
>> then
>> we take it from there.
>
> i switched the build-system of iem/syslog to my modded version of the
> template Makefile and afaict, "everything" works:
>
> https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/iem/syslog/Makefile
>
> "everything" excludes the 'uninstall' target (non-existant it seems)  
> and
> an unnecessary complicated procedure to install into
> /usr/lib/pd/extra
> (though i won't change that for now)
>
>
> sidenote: in this makefile i am using ALL_*FLAGS rather than  
> PD_*FLAGS;
> i have no opinion whatsoever on the exact prefix of the variables;  
> ALL_*
> is "suggested" on the Gnu standards page, and PD_* being more "Pd"  
> than
> "Pd-external".
>
> probably "PDEXT_" would be a proper prefix.

I like the ALL_ prefix as long as it really means "all", meaning  
something like this:

ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS)

.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