Problème avec un Makefile
Bonjour tout le monde,
J'ai un ptit problème avec Makefile que je suis en train d'écrire. J'ai essayé d'adopté une écriture plus généraliste, avec la gestions des répertoires etc...
Cependant, il ne semble pas prendre en compte la regle de substitution :
Code:
1 2 3
|
%.o: $(DRSC)/%.c
$(CC) $(CFLAGS) -o $@ -c $< |
Voici mon Makefile complet :
Code:
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
|
########
# Path #
########
DSRC = src
DINC = inc
DOBJ = obj
DEXE = .
DLIB = obj
##############################
# Complete this to make it ! #
##############################
NAME = accind_saisie
SRC = accind_saisie.c accind_flot.c exit_if.c
INCL = accind_flot.h exit_if.h
################
# Optional add #
################
IPATH = -I$(DINC)
LPATH = -L$(DLIB)
OBJOPT = -W -Wall -std=c99
EXEOPT = -W -Wall -std=c99
#####################
# Macro Definitions #
#####################
CC = gcc
CXX = g++
MAKE = make
SHELL = /bin/sh
OBJS = $(SRC:.c=.o)
DOBJS = $(addprefix $(DOBJ)/, $(SRC:.c=.o))
RM = /bin/rm -f
CFLAGS = $(OBJOPT) $(IPATH)
LDFLAGS = $(EXEOPT) $(LPATH)
##############################
# Basic Compile Instructions #
##############################
all: $(NAME)
$(NAME): $(OBJS)
$(CC) $(DOBJS) $(LDFLAGS) -o $(NAME)
clean:
-$(RM) $(NAME) $(DOBJS) *~
%.o: $(DRSC)/%.c
$(CC) $(CFLAGS) -o $@ -c $< |
Volontairement, je ne gère pas encore les dépendances des fichiers .h avec les .o. Je m'occuperai de cela au moment ou il trouvera deja la règle.
Voici le message d'erreur :
Code:
1 2 3
|
kal@kal-desktop ~/work/accInd $ make
make: *** Pas de règle pour fabriquer la cible « accind_saisie.o », nécessaire pour « accind_saisie ». Arrêt. |