-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
58 lines (46 loc) · 1.39 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
C_PURPLE_B =\033[1;95m
C_YELLOW_B =\033[1;33m
C_RED_B =\033[1;31m
C_WHITE =\033[0;97m
C_GREEN_B =\033[1;32m
C_RESET =\033[0m
NAME = fractol
SRC_DIR = srcs
SRC_FILES = ${shell find ${SRC_DIR} -name '*.c'}
SRCS = ${notdir ${SRC_FILES}}
OBJ_DIR = objs
OBJ_FILES = ${SRCS:.c=.o}
OBJS = ${addprefix ${OBJ_DIR}/,${OBJ_FILES}}
INCS = -Iminilibx -Iinclude -Ilibft
GCC = gcc
RM = rm -f
RMF = rm -rf
CFLAGS = -Wall -Wextra -Werror
all: libft ${NAME}
${OBJ_DIR}/%.o : ${SRC_DIR}/%.c
@mkdir -p ${OBJ_DIR}
@echo "${C_YELLOW_B}Compiling...${C_RESET}";
@${GCC} ${CFLAGS} -c $< ${INCS} -o $@
${NAME}: ${OBJS}
@${GCC} ${OBJS} ${INCS} libft/libft.a -Lminilibx -lmlx -framework OpenGL -framework AppKit -o ${NAME}
@echo "${C_GREEN_B}Finished!${C_RESET}";
libft:
@make -C ./libft
norm:
@echo "${C_PURPLE_B}Let's test the Norm!${C_RESET}";
@norminette
@echo "${C_PURPLE_B}Done!${C_RESET}";
clean:
@echo "${C_RED_B}Deleting fractol o-files...${C_RESET}";
@make -C ./libft clean
@${RM} ${OBJS}
@${RMF} ${OBJ_DIR}
@echo "${C_RED_B}Fractol o-files have been deleted!${C_RESET}";
fclean: clean
@make -C ./libft fclean
@echo "${C_RED_B}Deleting fractol program...${C_RESET}";
@${RM} ${NAME}
@echo "${C_RED_B}Fractol program has been deleted!${C_RESET}";
re: fclean all
@echo "${C_PURPLE_B}Recompiling!${C_RESET}";
.PHONY: all clean fclean libft re .c.o