+AC_C_TYPEOF
+AC_TYPE_INT16_T
+AC_TYPE_INT32_T
+AC_TYPE_INT64_T
+AC_TYPE_INT8_T
+AC_TYPE_MODE_T
+AC_TYPE_OFF_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UID_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT64_T
+AC_TYPE_UINT8_T
+AC_CHECK_TYPES([ptrdiff_t])
+
+
+## ##
+## C++ compiler checks ##
+## ##
+
+# Find an optional C++11 compiler without GNU extensions (-std=c++11)
+AX_CXX_COMPILE_STDCXX([11], [noext], [optional])
+
+
+## ##
+## Header checks ##
+## ##
+
+AC_HEADER_STDBOOL
+AC_CHECK_HEADERS([ \
+ arpa/inet.h \
+ dlfcn.h \
+ fcntl.h \
+ float.h \
+ limits.h \
+ linux/perf_event.h \
+ locale.h \
+ stddef.h \
+ sys/socket.h \
+ sys/time.h \
+ wchar.h \
+])
+
+# Check for dlinfo() by testing for RTLD_DI_LINKMAP in dlfcn.h
+AS_IF([test "x$ac_cv_header_dlfcn_h" = "xyes"], [
+ AC_CHECK_DECL([RTLD_DI_LINKMAP], [], [], [[#include <dlfcn.h>]])
+])
+
+
+## ##
+## Programs checks ##
+## ##
+
+AM_PROG_AR
+AC_PROG_SED
+AC_PROG_GREP
+AC_PROG_LN_S
+AC_PROG_MKDIR_P
+AC_PROG_MAKE_SET
+AC_CHECK_PROGS([ASCIIDOC], [asciidoc])
+AC_CHECK_PROGS([CMAKE], [cmake])
+AC_CHECK_PROGS([FOLD], [fold])
+AC_CHECK_PROGS([XMLTO], [xmlto])
+
+AM_PATH_PYTHON([2.7], [], [PYTHON=""])
+
+# Initialize and configure libtool
+LT_INIT([disable-static])
+
+
+## ##
+## Library checks ##
+## ##
+
+AC_FUNC_CHOWN
+AC_FUNC_FORK
+AC_FUNC_MMAP
+AC_FUNC_STRERROR_R
+AC_FUNC_STRNLEN
+AC_CHECK_FUNCS([ \
+ atexit \
+ clock_gettime \
+ ftruncate \
+ getpagesize \
+ gettimeofday \
+ localeconv \
+ memchr \
+ memmove \
+ memset \
+ mkdir \
+ munmap \
+ realpath \
+ sched_getcpu \
+ socket \
+ strchr \
+ strdup \
+ strerror \
+ strtol \
+ strtoul \
+ sysconf \
+])
+
+# AC_FUNC_MALLOC causes problems when cross-compiling.
+#AC_FUNC_MALLOC
+#AC_FUNC_REALLOC
+
+# Check for pthread_setname_np and its signature
+LTTNG_PTHREAD_SETNAME_NP
+LTTNG_PTHREAD_GETNAME_NP
+
+# Check dor dlopen() in -ldl or -lc
+AC_CHECK_LIB([dl], [dlopen], [
+ libdl_name=dl
+ DL_LIBS="-ldl"
+], [
+ # dlopen not found in libdl, check in libc
+ AC_CHECK_LIB([c], [dlopen], [
+ libdl_name=c
+ DL_LIBS="-lc"
+ ], [
+ AC_MSG_ERROR([Cannot find dlopen in libdl nor libc. Use [LDFLAGS]=-Ldir to specify their location.])
+ ])
+])
+AC_SUBST(DL_LIBS)
+
+# Check if libdl has dlmopen()
+AC_CHECK_LIB([$libdl_name], [dlmopen], [
+ AC_DEFINE([HAVE_DLMOPEN], [1], [Define to 1 if dlmopen is available.])
+])
+
+# Require URCU >= 0.12 for DEFINE_URCU_TLS_INIT
+PKG_CHECK_MODULES([URCU], [liburcu >= 0.12])
+
+
+## ##
+## User variables ##
+## ##
+
+# Additional variables captured during ./configure
+
+AC_ARG_VAR([CLASSPATH], [Java class path])
+
+
+## ##
+## Optionnal features selection ##
+## ##
+
+# numa integration
+# Enabled by default, except on some platforms
+AE_FEATURE_DEFAULT_ENABLE
+AE_FEATURE([numa],[disable NUMA support])
+
+# Java JNI interface library
+# Disabled by default
+AE_FEATURE_DEFAULT_DISABLE
+AE_FEATURE([jni-interface], [build JNI interface between C and Java])
+
+# Build the Java Logging API agent
+# Disabled by default
+AE_FEATURE_DEFAULT_DISABLE
+AE_FEATURE([java-agent-jul],[build the LTTng UST Java agent with JUL support])
+
+# Build the Java Log4j agent
+# Disabled by default
+AE_FEATURE_DEFAULT_DISABLE
+AE_FEATURE([java-agent-log4j],[build the LTTng UST Java agent with Log4j support])
+
+# Build both Java agents
+# Disabled by default
+AE_FEATURE_DEFAULT_DISABLE
+AE_FEATURE([java-agent-all],[build the LTTng UST Java agent with all supported backends])
+
+# Build the Python agent
+# Disabled by default
+AE_FEATURE_DEFAULT_DISABLE
+AE_FEATURE([python-agent],[build the LTTng UST Python agent])
+
+# Build the examples
+# Disabled by default
+AE_FEATURE_DEFAULT_ENABLE
+AE_FEATURE([examples],[Do not build and install examples])
+
+# Man pages
+# Enabled by default
+AE_FEATURE_DEFAULT_ENABLE
+AE_FEATURE([man-pages],[Do not build and install man pages (already built in a distributed tarball)])
+
+# Systemtap sdt.h integration
+# Disabled by default
+AC_ARG_WITH([sdt],
+ [AS_HELP_STRING([--with-sdt], [provide SystemTap integration via sdt.h [default=no]])]
+)
+
+# Override the default runtime directory
+AC_ARG_WITH([lttng-system-rundir], [
+AS_HELP_STRING([--with-lttng-system-rundir], [Location of the system directory where LTTng-UST expects the system-wide lttng-sessiond runtime files. The default is "/var/run/lttng".]),
+], [
+ lttng_system_rundir="$withval"
+], [
+ lttng_system_rundir="/var/run/lttng"
+])
+
+# Add the java command line arguments like '--wit-java-prefix'
+AX_JAVA_OPTIONS
+