PTHREAD_LIB=-lpthread
################# x64 GCC CPP ################
ifeq ($(ARCH),x64GCCCPP)
	CC=gcc
	STRIP=strip
	CFLAGS=-O2 -lstdc++ -rdynamic -ldl
	LIBS=/usr/local/lib/

$(EXEC): $(EXEC).cpp
	$(CC) $(CFLAGS) -D_LOADX64MXIO -o $(EXEC)so $(EXEC).cpp $(PTHREAD_LIB)
	$(STRIP) $(EXEC)so
endif

################# x64 ################
ifeq ($(ARCH),x64)
	CC=g++
	STRIP=strip
	CFLAGS=-O2 -rdynamic -ldl
	LIBS=/usr/local/lib/

$(EXEC): $(EXEC).cpp
	$(CC) $(CFLAGS) -D_LOADX64MXIO -o $(EXEC)so $(EXEC).cpp $(PTHREAD_LIB)
	$(STRIP) $(EXEC)so
endif

################# X86 GCC CPP ################
ifeq ($(ARCH),x86GCCCPP)
	CC=gcc
	STRIP=strip
	CFLAGS=-O2 -lstdc++ -rdynamic -ldl
	LIBS=/usr/local/lib/

$(EXEC): $(EXEC).cpp
	$(CC) $(CFLAGS) -o $(EXEC)so $(EXEC).cpp $(PTHREAD_LIB)
	$(STRIP) $(EXEC)so
endif

################# X86 ################
ifeq ($(ARCH),x86)
	CC=g++
	STRIP=strip
	CFLAGS=-O2 -rdynamic -ldl
	LIBS=/usr/local/lib/

$(EXEC): $(EXEC).cpp
	$(CC) $(CFLAGS) -o $(EXEC)so $(EXEC).cpp $(PTHREAD_LIB)
	$(STRIP) $(EXEC)so
endif

################# X86_x64 ################
ifeq ($(ARCH),x86_x64)
	CC=g++
	STRIP=strip
	CFLAGS=-m32 -O2 -rdynamic -ldl
	LIBS=/usr/local/lib/

$(EXEC): $(EXEC).cpp
	$(CC) $(CFLAGS) -o $(EXEC)so $(EXEC).cpp $(PTHREAD_LIB)
	$(STRIP) $(EXEC)so
endif
