# **************************************************************************** # # # # ::: :::::::: # # Makefile :+: :+: :+: # # +:+ +:+ +:+ # # By: achubuko +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2023/12/02 21:33:22 by achubuko #+# #+# # # Updated: 2023/12/03 17:29:02 by achubuko ### ########.fr # # # # **************************************************************************** # NAME=rush-02 _CFLAGS = -Wall -Wextra -Werror CFLAGS = -g CFLAGS := $(_CFLAGS) $(CFLAGS) ##################################### ######### MANDATORY RULES ########### ##################################### # all: default rule # norme prerequisite is not mandatory all: $(NAME) norme # clean: Delete *.o for project and libraries clean: rm -rdf $(wildcard */*.o) # fclean: Delete *.o files and delete named executable fclean: clean rm -f $(NAME) # re: full clean and recompilation re: fclean all # these targets are not backed by files, therefore, always run when called .PHONY: all clean fclean re purge norme ##################################### ########## PROJECT RULES ############ ##################################### norme: norminette ex00 || true cfiles := $(wildcard ex00/*.c) ofiles = $(foreach f, $(cfiles), $(subst .c,.o,$f)) %.o: %.c %.h $(CC) $(CFLAGS) -c -o $@ $< $(NAME): $(ofiles) $(CC) $(CFLAGS) $(LDFLAGS) -o $(LOADLIBES) $(LDLIBS) $@ $^