NAME		= ncurses

SRC_FILE	= \
				main.c \

OBJ_FILE	= $(SRC_FILE:.c=.o)

INC_FILE	= \
				ncurses.h \
				macros.h \

SRC_DIR		= src/
OBJ_DIR		= obj/
INC_DIR		= inc/

SRC			= $(addprefix $(SRC_DIR), $(SRC_FILE))
OBJ			= $(addprefix $(OBJ_DIR), $(OBJ_FILE))
INC			= $(addprefix $(INC_DIR), $(INC_FILE))

LIB			=

CC			= gcc

CFLAGS		= -Wall -Werror -Wextra

RED			= \033[31m
GREEN		= \033[32m
YELLOW		= \033[33m
BLUE		= \033[34m
CYAN		= \033[36m
WHITE		= \033[0m

all: $(NAME)

$(NAME): $(OBJ) $(INC)
	@$(CC) $(CFLAGS) -c $(SRC) -I $(INC_DIR)
	@mv $(OBJ_FILE) $(OBJ_DIR)
	@$(CC) $(CFLAGS) $(OBJ) -o $(NAME) $(LIB)
	@echo -e "$(GREEN)[OK]$(WHITE) $(NAME)"

$(OBJ_DIR)%.o: $(SRC_DIR)%.c inc/
	@if [ ! -d ./obj ]; then \
		mkdir -p ./obj; \
	fi;
	@$(CC) $(CFLAGS) -I $(INC_DIR) -o $@ -c $<
	@echo -e "$(CYAN)[CC]$(WHITE) $<"

clean:
	@rm -rf $(OBJ_DIR)
	@echo -e "$(RED)[REMOVED]$(WHITE) obj files"

fclean: clean
	@rm -f $(NAME)
	@echo -e "$(RED)[REMOVED]$(WHITE) $(NAME)"

re: fclean all

.PHONY: all clean fclean re