0% ont trouvé ce document utile (0 vote)
2 vues2 pages

Guide des Makefiles pour C, Java, Python

Transféré par

beaugossjules
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues2 pages

Guide des Makefiles pour C, Java, Python

Transféré par

beaugossjules
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Guide Complet des Makefiles

1. Qu’est-ce qu’un Makefile ?


Un Makefile est un fichier utilisé pour automatiser la compilation et l'exécution de projets. Il contient
des règles décrivant comment et quand construire chaque partie du projet.

2. Structure d’une règle


Une règle est composée d’une cible, de dépendances et d’une commande :

cible: dépendances
commande

3. Concepts essentiels
Voici les éléments fondamentaux à connaître pour maîtriser Make :

• Make reconstruit uniquement ce qui a changé (basé sur les timestamps).


• Les variables rendent le Makefile plus flexible.
• Les patrons (% rules) automatisent la compilation de nombreux fichiers.

4. Les Pattern Rules (%)


Elles permettent d'écrire des règles génériques comme :

%.o: %.c
gcc -c $< -o $@

5. Makefile pour C
Voici un Makefile propre et complet :

CC = gcc
CFLAGS = -Wall -Wextra -g
SRC = main.c utils.c
OBJ = $(SRC:.c=.o)
EXEC = programme

$(EXEC): $(OBJ)
$(CC) $(OBJ) -o $(EXEC)

%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@

clean:
rm -f $(OBJ)

fclean: clean
rm -f $(EXEC)

re: fclean $(EXEC)


6. Makefile pour Java
Un Makefile Java compile les .java en .class et exécute la classe principale.

SRC_DIR = src
BIN_DIR = bin
MAIN_CLASS = [Link]

SOURCES = $(shell find $(SRC_DIR) -name "*.java")

compile:
mkdir -p $(BIN_DIR)
javac -d $(BIN_DIR) $(SOURCES)

run: compile
java -cp $(BIN_DIR) $(MAIN_CLASS)

clean:
rm -rf $(BIN_DIR)/*

7. Makefile pour Python


Python ne nécessite pas de compilation mais Make peut automatiser l'exécution.

run:
python3 [Link]

test:
python3 -m unittest

clean:
find . -name "__pycache__" -exec rm -r {} +

8. À retenir absolument
• structure des règles
• variables
• substitutions (.c → .o)
• patterns (%.o)
• $@, $<, $^
• .PHONY
• Make reconstruit seulement ce qui a changé

Vous aimerez peut-être aussi