Commit 1af0fb62 authored by erwan's avatar erwan

untrack obselete files and dirs.

parent 6fa99f95
The Lurette FAQ
Limitations de la version courante de Lurette/scade V0.1
--------------------------------------------------------
* CONFIGURATION
Il faut définir une configuration qui s'appele Lurette.
* COMPILATEUR C
Je n'ai essayé qu'avec le gcc (et le make) de MinGw ; je ne suis pas trop
sur que ca marche avec ceux de MVC++.
nb : il faut que mingw32-make.exe soit dans le path, ce qui devrait
etre le cas car il est rangé au même endroit que le gcc de MinGw.
* BUILD
Avant de pouvoir lancer Lurette, il faut faire un BUILD dans la toolbar
« simulation et code generation » de Scade. En effet, c'est ce BUILD
qui génére le Makefile qui permet de générer les binaires de simulations
(+ les headers qui sont necessaires à la génération d'environnements par
defauts (<NODE>_env.luc et <NODE>_env_UD.luc).
* ROOT NODE
Pour pouvoir utiliser Lurette, il faut spécifier un root node (ie,
ne pas utiliser le mode <selected node>).
remarque : évidemment, ce root node doit utiliser le noeud à tester
(comme pour une simulation classique), mais il doit aussi utiliser
le noeud qui sert d'oracle.
* AFFICHAGE
Le rafraichissement de l'affichage s'effectue mal. On peut le forcer en
cliquant sur le bouton le plus à droite de la toolbar lurette
(tooltip="update the display")
......@@ -28,14 +28,14 @@ fix_camlidl_meta: $(CAMLIDL)/META
polka/vector.ml: polka/vector.idl
cd polka; make idl
lutin-utils/src/lutinutils.ml: lutin-utils/src/lutinUtils.idl
lutin-utils/src/lutinUtils.ml: lutin-utils/src/lutinUtils.idl
cd lutin-utils/src/; make
###################################################
build: setup.data $(CAMLIDL)/dllcamlidl.so
ocaml setup.ml -build
setup.ml:_oasis lutin/src/version.ml polka/vector.ml lutin-utils/src/lutinutils.ml
setup.ml:_oasis lutin/src/version.ml polka/vector.ml lutin-utils/src/lutinUtils.ml
oasis setup
......
#
# Makefile.common for building binaries
#
#
OCAMLMAKEFILE = $(HOME)/lurette/OcamlMakefile
LURETTE_PATH = $(HOME)/lurette
ifeq ($(HOST_TYPE),win32)
OCAML_LIB="c:\TEMP\ocaml\lib"
OCAMLOPT = /cygdrive/c/TEMP/ocaml/bin/ocamlopt
OCAMLC = /cygdrive/c/TEMP/ocaml/bin/ocamlc
OCAML = /cygdrive/c/TEMP/ocaml/bin/ocaml
CPP_COMPILER=g++ -mno-cygwin
CPP_LINKER=g++ -mno-cygwin
CC=gcc -mno-cygwin -Wall -g -DWIN32 -I "c:\TEMP\ocaml\lib"
OCAMLLIB = "c:\TEMP\ocaml\lib"
INCDIRS = u:\\cygwin\\lib c:\\TEMP\\ocaml\\lib
LIBDIRS = u:\\cygwin\\lib c:\\TEMP\\ocaml\\lib
CAML_INSTALL_DIR=/cygdrive/c/TEMP/ocaml
SYNCHRONE_DIR=//ARPONT/www-verimag/SYNCHRONE
SYNCHRONE_LURETTE_DIR=//ARPONT/www-verimag/SYNCHRONE/lurette/
EXE := .exe
HOSTTYPE32=win32
DWIN32 = -DWIN32 -mno-cygwin -I "c:\TEMP\ocaml\lib" -L "c:\TEMP\ocaml\lib"
else
ifeq ($(HOST_TYPE),sparc-sun)
EXE :=
INCDIRS = $(HOME)/$(HOSTTYPE)/lib $(SCADE_INSTALL_DIR)/lib /usr/local/soft/ocaml/3.08/lib/ocaml
LIBDIRS = $(HOME)/$(HOSTTYPE)/lib $(SCADE_INSTALL_DIR)/lib /usr/local/soft/ocaml/3.08/lib/ocaml
OCAMLLIB = /usr/local/soft/ocaml/3.08/lib/ocaml
CAML_INSTALL_DIR=/usr/local/soft/ocaml/current
SYNCHRONE_DIR=/usr/local/www/SYNCHRONE
SYNCHRONE_LURETTE_DIR=/usr/local/www/SYNCHRONE/lurette/
EXE := #
HOSTTYPE32=$(HOST_TYPE)
DWIN32 =
else
ifeq ($(HOST_TYPE),mac)
CC=g++ -g
HOSTTYPE=mac
HOST_TYPE=mac
EXE :=
PREFIX =$(HOME)/lurette
LURETTE_PATH = $(PREFIX)
INCDIRS = $(PREFIX)/$(HOSTTYPE)/lib
LIBDIRS = $(PREFIX)/$(HOSTTYPE)/lib
OCAMLLIB = `ocamlc -where`
CAML_INSTALL_DIR=`ocamlc -where`
SYNCHRONE_DIR=/usr/local/www/SYNCHRONE
SYNCHRONE_LURETTE_DIR=/usr/local/www/SYNCHRONE/lurette/
HOSTTYPE32=$(HOST_TYPE)
DWIN32 =
else
# LINUX quoi ...
CC=gcc -g -O2
EXE :=
# XXX si je met des choses la, elles se retrouvent dans les .cmxa gnrs, ce qui n'est pas de bonne augure...
PREFIX =$(HOME)/lurette
LURETTE_PATH = $(PREFIX)
INCDIRS = $(PREFIX)/$(HOSTTYPE)/lib
LIBDIRS = $(PREFIX)/$(HOSTTYPE)/lib
OCAMLLIB = `ocamlc -where`
OCAMLC=$(shell which ocamlc)
CAML_INSTALL_DIR=`dirname $(OCAMLC)`
CAML_INSTALL_DIR=`ocamlc -where`
SYNCHRONE_DIR=/usr/local/www/DIST-TOOLS/SYNCHRONE
SYNCHRONE_LURETTE_DIR=$(SYNCHRONE_DIR)/lurette/
HOSTTYPE32=$(HOST_TYPE)
DWIN32 =
endif
endif
endif
OCAMLMAKEFILE = ../OcamlMakefile
This diff is collapsed.
Je note ici toutes les choses que je remarque au sujet de win32...
- pour pouvoir faire fonctionner luciole, il faut un gcc mingw
sur croix, il y en a un là :
GCC="c:\Program Files\Esterel Technologies\SCADE 6.1.2\SCADE Suite\mingw\bin\gcc.exe"
- une commande utile : taskkill /F /IM <nom du process>
- lus2ec ne marche avec une version compilée sous mingw car les
appels systeme sont affectué dans un environnement DOS. il faudrait
ecrire un lus2ec.bat qui va bien. Bon, d'un autre coté, lus2lic qui
ne se base pas sur un script sh fonctionne bien.
- pour pouvoir utiliser lurette depuis scade, il faut lancer scade depuis une console
apres avoir lancé un "win.bat" qui positionne les chemins comme il faut.
Par contre, pour construire les binaires win32, je le fais depuis un shell cygwin.
- xlurette/verimag est cassé parce que je n'arrive pas a trouver les bonnes
conventions d'appels. Que ce soit sour dos ou sous cygwin, lutettetop ne
trouve jamais gen_stubs (alors que ce meme lurettetop trouve tout ce qui lui
quand il est appele depuis scade...).
- obselete ? il ne faut pas oublier de positionner la variable HOSTTYPE.
bouton "démarrer"
-> menu "Parametres"
-> "Systemes"
-> Onglet "Avancé"
-> bouton "Variables d'environnement"
#################################################################################
#
# win32 = windows natif ( = mingw)
- a priori, il vaut mieux utiliser une version mingw de ocaml, ca simplifie
l'utilisation depuis scade. Il en existe des versions pre-compilées sur le site
de l'inria.
- extrait du README de ocaml :
Do *not* install the standalone distribution of MinGW, nor the
companion MSYS tools: these have problems with long command lines.
Instead, use the version of MinGW that is installed along with Cygwin.
conclusion : i.e., utiliser gcc -mno-cygwin ?
en revanche, il faut quand même utiliser le mingw32-make, car ocamldep genere
des dependances suivants la convention windows, et du coup ocamlmakefile se viande.
arg... c'est vicieux leur conseil !
- via cygwin, il faut aussi
gmp (Math), install,
- les messages du style "undefined reference to __assert/__imp___iob" signifient
que je suis en train de melanger mingw et cygwin (typiquement, j'utilise "gcc -mno-cygwin"
avec un compilo caml compilé avec mingw).
- Quand on compile avec un ocaml/mingw, les chemins (-I, OCAMLLIB, etc) doivent
etre de la forme "c:/path_to_ocaml/lib" et non "/cygdrive/c/path_to_ocaml/lib"
- camlidl a besoin de libole32.a ???
c'est un bug : probablement que dans l'une des lib avec lesquelles je
me link a du etre compile sans -mno-cygwin (je suspecte gmp). En effet,
cette lib est une lib cygwin. Je ne devrait pas en avoir besoin.
- pour camlidl, prendre le Makefile.unix
#################################################################################
#
# cygwin
- pour installer godi sur cygwin, il faut
fileutils, gawk, gdbm, m4, sh-utils, tcltk, bzip2, diffutils, file, bc,
binutils, patch, patchutils, ncurses, make, wget, grep, sed, tar, gzip, findutils, gcc
- pour camlidl, prendre le Makefile.unix
luc4c is a C library that makes it possible to call Lucky programs
from C.
*************************************************************************
* INSTALLATION of the libraries
Just copy the files of the ./lib directory wherever it is convenient for you.
*************************************************************************
* binaries
The bin directory contains one standalone executable:
- luc2c: an experimental tool that generates C file wrappers that makes it
possible to Call Lucky programs from C (cf examples/lucky/C/Makefile).
*************************************************************************
* DOCUMENTATION
cf the "luc4c_stubs.h" that ougth to be documented enough.
Confere also the Makefile in the example directory.
luc4ocaml is an ocaml library that makes it possible to call Lucky
programs from Ocaml.
*************************************************************************
* INSTALLATION of the libraries
Just copy the files of the ./lib directory wherever it is convenient for you.
For example, in the directory:
`ocamlc -where`/lucky
Perform a « mkdir `ocamlc -where`/lucky » if necessary.
*************************************************************************
* binaries
The bin directory contains two standalone executables:
- luc4ocaml.top, an Objective Caml toplevel that contains the luc4ocaml lib
preloaded at start-up (try './luc4ocaml.top -I `ocamlc -where`/lucky').
- luc2c: an experimental tool that generates C file wrappers that makes it
possible to Call Lucky programs from C (cf examples/lucky/C/Makefile).
*************************************************************************
* DOCUMENTATION
The Ocamldoc documentation of that API is in
doc/html/
Confere also the following directories to find examples:
examples/ocaml
examples/rml
examples/lucky
*************************************************************************
* Building files
Thoses example directories contain Makefiles that illustrate how programs
should be compiled. Basically one needs to:
(1) import the following ocaml librairies(*):
unix.cmxa str.cmxa bdd.cmxa polka.cmxa luc4ocaml.cmxa
to be used it with ocamlopt, and:
luc4ocaml.cma
to be used it with ocamlc.
(2) tell the ocaml compiler where to find those libs, e.g.,
ocamlc -I +lucky
if you have installed your lucky lib in the `ocamlc -where`/lucky directory.
(*) is someone knows how to group several cmxa into a single file, please
mail me (jahier@imag.fr). nb: for .cma/ocamlc, it works fine.
The necessary libraries are in "lib"
Luckydraw is an ocaml library that makes the Lucky solver and drawer
available from OCaml programs.
*************************************************************************
* INSTALLATION
Just copy the files of the ./lib directory wherever it is convenient for you.
For example, in the
`ocamlc -where`/lucky
directory (that you have to create before)
*************************************************************************
* DOCUMENTATION
The Ocamldoc documentation of that API is in
doc/html/
Confere also the following directories to find examples:
examples/ocaml
examples/c
*************************************************************************
* Building files
Thoses example directories contain Makefile that illustrate how programs
should be compiled. Basically one needs to:
(1) import the following ocaml librairies(*):
unix.cmxa str.cmxa bdd.cmxa polka.cmxa luc4ocaml.cmxa
to be used it with ocamlopt, and:
luc4ocaml.cma
to be used it with ocamlc.
(2) tell the ocaml compiler where to find those libs, e.g.,
ocamlc -I +lucky
if you have installed your lucky lib in the `ocamlc -where`/lucky directory.
(*) is someone knows how to group several cmxa into a single file, please
mail me (jahier@imag.fr). nb: for .cma/ocamlc, it works fine.
The Lurette V2 package
* What is needed
- gmp (Gnu multiple precision lib) if you want to use the C and the ocaml APIs
- gnuplot V3.8i or higher to display test data with gnuplot (via gnuplot-rif)
-o-
* INSTALLATION
$ tar xvfz lurette-XXX.tgz
$ cd lurette-XXX
$ ./RUN_ME
This script creates in lurette-XXX/$(arch)/bin/ sh scripts that sets
enviroment variables necessary to the binaries in
lurette-XXX/$(arch)/bin to run correctly.
For example, it creates the sh script lurettetop that sets the rigth
env vars and then launches lurettetop_exe.
-o-
* DOCUMENTATION
Try "lurettetop --help" at the command-line, or just 'lurettetop' and
then type 'help' and 'man' at the lurettetop prompt.
You can also have a look at Makefile files in the example directory.
-o-
* AUTHORS
Erwan Jahier and Pascal Raymond
-o-
* ACKNOWLEDGMENTS
Here is the list of tools that we used to develop this software.
Many thanks to everybody involved in the development and maintenance
of them:
o ocaml, camlidl by the ocaml INRIA team
o polka, by Bertrand Jeannet
o sim2chro, by Yann Rémond
o Ocamlmakefile by Markus Mottl
o emacs, autoconf, make, latex, gtk, gnuplot...
1 - Le clonage
$ git clone ~jahier/lurette
2 Construction des sources
* Variables à positionner
HOSTTYPE (si pas positionné)
LURETTE_PATH
$ export LURETTE_PATH=<le rep d'ou le git clone a été fait>/lurette
$ cd lurette
$ make build
3 - recompilation des sources
$ cd sources
$ make all
4 - install des source dans le rep pre_release pour pouvoir lancer les tests de non-regression
$ make cp
% make test
then a
$ make test
should finish with a 0 exit code
#!/bin/sh
#
# shell script to execute to install Lurette
# qu <msg> <variable>
qu () {
eval answer=\$$2
accept=
while test -z "$accept"; do
echo
echo "$1"
echo -n "I will use \"$answer\", "
echo -n "hit return to accept, or enter new value: "
read new
if test -z "$new"; then
accept=y
else
answer=$new
fi
done
eval $2=\"$answer\"
}
echo "Lurette installation procedure"
INSTALL_DIR=$PWD/
qu "Where do you want to install files (absolute path)?" INSTALL_DIR
echo "
Binaries will be installed in $INSTALL_DIR/bin/ and libraries in
$INSTALL_DIR/lib/. Those directories will be created if necessary.
"
GO=yes
qu "Do you want to proceed the installation (yes/no)?" GO
if test $GO = yes; then
cd install
rm -f config.cache
echo "./configure --prefix $INSTALL_DIR"
./configure --prefix "$INSTALL_DIR"
else
echo "quitting Lurette installation procedure..."
fi
* Dumper un diagnostic html (dump_html_diag) qui contiendrait un résumé de ce
qui s'est passé, un gif du gnuplot, etc.
* R1: Il faudrait que je fasse une espece de wizard qui, lors de la génération
des environnements par defaut, demande aux gens entre quelles valeurs
min et max les variables à générer doivent elles evoluer.
* Aubanel: trouver des zoulies icones. Celles que j'ai pour l'instant sont
pas belles.
-> email aubanel
* LP: il faudrait que j'arrive a appeler depuis Lurette le Build de la
toolbar "code gen & simu" (sans passer par un appel system !)
-> essayer de faire un source du gen_make_l4.tcl
* R1(LP): le gen_fake_lucky devrait compiler ce dont il a besoin (le .h idoine)
-> j'ai besoin d'avoir acces au Build de scade pour ca !!! (cf ci-dessus)
* LP: Bug a l'affichage des fichiers .luc que je rajoute depuis
LuretteGUILauncher.tcl dans l'onglet Fileview. Je les vois bien
quand je relance Scade par contre.
-> reglé par Aubanel...
* LP: Bug du rafraichissement de l'affichage des messages du stdout de lurettetop.
-> demander a daniel lopes daniel.lopes@esterel-technologies.com
Aubanel pense qu'un callback pour reveiller le thread tcl existe deja.
* LP et R1: automatiser la generation des oracles, et en particulier
(1) la generation proprement dite
(2) le branchement de l'oracle sur le noeud (pour pouvoir le compiler
automatiquement)
rem : une alternative à ce branchement un peu artificiel serait de
rajouter un argument au compilateur scade pour lui dire de compiler
aussi l'oracle quand bien meme il n'est pas appelé explicitement.
En plus, (2) engendre pas mal de filasse ; faudrait pouvoir cacher les fils.
-> Aubanel sait faire (API tcl en ecriture)
qu : on pourrait aussi generer du lustre textuel direct
* le bouton "stop current run" tue tous les process lurette.exe ; faudrait
reussir à choper le bon PID... Ca n'a pas l'air facile ...
* un truc qui serait joli a propos de cette fenetre "lurette
settings", ce serait de n'afficher que les oracles et les
environnements dont l'interface est compatible avec celle du noeud
selectionné dans cette meme fenetre. On doit pouvoir gerer ca soit à
l'aide de la configuration, soit en ecrivant un petit script qui
recupere l'interface de tout ce petit monde.
-> pour ca, il me faut les types des differents noeud. cf plus haut...
* LP: faire le gen_fake_lucky à partir des infos données par scade plutot qu'en
parsant le <root_node>.h
-> ...
* R1: le mode step by step n'est pas implanté
OASISFormat: 0.4
Name: Lutin
Version: 2.24
Version: 2.25
Authors: Erwan Jahier
Maintainers: erwan.jahier@imag.fr
License: PROP
......
#***********************************************************************
#* *
#* CamlIDL *
#* *
#* Xavier Leroy, projet Cristal, INRIA Rocquencourt *
#* *
#* Copyright 1999 Institut National de Recherche en Informatique et *
#* en Automatique. All rights reserved. This file is distributed *
#* under the terms of the GNU Library General Public License. *
#* *
#***********************************************************************
#* $Id: Makefile,v 1.18 2000/08/19 11:04:55 xleroy Exp $
include config/Makefile