Retourner aux forums || Retourner au forum Programmation.c
Programmation.c : Indent & makefiles
Posté par bobert () le 25 août 2004Ma première question porte sur GNU indent ; j'ai pu l'amener à indenter mon code C à peu près comme je voudrais... sauf pour l'accolade de début de corps de fonctions: je voudrais obtenir:
int main(void){
/* ... */
}
mais à mon grand dam je n'ai pas pu trouver l'option qui va bien. Quelqu'un pourrait-il me tirer d'affaire ?
Deuxième question, à propos des makefiles, ou plus généralement, de l'automatisation du processus de développement d'un projet en C. Pour des projets en java, impossible de se passer de scrips Ant aux petits oignons. Je recherche l'équivalent pour des projets en C, c'est-à-dire, des exemples de Makefiles pour GNU Make (ou d'autres scripts, y'a que le résultat qui compte) qui automatisent:
- la compilation des fichiers sources
- la génération de la documentation des sources via doxygen
- la génération de la documentation du projet écrite en RestructuredText ou docbook
- le lancement de tests unitaires CUnit ou check
- le profiling / détection de fuites de mémoire
- la compilation continue (récup du HEAD cvs -> compilation -> tests unitaires -> email des résultats des tests)
- la création d'une nouvelle version du projet (nouveau tag pour tous les fichiers du projet -> compilation, etc -> génération de paquets/d'archives pour cette nouvelle version)
Merci d'avance,
je vous embrasse pas mais le coeur y est ;)
> Lire le message (3 commentaires, moyenne: 1,3).
Makefile
Pour le Makefile, voici un exemple qui j'espère te parlera
usage : "make" ou "make all" pour faire list, doc, cafe
ou 'make cafe'...
"make clean"....
----------------------
all: list doc cafe
list : functions.o parser.o daemon.c daemon.h
gcc -Wall daemon.c functions.o parser.o -o list
functions.o : functions.c functions.h
gcc -Wall -c functions.c -o functions.o
parser.o : parser.c parser.h
gcc -Wall -c parser.c -o parser.o
doc:
tes commandes ici....
cafe:
ton cafe ici
clean:
rm -f list
rm -f *.o
distclean:
rm -f list
rm -f *.o
rm -f *~
rm -f *.core
-------------------
hopes this helps
-
[^]Re: Makefile
Posté par gaaaaaAab () le 25/08/2004 à 14:58. (lien). Évalué à 1.à la place de
-------------------------------------------------------
functions.o : functions.c functions.h
--> gcc -Wall -c functions.c -o functions.o
parser.o : parser.c parser.h
--> gcc -Wall -c parser.c -o parser.o
-------------------------------------------------------
on peut aussi définir des règles pour make comme par exemple la règle suivante qui définit comment obtenir un .o à partir d'un .c
-------------------------------------------------------
.c.o:
--> gcc $(CFLAGS) -c $*.c
-------------------------------------------------------
$* est une variable automatique (point 10.5.3 de la doc de make http://www.gnu.org/software/make/manual/html_mono/make.html#SEC111(...) ). Le manuel de make, c'est du bonheur tellement y'a de trucs dedans :)
gaffe à pas oublier les tabulations (-->) en début de ligne
Dur.
les outils qu'on peut lance depuis ce genre de makefile :
lint, splint : syntaxe, securite
pcmd : Analyse poussee de code (notemment de copier-coller abusifs)
doc : doxygen
tags : ctags, etags
Syntaxe de projet : indent
tu google "makefile" et le nom d'un des outils et t'aura un exemple de makefile.
comme la : http://www.control.auc.dk/~03gr838/cd/Net-snmp/Net-snmp-5.0.1/Makef(...)
sinon Les equivalents make :
CMake, MakeNG, Bakefile, Jam, BJam, premk, premake, le CDT 2.0 d'eclipse.
premake est bien pour generer pour plusieurs plate-forme (VS, makefile, etc)
Cela dit Ant + java est connu pour etre bien plus avance car avec beaucoup plus d'integration...
Si on pouvait avoir l'equivalent... a la place des configure.in et autres horreurs...
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.c



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.