Makefile.example 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #******************************************************************************#
  2. # #
  3. # ::: :::::::: #
  4. # Makefile :+: :+: :+: #
  5. # +:+ +:+ +:+ #
  6. # By: bchanot <bchanot@students.42.fr> +#+ +:+ +#+ #
  7. # +#+#+#+#+#+ +#+ #
  8. # Created: 2016/07/24 00:00:08 by bchanot #+# #+# #
  9. #* Updated: 2018/03/15 13:30:20 by xuser ### ########.fr *#
  10. # #
  11. #******************************************************************************#
  12. NAME = ft_
  13. MAKE_LIBS = make --no-print-directory
  14. SRCS_DIR = srcs/
  15. OBJS_DIR = .objects/
  16. LIBS_DIR = ./libs/
  17. CC = gcc -Wall -Wextra -Werror
  18. LIB = -L$(LIBS_DIR)/libft/ -lft
  19. INC = -I./includes -I$(LIBS_DIR)/libft/includes
  20. SRCS = file1 \
  21. file2
  22. #SUB_DIR_SRCS = sub_dir/
  23. #SUB_FILES = sub_dir_file1 \
  24. # sub_dir_file2
  25. #SUB_SRCS = $(addprefix SUB_DIR_SRCS, $(SUB_FILES))
  26. #SRCS += $(SUB_SRC)
  27. OBJS = $(addprefix $(OBJS_DIR), $(addsuffix .o, $(FILES)))
  28. RED = \033[1;31m
  29. BLUE = \033[1;34m
  30. CYAN = \033[0;36m
  31. GREEN = \033[1;32m
  32. YELLOW = \033[1;33m
  33. EOC = \033[0m
  34. all: libs $(NAME)
  35. libs:
  36. @$(MAKE_LIBS) -C $(LIBS_DIR)/libft
  37. $(NAME): $(OBJS)
  38. @echo -e "$(GREEN)Objects created.$(EOC)"
  39. @$(CC) $(OBJS) $(LIB) $(INC) -o $(NAME)
  40. @echo -e "$(GREEN)Compilation complete.$(EOC)"
  41. $(OBJS_DIR)%.o: $(SRCS_DIR)%.c
  42. @mkdir -p $(dir $@)
  43. $(CC) -c $< $(INC) -o $@
  44. clean:
  45. @echo -e "$(RED)Deleting objects.$(EOC)"
  46. @/bin/rm -rf $(OBJS_DIR)
  47. @$(MAKE_LIBS) clean -C $(LIBS_DIR)/libft
  48. fclean: clean
  49. @echo -e "$(RED)Deleting binary.$(EOC)"
  50. @/bin/rm -rf $(NAME)
  51. @$(MAKE_LIBS) fclean -C $(LIBS_DIR)/libft
  52. re: fclean all
  53. .PHONY: all libs clean fclean re