animé par Maude Le Jeune, CNRS/IN2P3/APC
Personnel de la Recherche et de l'Enseignement Supérieur …
Waf est un outil de construction de logiciel, dans la lignée des autotools (configure, make), CMake, SCons. Il permet de gérer la configuration, la compilation et l'installation d'un logiciel avec une syntaxe intuitive (en Python), et des fonctionnalités (modules) permettant d'écrire les scripts de construction très rapidement, quel que soit le langage utilisé. Cette structure modulaire permet aux utilisateurs d'en étendre les fonctionnalités selon leur besoin, et ainsi de s'adapter à la complexité croissante des processus de construction (multiplicité des langages, des architectures, interfaçage , etc). Waf est performant, portable, léger, et directement distribué avec l'application qu'il construit, il ne requiert donc aucune installation préalable. Les participants à l'atelier seront guidés dans :
PC8
Intermédiaire
Nombre de personnes maximum: <a remplir>
http://jdev2013.lix.polytechnique.fr/Ateliers/T4/T4.A6/T4A6_waf.tar.gz
Mis à jour le 05/09 en incluant les corrections et solutions des exos.
L'énoncé du TP est sous la forme d'une page HTML nommée tpwaf.html. Des éléments de description de l'outil waf sont donnés sous forme de texte, illustré par extraits de code source qui servent également à alimenter les exercices. Les énoncés des exercices sont notés en rouge.
Le fichier wafbook.pdf contient la documentation officielle de waf. Elle est uniquement fournie à titre de supplément d'information. Ce TP reprend un certain nombre des exemples et explications donnés dans le wafbook, ils sont donc redondants.
L'archive waf-1.6.11.tar.bz2 contient les sources de l'outil permettant de construire le binaire waf. Ce dernier étant déjà fourni, il n'est pas nécessaire de le reconstruire. Cette archive peut être extraite à titre informatif, lorsque le TP y fait référence.
Les différentes parties du TP doivent être réalisées dans l'ordre.
Les premières sections Concept de base, Exemples en C/C++/Python sont suffisantes pour une utilisation basique de l'outil. Les sections suivantes présentent les concepts avancés qui répondent à des besoins spécifiques en terme de configuration et compilation (interfaçage de différents langages, architecture hétérogène, etc) ou de performance.
Un pad collaboratif est à votre disposition pour signaler les problèmes, bugs, astuces, remarques que vous souhaitez partager avec le reste du groupe: https://etherpad.in2p3.fr/p/JDEV2013.T4.a6