diff --git a/prism/Makefile b/prism/Makefile index f9c7808b..2a5739cc 100644 --- a/prism/Makefile +++ b/prism/Makefile @@ -86,6 +86,9 @@ ifeq ($(OSTYPE),linux) ifneq (,$(findstring ia64, $(shell uname -m))) ARCH = ia64 endif + ifneq (,$(findstring aarch64, $(shell uname -m))) + ARCH = aarch64 + endif endif # For Mac/Windows, we decide whether to build in 64-bit mode based on # whether java is 32/64-bit (since these need to match) @@ -217,6 +220,13 @@ ifeq ($(OSTYPE),linux) CXXFLAGS = --std=c++11 $(CFLAGS) LDFLAGS = $(CFLAGS) BINDISTSUFFIX = linux64 + else + ifeq ($(ARCH),aarch64) + # Position Independent Code required on Aarch64 + CFLAGS = -fPIC -DPIC -DHAVE_IEEE_754 -DBSD -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 $(DEBUG) $(OPTIMISE) $(WARNINGS) + CXXFLAGS = --std=c++11 $(CFLAGS) + LDFLAGS = $(CFLAGS) + BINDISTSUFFIX = linux64 else CFLAGS = -m32 -malign-double -DHAVE_IEEE_754 -DBSD $(DEBUG) $(OPTIMISE) $(WARNINGS) CXXFLAGS = --std=c++11 $(CFLAGS) @@ -224,6 +234,7 @@ ifeq ($(OSTYPE),linux) BINDISTSUFFIX = linux32 endif endif + endif BIN_TARGETS=prism.linux xprism.linux JFLAGS = -encoding UTF8 SHARED = -shared diff --git a/prism/ext/lp_solve_5.5_java/lib/build b/prism/ext/lp_solve_5.5_java/lib/build index 2ba9ff8e..0915f392 100755 --- a/prism/ext/lp_solve_5.5_java/lib/build +++ b/prism/ext/lp_solve_5.5_java/lib/build @@ -29,6 +29,9 @@ fi if [ "$ARCH" = "ia64" ]; then CFLAGS="-fPIC -DPIC" fi +if [ "$ARCH" = "aarch64" ]; then + CFLAGS="-fPIC -DPIC" +fi #determine platform (32/64 bit) >/tmp/platform.c diff --git a/prism/ext/lpsolve55/src/lp_solve_5.5/lpsolve55/ccc b/prism/ext/lpsolve55/src/lp_solve_5.5/lpsolve55/ccc index 64a37758..c25f2276 100644 --- a/prism/ext/lpsolve55/src/lp_solve_5.5/lpsolve55/ccc +++ b/prism/ext/lpsolve55/src/lp_solve_5.5/lpsolve55/ccc @@ -11,6 +11,9 @@ fi if [ "$ARCH" = "ia64" ]; then CFLAGS="-fPIC -DPIC" fi +if [ "$ARCH" = "aarch64" ]; then + CFLAGS="-fPIC -DPIC" +fi #determine platform (32/64 bit) >/tmp/platform.c