GTK2HSTYPEGEN(1) General Commands Manual GTK2HSTYPEGEN(1)NAME
gtk2hsTypeGen - Program to generate Gtk's object hierarchy in Haskell
SYNOPSIS
gtk2hsTypeGen [--tag=tag ...] [--lib=lib] [--prefix=prefix] [--modname=modName] [--import=[*]importName ...] [--forward=[*]fwdName ...]
[--destructor=destrName] [--hierarchy=hierName]
DESCRIPTION
This manual page briefly describes the gtk2hsTypeGen command. It's 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.
gtk2hsTypeGen accepts the following options:
--tag=tag
generate entries that have the tag tag. Specify `default' for types without tags
--lib=lib
set the lib to use in the c2hs {#context #} declaration (the default is `gtk')
--prefix=prefix
set the prefix to use in the c2hs {#context #} declaration (the default is `gtk')
--modname=modName
specify module name if it does not match the file name, eg a hierarchical module name
--import="[*]"importName
additionally import this module without re-exporting it. Use an asterix as prefix if the import should be a .chs import statement,
as well as exported from the generated module.
--forward="[*]"fwdName
specify a number of modules that are imported. Use an asterix as prefix if the import should be a .chs import statement, as well
as exported from the generated module.
--destructor=destrName
specify a non-standard C function pointer that is called to destroy the objects
--hierarchy=hierName
the name of the file containing the hierarchy list, defaults to the built-in list
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
AUTHOR
This page was addapted from the gtk2hsHookGenerator(1) manpage, by Marco Tulio Gontijo e Silva <marcot@debian.org> for the Debian GNU/Linux
system (but may be used by others).
GTK2HSTYPEGEN(1)
Check Out this Related Man Page
C2HS(1) C->Haskell C2HS(1)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:
o trace trace compiler phases
o genbind trace binding generation
o ctrav trace C declaration traversal
o 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).
Version 0.15.1 November 2007 C2HS(1)