72 lines
1.4 KiB
Makefile
72 lines
1.4 KiB
Makefile
SRC = main.c \
|
|
ft_lib.c \
|
|
ft_io.c
|
|
HEADERS = main.h \
|
|
ft_lib.h \
|
|
ft_io.h \
|
|
colors.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
|
|
|
|
SUCCESS_MSG=printf '\n\033[32m --- %s --- \033[m\n\n' "Test passed!"
|
|
FAIL_MSG=printf '\n\033[31m --- %s --- \033[m\n\n' "Test failed!"
|
|
SUCCESS=&& $(SUCCESS_MSG) || $(FAIL_MSG)
|
|
FAIL=&& $(FAIL_MSG) || $(SUCCESS_MSG)
|
|
run:
|
|
@clear
|
|
./$(NAME) $(SUCCESS)
|
|
./$(NAME) 1 $(SUCCESS)
|
|
./$(NAME) "./dicts/numbers2.dict" 1 $(SUCCESS)
|
|
./$(NAME) 1 "./dicts/numbers2.dict" $(FAIL)
|
|
./$(NAME) 1 "./dicts/numb.dict" $(FAIL)
|
|
./$(NAME) 1 2 3 $(FAIL)
|