Salut à tous et à toutes.
Je débute avec les Makefile et suite à des expériences dans un Makefile, je me retrouve perturbé.
Pour la mise en situation, j’ai un petit projet constitué de 4 fichiers : main.c, point.c, point.h et un Makefile. Le contenu du Makefile est comme suit.
Prog : main.o point.o
gcc -o Prog main.o point.o
MAIN.o :
gcc -o main.o -c main.c
point.o : point.c
gcc -o point.o -c point.c
En exécutant make dans l’invite de commande, j’arrive à produire l’exécutable. Je ne comprends pas pourquoi cela fonctionne puisque (si je ne me trompe pas) les fichiers main.o et point.o n’existent pas encore au tout début de l’exécution de make et par conséquent font référence à des labels (cibles) à exécuter.
La cible point.o est bien présente dans le Makefile, mais au lieu de la cible main.o, on retrouve la cible MAIN.o. J’ai l’impression que l’outil make ne fait pas de différence entre la majuscule et la minuscule. Après de longues heures de recherche, je n’ai trouvé aucune information qui confirme mon impression et encore moins aucune qui l’infirme.
Je voudrais, s’il vous plaît, avoir vos retours par rapport à ce comportement et des suggestions pour rédiger un bon Makefile.
J’utilise la version 3.81 de GNU Make
Merci d’avance pour vos retours.