CPP=g++
-
-CPPFLAGS=-O3 -Wall -DNDEBUG -fno-PIC
+POPCOUNT=$(shell grep -q popcnt /proc/cpuinfo && echo 1)
+SSE=$(shell grep -q sse /proc/cpuinfo && echo 1)
+
+ifeq ($(POPCOUNT), 1)
+ POPCOUNT_FLAG=-DHAS_NATIVE_POPCOUNT -mpopcnt
+else
+ POPCOUNT_FLAG=
+endif
+
+ifeq ($(SSE), 1)
+ SSE_FLAG=-DHAS_NATIVE_POPCOUNT -mpopcnt
+else
+ SSE_FLAG=-msse
+endif
+
+CPPFLAGS=-O3 -Wall -DNDEBUG -fno-PIC $(POPCOUNT_FLAG) $(SSE_FLAG) -g
INCL=-I../includes/