CC := clang ifeq ($(DEBUG),1) CFLAGS := -Wall -O0 -g else CFLAGS := -Wall -O1 -DNDEBUG endif LDFLAGS := -lrt -flto -fuse-ld=gold all: sizes pointer swap sizes.o: sizes.c $(CC) $(CFLAGS) -c sizes.c sizes: sizes.o $(CC) -o sizes sizes.o $(LDFLAGS) pointer.o: pointer.c $(CC) $(CFLAGS) -c pointer.c pointer: pointer.o $(CC) -o pointer pointer.o $(LDFLAGS) swap.o: swap.c $(CC) $(CFLAGS) -c swap.c swap: swap.o $(CC) -o swap swap.o $(LDFLAGS) clean: rm -f sizes pointer swap *.o *.gcda *.gcno *.gcov perf.data */perf.data cachegrind.out.*