Makefile 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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/10/26 11:18:16 by bchanot ### ########.fr *#
  10. # #
  11. #******************************************************************************#
  12. NAME = ft_ssl
  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 -g
  18. LIB = -L./$(LIBS_DIR)/libft/ -lft
  19. INC = -I./includes -I./$(LIBS_DIR)/libft/includes
  20. FILES = main \
  21. sl_get_inf \
  22. sl_core \
  23. sl_hash \
  24. sl_md5 \
  25. sl_sha2 \
  26. sl_sha3_5 \
  27. sl_sha_init \
  28. sl_sha_registers
  29. SRCS = $(FILES)
  30. OBJS = $(addprefix $(OBJS_DIR), $(addsuffix .o, $(SRCS)))
  31. RED = \033[1;31m
  32. BLUE = \033[1;34m
  33. CYAN = \033[0;36m
  34. GREEN = \033[1;32m
  35. YELLOW = \033[1;33m
  36. EOC = \033[0m
  37. all: libs $(NAME)
  38. libs:
  39. @$(MAKE_LIBS) -C $(LIBS_DIR)/libft
  40. $(NAME): $(OBJS)
  41. @echo -e "$(GREEN)Objects created.$(EOC)"
  42. @$(CC) $(OBJS) $(LIB) $(INC) -o $(NAME)
  43. @echo -e "$(GREEN)Compilation complete.$(EOC)"
  44. $(OBJS_DIR)%.o: $(SRCS_DIR)%.c
  45. @mkdir -p $(dir $@)
  46. $(CC) -c $< $(INC) -o $@
  47. clean:
  48. @echo -e "$(RED)Deleting objects.$(EOC)"
  49. @/bin/rm -rf $(OBJS_DIR)
  50. @$(MAKE_LIBS) clean -C $(LIBS_DIR)/libft
  51. fclean: clean
  52. @echo -e "$(RED)Deleting binary.$(EOC)"
  53. @/bin/rm -rf $(NAME)
  54. @$(MAKE_LIBS) fclean -C $(LIBS_DIR)/libft
  55. re: fclean all
  56. .PHONY: all libs clean fclean re