1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
ifndef BIN_DIR
BIN_DIR := $(CURDIR)
endif
CXX = g++
EXEC = e-mem
CXXFLAGS += -Wall -Wextra -Wunused -std=gnu++0x -fopenmp
CDEBUG = -g -ggdb -gdwarf-3 -DDEBUG
CPROF = -g -ggdb -gdwarf-3 -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)
CXXFLAGS += $(CDEBUG)
else ifeq ($(MAKECMDGOALS),profile)
CXXFLAGS += $(CPROF)
else
CXXFLAGS += $(COPTIMIZE)
endif
.PHONY: all clean pack bin
all: clean bin
debug: all
profile: all
bin:
@echo :: Compiling \"$(NAME)\" \($(CPUARCH)\) ...
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CSRCS) $(CLIBS) -o $(BIN_DIR)/$(EXEC) $(LDFLAGS)
chmod 755 $(BIN_DIR)/$(EXEC)
@echo :: Done
clean:
@echo :: Cleaning up ...
@rm -f $(BIN_DIR)/$(EXEC) $(BIND_DIR)/$(EXEC).tar.gz
pack:
@echo :: Packing files ...
tar -cvzhf $(BIND_DIR)/$(EXEC).tar.gz $(CSRCS) $(CHDRS) $(TXTS) $(SCRIPTS)
@echo :: Done
|