On Feb 9, 2008, at 8:03 AM, Bertram Felgenhauer wrote:

Dave Bayer wrote:
What is the best way to embed an arbitrary file in a Haskell program?

I don't know the best way. I'd probably use FFI.

<snip>

The idea is then to use some existing tool that embeds binary
data in C programs.

Since you're specifically interested in OS X, I'd follow this advice, and then look at /usr/include/mach-o/getsect.h. This header declares a function

extern char *getsectdata(
    const char *segname,
    const char *sectname,
    unsigned long *size);

which seems like it'll give you all of the data in one of the sections of the executable file for the currently running program. I haven't used it, though, so I'm not positive about how it works.

I think it's then fairly straightforward to tell the linker to just include an arbitrary file into a section with a name of your choice.

Aaron
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to