-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile_Template
64 lines (48 loc) · 1.63 KB
/
Makefile_Template
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
#
#
# VARIABLES
#
#
NAME = %%
HEADER = %%
SRC_NAME = %%
SRCDIR = %%
SRC = %%
OBJ_NAME = $(SRC_NAME:.c=.o)
OBJDIR = %%
OBJ = ${addprefix $(OBJDIR), $(OBJ_NAME)}
FT_PRINTF_NAME = ft_printf.a
FT_PRINTF_DIR = ./printf/
FT_PRINTF = $(addprefix $(FT_PRINTF_DIR), $(FT_PRINTF_NAME))
FLAGS = -Wall -Werror -Wextra -Ofast
CC = clang
#################################################################################
##################################### RULES #####################################
#################################################################################
########## GENERALS ##########
.PHONY: all clean fclean re
all: $(OBJDIR) $(NAME)
re: fclean all
clean:
@rm -rf $(OBJDIR)
fclean:
@rm -rf $(OBJDIR) $(NAME)
@echo "\033[31m\033[1m\033[4mCleaning\033[0m\033[31m : Everything\033[0m [$(NAME)]";
######### COMPILATION #########
$(NAME): ./auteur $(OBJDIR) $(OBJ) $(HEADER)
@$(CC) $(FLAGS) $(OBJ) -o $(NAME)
@echo "\n \033[1m\033[4m\033[35m\\^/ Done compilate \\^/\033[0m [$(NAME)]"
@echo "#######################################################"
@echo "####################################################### /------------\\"
@echo "####################################################### \--------/"
@echo "#######################################################"
$(OBJDIR):
@clear
@mkdir $(OBJDIR)
@echo "\n>========= * \033[32m\033[1mCreating $(NAME) obj dir\033[0m * =========<";
$(OBJDIR)%.o: $(SRCDIR)%.c $(HEADER)
@$(CC) $(FLAGS) -c $< -o $@
@printf "\033[32m\033[1m\033[4mCompilating\033[0m\033[32m : %-30s\033[0m [$(NAME)]" $@
./auteur:
@echo $(AUTEUR) > ./auteur
@echo "\033[32m<Created Author file>\033[0m"