Salut all,
Bon alors voilà mon histoire:
J'ai écris un Makefile de base pour mon projet, ce Makefile contient des commandes brutes pour compiler CHAQUE objet, bon il est pas très beau, et ca me gonfle d'avoir à le modifier à chaque fois que j'ajoute un nouveau fichier source.
Pour être honnête je n'ai pas lu en profondeur un tutorial sur l'écriture de makefile avancé, pour cause de manque de temps. J'ai tellement des trucs en ce moment que je ne trouve même presque plus le temps de manger ^^
Mais alors j'ai pensé au caractères '*' ah tiens essayant un Makefile:
Mes codes sources sont étalés exactement comme le montre le makefile ce qui veut dire:# compiler
CC = gcc
# sources
SRC = ./src
# objects
OBJ = ./obj
# headers
HDR = ./include
# binary
BIN = ./bin
# librarys
LIB = -lmysqlclient -lz -lpthread
CFLAGS = -Wall -O2 -g
all: $(BIN)/pokerd
$(BIN)/pokerd: $(OBJ)/*.o
$(CC) -o $(BIN)/pokerd $(OBJ)/*.o $(LIB)
$(OBJ)/*.o: $(SRC)/*.c $(HDR)/*.h
$(CC) $(CFLAGS) -I$(HDR) -c $(SRC)/*.c $(OBJ)/*.o
cleanobj:
rm -rf $(OBJ)/*.o
clean: cleanobj
rm -rf $(BIN)/pokerd
include/ : tous les .h
src/ : tous les .c
obj/ : tous les .o compilés
bin/ : le binaire final
Bon ce Makefile ne fonctionne trop pas :/, j'ai directement une erreur:
Est-ce que j'ai fais n'importe quoi?include/*.h: no such file or directory
make error 1...
Comment remédier à ça? (s'il vous plait ne me demandez pas de lire la doc sur make car croyez moi j'ai vraiment pas assez de temps pour le moment :/)
Merci
Partager