# **************************************************************************** # # # # ::: :::::::: # # Makefile :+: :+: :+: # # +:+ +:+ +:+ # # By: achubuko +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2023/12/02 22:04:03 by achubuko #+# #+# # # Updated: 2023/12/03 22:46:50 by achubuko ### ########.fr # # # # **************************************************************************** # NAME := $(foreach f,$(wildcard test*.c),$(subst .c,,$f)) _CFLAGS = -Wall -Wextra -Werror CFLAGS = -g CFLAGS := $(_CFLAGS) $(CFLAGS) -I../ex00 -I../contrib/Unity/src/ # all: default rule # prerequisite is not mandatory all: $(NAME) run # 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 run ##################################### ########## PROJECT RULES ############ ##################################### run: $(NAME) $(foreach t,$^,./$t;) %.o: %.c %.h $(CC) $(CFLAGS) -c -o $@ $< %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< # build test unit executable test_%: test_%.o ../ex00/%.o ../contrib/Unity/src/unity.o $(CC) $(LDFLAGS) -o $@ $^ $(LOADLIBES) $(LDLIBS)