Files
ft_printf/Makefile
2022-04-17 11:19:59 +02:00

132 lines
3.6 KiB
Makefile

# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2022/01/18 15:11:16 by gbaconni #+# #+# #
# Updated: 2022/04/17 11:19:20 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 fetch
@git status | grep -q 'nothing to commit' || (git diff; read -p "Comment: " comment; git add -A; git commit -am "$${comment-$$(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'
fetch:
@git fetch
config:
@git config user.name "gbaconni"
@git config user.email "gbaconni@student.42lausanne.ch"
@git config pull.rebase true
@git config branch.autosetuprebase always
42:
@git clone git@vogsphere.42lausanne.ch:vogsphere/intra-uuid-fd8d00fc-8c22-400e-a8d9-dcc364688380-4092952-gbaconni 42 || true
21: 42
@find libftprintf -maxdepth 2 -type f -name '*.c' -o -name '*.h' -o -name 'Makefile' | sed -r "s|(libftprintf/)|\1./|" | xargs -I {} rsync -SaR {} 42/