Rien

Rien
Le but de ce commit est de faciliter la compilation de Metafor sous Unix en
nous donnant un maximum de liberté et de contrôle dans la manière
de compiler les différentes parties du programme (Oofelie, Metafor, avec
ou sans libs, avec ou sans warnings, gestion de nouvelles machines, etc).
La situation devient critique parce que:
- il n'est plus possible de compiler sous Irix pour des raisons indépendantes
de notre volonté (à cause des libs créées par
OE).
- Il est difficile de faire une version "Cenaero" à cause
du répertoire non partagé "Sabca" sans modifier les
Makefiles d'Oofelie.
- A chaque mise à jour sur Oofelie, il faut réadapter les makefiles
d'Oofelie pour recompiler avec Metafor (suite à des oublis de OE).
- Il n'est pas facilement possible de customiser la compilation de oofelie
à notre goût (suppression des warnings sous Linux, compilation
multi-cpu, etc). On est donc dépendant de OE pour certains choix (options
de compilation principalement)
- Les makefiles Oofelie ne sont pas propres. Pour nettoyer tout ça,
il faut faire ça en double: dans Metafor et Oofelie (avec les risques
de conflits au merge).
Pour régler tout ces problèmes, j'ai modifié la façon
de compiler Metafor:
- On n'utilise plus les Makefiles (Makefile.in) d'Oofelie : une
procédure va les écraser par les nôtres (script copyMakefiles.sh
qui remplace l'ancien copy_makefiles.sh).
- Les Makefiles sont regroupés par type dans ./oo_meta/makefiles.
Il y en a 2: Makefile_common.in pour compiler n'importe quel répertoire
et makefile_qt.in pour compiler Qt. J'ai gardé Makefile_oolib.in
au cas où on voudrait faire des libs. Ca facililite grandement la gestion
des Makefiles: ils seront toujours tous identiques!
- Le script ./oo_meta/build.sh a été modifié.
Il n'appelle plus un ./oofelie/build ! Il se charge de configurer
aussi bien les makefiles de Metafor que d'Oofelie. On a donc un contrôle
total de la compilation.
- La procédure de compilation n'affiche plus les warnings sous Linux;
ce qui facilite la correction des problèmes.
- Un système de profils à été mis au point.
Ceux qui utilisent mon .bashrc ou qui ont déjà été
fouiller dans les fichiers de config de Linux connaissent le système
: il est maintenant possible de définir des variables d'environnement
par type de shell, par système (OS), et par machine (via le nom). Il
sera ainsi possible de commiter la config de Cenaero par exemple et ça
permettra une détection automatique du système (fini les modifs
temporaires dans le configure.in !).
Pour compiler Metafor (rien ne change en apparence à part qu'on peut
suivre la compilation à l'écran très simplement)
Pour compiler sur une nouvelle machine ou un nouveau système d'exploitation:
- aller dans ./oo_meta/profiles/
- créer un répertoire avec le nom du système ou le nom
de la machine (par exemple un répertoire nick pour notre
brave machine SGI). Créer autant de scripts que vous voulez pour configurer
l'environement (pour signaler où se trouve metis, les blas, nurbs++,
vtk, Qt, etc). Regarder par exemple ./profils/osf1/libs.sh (la
config par défaut de nos machines osf).
- le script build.sh va exécuter tout d'abord tous les scripts
communs (dans ./oo_meta/profiles - il n'y en a pas pour l'instant)
; puis tous les scripts de l'OS (par exemple osf1 pour notre nouvelle
quadri) ; puis tous les scripts dans le nom de la machine (par exemple chinook
pour cette même quadri).
Faites juste attention de ne pas commiter les Makefile.in dans Oofelie
(comme Metafor écrase les Makefiles de Oofelie, ces fichiers sont marqués
modifiés sous CVS) !
Pour terminer ce travail, je vais créer un nouveau repository pour les
machins sabca. Ca va etre très simple à faire vu le nouveau système.
On pourra ainsi facielemnt compiler metafor sans les lois sabca (ou d'autres
trucs très secrets).