Hello all. I have a question about automatic function wrappers with respect to bulk importing a C library.
I am working with a C library (call it 'LibX') that I want to use in Perl. The C-Cookbook describes this use case, but only gives an example for importing one single function from the library. What I want to do is programatically bulk import not just every function but every constant and enumerated type using Inline::C. This is in the interests of Laziness; there are a lot of functions, and I'm too lazy to type them all in. Also, since this library is a 3rd party product, the C code compiles out to multiple architectures, and thus the function prototypes change according to the architecture. (I'm only interested in one architecture, but if I ever switch to a different one, it would be a real hassle to go through and hand change out all of the prototypes.) My strategy to do this is as follows: first create a simple C program ----------- #include <LibX.h> void main() {} ----------- and then compile this program out with a -E option ( stop after the preprocessing stage; send output to stdout ). This gives me access to all of the function prototypes, constants, and enumerated types. But this is where I get stuck: in order to drag the function prototypes into a "use Inline => C qq( #list of functions )" block of Perl code, I have to 1) parse the output of the gcc -E command, 2) write code that writes Perl code declaring the new package LibX and using Inline. Step 2) isn't so bad, but parsing the C code/-E output in step 1) seems a little scary. So, some general questions.. 1) Has anyone tried to do this before? Google search and search on [EMAIL PROTECTED] archives gives me nothing. 2) Is the strategy described above sound? Any other ideas on how to do this? 3) Is it possible to import C constants and enumerated types using Inline::C? Cookbook doesn't talk about this use case. Thanks in advance, Lyle