
CC = gcc

#Note: you must compile your program without optimization
#to user gcov
#OPTIMIZATION_FLAGS = -O
COMPILER_WARNINGS = -Wall
GDB_FLAGS = -g 
GCOV_FLAGS = -fprofile-arcs -ftest-coverage
# you can't use GPROF with GCOV
#GPROF_FLAGS = -pg -a
DEBUG_FLAGS = $(COMPILER_WARNINGS) $(GDB_FLAGS) $(GCOV_FLAGS) $(GPROF_FLAGS)

#CFLAGS = $(OPTIMIZATION_FLAGS)
CFLAGS = $(DEBUG_FLAGS)

LD = gcc
#Note: you must use the gprof flags when linking as well
LDFLAGS = $(GPROF_FLAGS)

RM = /bin/rm -f

SRC  = loops.c
OBJS = loops.o
PROG = loops

#############################################
all: $(PROG)

$(PROG): $(OBJS)
	$(LD) $(LDFLAGS) $(OBJS) -o $(PROG)

### this will try to compile any .c
### also loose dependency of main.o on main.h
%.o: %.c
	$(CC) $(CFLAGS) -c $<

clean:
	$(RM) $(PROG) $(OBJS) $(PROG).bb $(PROG).bbg $(PROG).da

dogcov:
	gcov -b $(SRC)


dogprof:
	gprof gmon.out > gprof.out







