Man Linux: Main Page and Category List


       gtk2hsC2hs - C->Haskell Interface Generator


       gtk2hsC2hs [OPTIONS]...  [ header-file ] binding-file


       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.


       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

       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.


       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

       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.


       If you have more than one option that you want  to  give  to  the  pre-
       processor, use multiple --cppopts= flags.


       Please report bugs and feature requests in the Gtk2Hs trac

       or to the Gtk2Hs mailing list


       C->Haskell  Compiler,  version  0.13.4  (gtk2hs  branch)  Copyright (c)
       [1999..2004] Manuel M T Chakravarty <>


       This page was addapted from the c2hs(1) manpage, by Marco Túlio Gontijo
       e Silva <> 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 <> for the Debian GNU/Linux system (but may be used by others).