CFLAGS = -Wall -Wextra -g
PROGS  = layout leak uaf uninit doublefree
BUGS   = leak uaf uninit doublefree
VG     = valgrind --leak-check=full --track-origins=yes

all: $(PROGS)

# Ejecuta cada programa con errores bajo valgrind. Algunos abortan
# sin valgrind (doublefree), por eso se ignora el código de salida.
check: $(BUGS)
	@for p in $(BUGS); do echo "=== $$p ==="; $(VG) ./$$p; true; done

clean:
	rm -f $(PROGS) vgcore.*

.PHONY: all check clean
