Sign in to follow this  
Clemon

[TUTO][C] Compiler sont projet avec "Makefile"

Recommended Posts

 

 

 

Makefile

Qu'est-ce que le Makefile ?
Le Makefile, est un outil (seulement disponible sur les système basé sur linux) utile pour faire ces projet en C, car en C si vous voulez codé avec un éditeur de text,
utilisé un Makefile sera trés utile.
 

Comment sa marche ?

Sa consiste à donner une liste de fichier, puis à donner différentes instructions, pour compiler votre projet, cet outils intelligent compilera seulement si le programme n'est pas à jour.
Vous l'aurez comprit, on peut l'utiliser pour différents cas ou besoin.

Les variables

 


Pour différenciés les Variables des Fonctions, ses tout simple les variables ont une syntaxe ou l'opérateur est '=' exemple : SRC = main.c
Pour mettre plusieurs fichiers, donc faire une liste, il suffit de mettre un '\' à chaque ligne après le fichier exemple : SRC = main.c \
test.c

Pour appeler une variable, on utilise $ comme en php, sauf que le nom de la variable se met en parenthèse.

Vous pouvez par exemple récupérer un tableau est remplacer un mot par un autres ou une extension par une autre exemple : OBJ = $(SRC:.c=.o)

Les fonctions

 


Dans le cas des fonctions, on les reconnais grâce à leurs opérateur qui est ':' exemple : test :

Alors dans les fonctions, il faut savoir que la première ligne (celle qui suit le nom de la fonction), sert plusieurs choses, comme appeler une autre fonction,
vérifié si des fichiers ont été modifier comparer à la dernière fois ou même compiler (Ont peut passer des flags via la variable CFLAGS).

Pour donner des instructions comme compiler, supprimer des fichiers ou autres, se font à partir de la deuxième ligne, vous pouvez appeler, des variables dans
des instructions exemple : rm -f $(OBJ)

Les fonctions principal

 

Les fonctions all, re, fclean, clean et $(NAME), sont obligatoire (Oui aussi $(NAME))

$(NAME) contient les instruction principal (Compilation ou autres)

all est appeler par défaut, lors de l'appele de 'make' (dans le terminal)

re cette fonction appellera la fonciton principal même si il n'y a pas eu de modification.

fclean sert à faire un grand néttoyage en générale supprime les fichiers temporaire et aussi le fichier 'out'

clean supprime elle seulement les fichiers temporaire

Utilisation du Makefile

 

Vous pouvez, utilisé votre Makefile, seulement quand vous êtes dans le même dossier que celui-ci.

Vous l'utiliserais par défaut juste en faisant 'make', vous pouvez appeler une fonction spécifique en le mettant en paramètre exemple : make fclean
Les seul fonction que vous ne pouvez appeler sont seulement ce qui ont l'architecture d'une variable exemple : make $(NAME)
Qui ne marchera pas, mais pour une variable classique sa marchera.

Exemple de Makefile

 
SRC	=	main.c	\
		test.c	\
        test.h
        
OBJ	=	$(SRC:.c=.o)

TMP	=	$(OBJ:.h=.h~)

NAME	=	test

CFLAGS	=	-W -Wall -Werror

all:	$(NAME)

$(NAME):	$(OBJ)
	gcc $(OBJ) -o $(NAME) $(CFLAGS)
    
fclean:	clean
	rm -f $(NAME)
clean:
	rm -f $(TMP)
re:	fclean	$(NAME)

 

Je tient à préciser, que ce tuto je le fait par rapport à mais test, et mes expériences, j'espère que sa sera utile.

Edited by Clemon

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this