Makefile complet et générique
Bonsoir
Je suis en train d'ecrire une makefille assez complet, multiplateforme, et generique ;).
Mon but est d'avoir plusieurs dossiers (un pour les sources, un pour mes lib, un pour mes includes, et un pour les objets) mais je n'y arrive pas, je ne vois pas pourquoi :
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
| NAME =
CC_FreeBSD = /usr/bin
CC_SunOS = /usr/sfw/bin
CC_Linux = /usr/bin
SRCDIR = src
OBJDIR = obj
LIBDIR = lib
INCDIR = include
BINDIR = bin
SRC = main.c \
is_opt.c \
my_ls.c
LIB = -lmy -lmy_printf_`uname -m`-`uname -s` -lmy_x
OBJ = $(SRC:.c=.o)
CC = $(CC_`uname`)/gcc
LDFLAGS += -L$(LIBDIR)/
CFLAGS += -arch `uname -m` -W -Wall -ansi -pedantic -g -ggdb -I$(INCDIR)/
MKDIR = mkdir
RM = rm -f
ECHO = echo -e
$(NAME) : $(OBJ)
@$(CC) $(CFLAGS) $(OBJDIR)/$(OBJ) -o $(BINDIR)/$(NAME) $(LDFLAGS) $(LIB)
@$(ECHO) '\033[0;32m> Compiled\033[0m'
clean :
-@$(RM) $(OBJDIR)/$(OBJ)
-@$(RM) *~
-@$(RM) \#*\#
@$(ECHO) '\033[0;35m> Directory cleaned\033[0m'
all : $(NAME)
fclean : clean
-@$(RM) $(NAME)
@$(ECHO) '\033[0;35m> Remove executable\033[0m'
re : fclean all
.PHONY : all clean re
.c.o :
-@$(MKDIR) $(OBJDIR)
$(CC) -o $(OBJDIR)/$@ -c $(SRCDIR)/$< $(CFLAGS) |
Il n'arrive pas a me compiler mes .c en .o tout en les mettants dans le dossier obj.