diff --git a/build_setup.sh b/build_setup.sh index aebb921f5..49d1f628b 100755 --- a/build_setup.sh +++ b/build_setup.sh @@ -42,6 +42,7 @@ PLUGINS_LINUXx86="openxr ode qi ezhud xmpp irc hl2" PLUGINS_LINUXx64="openxr ode qi ezhud xmpp irc hl2" PLUGINS_LINUXx32="qi ezhud xmpp irc hl2" PLUGINS_LINUXarmhf="qi ezhud xmpp irc hl2" +PLUGINS_LINUXaarch64="qi ezhud xmpp irc hl2" if [ "$(uname -m)" != "x86_64" ]; then PLUGINS_LINUXx86="openxr ode qi ezhud xmpp irc hl2" fi @@ -194,6 +195,7 @@ BUILD_LINUXx86=${BUILD_LINUXx86:-y} BUILD_LINUXx64=${BUILD_LINUXx64:-y} BUILD_LINUXx32=${BUILD_LINUXx32:-n} BUILD_LINUXarmhf=${BUILD_LINUXarmhf:-n} +BUILD_LINUXaarch64=${BUILD_LINUXaarch64:-n} BUILD_CYGWIN=${BUILD_CYGWIN:-n} BUILD_WIN32=${BUILD_WIN32:-y} BUILD_WIN64=${BUILD_WIN64:-y} @@ -226,6 +228,7 @@ if [ "$UID" != "0" ]; then echo "BUILD_LINUXx64=\"$BUILD_LINUXx64\"" >>$FTECONFIG echo "BUILD_LINUXx32=\"$BUILD_LINUXx32\"" >>$FTECONFIG echo "BUILD_LINUXarmhf=\"$BUILD_LINUXarmhf\"" >>$FTECONFIG + echo "BUILD_LINUXaarch64=\"$BUILD_LINUXaarch64\"" >>$FTECONFIG echo "BUILD_CYGWIN=\"$BUILD_CYGWIN\"" >>$FTECONFIG echo "BUILD_WIN32=\"$BUILD_WIN32\"" >>$FTECONFIG echo "BUILD_WIN64=\"$BUILD_WIN64\"" >>$FTECONFIG @@ -245,6 +248,7 @@ if [ "$UID" != "0" ]; then echo "PLUGINS_LINUXx64=\"$PLUGINS_LINUXx64\"" >>$FTECONFIG echo "PLUGINS_LINUXx32=\"$PLUGINS_LINUXx32\"" >>$FTECONFIG echo "PLUGINS_LINUXarmhf=\"$PLUGINS_LINUXarmhf\"" >>$FTECONFIG + echo "PLUGINS_LINUXaarch64=\"$PLUGINS_LINUXaarch64\"" >>$FTECONFIG echo "PLUGINS_DROID=\"$PLUGINS_DROID\"" >>$FTECONFIG fi @@ -479,6 +483,10 @@ if [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then echo "Making libraries (linux armhf)..." make FTE_TARGET=linuxarmhf makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null fi + if [ "$BUILD_LINUXaarch64" == "y" ]; then + echo "Making libraries (linux aarch64)..." + make FTE_TARGET=linuxaarch64 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null + fi if [ "$BUILD_WIN32" == "y" ]; then echo "Making libraries (win32)..." make FTE_TARGET=win32 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null diff --git a/build_wip.sh b/build_wip.sh index f63179bbb..cc0d8ca0d 100755 --- a/build_wip.sh +++ b/build_wip.sh @@ -81,6 +81,7 @@ do BUILD_LINUXx86="n" BUILD_LINUXx64="n" BUILD_LINUXarmhf="n" + BUILD_LINUXaarch64="n" BUILD_WIN32="n" BUILD_WIN64="n" BUILD_ANDROID="n" @@ -90,6 +91,7 @@ do BUILD_LINUXx86="n" BUILD_LINUXx64="n" BUILD_LINUXarmhf="n" + BUILD_LINUXaarch64="n" BUILD_WIN32="n" BUILD_WIN64="n" BUILD_ANDROID="y" @@ -215,6 +217,9 @@ if [ "$BUILD_LINUXarmhf" != "n" ]; then #debian/ubuntu's armhf targets armv7. we instead target armv6, because that means we work on rpi too (but still with hard-float). It should be compatible although we likely need more ops. NATIVE_PLUGINS="$PLUGINS_LINUXarmhf" build "Linux ARMhf" linux_armhf FTE_TARGET=linux_armhf CPUOPTIMIZATIONS=-fno-finite-math-only $TARGETS_LINUX fi +if [ "$BUILD_LINUXaarch64" != "n" ]; then + NATIVE_PLUGINS="$PLUGINS_LINUXaarch64" build "Linux aarch64" linux_aarch64 FTE_TARGET=linux_aarch64 CPUOPTIMIZATIONS=-fno-finite-math-only $TARGETS_LINUX +fi if [ "$BUILD_CYGWIN" != "n" ]; then NATIVE_PLUGINS="qi ezhud" build "Cygwin" cygwin qcc-rel rel dbg plugins-rel plugins-dbg fi @@ -336,6 +341,9 @@ fi if [ "$BUILD_LINUXarmhf" != "n" ]; then cp $BUILDFOLDER/linux_armhf/fteqccarmhf $QCCBUILDFOLDER/linuxarmhf-fteqcc fi +if [ "$BUILD_LINUXaarch64" != "n" ]; then + cp $BUILDFOLDER/linux_armhf/fteqccaarch64 $QCCBUILDFOLDER/linuxaarch64-fteqcc +fi if [ "$BUILD_WIN32" != "n" ]; then cp $BUILDFOLDER/win32/fteqcc.exe $QCCBUILDFOLDER/win32-fteqcc.exe cp $BUILDFOLDER/win32/fteqccgui.exe $QCCBUILDFOLDER/win32-fteqccgui.exe diff --git a/engine/Makefile b/engine/Makefile index 8fe183241..9d75b5422 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -476,6 +476,14 @@ ifeq ($(FTE_TARGET),linux_arm64) BITS=arm64 USE_SPEEX=0 #fails to compile due to neon asm, I'm just going to disable it (will still soft-link). endif +ifeq ($(FTE_TARGET),linux_aarch64) + FTE_TARGET=linux + CC=aarch64-linux-gnu-gcc + CXX=aarch64-linux-gnu-g++ + STRIP=aarch64-linux-gnu-strip + BITS=aarch64 + USE_SPEEX=0 #fails to compile due to neon asm, I'm just going to disable it (will still soft-link). +endif ifeq ($(FTE_TARGET),linux_x32) #DO NOT CONFUSE WITH linux_x86. this target is amd64-with-32bit-pointers #note: the x32 abi is still not finished or something.