2022-04-13 08:01:46 +02:00
|
|
|
# **************************************************************************** #
|
|
|
|
|
# #
|
|
|
|
|
# ::: :::::::: #
|
|
|
|
|
# Makefile :+: :+: :+: #
|
|
|
|
|
# +:+ +:+ +:+ #
|
|
|
|
|
# By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ #
|
|
|
|
|
# +#+#+#+#+#+ +#+ #
|
|
|
|
|
# Created: 2022/01/18 15:11:16 by gbaconni #+# #+# #
|
2022-04-29 09:35:15 +02:00
|
|
|
# Updated: 2022/04/29 09:33:14 by gbaconni ### ########.fr #
|
2022-04-13 08:01:46 +02:00
|
|
|
# #
|
|
|
|
|
# **************************************************************************** #
|
|
|
|
|
#
|
|
|
|
|
# make ft_printf
|
|
|
|
|
# make all
|
|
|
|
|
# make clean
|
|
|
|
|
# make fclean
|
|
|
|
|
# make re
|
|
|
|
|
# make
|
|
|
|
|
#
|
|
|
|
|
|
2022-04-17 11:31:29 +02:00
|
|
|
GIT_REPO = git@vogsphere.42lausanne.ch:vogsphere/intra-uuid-fd8d00fc-8c22-400e-a8d9-dcc364688380-4092952-gbaconni
|
2022-04-17 11:53:16 +02:00
|
|
|
PDF_FR = https://cdn.intra.42.fr/pdf/pdf/50142/fr.subject.pdf
|
|
|
|
|
PDF_EN = https://cdn.intra.42.fr/pdf/pdf/50141/en.subject.pdf
|
2022-04-17 11:31:29 +02:00
|
|
|
|
2022-04-13 08:01:46 +02:00
|
|
|
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)
|
2022-04-15 17:20:15 +02:00
|
|
|
CFLAGS += -pipe -O3 -ffast-math -fomit-frame-pointer -funroll-loops
|
|
|
|
|
#CFLAGS += -pipe -Ofast -ffast-math -funroll-loops -fomit-frame-pointer
|
2022-04-13 08:01:46 +02:00
|
|
|
endif
|
|
|
|
|
ifeq ($(DEBUG), 1)
|
2022-04-15 17:20:15 +02:00
|
|
|
CFLAGS += -g -O0 -fsanitize=address -fsanitize=undefined -fsanitize=signed-integer-overflow
|
|
|
|
|
endif
|
2022-04-13 08:01:46 +02:00
|
|
|
|
|
|
|
|
VALGRIND = valgrind
|
|
|
|
|
VALGRINDFLAGS = --quiet --leak-check=full --show-leak-kinds=all
|
2022-04-15 17:20:15 +02:00
|
|
|
ifeq ($(LEAK), 1)
|
2022-04-26 12:13:32 +02:00
|
|
|
CFLAGS += -g -O0
|
2022-04-15 00:15:26 +02:00
|
|
|
PREFIX += $(VALGRIND) $(VALGRINDFLAGS)
|
|
|
|
|
endif
|
2022-04-26 12:13:32 +02:00
|
|
|
KERNEL = $(shell uname -s)
|
|
|
|
|
MACHINE = $(shell uname -m)
|
2022-04-13 08:01:46 +02:00
|
|
|
|
2022-04-15 17:20:15 +02:00
|
|
|
RM = rm
|
|
|
|
|
RMFLAGS = -f
|
|
|
|
|
|
2022-04-13 08:01:46 +02:00
|
|
|
NORMINETTE = norminette
|
|
|
|
|
NORMINETTEFLAGS = -o
|
|
|
|
|
|
|
|
|
|
MAKE = make
|
|
|
|
|
|
|
|
|
|
all: $(NAME)
|
|
|
|
|
|
|
|
|
|
$(NAME):
|
2022-04-26 19:23:00 +02:00
|
|
|
@$(MAKE) -C $(LIBFTPRINTF) all DEBUG=$(DEBUG) LEAK=$(LEAKS) FAST=$(FAST) >/dev/null 2>&1
|
|
|
|
|
ifeq ($(BONUS), 1)
|
|
|
|
|
@$(MAKE) -C $(LIBFTPRINTF) bonus DEBUG=$(DEBUG) LEAK=$(LEAKS) FAST=$(FAST) >/dev/null 2>&1
|
|
|
|
|
endif
|
2022-04-13 08:01:46 +02:00
|
|
|
@$(CC) $(CFLAGS) $(INCLUDE) $(SRC) $(LFLAGS) -o $@
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
@$(RM) $(RMFLAGS) $(NAME)
|
|
|
|
|
|
|
|
|
|
fclean: clean
|
|
|
|
|
@$(MAKE) -C $(LIBFTPRINTF) fclean
|
|
|
|
|
|
|
|
|
|
re: fclean all
|
|
|
|
|
|
2022-04-26 17:53:39 +02:00
|
|
|
bonus:
|
2022-04-29 08:10:58 +02:00
|
|
|
@$(MAKE) -C $(LIBFTPRINTF) bonus DEBUG=$(DEBUG) LEAK=$(LEAKS) FAST=$(FAST)
|
|
|
|
|
@$(MAKE) fclean all BONUS=1 DEBUG=$(DEBUG) LEAK=$(LEAKS) FAST=$(FAST)
|
2022-04-26 17:53:39 +02:00
|
|
|
|
|
|
|
|
rebonus:
|
2022-04-29 08:10:58 +02:00
|
|
|
@$(MAKE) -C $(LIBFTPRINTF) rebonus DEBUG=$(DEBUG) LEAK=$(LEAKS) FAST=$(FAST)
|
|
|
|
|
@$(MAKE) fclean all BONUS=1 DEBUG=$(DEBUG) LEAK=$(LEAKS) FAST=$(FAST)
|
2022-04-26 17:53:39 +02:00
|
|
|
|
2022-04-13 08:01:46 +02:00
|
|
|
check:
|
|
|
|
|
@$(MAKE) -C $(LIBFTPRINTF) check
|
|
|
|
|
|
2022-04-15 17:20:15 +02:00
|
|
|
leak:
|
2022-04-29 08:10:58 +02:00
|
|
|
@$(MAKE) re LEAK=1 BONUS=1 DEBUG=$(DEBUG) FAST=$(FAST)
|
2022-04-15 17:20:15 +02:00
|
|
|
|
2022-04-13 08:01:46 +02:00
|
|
|
debug:
|
2022-04-29 08:10:58 +02:00
|
|
|
@$(MAKE) re DEBUG=1 BONUS=1 LEAK=$(LEAKS) FAST=$(FAST)
|
2022-04-13 08:01:46 +02:00
|
|
|
|
|
|
|
|
fast:
|
2022-04-29 08:10:58 +02:00
|
|
|
@$(MAKE) re FAST=1 BONUS=1 DEBUG=$(DEBUG) LEAK=$(LEAKS)
|
2022-04-13 08:01:46 +02:00
|
|
|
|
2022-04-29 08:10:58 +02:00
|
|
|
test: bonus
|
2022-04-24 11:26:03 +02:00
|
|
|
@$(PREFIX) ./$(NAME) "%c" C
|
|
|
|
|
@$(PREFIX) ./$(NAME) "%s" "42 Lausanne"
|
2022-04-25 07:14:14 +02:00
|
|
|
@$(PREFIX) ./$(NAME) "%s" ""
|
2022-04-24 11:26:03 +02:00
|
|
|
@$(PREFIX) ./$(NAME) "%d" 42
|
|
|
|
|
@$(PREFIX) ./$(NAME) "%i" 2147483647
|
|
|
|
|
@$(PREFIX) ./$(NAME) "%i" -2147483646
|
|
|
|
|
@$(PREFIX) ./$(NAME) "%u" 4294967295
|
|
|
|
|
@$(PREFIX) ./$(NAME) "%x" 42
|
|
|
|
|
@$(PREFIX) ./$(NAME) "%X" 42
|
|
|
|
|
@$(PREFIX) ./$(NAME) "%%" ""
|
|
|
|
|
@$(PREFIX) ./$(NAME) "%p" ""
|
|
|
|
|
@$(PREFIX) ./$(NAME) "%p" "\n"
|
|
|
|
|
@$(PREFIX) ./$(NAME) "Forty Two" ""
|
|
|
|
|
@$(PREFIX) ./$(NAME) "\t\r\n" ""
|
|
|
|
|
@$(PREFIX) ./$(NAME) "%1d" 42
|
2022-04-15 17:20:15 +02:00
|
|
|
|
2022-04-26 12:13:32 +02:00
|
|
|
ifeq ($(KERNEL),Linux)
|
2022-04-15 17:20:15 +02:00
|
|
|
test2: leak
|
2022-04-29 08:10:58 +02:00
|
|
|
@$(MAKE) test LEAK=1 DEBUG=$(DEBUG) FAST=$(FAST)
|
2022-04-29 08:46:53 +02:00
|
|
|
|
|
|
|
|
test21: leak
|
|
|
|
|
@$(MAKE) test42 LEAK=1 DEBUG=$(DEBUG) FAST=$(FAST)
|
2022-04-26 12:13:32 +02:00
|
|
|
else
|
|
|
|
|
test2: debug
|
2022-04-29 08:10:58 +02:00
|
|
|
@$(MAKE) test DEBUG=1 LEAK=$(LEAKS) FAST=$(FAST)
|
2022-04-29 08:46:53 +02:00
|
|
|
|
|
|
|
|
test21: debug
|
|
|
|
|
@$(MAKE) test42 DEBUG=1 LEAK=$(LEAKS) FAST=$(FAST)
|
2022-04-26 12:13:32 +02:00
|
|
|
endif
|
2022-04-13 08:01:46 +02:00
|
|
|
|
2022-04-26 12:13:32 +02:00
|
|
|
test3: fast
|
2022-04-13 08:01:46 +02:00
|
|
|
@$(MAKE) test FAST=1
|
|
|
|
|
|
2022-04-29 08:10:58 +02:00
|
|
|
test42: bonus
|
2022-04-24 11:26:03 +02:00
|
|
|
@$(PREFIX) ./$(NAME) "Hello World %% %44s %d %c %x %p" "Lausanne" 42 C 66 "C"
|
|
|
|
|
@$(PREFIX) ./$(NAME) "Characters: %c %c \n" 'a' 65
|
2022-04-26 17:53:39 +02:00
|
|
|
@$(PREFIX) ./$(NAME) "Decimals: %d\n" 1977
|
2022-04-24 11:26:03 +02:00
|
|
|
@$(PREFIX) ./$(NAME) "Preceding with blanks: %10d \n" 1977
|
|
|
|
|
@$(PREFIX) ./$(NAME) "Preceding with zeros: %010d \n" 1977
|
2022-04-26 17:53:39 +02:00
|
|
|
@$(PREFIX) ./$(NAME) "Some different radices: %d %x %#x\n" 100 100 100
|
2022-04-26 12:13:32 +02:00
|
|
|
|
2022-04-29 08:10:58 +02:00
|
|
|
watch: fclean
|
2022-04-26 19:23:00 +02:00
|
|
|
@read -p "cmd: " cmd; while :; do clear; date "+%F %T (every 2.0s)"; echo; sh -c "$${cmd} 2>&1" | tail -n 10 || true; sleep 2; done
|
2022-04-26 12:13:32 +02:00
|
|
|
|
2022-04-17 11:53:16 +02:00
|
|
|
doc:
|
|
|
|
|
@curl -s -L -z fr.subject.pdf -o fr.subject.pdf $(PDF_FR)
|
|
|
|
|
@curl -s -L -z en.subject.pdf -o en.subject.pdf $(PDF_EN)
|
|
|
|
|
|
2022-04-24 11:42:11 +02:00
|
|
|
update: sync
|
2022-04-13 08:53:46 +02:00
|
|
|
|
2022-04-24 11:42:11 +02:00
|
|
|
sync: online pull
|
2022-04-26 12:44:40 +02:00
|
|
|
@git ls-files --others --exclude-standard | xargs diff -Naur '' | less -F
|
2022-04-17 11:19:59 +02:00
|
|
|
@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)
|
2022-04-13 08:53:46 +02:00
|
|
|
|
|
|
|
|
online:
|
2022-04-13 23:03:55 +02:00
|
|
|
@dig +short vogsphere.baco.net A | grep -qF '213.5.156.25' || echo 'vogsphere.baco.net unresolvable'
|
2022-04-29 09:35:15 +02:00
|
|
|
@nc -vzw3 vogsphere.baco.net 443 >/dev/null 2>&1 || echo 'vogsphere.baco.net unreachable'
|
2022-04-13 08:53:46 +02:00
|
|
|
|
2022-04-25 22:40:45 +02:00
|
|
|
status:
|
|
|
|
|
@git status
|
|
|
|
|
|
2022-04-24 11:42:11 +02:00
|
|
|
pull: config
|
2022-04-24 11:26:03 +02:00
|
|
|
@git pull
|
2022-04-13 08:53:46 +02:00
|
|
|
|
|
|
|
|
config:
|
2022-04-13 08:39:49 +02:00
|
|
|
@git config user.name "gbaconni"
|
|
|
|
|
@git config user.email "gbaconni@student.42lausanne.ch"
|
2022-04-24 11:26:03 +02:00
|
|
|
@git config pull.rebase false
|
2022-04-17 11:19:59 +02:00
|
|
|
|
|
|
|
|
42:
|
2022-04-17 11:31:29 +02:00
|
|
|
@git clone $(GIT_REPO) 42 || true
|
2022-04-17 11:19:59 +02:00
|
|
|
|
|
|
|
|
21: 42
|
2022-04-25 22:40:45 +02:00
|
|
|
@test -f 42/Makefile && make -C 42 pull
|
2022-04-18 09:14:59 +02:00
|
|
|
@mv 42/.git .42.git
|
|
|
|
|
@rsync --verbose --archive --delete --include '*.c' --include '*.h' --include 'Makefile' --include '*/' --exclude '*' libftprintf/ 42/
|
|
|
|
|
@mv .42.git 42/.git
|
|
|
|
|
@make -C 42 check fclean clean re all sync
|
2022-04-13 08:39:49 +02:00
|
|
|
|