[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] Makefile



Le Fri, 26 Sep 2008 21:22:55 +0200
Franck Joncourt <franck.mail@dthconnex.com> a écrit:

> Gaëtan PERRIER wrote:
> > Bonjour,
> 
> Bonsoir,
> 
> > Je me pose une question sur les Makefile. J'ai une arbo qui contient des
> > sources et je lance le make, les .o sont créés dans l'arbo. J'aurai aimé
> > qu'ils soient tous mis à un endroit bien précis. Est-ce possible?
> 
> CC     = gcc
> CFLAGS = -g -O0 -Wall
> SRCPATH = ./
> OBJPATH = ./obj/
> 
> %.o: %.c
>   $(CC) $(CFLAGS) -c $(SRCPATH)$< -o $(OBJPATH)$@
> 
> Voila un bout de ce que j'ai sous la main.
> 
> Soit les fichiers sources à la racine obtiennent leur fichiers .o dans
> le répertoire obj.
> 

Merci pour ta réponse rapide mais ensuite tu fais comment pour le link? De
plus il faut recréer l'arbo source dans ./obj sinon ça ne fonctionne pas, non?

Moi j'ai un truc du genre:

./inc/*.h
./src/*.c
./*.c
./Makefile

Je ne veux pas polluer ./inc et ./src

J'ai donc commencé avec un Makefile du genre:

CC=gcc
CFLAGS=-W -Wall -ggdb3
LDFLAGS=
EXEC=mon_prog
SRC= $(wildcard *.c)
SRC+=$(wildcard src/*.c)
OBJ= $(SRC:.c=.o)
INC_PATH=./itf/:./inc/

all: $(EXEC)

$(EXEC): $(OBJ)
	@$(CC) -o $@ $^ $(LDFLAGS)

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

Ce qui me crée des .o dans ./src/
Si je rajoute ce que tu m'indiques ça me crée bien les .o dans ./obj/
et ./obj/src (à condition que je crée cette arbo avant). Mais ensuite pour le
link ça ne marche pas. J'ai essayé de modifier en 
$(EXEC): $(OBJ)
	@$(CC) -o $(OBJ_PATH)$@ $^ $(LDFLAGS)

mais sans succès.

Gaëtan


Reply to: