Bonsoir tout le monde.

Alors j'ai fait un makefile qui me permet de compiler un projet C qui possède toujours la même structure : bin, headers, src qui sont des dossiers où l'on y trouve respectivement : executable, les .h, les .c

Je voudrais aussi faire un dossier obj qui contient les .o mais je n'y arrive pas.

Voici le makefile :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
CC=gcc
CFLAGS=-Wall -std=c99 -Wextra -O -Wwrite-strings -Wstrict-prototypes -Wuninitialized -Wunreachable-code -Wno-missing-braces  -Wno-missing-field-initializers -Iheaders
LDFLAGS=-Wall -lm
EXEC=bin/Bataille
VPATH=src
vpath %.h headers
SRC=$(wildcard src/*.c)
OBJ=$(notdir $(SRC:.c=.o))
 
Bataille: $(OBJ)
	@ $(CC) -o $(EXEC) $(OBJ) $(LDFLAGS)
	@echo creation de lien
 
%.o: %.c
	@ $(CC) -c $< $(CFLAGS)
	@echo creation de $@
 
.PHONY: clean mrproper
	@echo suppression de tous les fichiers.
 
mrproper: clean
	@ rm -f $(EXEC)
	@echo suppression executable
 
clean:
	@ rm -f *.o
	@echo suppression des fichiers objets
Je suis ouvert a toute proposition et critique => si vous pensez le rendre plus simple, compact etc...

Merci d'avance.