# **************************************************************************** # # # # ::: :::::::: # # Makefile :+: :+: :+: # # +:+ +:+ +:+ # # By: lalgarra +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2025/09/29 11:35:48 by lalgarra #+# #+# # # Updated: 2025/10/01 21:14:37 by lalgarra ### ########.fr # # # # **************************************************************************** # LIBDIR = ../repo_libft_algarra #LIBDIR = ../repo_algarra #CFLAGS += -Wall -Wextra -Werror -g3 -fsanitize=address CFLAGS += -Wall -Wextra -Werror -g3 -iquote $(LIBDIR) -L$(LIBDIR) -lft TESTS:= isalpha_test isdigit_test isalnum_test isascii_test %_actual.output : %_test ./$*_test > ./$*_actual.output ; #%_report : %_test %_actual.output # $(shell diff -a $*_expected.output $*_actual.output > $*_report ) %_report : %_test %_actual.output -(diff -a $*_expected.output $*_actual.output && echo "Test OK") > $*_report EXES = $(TESTS) ACT_OUTPUTS = $(TESTS:_test=_actual.output) ACT_REPORTS = $(TESTS:_test=_report) .SECONDARY = $(ACT_REPORTS) $(ACT_OUTPUTS) report : $(EXES) $(ACT_OUTPUTS) $(ACT_REPORTS) rm -f report ; $(foreach E, $(TESTS), \ $(eval T = $(subst _test,,$(E))) \ $(eval R = $(subst _test,_report,$(E))) \ echo "=== $(T) ===" >> report ; \ cat $(R) >> report ; \ ) #all: $(TESTS) #build_output: all # $(foreach E, $(TESTS), \ # $(eval A = $(subst _test,_actual.output,$(E))) \ # ./$(E) > $(A); \ # ) # #run: build_output # echo "=== PRUEBAS ===" # $(foreach E, $(TESTS), \ # $(eval A = $(subst _test,_actual.output,$(E))) \ # $(eval X = $(subst _test,_expected.output,$(E))) \ # $(shell diff -a $(X) $(A)) \ # $(eval R = ok) \ # $(eval R = $(if $(.SHELLSTATUS), NOK)) \ # echo "$(E) $(.SHELLSTATUS) - $(R) \n" \ # ) # fclean: $(foreach E, $(TESTS), \ $(eval A = $(subst _test,_actual.output,$(E))) \ $(eval R = $(subst _test,_report,$(E))) \ rm -f $(E) $(A) $(R) \ ) rm -f report #runmal: # $(foreach E, $(TESTS), \ # $(eval X = $(subst _test,_expected.output,$(E))) \ # $(eval A = $(subst _test,_actual.output,$(E))) \ # $(eval R = $(shell diff -a $(X) $(A))) \ # $(if $(R), $(shell echo "$(E) NOK"), $(shell echo "$(E) ok")) \ # ) # ##foo: TESTS #%_actual.output : %_test # ./$*_test > ./$*_actual.output # echo ha intentado generar actual # #run_%: %_actual.output # $(shell diff -a $*_expected.output $*_actual.output ) # $(info $(.SHELLSTATUS)) # $(let R , $(intcmp 0, $(.SHELLSTATUS), ok, nok), $(info $(R))) #