
Bonsoir tout le monde !
Voilà mon problème.
J'ai passé mon après-midi a écrire un programme et j'ai le plaisir d'annoncer qu'il marche très bien et compile sans warning. Le problème, c'est que là ou je suis, dans nos Makefile nous devons mettre une règle OBJ sous la forme :
OBJ = $(SRC:.o=.c)
Et quand la règle all dépend de celle-ci, plus rien ne va... à partir de ce moment là, mes fichiers headers ne sont plus inclus...
Et comme j'aime faire un code beau et propre, j'aime bien regrouper toutes les déclarations dans seulement quelques fichiers. Je ne peux donc pas y renoncer.
Voici mon Makefile :
NAME = bsq
CC = gcc
CFLAGS = -W -Wall -ansi -pedantic
SRC = main.c \
build_tab.c \
find_square.c \
my_functions.c \
draw_tab.c
HEADERS = -I./headers/
OBJ = $(SRC:.c=.o)
RM = rm -rf
all: $(OBJ)
$(CC) $(CFLAGS) -o $(NAME) $(SRC) $(HEADERS)
fclean:
$(RM) *.o
clean: fclean
$(RM) bsq
.phony: all clean fclean
(pour ceux qui connaissent, OUI c'est la BSQ et oui il m'a fallut toute une après-midi pour la faire... m'apprendra à faire la fête toute la nuit...)
Je pense que ce sera pas bien grave si je rend un Makefile sans règle OBJ, mais comme je vais devoir écrire encore maints et maints Makefile, j'aimerais bien comprendre qu'est-ce qui ne va pas et pourquoi