Bonjour les gars !!
Voici ma question hebdomadaire...

Je suis en train de faire un makefile à la main pour pouvoir compiler sous Linux une application C++.
J'aimerais bien savoir pourquoi il ne marche pas correctement... (ou pas du tout d'ailleurs)
Voici le code du 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
29
30
31
32
33
34
35
36
37
38
39
 
# Compiler g++
CC=g++
 
# Compiler options
CFLAGS=-c -Wall -O3 
 
# Object folder
OBJ_F=./obj
 
# All ".o"
OBJ = pqr.o pqr_tst.o pqr_ob_fee.o
 
all: demo
	mkdir ./obj
 
demo: demo.o pqr.o pqr_tst.o pqr_ob_fee.o 
#	demo$(CC) $(OBJ_F)/$(OBJ) -o
	$(CC) $(OBJ_F)/ $(OBJ) -o
 
demo.o: test2.cpp
	mkdir ./obj
	$(CC) $(CFLAGS) test2.cpp
	mv test2.o $(OBJ_F)
 
pqr.o: pqr.cpp
	$(CC) $(CFLAGS) pqr.cpp
	mv pqr.o $(OBJ_F)
 
pqr_tst.o: pqr_tst.cpp
	$(CC) $(CFLAGS) pqr_tst.cpp
	mv pqr_tst.o $(OBJ_F)
 
pqr_ob_fee.o: pqr_ob_fee.cpp
	$(CC) $(CFLAGS) pqr_ob_fee.cpp	
	mv pqr_ob_fee.o $(OBJ_F)
 
clean:
	rm -rf $(OBJ_F) demo *core*
Le but c'était qu'il mette tous les .o dans un repertoire "obj" que le script aurait créé auparavant.
Comment je peux faire pour qu'il compile tous les .o contenus en "obj" d'un seul coup ? (Comme ce que j'ai essayé de faire avec $(CC) $(OBJ_F)/ $(OBJ) -o)

Une deuxième question... à quoi ça sert : $<, $* et $@ ?
Quelqu'un peux me donner des exemples ?

Merci beaucoup de votre aide !!