On Jul 25, 2005, at 11:34 AM, Dan Smith wrote:
I am having so many problems that I am not quite sure what questions to ask... but three of them are:
a) If I start with a "dynamic Carbon library" template and a "bundle" library style, it builds with the ld tool... but it will not accept the -bundle option because "powerpc-apple-darwin8-gcc-4.0.0: -bundle not allowed with -dynamiclib". However, if I use a "static Carbon library" template it uses libtool and ranlib instead of ld, and will not accept the -bundle option for other reasons.
Not knowing what the Harlequin RIP really expects, I don't know how I can help you here. Perhaps you could dump an outline of what a functional "plugin device driver" looks like, so we can figure out what category it fits into?
b) I can include a .rez file and add a "Build ResourceManager resources" build phase to a static or dynamic library project, but even though the phase is visible and shows DisableOutput.rez as an input file, the rez tool never gets invoked.
Well, Rez and ResMerger are different tools, and take different input, neither of which is a .rez file.
Rez takes a .r file and generates a .rsrc file ResMerger takes one or more .rsrc files and merges them into a .rsrc file or into the resource fork of some other file (such as a CFM two-fork executable)
It looks from the makefile like they're using .rez for Rez source, but trying to rez directly into the linked executable. At minimum they probably need to add a -useRF flag to make sure it goes into the resource fork, though I'm not sanguine that a Mach-O bundle library will particularly enjoy having a resource fork. c) I can build as an application, which of course does not build a library for me. This does, however, invoke the rez tool and does compile resources--but the resources are always compiled as an individual file in the data fork; no options I can discover will get it to compile into the resource fork of an existing file.
That's what the ResourceManager Resources build phase does, but it always places the resources in the data fork of a separate resource file, which the Mac OS X bundle, package, and plugin loaders expect.
If you must...
you can add a shell script build phase that uses /Developer/Tools/DeRez on the product of ResMerger and pipes it to /Developer/Tools/Rez -useRF to blast it into the resource fork of the plugin.
Chris |