-
Notifications
You must be signed in to change notification settings - Fork 19
/
configure.ac
146 lines (124 loc) · 3.47 KB
/
configure.ac
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
AC_PREREQ([2.71])
AC_INIT([pincaster],[0.7],[bugs at pureftpd dot org])
AC_CONFIG_SRCDIR([src/app.c])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([1.9 dist-bzip2])
AM_MAINTAINER_MODE
AC_SUBST(LIBTOOL_DEPS)
AC_SUBST(LIBTOOL_EXTRA_FLAGS)
AC_SUBST(VERSION)
ISODATE=`date +%Y-%m-%d`
AC_SUBST(ISODATE)
# Checks for programs.
AC_USE_SYSTEM_EXTENSIONS
CPPFLAGS="$CPPFLAGS -D_XPG4_2=1"
if test -d /usr/local/include; then
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
fi
if test -d /usr/local/lib; then
LDFLAGS="$LDFLAGS -L/usr/local/lib"
fi
AC_PROG_CC
LT_INIT
AX_PTHREAD
LIBS="$PTHREAD_LIBS $LIBS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
CC="$PTHREAD_CC"
# Checks for libraries.
AC_CHECK_LIB([m], [cosf],, AC_MSG_ERROR(libm not found))
AC_CHECK_LIB([rt], [clock_gettime])
# Checks for YAJL library
AC_ARG_WITH([yajl],
AS_HELP_STRING([--with-yajl=auto|system|embedded],[Specify the YAJL library
to use. Default is to autodetect system copy and fallback to
embedded one.]),
[[yajl=$withval]],
[[yajl=auto]]
)
AC_MSG_CHECKING([which YAJL library to use])
AM_CONDITIONAL([ENABLE_EMBEDDED_YAJL], [false])
case "$yajl" in
"auto")
AC_MSG_RESULT([auto])
AC_CHECK_YAJL(,[
AM_CONDITIONAL([ENABLE_EMBEDDED_YAJL], [true])
YAJL_LDADD="\$(top_srcdir)/src/yajl/libyajl.a"
YAJL_INCLUDE="-I\$(top_srcdir)/src/yajl/api"
AC_SUBST(YAJL_LDADD)
AC_SUBST(YAJL_INCLUDE)
])
;;
"system")
AC_MSG_RESULT([system])
AC_CHECK_YAJL(,[
AC_MSG_ERROR([YAJL library not found.])
])
;;
"embedded")
AC_MSG_RESULT([embedded])
AM_CONDITIONAL([ENABLE_EMBEDDED_YAJL], [true])
YAJL_LDADD="\$(top_srcdir)/src/yajl/libyajl.a"
YAJL_INCLUDE="-I\$(top_srcdir)/src/yajl/api"
AC_SUBST(YAJL_LDADD)
AC_SUBST(YAJL_INCLUDE)
;;
*)
AC_MSG_RESULT()
AC_MSG_ERROR([Unknown option "$yajl". Use either "auto", "system" or
"embedded".])
;;
esac
LIBS="$YAJL_LIBS $LIBS"
CFLAGS="$YAJL_CFLAGS $CFLAGS"
# Checks for header files.
AC_SYS_LARGEFILE
AC_HEADER_STDBOOL
AC_CHECK_HEADERS([inttypes.h limits.h stddef.h stdlib.h string.h pthreads.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_RESTRICT
AC_C_FLEXIBLE_ARRAY_MEMBER
AC_C_VARARRAYS
AC_CHECK_ALIGNOF(void *)
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_OFF_T
AC_TYPE_MODE_T
AC_TYPE_INTPTR_T
AC_TYPE_UINTPTR_T
AC_TYPE_UINT32_T
AC_CHECK_TYPES([ptrdiff_t])
# Switches
AC_ARG_ENABLE(debug,
[AS_HELP_STRING(--enable-debug,For maintainers only - please do not use)],
[ if test "x$enableval" = "xyes" ; then
CFLAGS="$CFLAGS -DQUEUE_MACRO_DEBUG=1 -DDEBUG=1 -g -Wall -W -Wcast-align -Wbad-function-cast -Wstrict-prototypes -Wwrite-strings -Wreturn-type "
fi ])
# Checks for library functions.
AC_FUNC_ALLOCA
AC_FUNC_FORK
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_FUNC_STRTOD
AC_CHECK_FUNCS([memmove strcasecmp strchr strdup])
AC_CHECK_FUNCS([pthread_spin_lock OSSpinLockLock fdatasync])
AC_CHECK_FUNCS([ffs ffsl ffsll])
AC_CHECK_FUNCS([strncasecmp strtol])
AC_CHECK_HEADERS([fcntl.h])
AC_SUBST([MAINT])
LEVENTDIR="levent2"
AC_CONFIG_SUBDIRS([src/levent2])
CPPFLAGS="-I$LEVENTDIR -I$LEVENTDIR/include $CPPFLAGS"
dnl Output
AH_VERBATIM([NDEBUG], [/* Never ever ignore assertions */
#ifdef NDEBUG
#/**/undef/**/ NDEBUG
#endif])
AC_CONFIG_FILES([Makefile
src/Makefile
src/ext/Makefile
src/yajl/Makefile
src/yajl/api/Makefile
])
AC_OUTPUT
(cd src/levent2 && $am_make)