DESTDIR=/ SRCFILE=main.cpp O=0 CFLAGS += -Wextra -Wall -g -O$O -I. -oov -finput-charset=UTF-8 -fextended-identifiers LIBS += CC=c++ VGARGS += --leak-check=full --track-origins=yes --verbose --log-file=valgrind-out.txt --suppressions=/usr/lib/i386-linux-gnu/valgrind/default.supp --show-leak-kinds=all --leak-resolution=high .NOTPARALLEL: default: $(CC) $(CFLAGS) $(SRCFILE) $(LIBS) # tests if code compiles under gcc, clang and tcc cc: make -e CC=tcc make -e CC=gcc make -e CC=clang install: mkdir -p $(DESTDIR)/usr/bin/ cp ov $(DESTDIR)/usr/bin/ distclean: rm ov -f clean: rm ov -f prepare: apt install build-essential -y # developing is to be done on i386. for example the default suppression file is hardcoded for i386 here: # developing is to be done on bullseye. valgrind: G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind $(VGARGS) ./ov