Coder Social home page Coder Social logo

gnu_g-wrap's Introduction

G-Wrap -- A tool for exporting C libraries into Scheme interpreters
===================================================================

G-Wrap is a tool (and guile library) for generating function wrappers
for inter-language calls. It currently only supports generating Guile
wrappers for C functions. Other languages may be supported in the
future, possibly on both sides.

Installing
==========

Prerequisites
-------------

    - Autoconf >= 2.61
    - Automake >= 1.12
    - libffi
    - Guile-2.0 or Guile-2.2
    - Guile-Lib >= 0.2.2	http://www.nongnu.org/guile-lib/

In addition, if you build G-Wrap for Guile-Gnome and/or Guile-Clutter,
which is most probably the case, you also need:

    - Glib-2.0

Instructions
------------

For detailed, general instructions, see the file INSTALL.


* Building from a tarball

Once all dependencies are statisfied, open a terminal and:

    cd <download-path>
    tar zxf g-wrap-<version>.tar.gz
    cd g-wrap-<version>
    ./configure [--prefix=/your/prefix]
    make
    make install

Notes:

(1) In the above configure step, --prefix=/your/prefix is
    optional. The default value is /usr/local.

(2) To install G-Wrap, you must have write permissions to the $prefix
    dir and its subdirs.

(3) G-Wrap's modules will be installed in $prefix/share/guile/site. If
    it differs from Guile's global site directory, then this path must
    be aded to Guile's load paths before to use G-Wrap and compile
    Guile-Gnome or Guile-Clutter. You may check Guile's values using:

    guile -c "(display (%global-site-dir)) (newline)"
    guile -c "(display %load-path) (newline)"

    To augment Guile's load paths, you can: (a) create/update your
    personnal ~/.guile file, (b) update Guile's global site located
    init.scm file or (c) define/update your GUILE_LOAD_PATH shell
    environment variable.

(4) Like for any other GNU Tool Chain compatible software, you may
    install the documentation locally using make install-info, make
    install-html and/or make install-pdf.


* Building from Arch working copy

Run ./autogen.sh. You can pass configure arguments to autogen.sh, or
--noconfigure to disable the configure run, e.g. for out-of-tree
builds (which are recommended). Then run "make" and "make install".

Note that during the build of the included libffi, there is might be a
warning about runtest not beeing found. This can be safely ignored.

Notes about this branch
=======================

This is G-Wrap-TNG (G-Wrap - The Next Generation), a rewrite of
G-Wrap. It's goals are:

* Use GOOPS, for enhanced flexibility and (hopefully) clearer design.

* Be target-language agnostic; i.e. clean separation of the core and
  e.g. the Guile-specific code. New languages (perhaps even
  non-Schemes) should be easy to add.

* Offer the current (1.3.4+) wrapping API as a compatibility layer.

Status
------

Currently, the features from 1.3.4 are present and superceded. It
should be considered "ready for testing". An 1.3.4 compatibility layer
is in place, as far as needed by GnuCash, which is apparently the only
user of that API.

Authors
======

Maintainer:
 Andreas Rottmann  <[email protected]>

Co-Maintainer:
 Rob Browning <[email protected]>


Originally written by:
  Christopher Lee <[email protected]>
  http://www.cs.cmu.edu/~chrislee

gnu_g-wrap's People

Contributors

rotty avatar wingo avatar

Watchers

James Cloos avatar Ralic Lo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.