| # Example config.mk |
| # |
| # Copyright (c) 2018-2022, Arm Limited. |
| # SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception |
| |
| # Subprojects to build |
| SUBS = math string networking |
| |
| # Subsubprojects to build if subproject pl is built |
| PLSUBS = math |
| |
| # Target architecture: aarch64, arm or x86_64 |
| ARCH = aarch64 |
| |
| # Use for cross compilation with gcc. |
| #CROSS_COMPILE = aarch64-none-linux-gnu- |
| |
| # Compiler for the target |
| CC = $(CROSS_COMPILE)gcc |
| CFLAGS = -std=c99 -pipe -O3 |
| CFLAGS += -Wall -Wno-missing-braces |
| CFLAGS += -Werror=implicit-function-declaration |
| |
| # Used for test case generator that is executed on the host |
| HOST_CC = gcc |
| HOST_CFLAGS = -std=c99 -O2 |
| HOST_CFLAGS += -Wall -Wno-unused-function |
| |
| # Enable debug info. |
| HOST_CFLAGS += -g |
| CFLAGS += -g |
| |
| # Optimize the shared libraries on aarch64 assuming they fit in 1M. |
| #CFLAGS_SHARED = -fPIC -mcmodel=tiny |
| |
| # Enable MTE support. |
| #CFLAGS += -march=armv8.5-a+memtag -DWANT_MTE_TEST=1 |
| |
| # Use with cross testing. |
| #EMULATOR = qemu-aarch64-static |
| #EMULATOR = sh -c 'scp $$1 user@host:/dir && ssh user@host /dir/"$$@"' -- |
| |
| # Additional flags for subprojects. |
| math-cflags = |
| math-ldlibs = |
| math-ulpflags = |
| math-testflags = |
| string-cflags = |
| networking-cflags = |
| |
| # Use if mpfr is available on the target for ulp error checking. |
| #math-ldlibs += -lmpfr -lgmp |
| #math-cflags += -DUSE_MPFR |
| |
| # Use with gcc. |
| math-cflags += -frounding-math -fexcess-precision=standard -fno-stack-protector |
| math-cflags += -ffp-contract=fast -fno-math-errno |
| |
| # Use with clang. |
| #math-cflags += -ffp-contract=fast |
| |
| # Disable vector math code |
| #math-cflags += -DWANT_VMATH=0 |
| |
| # Disable/enable SVE vector math code and tests |
| WANT_SVE_MATH = 0 |
| ifeq ($(WANT_SVE_MATH), 1) |
| math-cflags += -march=armv8.2-a+sve |
| endif |
| math-cflags += -DWANT_SVE_MATH=$(WANT_SVE_MATH) |
| |
| # If defined to 1, set errno in math functions according to ISO C. Many math |
| # libraries do not set errno, so this is 0 by default. It may need to be |
| # set to 1 if math.h has (math_errhandling & MATH_ERRNO) != 0. |
| WANT_ERRNO = 0 |
| math-cflags += -DWANT_ERRNO=$(WANT_ERRNO) |
| |
| # If set to 1, set fenv in vector math routines. |
| WANT_SIMD_EXCEPT = 0 |
| math-cflags += -DWANT_SIMD_EXCEPT=$(WANT_SIMD_EXCEPT) |
| |
| # Disable fenv checks |
| #math-ulpflags = -q -f |
| #math-testflags = -nostatus |
| |
| # Remove GNU Property Notes from asm files. |
| #string-cflags += -DWANT_GNU_PROPERTY=0 |
| |
| # Enable assertion checks. |
| #networking-cflags += -DWANT_ASSERT |
| |
| # Avoid auto-vectorization of scalar code and unroll loops |
| networking-cflags += -O2 -fno-tree-vectorize -funroll-loops |