NAME
gtk2hsC2hs - C->Haskell Interface Generator
SYNOPSIS
gtk2hsC2hs [OPTIONS]... [ header-file ] binding-file
DESCRIPTION
This manual page briefly describes the gtk2hsC2hs command. It’s a
modified version of the c2hs(1) command, which is a helper program
necessary to build the Gtk2Hs suite of libraries.
OPTIONS
The programs follow the usual GNU command line syntax, with long
options starting with two dashes (‘-’). A summary of options are
included below. For a complete description, see the other
documentation.
gtk2hsC2hs accepts the following options:
-h, -?, --help
brief help
-v, --version
show version information
-c CPP, --cpp=CPP
use executable CPP to invoke C preprocessor
-C CPPOPTS, --cppopts=CPPOPTS
pass CPPOPTS to the C preprocessor
-o FILE, --output=FILE
output result to FILE (should end in .hs)
-t PATH, --output-dir=PATH
place generated files in PATH
-p PLATFORM, --platform=PLATFORM
platform to use for cross compilation
-k, --keep
keep pre-processed C header
-l NAME, --lock=NAME
wrap each foreign call with the function NAME
-d TYPE, --dump=TYPE
dump internal information (for debugging), where TYPE is one of:
· trace trace compiler phases
· genbind trace binding generation
· ctrav trace C declaration traversal
· chs dump the binding file (adds .dump to the name)
header-file is the header file belonging to the marshalled library. It
must end with suffix .h.
binding-file is the corresponding Haskell binding file, which must end
with suffix .chs.
PLATFORM The platform name can be one of: x86_64-linux. i686-linux.
m68k-palmos. This allows for cross-compilation, assuming the rest of
your toolchain supports that. The default is the current host platform.
The most useful of these options is probably --cppopts (or -C). If the
C header file needs any special options (like -D or -I) to go through
the C pre-processor, here is the place to pass them.
EXAMPLES
When used directly, gtk2hsC2hs is usually called as:
gtk2hsC2hs lib.h Lib.chs
where lib.h is the header file and Lib.chs the Haskell binding module,
which define the C- and Haskell-side interface, respectively. If no
errors occur, the result is a pure Haskell module Lib.hs, which
implements the Haskell API of the library.
A more advanced call may look like this:
gtk2hsC2hs --cppopts=-I/some/obscure/dir --cppopts=-DEXTRA lib.h
Lib.chs
Often, lib.h will not be in the current directory, but in one of the
header file directories. Apart from the current directory, C->Haskell
looks in two places for the header: first, in the standard include
directory of the used system, this is usually /usr/include and
/usr/local/include; and second, it will look in every directory that is
mentioned in a -IDIR option passed to the pre-processor via --cppopts.
CAVEATS
If you have more than one option that you want to give to the pre-
processor, use multiple --cppopts= flags.
BUGS
Please report bugs and feature requests in the Gtk2Hs trac
http://hackage.haskell.org/trac/gtk2hs/
or to the Gtk2Hs mailing list gtk2hs-devel@lists.sourceforge.net
COPYRIGHT
C->Haskell Compiler, version 0.13.4 (gtk2hs branch) Copyright (c)
[1999..2004] Manuel M T Chakravarty <chak@cse.unsw.edu.au>
AUTHOR
This page was addapted from the c2hs(1) manpage, by Marco Túlio Gontijo
e Silva <marcot@debian.org> for the Debian GNU/Linux system (but may be
used by others), which was mainly assembled from the original
documentation of c2hs.
The c2hs(1) was written by Michael Weber <michael.weber@post.rwth-
aachen.de> for the Debian GNU/Linux system (but may be used by others).