3 # Copyright (c) 2018-2020, Arm Limited.
4 # SPDX-License-Identifier: MIT
7 SUBS = math string networking
9 # Target architecture: aarch64, arm or x86_64
12 # Use for cross compilation with gcc.
13 #CROSS_COMPILE = aarch64-none-linux-gnu-
15 # Compiler for the target
16 CC = $(CROSS_COMPILE)gcc
17 CFLAGS = -std=c99 -pipe -O3
18 CFLAGS += -Wall -Wno-missing-braces
19 CFLAGS += -Werror=implicit-function-declaration
21 # Used for test case generator that is executed on the host
23 HOST_CFLAGS = -std=c99 -O2
24 HOST_CFLAGS += -Wall -Wno-unused-function
30 # Optimize the shared libraries on aarch64 assuming they fit in 1M.
31 #CFLAGS_SHARED = -fPIC -mcmodel=tiny
34 #CFLAGS += -march=armv8.5-a+memtag -DWANT_MTE_TEST=1
36 # Use with cross testing.
37 #EMULATOR = qemu-aarch64-static
38 #EMULATOR = sh -c 'scp $$1 user@host:/dir && ssh user@host /dir/"$$@"' --
40 # Additional flags for subprojects.
48 # Use if mpfr is available on the target for ulp error checking.
49 #math-ldlibs += -lmpfr -lgmp
50 #math-cflags += -DUSE_MPFR
53 math-cflags += -frounding-math -fexcess-precision=standard -fno-stack-protector
54 math-cflags += -ffp-contract=fast -fno-math-errno
57 #math-cflags += -ffp-contract=fast
59 # Disable vector math code
60 #math-cflags += -DWANT_VMATH=0
63 #math-ulpflags = -q -f
64 #math-testflags = -nostatus
66 # Remove GNU Property Notes from asm files.
67 #string-cflags += -DWANT_GNU_PROPERTY=0
69 # Enable assertion checks.
70 #networking-cflags += -DWANT_ASSERT
72 # Avoid auto-vectorization of scalar code and unroll loops
73 networking-cflags += -O2 -fno-tree-vectorize -funroll-loops