So I'm reading the Perl 5.10 release notes, and it says "The Perl installation is now relocatable."

Hmmm. Time to question assumptions, maybe?

CamelBones' Achilles heel has always been the requirement to support several different OS-installed Perl versions. For historic reasons, libperl is not binary-compatible from one version to the next, and couldn't be relocated from its original installation location. That led to the current requirement of having to link CamelBones with the Apple-supplied libperl. Linking it directly to one version of libperl would have restricted a CamelBones app to a single OS version, and having a different "binary adapter" bundle for each of the three supported Perls was a workaround for that. CB apps link to a stub that's not directly linked to libperl; this stub decides at runtime which of the available bundles to load.

This has not only been painful to maintain, it has also been a major obstacle with each new OS release, forcing apps that lack the required adapter bundle to be updated. Using a shared framework in /Library was verboten, because that would have required a frowned-upon installer, so each app has its own embedded framework that must be updated separately.

I'm not second-guessing that decision. It's ugly, but the alternatives were worse. But the ugliness was always there, bringing up the same problems with each new OS release.

But with, "the Perl installation is now relocatable," one of the two basic premises that led to the necessity of this clumsy workaround is no longer true! That being the case, I think it might be time to simplify things. Would it be unreasonable to just build a static libperl 5.10 using GCC 4, the 10.5 SDK and a 10.3.9 deployment target, and link that directly to CamelBones? Copying any necessary module or other files would be easy enough to do with a shell script build step - you wouldn't want to copy the whole 36MB tree. The project file would be simplified too, with all of the redundant platform-specific targets disappearing.

Coming soon then, to an SVN branch near you. :-)

sherm--