Files
ft_printf/Makefile

165 lines
4.7 KiB
Makefile
Raw Normal View History

2022-04-13 08:01:46 +02:00
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2022/01/18 15:11:16 by gbaconni #+# #+# #
# Updated: 2022/04/26 12:11:46 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)
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)
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
ifeq ($(LEAK), 1)
CFLAGS += -g -O0
PREFIX += $(VALGRIND) $(VALGRINDFLAGS)
endif
KERNEL = $(shell uname -s)
MACHINE = $(shell uname -m)
2022-04-13 08:01:46 +02:00
RM = rm
RMFLAGS = -f
2022-04-13 08:01:46 +02:00
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
2022-04-13 08:01:46 +02:00
check:
@$(MAKE) -C $(LIBFTPRINTF) check
leak:
@$(MAKE) -C $(LIBFTPRINTF) re LEAK=1
2022-04-13 08:01:46 +02:00
debug:
@$(MAKE) -C $(LIBFTPRINTF) re DEBUG=1
fast:
@$(MAKE) -C $(LIBFTPRINTF) re FAST=1
test: clean $(NAME)
@$(PREFIX) ./$(NAME) "%c" C
@$(PREFIX) ./$(NAME) "%s" "42 Lausanne"
2022-04-25 07:14:14 +02:00
@$(PREFIX) ./$(NAME) "%s" ""
@$(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
ifeq ($(KERNEL),Linux)
test2: leak
@$(MAKE) test LEAK=1
else
test2: debug
2022-04-13 08:01:46 +02:00
@$(MAKE) test DEBUG=1
endif
2022-04-13 08:01:46 +02:00
test3: fast
2022-04-13 08:01:46 +02:00
@$(MAKE) test FAST=1
test42: clean $(NAME)
@$(PREFIX) ./$(NAME) "Hello World %% %44s %d %c %x %p" "Lausanne" 42 C 66 "C"
@$(PREFIX) ./$(NAME) "Characters: %c %c \n" 'a' 65
@$(PREFIX) ./$(NAME) "Decimals: %d %ld\n" 1977 650000L
@$(PREFIX) ./$(NAME) "Preceding with blanks: %10d \n" 1977
@$(PREFIX) ./$(NAME) "Preceding with zeros: %010d \n" 1977
@$(PREFIX) ./$(NAME) "Some different radices: %d %x %o %#x %#o \n" 100 100 100 100 100
@$(PREFIX) ./$(NAME) "floats: %4.2f %+.0e %E \n" 3.1416 3.1416 3.1416
@$(PREFIX) ./$(NAME) "Width trick: %*d \n" 5 10
@$(PREFIX) ./$(NAME) "%s \n" "A string"
watch:
@read -p "cmd: " cmd; while :; do clear; date "+%F %T"; echo; $${cmd} 2>&1 | tail -n 20; sleep 2; done
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
@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'
@nc -vzw3 vogsphere.baco.net 443 2>&1 | grep -qF '213.5.156.25' || 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
@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"
@git config pull.rebase false
42:
2022-04-17 11:31:29 +02:00
@git clone $(GIT_REPO) 42 || true
21: 42
2022-04-25 22:40:45 +02:00
@test -f 42/Makefile && make -C 42 pull
@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