compile

20 Oct. 2007
Auteur : zakharov
Responsable : zakharov
Téléchargement ( télécharger ) : 75 fois
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Voici un "petit" script (30Ko) pour compiler, installer localement (sans nécessiter le compte root) et gérer différents "projets". Un projet étant un ensemble de un ou plusieurs "produits". Ce que le script sait faire: ./compile parle beaucoup (dans un shitty english du meilleur goût ;)). A la base il a été écrit pour me permettre de gérer avec un seul doigt les quatre composants de FlightGear que je compile sur mon système (OpenSceneGraph, SimGear, FlightGear et sa base) avec différentes "saveurs" (version de dev, version stable, patchée, etc.). Donc par défaut les produits installés si on ne dit pas quoi faire sont FlightGear avec OSG, le tout en version de dev. Aujourd'hui que j'ai (beaucoup) plus de projets, la meilleure utilisation que j'en fait c'est, avant d'aller rejoindre ma couette, de lancer:
$ for projet in `./compile list-projects`; do ./compile $projet; done &> ~/log
ce qui me permet d'avoir à jour le matin tous mes projets préférés et ce sans avoir eu à faire autre chose que d'appuyer sur "Entrée" :magie: La syntaxe pour ajouter/modifier de nouveaux produits est assez simple (voir les quelques exemples fournis dans le script) et peut en général se résumer à
function builtin_produit () {
  generic "où aller chercher les sources" "options de compilation éventuelles"
}
et peuvent se décliner en trois "saveurs" (-dev, -testing et -stable). le script ne fait ni le café ni la vérification des dépendances (librairies et "produits"), et oui... finalement la partie la plus difficile (dénicher la librairie de dev manquante) n'est pas encore automatisée (mais j'y songe ;)). Le script va créer une arborescence dont la racine porte le nom du projet. A l'intérieur on trouve 3 répertoires: monprojet/config: la configuration du projet et des produits monprojet/src:les sources des produits monprojet/install: le répertoire d'installation des produits (bin, include, lib, share) espèrant que vous le trouverez utile... zakh Note: le script évolue constamment, la dernière version est située ici