Aarch64 for ARM targets using ProJucer?

Hi folks,

I’m working on compiling a Juce Standalone for Raspberry Pi 3 B+. I figured out that using the ProJucer and creating a Linux target will generate a makefile in my project folder (under Builds/LinuxMakefile). However, the ARM compiler options available for Linux only go up to ARM v7, which won’t generate the level of SIMD optimization I’m looking for.

Will changing the target in the makefile to aarch64 take care of this for me? Or are there other aspects that need to be changed in the makefile?

Also, will the ProJucer be updated to generate code for the latest Raspberry Pi? It seems like this would be required for creating VST 2.4 plugins to work on the Elk platform. I’m currently working on a standalone, but it seems like the same compilation options would apply.



Hi @SkutchHenks,

By default, Projucer writes

ifeq ($(TARGET_ARCH),)
  TARGET_ARCH := -march=native

in the generated Makefile for each configuration (by default, Debug and Release).

You can set TARGET_ARCH when invoking make to override this. For instance:

TARGET_ARCH='-march=armv8' make

You can also make Projucer write

ifeq ($(TARGET_ARCH),)

by changing the “Architecture” setting of each configuration to <None> (instead of the default Native), then add any compiler flag that you need for Raspberry Pi 3 B+ in the “Extra Compiler Flags” setting of the exporter.

I hope this helps!