42_cub3d/Makefile
mcolonna 40d8462689 Add map checks *
add:
- check if map is surronded by walls
- check file extension
dev:
- Makefile: now can include libraries
- add library libft
- add testmaps
- norm
2024-10-10 13:40:39 +02:00

69 lines
1.7 KiB
Makefile

NAME = cub3D
CPP = gcc -Wall -Wextra -Werror -I include -I libft $(FLAGS)
LIBRARIES_DIR = libft
LIBRARIES_A = libft/libft.a
CPP_2 = $(CPP) $(FLAGS_2)
C_FILES = $(wildcard src/**.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)
$(LIBRARIES_DIR):
@$(ECHO)
@$(ECHO) "\e[30;47;1m $(NAME): making library $@... \e[0m"
$(MAKE) -C $@
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) $(LIBRARIES_DIR)
@$(ECHO)
@$(ECHO) "\e[30;47;1m $(NAME): linking... \e[0m"
$(CPP_2) -o $(NAME) $(O_FILES) $(LIBRARIES_A)
@$(ECHO)
@$(ECHO) "\t\t \e[0;92m\(^o^)/ \e[0;102;30;1m $(NAME) made! \e[0;92m \(^o^)/\e[0m"
@$(ECHO)
%.o : %.c
@$(ECHO)
@$(ECHO) "\e[30;47;1m $(NAME): making '$@'... \e[0m"
$(CPP) $(FLAGS_1) -c $< -o $@
check_headers :
@ERROR=0; \
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 \e[31m:(\e[0m"; \
fi; \
echo " good \e[32m:)\e[0m"; \
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 $(LIBRARIES_DIR)