Branch :
#!/bin/sh
## kc3
## Copyright from 2022 to 2026 kmx.io <contact@kmx.io>
##
## Permission is hereby granted to use this software granted the above
## copyright notice and this permission paragraph are included in all
## copies and substantial portions of this software.
##
## THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
## PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
## AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
## THIS SOFTWARE.
set -e
echo "$0"
export BUILD_TOP="$(dirname "$PWD")"
export DIR="$(basename $PWD)"
export SRC_TOP="$(dirname "$(cd "$(dirname "$0")" && pwd)")"
. "${SRC_TOP}/config.subr"
LIB=libtommath
LIB_ASAN=libtommath_asan
LIB_COV=libtommath_cov
LIB_DEBUG=libtommath_debug
. "${SRC_DIR}/sources.sh"
OBJECTS="$(c2ext .main.o "$SOURCES")"
OBJECTS_ASAN="$(c2ext .asan.o "$SOURCES")"
OBJECTS_COV="$(c2ext .cov.o "$SOURCES")"
OBJECTS_DEBUG="$(c2ext .debug.o "$SOURCES")"
echo "OBJECTS = $OBJECTS" >> ${CONFIG_MK}
echo "OBJECTS_ASAN = $OBJECTS_ASAN" >> ${CONFIG_MK}
echo "OBJECTS_COV = $OBJECTS_COV" >> ${CONFIG_MK}
echo "OBJECTS_DEBUG = $OBJECTS_DEBUG" >> ${CONFIG_MK}
# Common config for all targets
CPPFLAGS="$CPPFLAGS -DMP_28BIT -DPIC"
CFLAGS="$CFLAGS -W -Wall -Werror -std=c99 -pedantic -pipe -fPIC"
config_asan
config_i386
config_have_f80
config_have_f128
pkg_config libbsd-overlay
# Address Sanitizer config
CFLAGS_ASAN="$CFLAGS -fsanitize=address -O1 -fno-omit-frame-pointer -g"
LDFLAGS_ASAN="$LDFLAGS"
LIBS_ASAN="$LIBS"
# Coverage config
CFLAGS_COV="$CFLAGS --coverage"
LDFLAGS_COV="$LDFLAGS"
LIBS_COV="$LIBS"
# Debug config
CFLAGS_DEBUG="$CFLAGS -DDEBUG -O0 -ggdb"
LDFLAGS_DEBUG="$LDFLAGS"
LIBS_DEBUG="$LIBS"
# Main config
DEFAULT_CFLAGS="-O2 -fPIC"
if [ "x$ENV_CFLAGS" = "x" ]; then
CFLAGS="$CFLAGS $DEFAULT_CFLAGS"
fi
CFLAGS="$CFLAGS -DNDEBUG"
echo "HAVE_ASAN = $HAVE_ASAN" >> ${CONFIG_MK}
echo "CPPFLAGS = $CPPFLAGS" >> ${CONFIG_MK}
echo "CFLAGS = $CFLAGS" >> ${CONFIG_MK}
echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
echo "LIBS = $LIBS" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "CFLAGS_ASAN = $CFLAGS_ASAN" >> ${CONFIG_MK}
echo "LDFLAGS_ASAN = $LDFLAGS_ASAN" >> ${CONFIG_MK}
echo "LIBS_ASAN = $LIBS_ASAN" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "CFLAGS_COV = $CFLAGS_COV" >> ${CONFIG_MK}
echo "LDFLAGS_COV = $LDFLAGS_COV" >> ${CONFIG_MK}
echo "LIBS_COV = $LIBS_COV" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "CFLAGS_DEBUG = $CFLAGS_DEBUG" >> ${CONFIG_MK}
echo "LDFLAGS_DEBUG = $LDFLAGS_DEBUG" >> ${CONFIG_MK}
echo "LIBS_DEBUG = $LIBS_DEBUG" >> ${CONFIG_MK}
update_build
update_build_lib
build_o_c
# build_lib
update_config_mk
update_makefile