--==--
Présentation sommaire des fonctionnalités de crabs_makefile 5.0.1
Voici les variables d'environnement nécessaires au fonctionnement de crabs_makefile :
variables définissant l'OS (SOLARISx, LINUX, ...) localisation des includes pour les makefiles racine de l'installation des produits localisation des fichiers de traductions (gettext) dossier racine du projet en coursSauf PROJET, toutes les variables sont définies par le biais des fichiers crabs_mk.* localisés dans /etc/profile.d en fonction des paramètres de l'installation.
Au travers de variables et d'un include vous allez définir ce que le makefile va construire. Résumé du plan du document :
ce qu'il y a faire comment le faire options des outils les variants lancer le make d'un autre dossier du projet identifier les biblithèque lors de l'édition de lien cas particulier : la gestion d'un site astuces et variables utilesLes variables qui vous sont présentées définiront comment make se comportera : ce qu'il devra construire.
nom des sous-dossiers à 'compiler' nom du binaire à générer nom de la bibliothèque à générer noms des scripts contenus dans le dossier noms des fichiers de conf contenus dans le dossierUn makefile ne pourra contenir les deux variables BIN et LIB - elles sont mutuellement exclusives. Une makefile pourra combiner toutes les variables.
Les variables DIR, SBIN et ETC de par leur nom indique ce que l'on veut faire et par leur contenu sur "quoi" il faut le faire, ces deux informations suffisent pour que crabs_makfefile puissent faire son travail.
En revanche, pour une LIB ou un BIN, nous utiliserons une variable supplémentaire pour préciser les fichier sources qui contitueront les sources de la bibliothèque ou du binaire.
La particularité de crabs_makefile, c'est son mode de gestion des includes. En effet par le biais de l'extension, un fichier de type include pourra être partagé (utilisé par les autres sources dans d'autre dossier) ou rester local. La prise en compte de la précompilation par moc pour les fichiers include définissant des classes Q_OBJECT sera indiqué à crabs_makefile par le biais de l'extension donnée au nom du fichier.
Nous préciserons les fichier sources qui permettent de construire un binaire ou une bibliothèque dans la varibles SRC. Les extensions des nom de fichiers vont déterminer ce que crabs_makefile va faire des sources.
fichier include utilisable hors du dossier fichier include local au dossier fichier include qui contient une classe QT qui sera passé à moc. Il faut remplacer le qh en .h dans les fichiers utilisant cette classe idem que qh mais le fichier reste local. Conserver l'extension QH dans les souces utilisateur fichier écrit en langage C fichier écrit en langage C++ fichier écrit en Fortran 77 fichier lex (un par dossier) fichier yacc (un par dossier)5 - Option des outils CFLAGS option de la compilation C CPPFLAGS option de la compilation C++ F77FLAGS option de la compilation Fortran 77 SQLFLAGS option de la compilation SQL C LFLAGS option pour la compilation Lex YFLAGS option pour la compilation Yacc LDFLAGS option pour l'edition de lien LD nom de l'editeur de lien 6 - Variants Ce makefile propose 2 variants par defaut : NORMAL a utiliser pour la generation de produits finaux DEBUG inclus les directives de debuggage lors des compil On peut rajouter ces propres variants Il faut definir alors les variables CF_$(VARIANT) passer au compilateur LD_$(VARIANT) passer au l'editeur de lien Exemple : variant TEST : defini TEST et option -g CF_TEST= -g -DTEST LD_TEST= -g Attention pour qu'un variant fonctionne correctement tous les objet du projet doivent pouvoir compiler ce variant Lancer les compils : Variant NORMAL : make -r autre variant : make -r VARIANT=... 7 - Creation d'une version de diffusion (experimental - abandonné) Variable DIFFUS a 'y' Pour une LIB : copie le .a dans $(PROJET)/DIFFUS/$(OS)/LIB copie les .h de SRC dans $(PROJET)/DIFFUS/$(OS)/INCLUDE Pour un BIN : copie $(BIN) dans $(PROJET)/DIFFUS/$(OS)/BIN pour SBIN : copie les scripts identifier par $DIFFUS_SBIN dans $(PROJET)/DIFFUS/$(OS)/BIN 8 - Lancer le make d'un autre repertoire Il peut etre utile lors de la compil d'un binaire de verifier la compil d'une bibliotheque (ou plusieurs). Ceci se fait en renseignant la variable DIRP avec les noms des repertoires a verifier 9 - Identifier les lib du projet lors d'une edition de lien Les bibliotheques du projet courant sont identifiées dans la variable PLIB. On ne precise que le nom de la bibliotheque. Le Makefile se debrouille pour associer la bonne localisation en incluant l'OS et le VARIANT.