Provided by: c2hs_0.28.6-1build3_amd64 bug

NAME

       c2hs - C->Haskell Interface Generator

SYNOPSIS

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

DESCRIPTION

       This  manual page briefly describes the c2hs command.  For more details, refer to the main documentation,
       which is available in various other formats, including SGML and HTML; see below.

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.

       c2hs accepts the following options:

       -h, -?, --help
              brief help

       -v, --version
              show version information

       --numeric-version
              show version number

       -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, --copy-library
              copy `C2HS' library module to the current directory

       -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

       The easiest way to use the C->Haskell Interface Generator is via Cabal.  Cabal knows about .chs files and
       will run c2hs automatically, passing the appropriate flags.

       When used directly, c2hs is usually called as:

       c2hs 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:

       c2hs --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.

SEE ALSO

       User guide /usr/share/doc/c2hs-0.15.1/html/c2hs.html

       Home page http://www.cse.unsw.edu.au/~chak/haskell/c2hs/

BUGS

       Please report bugs and feature requests in the c2hs trac

       http://hackage.haskell.org/trac/c2hs/

       or to the C->Haskell mailing list c2hs@haskell.org

COPYRIGHT

       C->Haskell Version 0.15.1 Copyright (c) [1999..2007] Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>

AUTHOR

       This manual page was mainly assembled from the original documentation.

       It  was written by Michael Weber <michael.weber@post.rwth-aachen.de> for the Debian GNU/Linux system (but
       may be used by others).