ifeq ($(ARCH),ppc-64)
arch = ppc64
bits = 64
+ popcnt = yes
+ prefetch = yes
endif
CXXFLAGS += -fno-gcse -mthumb -march=armv7-a -mfloat-abi=softfp
endif
endif
-
+
ifeq ($(comp),$(filter $(comp),gcc clang icc))
ifeq ($(KERNEL),Darwin)
CXXFLAGS += -mdynamic-no-pic
### 3.6 popcnt
ifeq ($(popcnt),yes)
- ifeq ($(comp),icc)
+ ifeq ($(arch),ppc64)
+ CXXFLAGS += -DUSE_POPCNT
+ else ifeq ($(comp),icc)
CXXFLAGS += -msse3 -DUSE_POPCNT
else
CXXFLAGS += -msse3 -mpopcnt -DUSE_POPCNT
ifeq ($(pext),yes)
CXXFLAGS += -DUSE_PEXT
ifeq ($(comp),$(filter $(comp),gcc clang mingw))
- CXXFLAGS += -mbmi2
+ CXXFLAGS += -msse4 -mbmi2
endif
endif
@echo ""
@echo "Supported archs:"
@echo ""
- @echo "x86-64 > x86 64-bit"
- @echo "x86-64-modern > x86 64-bit with popcnt support"
- @echo "x86-64-bmi2 > x86 64-bit with pext support"
- @echo "x86-32 > x86 32-bit with SSE support"
+ @echo "x86-64-bmi2 > x86 64-bit with pext support (also enables SSE4)"
+ @echo "x86-64-modern > x86 64-bit with popcnt support (also enables SSE3)"
+ @echo "x86-64 > x86 64-bit generic"
+ @echo "x86-32 > x86 32-bit (also enables SSE)"
@echo "x86-32-old > x86 32-bit fall back for old hardware"
@echo "ppc-64 > PPC 64-bit"
@echo "ppc-32 > PPC 32-bit"
@echo "Advanced examples, for experienced users: "
@echo ""
@echo "make build ARCH=x86-64 COMP=clang"
- @echo "make profile-build ARCH=x86-64-modern COMP=gcc COMPCXX=g++-4.8"
+ @echo "make profile-build ARCH=x86-64-bmi2 COMP=gcc COMPCXX=g++-4.8"
@echo ""
@echo "Testing config sanity. If this fails, try 'make help' ..."
@echo ""
@test "$(debug)" = "yes" || test "$(debug)" = "no"
- @test "$(sanitize)" = "undefined" || test "$(sanitize)" = "thread" || test "$(sanitize)" = "no"
+ @test "$(sanitize)" = "undefined" || test "$(sanitize)" = "thread" || test "$(sanitize)" = "address" || test "$(sanitize)" = "no"
@test "$(optimize)" = "yes" || test "$(optimize)" = "no"
@test "$(arch)" = "any" || test "$(arch)" = "x86_64" || test "$(arch)" = "i386" || \
test "$(arch)" = "ppc64" || test "$(arch)" = "ppc" || test "$(arch)" = "armv7"
$(PROTOC) -I $(PROTOS_PATH) --cpp_out=. $<
#LDFLAGS += -Wl,-Bstatic -Wl,-\( -lprotobuf -lgrpc++_unsecure -lgrpc_unsecure -lgrpc -lz -Wl,-\) -Wl,-Bdynamic -ldl
-LDFLAGS += /usr/local/lib/libprotobuf.a /usr/local/lib/libgrpc++_unsecure.a /usr/local/lib/libgrpc_unsecure.a /usr/local/lib/libgrpc.a -ldl -lz
+LDFLAGS += /usr/lib/x86_64-linux-gnu/libprotobuf.a /usr/lib/x86_64-linux-gnu/libgrpc++_unsecure.a /usr/lib/x86_64-linux-gnu/libgrpc_unsecure.a /usr/lib/x86_64-linux-gnu/libgrpc.a /usr/lib/x86_64-linux-gnu/libcares.a -ldl -lz
+#LDFLAGS += /usr/lib/x86_64-linux-gnu/libprotobuf.a /usr/lib/libgrpc++_unsecure.a /usr/lib/libgrpc_unsecure.a /usr/lib/libgrpc.a /usr/lib/x86_64-linux-gnu/libcares.a -ldl -lz
client: $(CLIOBJS)
$(CXX) -o $@ $(CLIOBJS) $(LDFLAGS)