
CC = gcc

#Note: you must compile your program without optimization
#to user gcov

##you can run gprof with optimization on
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) gmon.out gprof.out

dogcov:
	gcov -b $(SRC)


dogprof:
	$(RM) gprof.out
	gprof $(PROG) gmon.out > gprof.out







