You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

59 lines
1016 B

  1. NAME = ncurses
  2. SRC_FILE = \
  3. main.c \
  4. OBJ_FILE = $(SRC_FILE:.c=.o)
  5. INC_FILE = \
  6. ncurses.h \
  7. macros.h \
  8. SRC_DIR = src/
  9. OBJ_DIR = obj/
  10. INC_DIR = inc/
  11. SRC = $(addprefix $(SRC_DIR), $(SRC_FILE))
  12. OBJ = $(addprefix $(OBJ_DIR), $(OBJ_FILE))
  13. INC = $(addprefix $(INC_DIR), $(INC_FILE))
  14. LIB =
  15. CC = gcc
  16. CFLAGS = -Wall -Werror -Wextra
  17. RED = \033[31m
  18. GREEN = \033[32m
  19. YELLOW = \033[33m
  20. BLUE = \033[34m
  21. CYAN = \033[36m
  22. WHITE = \033[0m
  23. all: $(NAME)
  24. $(NAME): $(OBJ) $(INC)
  25. @$(CC) $(CFLAGS) -c $(SRC) -I $(INC_DIR)
  26. @mv $(OBJ_FILE) $(OBJ_DIR)
  27. @$(CC) $(CFLAGS) $(OBJ) -o $(NAME) $(LIB)
  28. @echo -e "$(GREEN)[OK]$(WHITE) $(NAME)"
  29. $(OBJ_DIR)%.o: $(SRC_DIR)%.c inc/
  30. @if [ ! -d ./obj ]; then \
  31. mkdir -p ./obj; \
  32. fi;
  33. @$(CC) $(CFLAGS) -I $(INC_DIR) -o $@ -c $<
  34. @echo -e "$(CYAN)[CC]$(WHITE) $<"
  35. clean:
  36. @rm -rf $(OBJ_DIR)
  37. @echo -e "$(RED)[REMOVED]$(WHITE) obj files"
  38. fclean: clean
  39. @rm -f $(NAME)
  40. @echo -e "$(RED)[REMOVED]$(WHITE) $(NAME)"
  41. re: fclean all
  42. .PHONY: all clean fclean re