Retourner aux forums || Retourner au forum Programmation.c

Programmation.c : Indent & makefiles

Posté par bobert () le 25 août 2004
0
M'sieurs-dames, bonjour.

Ma 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).  

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.

Makefile

Posté par mansuetus (page perso, ) le 25/08/2004 à 13:24. (lien). Évalué à 1.

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

--
mansuetus @ spontex . org
  • [^]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.

Posté par tuan kuranes (page perso, ) le 25/08/2004 à 14:24. (lien). Évalué à 2.

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