This repository has been archived on 2023-12-28. You can view files and clone it, but cannot push or open issues or pull requests.
c_piscine_rush_02/Makefile
2023-12-03 17:29:44 +04:00

49 lines
1.8 KiB
Makefile

# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: achubuko <marvin@42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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) $@ $^