# This is generic Makefile for building C++ applications using Gnu Compliler Tools

SOURCES = Timing.cpp rdtscTiming.cpp
BIN	= ./bin/Timing

CC_OPTIMIZE = -O3 -fPIC -fomit-frame-pointer -fstrict-aliasing
ifndef ($(version))
	version=release
endif
ifeq ($(version),release)
	##Release version
	DEBUG = $(CC_OPTIMIZE)
endif
ifeq ($(version),profile)
	##profiling version
	DEBUG = -DDEBUG -g3 -pg
endif
ifeq ($(version),debug)
	##Debug version
	DEBUG = -DDEBUG -g3
endif

CC	= g++ -c -W -Wall -Wextra $(DEBUG)
LINKER	= g++ 
OBJECTS := $(patsubst %.cpp, %.o, $(SOURCES) )
CFLAGS = 
LDFLAGS = 

.SUFFIXES: .cpp .o

all: $(BIN)

.cpp.o:
	$(CC) $(CFLAGS) $< -o $@

$(BIN): $(OBJECTS)
	$(LINKER) $(OBJECTS) $(LDFLAGS) -o $(BIN) -lpthread $(DEBUG)

clean:
	rm $(OBJECTS) $(BIN) -f
