Hi Michael, all,
Michael McGonagle said this at Thu, 15 May 2003 23:40:33 -0500:
Hello everyone,
It seems that there still isn't an "accepted" method for makefiles to use on Mac OS X for externals.
...
Other external makefiles (for Mac OS X) change the last line, and add one more:
rm -f $*.o ../$*.pd_darwin ln -s $*/$*.pd_darwin ..
This last line, from what I can tell, seems to assume that all external source files will be stored under the "extra" folder, or at least in a folder "relative" to where the source is stored and where the external binary is stored (or linked). It also assumes that the external is stored in a folder by the same name as the external, itself. (This is not a big deal, just another "hidden" dependancy).
My approach was to be pretty agnostic and follow people's precedents for cleaning/making/installing on other platforms.
However, I would discourage stuff like the above in the pd_darwin make rules, because it conflates cleaning and installing with the main step. I really dislike the practice of assuming where the external will be *built*.
This is not done on other Unix Platform makefile processes. So why is it done for Mac OS X? It just adds to the "configuration" confusion.
Agreed.
From other discussions of this topic, a suggestion was made to change the second line of Miller's to:
cc -bundle -bundle_loader <path_to_PD> -flat_namespace -o
$*.pd_darwin $*.o <other_object_files_to_include>
I do believe this is the best way, because it actually checks for missing symbols (and therefore a class of bug). No harm with the "suppress" method, really, but it's less "correct" in a sense.
Cheers, adam