# **************************************************************************** # # # # ::: :::::::: # # Makefile :+: :+: :+: # # +:+ +:+ +:+ # # By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2022/01/18 15:11:16 by gbaconni #+# #+# # # Updated: 2022/04/16 01:24:13 by gbaconni ### lausanne.ch # # # # **************************************************************************** # # # make ft_printf # make all # make clean # make fclean # make re # make # NAME = ft_printf LIBFTPRINTF = libftprintf LFLAGS = -L. -L$(LIBFTPRINTF) -lftprintf SRC = main.c INCLUDE = -I. -I$(LIBFTPRINTF) HDR = $(LIBFTPRINTF)/libftprintf.h CC = gcc CFLAGS = -Wall -Wextra -Werror ifeq ($(FAST), 1) CFLAGS += -pipe -O3 -ffast-math -fomit-frame-pointer -funroll-loops #CFLAGS += -pipe -Ofast -ffast-math -funroll-loops -fomit-frame-pointer endif ifeq ($(DEBUG), 1) CFLAGS += -g -O0 -fsanitize=address -fsanitize=undefined -fsanitize=signed-integer-overflow endif ifeq ($(LEAK), 1) CFLAGS += -g -O0 endif VALGRIND = valgrind VALGRINDFLAGS = --quiet --leak-check=full --show-leak-kinds=all ifeq ($(LEAK), 1) PREFIX += $(VALGRIND) $(VALGRINDFLAGS) endif RM = rm RMFLAGS = -f NORMINETTE = norminette NORMINETTEFLAGS = -o MAKE = make all: $(NAME) $(NAME): @$(MAKE) -C $(LIBFTPRINTF) all >/dev/null 2>&1 @$(CC) $(CFLAGS) $(INCLUDE) $(SRC) $(LFLAGS) -o $@ clean: @$(RM) $(RMFLAGS) $(NAME) fclean: clean @$(MAKE) -C $(LIBFTPRINTF) fclean re: fclean all @$(MAKE) -C $(LIBFTPRINTF) re check: @$(MAKE) -C $(LIBFTPRINTF) check leak: @$(MAKE) -C $(LIBFTPRINTF) re LEAK=1 debug: @$(MAKE) -C $(LIBFTPRINTF) re DEBUG=1 fast: @$(MAKE) -C $(LIBFTPRINTF) re FAST=1 test: clean $(NAME) @$(PREFIX) ./$(NAME) "%c" C || true @$(PREFIX) ./$(NAME) "%s" "42 Lausanne" || true @$(PREFIX) ./$(NAME) "%d" 42 || true @$(PREFIX) ./$(NAME) "%i" 2147483647 || true @$(PREFIX) ./$(NAME) "%i" -2147483646 || true @$(PREFIX) ./$(NAME) "%u" 4294967295 || true @$(PREFIX) ./$(NAME) "%x" 42 || true @$(PREFIX) ./$(NAME) "%X" 42 || true @$(PREFIX) ./$(NAME) "%%" "" || true @$(PREFIX) ./$(NAME) "%p" "" || true @$(PREFIX) ./$(NAME) "%p" "\n" || true @$(PREFIX) ./$(NAME) "Forty Two" "" || true test2: leak @$(MAKE) test LEAK=1 test3: debug @$(MAKE) test DEBUG=1 test4: fast @$(MAKE) test FAST=1 update: config online pull sync: config online pull @git status | grep -q 'nothing to commit' || (git add -A && git commit -am "$$(date '+%F %T')" && git push) online: @dig +short vogsphere.baco.net A | grep -qF '213.5.156.25' || echo 'vogsphere.baco.net unresolvable' @nc -vzw3 vogsphere.baco.net 443 2>&1 | grep -qF 'succeeded' || echo 'vogsphere.baco.net unreachable' pull: @git pull config: @git config user.name "gbaconni" @git config user.email "gbaconni@student.42lausanne.ch" @git config pull.rebase false