Page 1 IR98 AutoconfAutomake Michel TRAN Ingénieurs 2000 Informatique - Réseaux Novembre 2000.

Slides:



Advertisements
Présentations similaires
ZOTERO logiciel de gestion bibliographique
Advertisements

Patrick Reuter maître de conférences
GESTION D’IMPRISSION SOUS WINDOWS & LINUX
Master Professionnelle Sciences et Techniques 2 juillet
L'installation et la diffusion 1 LInstallation et la Diffusion.
Dimensions et Java : Plug-in, Build et EAR Elisabeth BAUDOIN STIME CLUB UTILISATEURS ALMA DU 23 NOVEMBRE 2010.
Bienvenue dans le programme de formation rapide à NSIS Date : 20 novembre 2003 Intervenant : Julien VICTOR Interlocuteurs : Ingénieurs 2000 Informatique.
Concurrent Version System
Outils de développements
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
Autorisations Utilisation eCATT
Plan de formation Chapitre 1 : Présentation de SAP
Cours Présenté par …………..
1 TICE 2000 / Troyes / octobre 2000 Des moteurs de recherche efficaces pour des systèmes hypertextes grâce aux contextes des nœuds Des moteurs de.
Introduction à Qt et Qt Creator
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Comment détecter et éliminer
Administration système
Mars 2013 Grégory Petit
Algorithmique et Programmation
DeltaPROD Suivi des interventions Gestion de configuration
Configuration de Windows Server 2008 Active Directory
1 CLUB DES UTILISATEURS SAS DE QUÉBEC COMMENT TRANSFORMER UN PROGRAMME SAS EN TÂCHE PLANIFIÉE SOUS WINDOWS Présentation de Jacques Pagé STRiCT Technologies.
Des outils pour le développement logiciel
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Micro contrôleurs Microchip Outil de developpement MPLAB
FICHIERS : Définition : Algorithme général:
@SSR – Installation des applications eduscol.education.fr/securite - février 2007 © Ministère de l'Éducation nationale, de l'Enseignement supérieur et.
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Projet de C – Matrices creuses
Création d'un projet Web avec Netbeans
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 4 Syntaxe des commandes, documentation standard,
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Procédures d ’Utilisation
Etats des lieux (un début …) sur lergonomie de Méso-NH Soline Bielli Réunion Méso-NH 11 mai 2010.
Module 1 : Installation de Microsoft Windows XP Professionnel
Make 1 Les besoins 2 Définition 3 Makefile 4 Optimisation 5 Exemple de Makefile 6 Prototype 7 Autres outils © BTS II 2002 [tv]
Les assertions en Java.
Utilisation avancée de linux
‘‘Open Data base Connectivity‘‘
Hot Potatoes
Master 1 ère année Sécurité des Systèmes Informatique 1 Compilation à partir du code source  Pouvoir installer un logiciel avant qu’il ne soit packager.
Module I-C3 : Applications Web IUT R&T 2e année
Marc Bouissou, Guillaume Torrente, EDF
Programmer en langage c
Introduction aux systèmes d’exploitation
Programmation Système et Réseau (sous Linux)
Guide de paramétrage RRDI pour CLM v3
Inclusions & dépendances. C compile texte > objet int main () …
Exploration de la programmation android Formation Assurer par: Club FreeWays Réalisé par: BOUHJJA Lamia.
Serveur WEB TAGC SPIP 1.9.2d [11132] est un logiciel libre distribué sous licence GPL. Pour plus d'informations, voir le site
Pourquoi est-il nécessaire d'installer de nouveaux logiciels sur votre ordinateur ? J'exclus de cette présentation l'installation de nouveaux matériels.
PHP 5° PARTIE : LES COOKIES
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
Supports de formation au SQ Unifié
Algorithmique et programmation (1)‏
Autres éléments du langage
Créer des packages.
Master 1 ère année Sécurité des Systèmes Informatique 1 Gestion de modules  Un module est un morceau de code qui peut être chargé à la volée dans le noyau.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Quattor : Opérations Courantes - G. Philippon/M. Jouvin4-5/2/2009Quattor : Opérations Courantes - G. Philippon Opérations courantes.
En route vers le déploiement . . .
Configuration LOOP Retour d’expériences P. CADULE, L. BOPP, P. FRIEDLINGSTEIN.
S. Domas Système d’Exploitation Make et la construction d’exécutables 1ère annéeIUT Belfort-Montbéliard.
Développement et maintenance sur le projet RefPack
Exemple d’utilisation de l’outil de profilage prof La commande prof de Unix.
Transcription de la présentation:

Page 1 IR98 AutoconfAutomake Michel TRAN Ingénieurs 2000 Informatique - Réseaux Novembre 2000

Page 2 IR98 Plan  Définition  Motivation et raison de l’existence de tels outils  Fonctionnement par l’exemple  Procédure à l’installation d’un tel package  Problème

Page 3 IR98 Définitions  Automake est un générateur expérimental de makefiles. Il a été inspiré par le make de BSD 4.4, mais se veut portable et conforme aux standards GNU pour les variables et les cibles des makefiles.  Autoconf de GNU est un outil permettant la configuration des sources et des Makefile.  Ces 2 outils aident le programmeur dans la création de packages portables et configurables en permettant à la personne construisant le package de spécifier différentes options de configuration.

Page 4 IR98 Motivation  logiciel nécessite des tâches de maintenance en général pénible (compilation, nettoyage de l’arborescence, gestion des dépendances entre fichiers)  Évolution des logiciels ( rajout de fichiers, …)  Utilisation sur des machines différentes, portable  Intérêt : minimiser la tâche de maintenance en décrivant la structure de l’application en terme de plus haut niveau

