Bonjour,

Je voudrai écrire un makefile pour compiler des sources selon le schéma suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
   / makefile
           src/main.cc
                  hello/hello.cc
en

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
   / makefile
           src/main.cc
                  hello/hello.cc
           obj/main.o
                   hello/hello.o
           bin/app
J'arrive a ecrire un makefile qui compile le main.cc en main.o puis en app. Mais je n'arrive pas a creer le makefile avec la sous arborence hello.

De plus j'aimerai le faire sans avoir a faire une liste des sources dans le makefile.

Voila mon makefile pour la compilation avec un seul repertoire
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
 
 
EXEC = app
CC       = g++
CFLAGS   = -W -Wall -ansi -pedantic
LDFLAGS  =  -lboost_regex
EXECPATH = ./bin
SRC= src
OBJ= obj
 
all: $(EXECPATH)/$(EXEC)
	$(EXECPATH)/$(EXEC)
 
$(EXECPATH)/$(EXEC): $(OBJ)/*.o
	$(CC) -o $(EXECPATH)/$@ $^ $(LDFLAGS) 
 
$(OBJ)/%.o: = $(SRC)/%.cc
	$(CC) -o $@ -c $< $(CFLAGS)
 
.PHONY: clean mrproper
 
clean:
	@rm -rf $(OBJ)/*.o
 
mrproper: clean
	@rm -rf $(EXECPATH)/$(EXEC)
NB: je suis sous linux.