CC        = g++
EXEC      = appRepeats
CFLAGS    = -Wall -Wextra -Wunused -mpopcnt -std=gnu++0x -fopenmp 
CDEBUG    = -g -ggdb -DDEBUG 
CPROF    = -g -ggdb -DDEBUG -pg 
COPTIMIZE = -Wuninitialized -O3 -fomit-frame-pointer
CLIBS     = -lm

CSRCS     = $(wildcard *.cpp)
CHDRS     = $(wildcard *.h)
TXTS      = $(wildcard *.txt README* LICENSE*)
SCRIPTS   = $(wildcard Makefile* *.sh *.py)

NAME    := "e-mem"
CPUARCH := $(shell uname -m)

ifeq ($(MAKECMDGOALS),debug)
        CFLAGS += $(CDEBUG)
else 
ifeq ($(MAKECMDGOALS),profile)
        CFLAGS += $(CPROF)
else
        CFLAGS += $(COPTIMIZE)
endif
endif

.PHONY: all clean pack

all: clean bin

debug: all

profile: all

bin:
	@echo :: Compiling \"$(NAME)\" \($(CPUARCH)\) ...
	$(CC) $(CFLAGS) $(CSRCS) -o $(EXEC) $(CLIBS)
	@echo :: Done

clean:
	@echo :: Cleaning up ...
	@rm -f $(EXEC) $(EXEC).tar.gz

pack:
	@echo :: Packing files ...
	tar -cvzhf $(EXEC).tar.gz $(CSRCS) $(CHDRS) $(TXTS) $(SCRIPTS)
	@echo :: Done

