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
|
NAME = exec
LIBNAME = lib.a
CC = gcc
CFLAGS = -Wall -Wextra -Werror -I$(INCDIR)
SRCDIR = src/subdir/
BINDIR = bin/
INCDIR = inc/
SRC = $(wildcard $(SRCDIR)*.c)
OBJ = $(addprefix $(BINDIR), $(notdir $(SRC:.c=.o)))
RM = /bin/rm
$(NAME): $(BINDIR)$(NAME)
$(BINDIR)$(NAME): $(LIBNAME)
$(CC) $(CFLAGS) -o $@ $(BINDIR)$<
$(LIBNAME): $(BINDIR)$(LIBNAME)
$(BINDIR)$(LIBNAME): $(OBJ)
ar rc $@ $^
ranlib $@
$(BINDIR)%.o: $(SRCDIR)%.c
$(CC) $(CFLAGS) -c $< -o $@
all: $(NAME)
clean:
$(RM) $(OBJ)
fclean: clean
$(RM) $(BINDIR)$(LIBNAME)
/bin/rm $(BINDIR)$(NAME) #pourquoi $(RM) ne fonctionne pas ?
re: fclean all
.PHONY: all clean fclean re |