From f04587cd62ec5d9d39fc8059489e92143467ac24 Mon Sep 17 00:00:00 2001 From: mcolonna Date: Tue, 1 Oct 2024 16:22:42 +0200 Subject: [PATCH] add Makefile --- Makefile | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6f950dd --- /dev/null +++ b/Makefile @@ -0,0 +1,63 @@ +NAME = cub3D +CPP = gcc -Wall -Wextra -Werror $(FLAGS) +C_FILES = $(wildcard *.c) +O_FILES = $(patsubst %.c,%.o,$(C_FILES)) + +ECHO = echoo(){ \ + if [ -t 1 ]; then \ + echo "$$*"; \ + else \ + echo "$$*" | sed -E "s/\x1B[[][0-9;]+m//g"; \ + fi; \ +};echoo + +all : $(NAME) + +clean : + @$(ECHO) + @$(ECHO) "\e[30;47;1m $(NAME): clean... \e[0m" + -rm -f $(O_FILES) + +fclean : clean + @$(ECHO) + @$(ECHO) "\e[30;47;1m $(NAME): fclean... \e[0m" + -rm -f $(NAME) + +re : fclean all + +$(NAME) : $(O_FILES) + @$(ECHO) + @$(ECHO) "\e[30;47;1m $(NAME): linking... \e[0m" + $(CPP) $(FLAGS_2) -o $(NAME) $(O_FILES) + @$(ECHO) + @$(ECHO) "\t\t \e[0;92m\(^o^)/ \e[0;102;30;1m $(NAME) made! \e[0;92m \(^o^)/\e[0m" + @$(ECHO) + +%.o : %.cpp + @$(ECHO) + @$(ECHO) "\e[30;47;1m $(NAME): making '$@'... \e[0m" + $(CPP) $(FLAGS_1) -c $< -o $@ + +check_headers : + @ERROR=0; \ + echo $(wildcard **/*.h); \ + for HEADER in $(wildcard **/*.h); \ + do \ + echo "check header $$HEADER..."; \ + > __tmp_check_header.c echo "#include \"$$HEADER\""; \ + >> __tmp_check_header.c echo "#include \"$$HEADER\""; \ + >> __tmp_check_header.c echo "int main(void) {}"; \ + $(CPP) -o __tmp_check_header.out __tmp_check_header.c; \ + if [ $$? -ne 0 ]; \ + then \ + ERROR=1; \ + echo error \ + break; \ + fi; \ + echo "good :)"; \ + 2> /dev/null rm -- "__tmp_check_header.out" "__tmp_check_header.c"; \ + done; \ + 2> /dev/null rm __tmp_check_header.out __tmp_check_header.c; \ + if [ $$ERROR -eq 0 ]; then true; else false; fi; + +.PHONY : all clean fclean re check_headers \ No newline at end of file