--- configure.ac.orig 2026-02-05 12:41:56 UTC +++ configure.ac @@ -14,8 +14,6 @@ define([ucx_ver_extra], ) # Extra version string. Em define([ucx_ver_patch], 0) # Patch version. Increased for a bugfix release. define([ucx_ver_extra], ) # Extra version string. Empty for a general release. -define([ts], esyscmd([sh -c "date +%Y%m%d%H%M%S"])) - # This is the API version (see libtool library versioning) # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html # current:rev:age @@ -31,14 +29,20 @@ AC_CONFIG_HEADERS([config.h]) AC_USE_SYSTEM_EXTENSIONS AC_CONFIG_HEADERS([config.h]) -AC_CHECK_PROG(GITBIN, git, yes) -AS_IF([test x"${GITBIN}" = x"yes"], - [# remove preceding "refs/heads/" (11 characters) for symbolic ref - AC_SUBST(SCM_BRANCH, esyscmd([sh -c 'git symbolic-ref --quiet HEAD | sed "s/^.\{11\}//"'])) - AC_SUBST(SCM_VERSION, esyscmd([sh -c 'git rev-parse --short=7 HEAD']))], - [AC_SUBST(SCM_BRANCH, "") - AC_SUBST(SCM_VERSION, "0000000")]) +AC_PATH_PROG([GIT], [git], [:]) +SCM_BRANCH="" +SCM_VERSION="0000000" + +AS_IF([test -d "${srcdir}/.git" && test "x$GIT" != "x:" && \ + $GIT -C "${srcdir}" rev-parse --is-inside-work-tree >/dev/null 2>&1], [ + SCM_BRANCH=`$GIT -C "${srcdir}" symbolic-ref --quiet HEAD 2>/dev/null | sed 's,^refs/heads/,,'` + SCM_VERSION=`$GIT -C "${srcdir}" rev-parse --short=7 HEAD 2>/dev/null` +]) + +AC_SUBST([SCM_BRANCH]) +AC_SUBST([SCM_VERSION]) + AH_TOP([ #ifndef UCX_CONFIG_H #define UCX_CONFIG_H @@ -85,9 +89,44 @@ AC_FUNC_STRERROR_R AC_C_RESTRICT AC_FUNC_STRERROR_R -AC_PATH_TOOL([PKG_CONFIG], [pkg-config], [pkg-config]) +PKG_PROG_PKG_CONFIG +dnl Float word order can differ from integer endianness on some ABIs. + dnl Prefer Autoconf's macro if available; otherwise fall back to autoconf-archive. + m4_ifdef([AC_C_FLOAT_WORDS_BIGENDIAN], + [AC_C_FLOAT_WORDS_BIGENDIAN], + [m4_ifdef([AX_C_FLOAT_WORDS_BIGENDIAN], + [AX_C_FLOAT_WORDS_BIGENDIAN], + [AC_MSG_ERROR([need AC_C_FLOAT_WORDS_BIGENDIAN or AX_C_FLOAT_WORDS_BIGENDIAN])])]) +AC_CHECK_HEADERS([sys/eventfd.h sys/timerfd.h]) +AC_CHECK_HEADERS([netinet/in.h arpa/inet.h]) + +AC_CHECK_FUNCS([brk sbrk]) + +AS_IF([test "x$ac_cv_func_brk" = "xyes" && test "x$ac_cv_func_sbrk" = "xyes"], + [have_brk_sbrk=yes], + [have_brk_sbrk=no]) + +have_ucm_malloc_hooks=no +case "$host_os" in + linux*) have_ucm_malloc_hooks=yes ;; + *) have_ucm_malloc_hooks=no ;; +esac +AM_CONDITIONAL([HAVE_UCM_MALLOC_HOOKS], [test "x$have_ucm_malloc_hooks" = xyes]) + +AM_CONDITIONAL([HAVE_BRK_SBRK], [test "x$have_brk_sbrk" = "xyes"]) +AS_IF([test "x$have_brk_sbrk" = "xyes"], + [AC_DEFINE([HAVE_BRK_SBRK], [1], + [Define if both brk() and sbrk() are available])], + []) + +case "$host_os" in + freebsd*) build_gtest=no ;; + *) build_gtest=yes ;; +esac +AM_CONDITIONAL([BUILD_GTEST], [test "x$build_gtest" = xyes]) + # # Define SHARED_LIB preprocessor macro when building a shared library # @@ -255,6 +294,22 @@ AS_IF([test "x$with_docs_only" = xyes], m4_include([test/apps/iodemo/configure.m4]) m4_include([test/apps/uct_info/configure.m4]) +AS_IF([test "x$with_docs_only" != xyes && test "x$build_gtest" = xyes], [ + PKG_CHECK_MODULES([GTEST], [gtest_main], + [have_gtest=yes], + [have_gtest=no]) +], [ + have_gtest=no +]) + +AM_CONDITIONAL([HAVE_GTEST], [test "x$have_gtest" = "xyes"]) + +GTEST_CPPFLAGS="${GTEST_CFLAGS}" +GTEST_CXXFLAGS="${GTEST_CFLAGS}" +GTEST_LDFLAGS="" +AC_SUBST([GTEST_CPPFLAGS]) +AC_SUBST([GTEST_CXXFLAGS]) +AC_SUBST([GTEST_LDFLAGS]) # # Disable checking user parameters