Page 5 IR98 Fonctionnement : règle (depth)  Depth Automake supporte 3 types de hiérarchie des répertoires:  Flat Tous les fichiers se trouve dans un répertoire unique  Deep Le répertoire principal contient les fichiers de configuration et les sources sont dans les sous-répertoires  Shallow Le source primaire se trouve dans le répertoire principale et les sous répertoires contiennent essentiellement les bibliothèques.

Page 6 IR98 Fonctionnement : règle (strictness)  Strictness Indique le niveau de « sévérité » avec lequel automake devra vérifier la conformité avec les standards.  Foreign Vérifie seulement le strict nécessaire pour pouvoir fonctionner.  Gnu Vérifie la conformité avec le standard GNU. C’est l’option par défaut.  Gnits Vérifie la conformité avec le standard gnits.

Page 7 IR98 Fonctionnement  Automake et autoconf fonctionnent de paire  Utilisation d’autres outils pour créer un package: autoscan, aclocal et autoheader  Prenons l’exemple suivant : (deep) Helloworld configure.in Makefile.am src Makefile.am helloworld.c helloworld.h main.c

Page 8 IR98 Autoconf (1)  configure.in décrit les options et spécificités à tester avant la compilation  Autoscan permet de générer un fichier configure.scan prototype de configure.in  configure.in AC_INIT(src/hello) AM_INIT_AUTOMAKE(hello,0.1) AM_CONFIG_HEADER(config.h) AC_PROG_CC dnl pour utiliser compilateur C++ :AC_PROG_CXX AC_OUTPUT(Makefile src/Makefile)

Page 9 IR98 Autoconf (2)  Autoconf transforme configure.in en un script exécutable (configure) qui  effectue réellement les tests checking for gcc... gcc checking whether the C compiler (gcc ) works... yes checking whether gcc accepts -g... yes  génère Makefile creating Makefile creating src/Makefile configure.in Makefile.in autoconf configure Makefile

Page 10 IR98 Automake (1)  Automake --foreign --add-missing  Automake lit un Makefile.am et génère un Makefile.in.  Mettre un Makefile.am dans chaque sous répertoire  Certaines macros indique la génération de code spécialisé, par exemple bin_PROGRAMS signifie qu’on va avoir génération d’exécutables.  Automake utilisera la macro AC_OUTPUT(Makefile src/Makefile) dans le fichier configure.in pour savoir les Makefile.in à générer

Page 11 IR98 Automake (2)  Makefile.am ## comment SUBDIRS = src configure.in Makefile.in autoconf configure Config.h Options de l’utilisateurs Makefile automake config.h.in Makefile.am  src/Makefile.am bin_PROGRAMS = hello hello_SOURCES = hello.h hello.c main.c ##SUBDIRS = sousrep

Page 12 IR98 Plus d’options  Hello fait appel à la bibliothèque libmath Makefile.am : bin_PROGRAMS = hello hello_SOURCES = hello.c hello_LDADD = -lm  Compilation avec l’option debugging –g Configure.in : CXXFLAGS="" AC_ARG_ENABLE(debug, [ --enable-debug Compilation flags to allow debugging], CXXFLAGS="-g" ) AC_DEFINE(CXXFLAGS)

Page 13 IR98 Résumé  Récapitulatif des actions à mener pour avoir un projet qui fonctionne OutilsActions autoscanPour générer un moule du fichier configure.in aclocalPour installer les outils complémentaires nécessaires à Automake autoheaderPour déterminer quelles sont les variables du pré- processeur que l'on va définir et les sauver dans le fichier config.h.in autoconfGénérer configure à partir de configure.in automakeGénérer les fichiers Makefile.in à partir des Makefile.am./configureGénérer les Makefile et le fichier config.h en fonction des options de compilation souhaitées makeGénère les éxécutables

Page 14 IR98 Installation (1)  L’installation du package comporte :  1. détection du matériel, des outils et des bibliothèques  2. compilation  3. copie des fichiers dans les répertoires cibles

Page 15 IR98 Installation (2)  1. détection du matériel : elle se lance par la commande./configure./ configure --bindir=/usr/local/bin --enable-debug  2. compilation proprement dite : make utilise un script qui lance le compilateur en lui disant quels fichiers compiler, et quels sont les paramètre de la compilation.  3. copie des fichiers : appelez make install ; cette commande utilise aussi un script, cette fois-ci pour copier les fichiers (binaires, doc, images, etc...) dans /usr/local/bin.

Page 16 IR98 Problèmes courants  Bibliothèques absentes configure: error: Cannot find library guile  Problèmes de syntaxes dans configure.in: AC_DEFINE(CFLAGS) juste AC_DEFINE (CFLAGS) faux  Limites Détecte la configuration mais ne peut pas ajouter les informations manquantes ou les corrigées. (ex:fichiers d’en-têtes erronées sur ce un système)

Page 17 IR98 Conclusion  Outils très puissants qui contiennent un important jeu de test (macro)  Il est fortement conseillé de lire la documentations GNU pour avoir un meilleure aperçu des capacités de ces outils  Outils facilitant la maintenance des logiciels en contre partie d’un effort pour apprendre leur utilisation.

Page 18 IR98 Bibliographie  Références : Docs GNU  Automake  source.redhat.com/automake/automake.html  Autoconf   Autres liens :  nf/index.html

Page 19 IR98 Questions