1# Example config.mk
2#
3# Copyright (c) 2018-2020, Arm Limited.
4# SPDX-License-Identifier: MIT
5
6# Subprojects to build
7SUBS = math string networking
8
9# Target architecture: aarch64, arm or x86_64
10ARCH = aarch64
11
12# Use for cross compilation with gcc.
13#CROSS_COMPILE = aarch64-none-linux-gnu-
14
15# Compiler for the target
16CC = $(CROSS_COMPILE)gcc
17CFLAGS = -std=c99 -pipe -O3
18CFLAGS += -Wall -Wno-missing-braces
19CFLAGS += -Werror=implicit-function-declaration
20
21# Used for test case generator that is executed on the host
22HOST_CC = gcc
23HOST_CFLAGS = -std=c99 -O2
24HOST_CFLAGS += -Wall -Wno-unused-function
25
26# Enable debug info.
27HOST_CFLAGS += -g
28CFLAGS += -g
29
30# Optimize the shared libraries on aarch64 assuming they fit in 1M.
31#CFLAGS_SHARED = -fPIC -mcmodel=tiny
32
33# Enable MTE support.
34#CFLAGS += -march=armv8.5-a+memtag -DWANT_MTE_TEST=1
35
36# Use with cross testing.
37#EMULATOR = qemu-aarch64-static
38#EMULATOR = sh -c 'scp $$1 user@host:/dir && ssh user@host /dir/"$$@"' --
39
40# Additional flags for subprojects.
41math-cflags =
42math-ldlibs =
43math-ulpflags =
44math-testflags =
45string-cflags =
46networking-cflags =
47
48# Use if mpfr is available on the target for ulp error checking.
49#math-ldlibs += -lmpfr -lgmp
50#math-cflags += -DUSE_MPFR
51
52# Use with gcc.
53math-cflags += -frounding-math -fexcess-precision=standard -fno-stack-protector
54math-cflags += -ffp-contract=fast -fno-math-errno
55
56# Use with clang.
57#math-cflags += -ffp-contract=fast
58
59# Disable vector math code
60#math-cflags += -DWANT_VMATH=0
61
62# Disable fenv checks
63#math-ulpflags = -q -f
64#math-testflags = -nostatus
65
66# Remove GNU Property Notes from asm files.
67#string-cflags += -DWANT_GNU_PROPERTY=0
68
69# Enable assertion checks.
70#networking-cflags += -DWANT_ASSERT
71
72# Avoid auto-vectorization of scalar code and unroll loops
73networking-cflags += -O2 -fno-tree-vectorize -funroll-loops
74