Defines dans un Makefile multi-clibles
Bonjour.
Un travail pour mon école consiste à recoder un serveur FTP doté de commandes basiques (put/get/ls/cd/pwd). Pour faire plus clean j'ai unifié les fonctions, et ce sont le même fichier qui sert pour le client ou le serveur.
Malheureusement il y a une petite difficulté : les messages doivent s'afficher sur la sortie standard pour le client, et sur le socket pour le serveur.
Je me suis rappelé une astuce que j'avais vu en stage : la définition de macro dans le makefile (comme ça à la compile avec le makefile je défini le fd).
Malheuresement je ne parviens pas à l'appliquer dans le cas d'un MAkefile multi-cible, qui doit générer le client ET le serveur. Normalement l'option -D DEFINE se met dans les CFLAGS, mais dans ce cas je ne le peux, sinon elle s'applique également au serveur. Je fais suivre le Makefile :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
STDSRC = func.c xfunc.c my_greps.c
SRC = serveur.c $(STDSRC)
SRC2 = client.c $(STDSRC)
CC = gcc
OBJ = $(SRC:.c=.o)
OBJ2 = $(SRC2:.c=.o)
CFLAGS = -W -Wall -pedantic -g
EXEC = serveur client
serveur : $(OBJ)
@gcc $(OBJ) -o $@ $(LDFLAGS)
client : $(OBJ2)
@gcc $(OBJ2) -o $@ $(LDFLAGS) -DCLIENT |
Dans ce cas là ça ne fonctionne pas ;
Par contre si tape :
gcc -DCLIENT client.c ... -o client, ça marche.
Merci d'avance.