Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
executable file
·84 lines (77 loc) · 2.79 KB
/
Copy pathMakefile
File metadata and controls
executable file
·84 lines (77 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: aben-azz <aben-azz@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2018/10/13 13:11:49 by aben-azz #+# #+# #
# Updated: 2019/03/01 19:41:37 by aben-azz ### ########.fr #
# #
# **************************************************************************** #
_END = \x1b[0m
_BOLD = \x1b[1m
_UNDER = \x1b[4m
_REV = \x1b[7m
_GREY = \x1b[30m
_RED = \x1b[31m
_GREEN = \x1b[32m
_YELLOW = \x1b[33m
_BLUE = \x1b[34m
_PURPLE = \x1b[35m
_CYAN = \x1b[36m
_WHITE = \x1b[37m
_IGREY = \x1b[40m
_IRED = \x1b[41m
_IGREEN = \x1b[42m
_IYELLOW = \x1b[43m
_IBLUE = \x1b[44m
_IPURPLE = \x1b[45m
_ICYAN = \x1b[46m
_IWHITE = \x1b[47m
NAME = libftprintf.a
CC = gcc
CFLAGS += -Wall -Werror -Wextra
LIBFT_PATH ?= ./libft/
LIBFT_NAME = libft.a
SRC_PATH = ./src/
HEADER = ./includes/ft_printf.h
SRC_NAME = ft_printf.c geters.c handle_numbers.c handlers.c
MSG = Compilation de ft_printf:
SRC = $(addprefix $(SRC_PATH),$(SRC_NAME))
OBJ_PATH = ./obj/
OBJ_NAME = $(SRC_NAME:.c=.o)
OBJ = $(addprefix $(OBJ_PATH),$(OBJ_NAME))
INCLUDES = $(LIBFT_PATH)includes ./includes/
INC_CC = $(foreach DIR,$(INCLUDES),-I$(DIR) )
CFLAGS += $(INC_CC)
LONGEST = $(shell echo $(notdir $(SRC)) | tr " " "\n" | awk ' { if (\
length > x ) { x = length; y = $$0 } }END{ print y }' | wc -c)
$(OBJ_PATH)%.o: $(SRC_PATH)%.c $(HEADER)
@mkdir -p $(OBJ_PATH)
@$(CC) $(CFLAGS) -I./includes -o $@ -c $<
@printf "$(_BOLD)$(_PURPLE)$(MSG)$(_END) $(_CYAN)%-$(LONGEST)s\
$(_END)" $(notdir $<)
@if test -s src/$*.c; then \
printf "$(_GREEN) [OK]\n$(_END)";\
else \
printf "$(_RED) [ERROR]\n$(_END)"; fi
all: $(LIBFT_PATH)$(LIBFT_NAME) $(NAME)
$(LIBFT_PATH)$(LIBFT_NAME):
@$(MAKE) -C $(LIBFT_PATH);
$(NAME): $(LIBFT_PATH)$(LIBFT_NAME) $(OBJ)
@echo "$(_BOLD)$(_YELLOW)Creation de la libftprintf ...$(_END)"
@cp $(LIBFT_PATH)$(LIBFT_NAME) $(NAME)
@$(AR) rcs $(NAME) $^
@echo "$(_BOLD)$(_GREEN)Compilation de la libftprintf terminée => ${NAME}$(_END)"
clean:
@$(MAKE) -C $(LIBFT_PATH) clean
@rm -rf $(OBJ_PATH)
fclean: clean
@$(MAKE) -C $(LIBFT_PATH) fclean
@rm -f $(NAME)
debug :
@gcc main.c libftprintf.a -o o
@printf "$(_GREEN)main.c pret$(_END)\n"
re: fclean all
.PHONY: all, clean, fclean, re