1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
dnl -------------------------------------------------------- -*- autoconf -*-
dnl SPDX-License-Identifier: Apache-2.0
dnl
dnl jemalloc.m4: Trafficserver's jemalloc autoconf macros
dnl modified to skip other TS_ helpers
dnl
AC_DEFUN([TS_CHECK_JEMALLOC], [
AC_ARG_WITH([jemalloc-prefix],
[AS_HELP_STRING([--with-jemalloc-prefix=PREFIX],[Specify the jemalloc prefix [default=""]])],
[
jemalloc_prefix="$withval"
],[
if test "`uname -s`" = "Darwin"; then
jemalloc_prefix="je_"
else
jemalloc_prefix=""
fi
]
)
AC_DEFINE_UNQUOTED([prefix_jemalloc], [${jemalloc_prefix}], [jemalloc prefix])
enable_jemalloc=no
AC_ARG_WITH([jemalloc], [AS_HELP_STRING([--with-jemalloc=DIR], [use a specific jemalloc library])],
[
if test "$withval" != "no"; then
if test "x${enable_tcmalloc}" = "xyes"; then
AC_MSG_ERROR([Cannot compile with both jemalloc and tcmalloc])
fi
enable_jemalloc=yes
jemalloc_base_dir="$withval"
case "$withval" in
yes)
jemalloc_base_dir="/usr"
AC_MSG_CHECKING(checking for jemalloc includes standard directories)
;;
*":"*)
jemalloc_include="`echo $withval |sed -e 's/:.*$//'`"
jemalloc_ldflags="`echo $withval |sed -e 's/^.*://'`"
AC_MSG_CHECKING(checking for jemalloc includes in $jemalloc_include libs in $jemalloc_ldflags)
;;
*)
jemalloc_include="$withval/include"
jemalloc_ldflags="$withval/lib"
AC_MSG_CHECKING(checking for jemalloc includes in $withval)
;;
esac
fi
])
has_jemalloc=0
if test "$enable_jemalloc" != "no"; then
jemalloc_have_headers=0
jemalloc_have_libs=0
if test "$jemalloc_base_dir" != "/usr"; then
CFLAGS="${CFLAGS} -I${jemalloc_include}"
LDFLAGS="${LDFLAGS} -L${jemalloc_ldflags}"
LIBTOOL_LINK_FLAGS="${LIBTOOL_LINK_FLAGS} -R${jemalloc_ldflags}"
fi
func="${jemalloc_prefix}malloc_stats_print"
AC_CHECK_LIB(jemalloc, ${func}, [jemalloc_have_libs=1])
if test "$jemalloc_have_libs" != "0"; then
AC_CHECK_HEADERS([jemalloc/jemalloc.h], [jemalloc_have_headers=1])
fi
if test "$jemalloc_have_headers" != "0"; then
has_jemalloc=1
LIBS="${LIBS} -ljemalloc"
AC_DEFINE(has_jemalloc, [1], [Link/compile against jemalloc])
else
AC_MSG_ERROR([Couldn't find a jemalloc installation])
fi
fi
AC_SUBST(has_jemalloc)
])
|