piscine-rush02/ex00/Makefile

58 lines
859 B
Makefile

SRC = main.c \
ft_lib.c
HEADERS = ft_lib.h
OBJDIR = obj
INCDIR = include
CC = cc
CFLAGS = \
-Wall \
-Wextra \
-Werror \
-I$(INCDIR)
LDFLAGS =
_OBJ = $(SRC:.c=.o)
OBJ = $(addprefix $(OBJDIR)/,$(_OBJ))
DEPS = $(addprefix $(INCDIR)/,$(HEADERS))
RM = /bin/rm -f
RMDIR = /bin/rmdir
.DEFAULT_GOAL=test
NAME ?= rush-02
.PHONY: re fclean clean all
all: $(NAME)
clean:
@$(RM) $(OBJ)
fclean: clean
@$(RM) $(NAME)
@$(RMDIR) $(OBJDIR) 2>/dev/null || true
re: fclean all
$(NAME): $(OBJ)
@$(CC) $(LDFLAGS) $^ -o $@
$(OBJ): | $(OBJDIR)
$(OBJDIR)/%.o: %.c $(DEPS)
@norminette $< >/dev/null || { printf '\033[107;41m%s\033[m\n' "!Norminette Failed>>>"; norminette $<; printf '\033[107;41m%s\033[m\n' "<<<Norminette Failed!"; exit 1; }
@$(CC) $(CFLAGS) -c $< -o $@
$(OBJDIR):
@mkdir -p $@
tests: test
test: re run fclean
run:
./$(NAME)