-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
81 lines (69 loc) · 2.13 KB
/
Makefile
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#########################################
########### LES VARIABLES ###############
# La racine du projet
# Warning => ne pas utiliser la variable PATH elle est réservé.
DPATH = .
#------------------------------------------
# Variables pour le traitement des images
DSRC = $(DPATH)/src
DBIN = $(DPATH)/bin
DINC = $(DPATH)/include
DDOC = $(DPATH)/doc
DOBJ = $(DPATH)/obj
EXEC=traitement_image
SRC= $(wildcard $(DSRC)/*.c)
OBJ= $(SRC:$(DSRC)/%.c=$(DOBJ)/%.o)
#------------------------------------------
# Variables pour les tests
TDSRC = $(DPATH)/test/src
TDBIN = $(DPATH)/test/bin
TDOBJ = $(DPATH)/test/obj
TDINC = $(DPATH)/test/include
TEXEC= test
TSRC= $(wildcard $(TDSRC)/*.c)
TOBJ= $(TSRC:$(TDSRC)/%.c=$(TDOBJ)/%.o)
#------------------------------------------
# OPTIONS DE COMPILATION
CC=gcc
CFLAGS=-g -std=c90 -pedantic -Wall -Wextra
LDFLAGS=
#########################################
############ LES REGLES #################
all: traitement_image
traitement_image: $(DBIN)/$(EXEC)
test: $(TDBIN)/$(TEXEC)
#****************************************
# Régles pour le traitement des images
$(DBIN)/$(EXEC): $(OBJ)
$(CC) -o $@ $^ $(LDFLAGS)
$(DOBJ)/%.o: $(DSRC)/%.c $(DINC)/*.h
$(CC) -o $@ -c $< $(CFLAGS) -I$(DINC)
#****************************************
# Régles pour les tests
$(TDBIN)/$(TEXEC): $(TOBJ)
$(CC) -o $@ $^ $(LDFLAGS)
$(TDOBJ)/%.o: $(TDSRC)/%.c $(TDINC)/*.h
$(CC) -o $@ -c $< $(CFLAGS) -I$(TDINC)
.PHONY: mrproper-traitement mrproper-test clean-traitement clean-test
#****************************************
# CLEAN
#
# On définit deux clean, un pour le projet et l'autre pour les tests
clean: clean-traitement clean-test
# Clean pour les fichiers de traitement des images
clean-traitement:
rm -rf $(DOBJ)/*.o
#clean pour les fichiers de test
clean-test:
rm -rf $(TDOBJ)/*.o
#****************************************
# PROPER
#
# On définit deux mrproper, un pour le projet et l'autre pour les tests
mrproper: mrproper-traitement mrproper-test
# mrproper pour les fichiers de traitement des images
mrproper-traitement: clean-traitement
rm -rf $(EXEC)
#mrproper pour les fichiers de test
mrproper-test: clean-test
rm -rf $(TEXEC)