GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  C2HS (1)

NAME

c2hs - C->Haskell Interface Generator

CONTENTS

Synopsis
Description
Options
Examples
Caveats
Copyright
Author

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,
.Bc2hs 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).

Search for    or go to Top of page |  Section 1 |  Main Index


Version 0.15.1 C2HS (1) November 2007

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.