Man page - gtk2hsc2hs(1)

Packages contains this manual

Manual

GTK2HSC2HS

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLES
CAVEATS
BUGS
COPYRIGHT
AUTHOR

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 -I DIR 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).