-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
92 lines (74 loc) · 3.25 KB
/
Makefile
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
85
86
87
88
89
90
91
92
#******************************************************************************#
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: flagoutt <[email protected]> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2015/03/05 17:59:57 by flagoutt #+# #+# #
# Updated: 2015/06/21 19:33:18 by flagoutt ### ########.fr #
# #
#******************************************************************************#
# **************************************************************************** #
# PROGRAM #
# **************************************************************************** #
NAME = ft_retro
# **************************************************************************** #
# SOURCES
# **************************************************************************** #
DIRSRC = srcs
SRCS = main.cpp \
$(DIRSRC)/keyhooks.cpp \
$(DIRSRC)/ABullet.class.cpp \
$(DIRSRC)/BulletHandler.class.cpp \
$(DIRSRC)/AEnemy.class.cpp \
$(DIRSRC)/EnemyHandler.class.cpp \
$(DIRSRC)/Ship.class.cpp
# **************************************************************************** #
# DIRECTORIES
# **************************************************************************** #
DIRBIN = bin
BIN = $(addprefix $(DIRBIN)/, $(SRCS:.cpp=.opp))
DIRLIST = srcs
DIRINC = ./includes/
# **************************************************************************** #
# COMPILE
# **************************************************************************** #
CC = g++
CFLAG = -Wall -Wextra -Werror
INCS = -I$(DIRINC)
LIBS = -lncurses
# **************************************************************************** #
# RULES #
# **************************************************************************** #
all: $(NAME)
$(NAME): $(DIRBIN) $(BIN)
@printf " ------------------------------------------------------------ \n"
@$(CC) $(CFLAG) $(BIN) $(LIBS) -o $(NAME)
@printf "\n\t\tMAKING PROJECT\t\t\t"
@printf "\t\e[32m[DONE]\e[0m\n\n"
@printf " ------------------------------------------------------------ \n"
$(addprefix $(DIRBIN)/, %.opp) : %.cpp $(DIRINC)
@mkdir -p $(@D)
@printf "compiling \e[33m%-41s\e[0m" "$@..."
@$(CC) $(CFLAG) $(INCS) -o $@ -c $<
@printf "\t\e[32m[DONE]\e[0m\n"
$(DIRBIN) :
@/bin/mkdir $(DIRBIN); \
for DIR in $(DIRLIST); \
do \
/bin/mkdir $(DIRBIN)/$$DIR; \
done
clean:
@printf " ------------------------------------------------------------ \n"
@printf "cleaning binaries...\t\t\t\t\t"
@/bin/rm -rf $(DIRBIN);
@printf "\e[32m[DONE]\e[0m\n"
fclean: clean
@printf " ------------------------------------------------------------ \n"
@printf "cleaning project...\t\t\t\t\t"
@/bin/rm -rf $(NAME);
@printf "\e[32m[DONE]\e[0m\n"
@printf " ------------------------------------------------------------ \n"
re: fclean all
.PHONY: clean fclean re