Ravi
Welcome
Documentation
Documentation
About Ravi
Documentation
Introduction
Premiers pas avec Ravi
ravitool
Scheme Tutorial
Objets Scheme
Le shell ravi
Starting Ravi
Le module trace
Les ports d'E/S
The C Parser
load, require, modules
Système d'interruptions
Scheme compiler
C++ mode
Generating C++ Modules
La déclaration struct
Le type "C-object"
More information
Installation

[PREV][SUIV]

ravitool

ravitool est une commande Unix qui simplifie la construction de modules ravi. Les différentes étapes de la génération d'un module nécessitent des commandes Unix classiques, certes, mais avec quelques paramètres spécifiques à ravi et son installation, comme le répertoire Include.

Cela n'empêche pas qu'il faut comprendre les étapes successives de la génération d'un module: génération de code, compilation, édition des liens. ravitool est seulement capable de construire la bonne commande Unix pour chaque étape.

Mode d'emploi

Le plus simple est d'interroger ravitool sur la facon de l'appeler:
ravitool --help


Usage ravitool [OPTION] mode ...

mode: --help print this message --version print the version of Ravi associated with this script --compiler print the c++ compiler to be used for modules --linker print the linker to be used for modules --compile compile a c++ or a scheme file, this option guesses the compiler based on argument suffixes. --c-compile compile a c++ file --scheme-compile compile a scheme file --link build a module from an object file --generate build a c++ source code file from a .ph file --cflags print the compiler flags that are necessary to compile a module --ldflags print the linker flags that are necessary to link a module --mobjdir print the site modules directory --dldir print the architecture dependent site modules directory --prefix print the installation prefix --ravi-libdir print the ravi library directory --host print the host value as guessed by config.guess

OPTION: --quiet, --silent don't echo build commands -n, --dry-run, --just-print don't actually run any commands; just print them

Usage pratique

Comme on le voit au mode d'emploi, ravitool sert essentiellement à 2 buts:

  • émettre la bonne commande Unix pour une génération, compilaton, ou édition de liens.
  • renseigner sur différents aspects de l'installation de ravi. Cela est très utile à l'intérieur d'un fichier Makefile, ou tout simplement pour se retrouver.

La commande ravitool imprime toujours les commandes Unix qu'elle évoque: il suffit de bien les regarder, pour résoudre d'éventuels problèmes.

Etapes de génération d'un module C/C++

Génération du fichier d'interface

Les fichiers intervenant dans cette étape et le sproblèmes qui se posent sont décrits en détail sur la page Generating C++ modules. ne fois tout cela au point, on a donc construit un fichier mon_module.phLe fichier mon_module.ccest alors généré par
ravitool --generate mon_module

Compilation du .cc

On utilise
ravitool --compile [options] -o mon_module.o mon_module
exactement comme on appele le compilateur, et il faut donner les options spécifiques du module au compilateur, notamment le -Ixx

Edition des liens

Dans le même esprit,
ravitool --link [options] mon_module.so mon_module.o
est un appel de l'édition de liens, avec les options spécifiques, notamment -Lxx et -lyy

Etapes de génération d'un module Scheme

Un fichier .scm peut être compilé. La commande n'est pas compliquée, et ravitool sait très bien la donner. On compile le fichier monprog.scm avec

ravitool -scheme-compile monprog