Utilisation de Makefile SVP
Phil
-
eric -
eric -
Bonjour tout le mode.
SVP j'ai besoin de l'aide concernant un travail que je fais (Programme de chat)pour cela j'ai créer quelques fichiers (Client.c, server.c, principale.h. principal.x,multicast.h, Makefile).
Voici le code de Makefile que j'ai :
ifeq ($(HOST), arabica)
CC = cc
MAKE = gmake
FLAGS =
LIBS = -lnsl
SERVER = serveur_sun
CLIENT = client_sun
else
CC = gcc
MAKE = make
FLAGS = -Wall
LIBS = -lm
SERVER = serveur
CLIENT = client
endif
PROGS = client server
CFLAGS = -DDEBUG -Wall
feux.h feux_clnt.c feux_svc.c feux_xdr.c:
feux.x rpcgen -C feux.x
feux_clnt.o:
feux_clnt.c feux.h
feux_svc.o:
feux_svc.c feux.h
client:
feux.h client.o feux_clnt.o feux_xdr.o
${CC} ${CFLAGS} -o ${CLIENT} client.o feux_clnt.o feux_xdr.o \
${LIBS}
server:
feux.h server.o feux_svc.o feux_xdr.o
${CC} ${CFLAGS} -o ${SERVER} server.o feux_svc.o feux_xdr.o \
${LIBS}
clean:
rm -f *.o *_clnt.c *_svc.c *_xdr.c feux.h
ma question est la suivante : Comment je peux compiler et executer tous ces fichiers en utilisant le makefile ???
Merci d'avance de votre aide.
SVP j'ai besoin de l'aide concernant un travail que je fais (Programme de chat)pour cela j'ai créer quelques fichiers (Client.c, server.c, principale.h. principal.x,multicast.h, Makefile).
Voici le code de Makefile que j'ai :
ifeq ($(HOST), arabica)
CC = cc
MAKE = gmake
FLAGS =
LIBS = -lnsl
SERVER = serveur_sun
CLIENT = client_sun
else
CC = gcc
MAKE = make
FLAGS = -Wall
LIBS = -lm
SERVER = serveur
CLIENT = client
endif
PROGS = client server
CFLAGS = -DDEBUG -Wall
feux.h feux_clnt.c feux_svc.c feux_xdr.c:
feux.x rpcgen -C feux.x
feux_clnt.o:
feux_clnt.c feux.h
feux_svc.o:
feux_svc.c feux.h
client:
feux.h client.o feux_clnt.o feux_xdr.o
${CC} ${CFLAGS} -o ${CLIENT} client.o feux_clnt.o feux_xdr.o \
${LIBS}
server:
feux.h server.o feux_svc.o feux_xdr.o
${CC} ${CFLAGS} -o ${SERVER} server.o feux_svc.o feux_xdr.o \
${LIBS}
clean:
rm -f *.o *_clnt.c *_svc.c *_xdr.c feux.h
ma question est la suivante : Comment je peux compiler et executer tous ces fichiers en utilisant le makefile ???
Merci d'avance de votre aide.
A voir également:
- Utilisation de Makefile SVP
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- La ressource demandée est en cours d'utilisation - Forum Téléphones & tablettes Android
- Vous avez utilisé ce numéro de téléphone à de trop nombreuses reprises - Forum Gmail
- Logiciel en Cours d'utilisation ? ✓ - Forum Logiciels
2 réponses
tu fais make nomDuProg et hop c parti (enfin sous linux c comme ca apres sous win j'en sais rien)mais si c en C ton prog a premier vue oui, sous linux le makefile "fait tout seul" pour le C, tu tape direct make nomDeAppli et il compile le tout
Bonjours,
Dans un fichier makefile, ce qui se trouve entre le début d'une ligne et le symbôle ":" est appelé une "target" ou cible en bon français. Dans ton cas, tu as 6 targets:
- feux.h feux_clnt.c feux_svc.c feux_xdr.c
- feux_clnt.o
- feux_svc.o
- client
- server
- clean
Les trois premières sont des targets intermédiaires, c'est à dire qu'elles ne produisent pas quelque chose de directement utilisable, mais qui sera utilisé par un autre cible.
Les trois dernières sont de targets finales.
Ensuite, derrière le ":" tu as les dépendances. Par exemple, pour pouvoir "faire" (make) la target "feux_svc.o", tu as d'abord besoin du résultat des targets "feux_svc.c" et "feux.h" que le programme make va appeler automatiquement.
Enfin, vient ce qu'il faut faire pour la cible en question. C'est par exemple la ligne " ${CC} ${CFLAGS} -o ${CLIENT} client.o feux_clnt.o feux_xdr.o ${LIBS}", la compilation proprement dite.
Donc pour répondre à ta question, tu as le choix entre
make server
make client
make clean
ou une combinaison comme "make server client".
Par contre, il n'est pas question d'exécuter un programme avec make.
a+
eric
Dans un fichier makefile, ce qui se trouve entre le début d'une ligne et le symbôle ":" est appelé une "target" ou cible en bon français. Dans ton cas, tu as 6 targets:
- feux.h feux_clnt.c feux_svc.c feux_xdr.c
- feux_clnt.o
- feux_svc.o
- client
- server
- clean
Les trois premières sont des targets intermédiaires, c'est à dire qu'elles ne produisent pas quelque chose de directement utilisable, mais qui sera utilisé par un autre cible.
Les trois dernières sont de targets finales.
Ensuite, derrière le ":" tu as les dépendances. Par exemple, pour pouvoir "faire" (make) la target "feux_svc.o", tu as d'abord besoin du résultat des targets "feux_svc.c" et "feux.h" que le programme make va appeler automatiquement.
Enfin, vient ce qu'il faut faire pour la cible en question. C'est par exemple la ligne " ${CC} ${CFLAGS} -o ${CLIENT} client.o feux_clnt.o feux_xdr.o ${LIBS}", la compilation proprement dite.
Donc pour répondre à ta question, tu as le choix entre
make server
make client
make clean
ou une combinaison comme "make server client".
Par contre, il n'est pas question d'exécuter un programme avec make.
a+
eric