]> granicus.if.org Git - ejabberd/blob - configure.ac
Lock relx version as newer version does not compile fine
[ejabberd] / configure.ac
1 #                                               -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 AC_PREREQ(2.53)
5 AC_INIT(ejabberd, m4_esyscmd([echo `git describe --tags 2>/dev/null || echo 0.0` | sed 's/-g.*//;s/-/./' | tr -d '\012']), [ejabberd@process-one.net], [ejabberd])
6 REQUIRE_ERLANG_MIN="6.1 (Erlang/OTP 17.1)"
7 REQUIRE_ERLANG_MAX="9.0.0 (No Max)"
8
9 AC_CONFIG_MACRO_DIR([m4])
10
11 # Checks for programs.
12 AC_PROG_MAKE_SET
13 AC_PROG_INSTALL
14 AC_PROG_SED
15
16 if test "x$GCC" = "xyes"; then
17     CFLAGS="$CFLAGS -Wall"
18 fi
19
20 # Checks Erlang runtime and compiler
21 AC_ARG_WITH(erlang,
22         AC_HELP_STRING([--with-erlang=dir],
23                 [search for erlang in dir]),
24 [if test "$withval" = "yes" -o "$withval" = "no" -o "X$with_erlang" = "X"; then
25     extra_erl_path=""
26 else
27     extra_erl_path="$with_erlang:$with_erlang/bin:"
28 fi
29 ])
30
31 AC_PATH_TOOL(ERL, erl, , [${extra_erl_path}$PATH])
32 AC_PATH_TOOL(ERLC, erlc, , [${extra_erl_path}$PATH])
33 AC_PATH_TOOL(EPMD, epmd, , [${extra_erl_path}$PATH])
34
35 AC_ERLANG_NEED_ERL
36 AC_ERLANG_NEED_ERLC
37
38 AC_ARG_ENABLE(erlang-version-check,
39 [AC_HELP_STRING([--enable-erlang-version-check],
40         [Check Erlang/OTP version @<:@default=yes@:>@])])
41 case "$enable_erlang_version_check" in
42         yes|'')
43                 ERLANG_VERSION_CHECK([$REQUIRE_ERLANG_MIN],[$REQUIRE_ERLANG_MAX])
44                 ;;
45         no)
46                 ERLANG_VERSION_CHECK([$REQUIRE_ERLANG_MIN],[$REQUIRE_ERLANG_MAX],[warn])
47                 ;;
48 esac
49
50 # Checks and sets ERLANG_ROOT_DIR and ERLANG_LIB_DIR variable
51 AC_ERLANG_SUBST_ROOT_DIR
52 # AC_ERLANG_SUBST_LIB_DIR
53
54 #locating escript
55 AC_PATH_PROG([ESCRIPT], [escript], [], [$ERLANG_ROOT_DIR/bin])
56
57 #locating make
58 AC_CHECK_PROG([MAKE], [make], [make], [])
59
60 if test "x$ESCRIPT" = "x"; then
61    AC_MSG_ERROR(['escript' was not found])
62 fi
63
64 if test "x$MAKE" = "x"; then
65    AC_MSG_ERROR(['make' was not found])
66 fi
67
68 # Change default prefix
69 AC_PREFIX_DEFAULT(/)
70
71 AC_ARG_ENABLE(hipe,
72 [AC_HELP_STRING([--enable-hipe], [compile natively with HiPE, not recommended (default: no)])],
73 [case "${enableval}" in
74   yes) hipe=true ;;
75   no)  hipe=false ;;
76   *) AC_MSG_ERROR(bad value ${enableval} for --enable-hipe) ;;
77 esac],[hipe=false])
78
79 AC_ARG_ENABLE(roster_gateway_workaround,
80 [AC_HELP_STRING([--enable-roster-gateway-workaround], [turn on workaround for processing gateway subscriptions (default: no)])],
81 [case "${enableval}" in
82   yes) roster_gateway_workaround=true ;;
83   no)  roster_gateway_workaround=false ;;
84   *) AC_MSG_ERROR(bad value ${enableval} for --enable-roster-gateway-workaround) ;;
85 esac],[roster_gateway_workaround=false])
86
87 AC_ARG_ENABLE(full_xml,
88 [AC_HELP_STRING([--enable-full-xml], [use XML features in XMPP stream (ex: CDATA) (default: no, requires XML compliant clients)])],
89 [case "${enableval}" in
90   yes) full_xml=true ;;
91   no)  full_xml=false ;;
92   *) AC_MSG_ERROR(bad value ${enableval} for --enable-full-xml) ;;
93 esac],[full_xml=false])
94
95 AC_ARG_ENABLE(mssql,
96 [AC_HELP_STRING([--enable-mssql], [use Microsoft SQL Server database (default: no, requires --enable-odbc)])],
97 [case "${enableval}" in
98   yes) db_type=mssql ;;
99   no)  db_type=generic ;;
100   *) AC_MSG_ERROR(bad value ${enableval} for --enable-mssql) ;;
101 esac],[db_type=generic])
102
103 AC_ARG_ENABLE(all,
104 [AC_HELP_STRING([--enable-all], [same as --enable-odbc --enable-mysql --enable-pgsql --enable-sqlite --enable-pam --enable-zlib --enable-riak --enable-redis --enable-elixir --enable-iconv --enable-debug --enable-tools (useful for Dialyzer checks, default: no)])],
105 [case "${enableval}" in
106   yes) odbc=true mysql=true pgsql=true sqlite=true pam=true zlib=true riak=true redis=true elixir=true iconv=true debug=true tools=true ;;
107   no) odbc=false mysql=false pgsql=false sqlite=false pam=false zlib=false riak=false redis=false elixir=false iconv=false debug=false tools=false ;;
108   *) AC_MSG_ERROR(bad value ${enableval} for --enable-all) ;;
109 esac],[])
110
111 AC_ARG_ENABLE(tools,
112 [AC_HELP_STRING([--enable-tools], [build development tools (default: no)])],
113 [case "${enableval}" in
114   yes) tools=true ;;
115   no)  tools=false ;;
116   *) AC_MSG_ERROR(bad value ${enableval} for --enable-tools) ;;
117 esac],[if test "x$tools" = "x"; then tools=false; fi])
118
119 AC_ARG_ENABLE(odbc,
120 [AC_HELP_STRING([--enable-odbc], [enable pure ODBC support (default: no)])],
121 [case "${enableval}" in
122   yes) odbc=true ;;
123   no)  odbc=false ;;
124   *) AC_MSG_ERROR(bad value ${enableval} for --enable-odbc) ;;
125 esac],[if test "x$odbc" = "x"; then odbc=false; fi])
126
127 AC_ARG_ENABLE(mysql,
128 [AC_HELP_STRING([--enable-mysql], [enable MySQL support (default: no)])],
129 [case "${enableval}" in
130   yes) mysql=true ;;
131   no)  mysql=false ;;
132   *) AC_MSG_ERROR(bad value ${enableval} for --enable-mysql) ;;
133 esac],[if test "x$mysql" = "x"; then mysql=false; fi])
134
135 AC_ARG_ENABLE(pgsql,
136 [AC_HELP_STRING([--enable-pgsql], [enable PostgreSQL support (default: no)])],
137 [case "${enableval}" in
138   yes) pgsql=true ;;
139   no)  pgsql=false ;;
140   *) AC_MSG_ERROR(bad value ${enableval} for --enable-pgsql) ;;
141 esac],[if test "x$pgsql" = "x"; then pgsql=false; fi])
142
143 AC_ARG_ENABLE(sqlite,
144 [AC_HELP_STRING([--enable-sqlite], [enable SQLite support (default: no)])],
145 [case "${enableval}" in
146   yes) sqlite=true ;;
147   no)  sqlite=false ;;
148   *) AC_MSG_ERROR(bad value ${enableval} for --enable-sqlite) ;;
149 esac],[if test "x$sqlite" = "x"; then sqlite=false; fi])
150
151 AC_ARG_ENABLE(pam,
152 [AC_HELP_STRING([--enable-pam], [enable PAM support (default: no)])],
153 [case "${enableval}" in
154   yes) pam=true ;;
155   no)  pam=false ;;
156   *) AC_MSG_ERROR(bad value ${enableval} for --enable-pam) ;;
157 esac],[if test "x$pam" = "x"; then pam=false; fi])
158
159 AC_ARG_ENABLE(zlib,
160 [AC_HELP_STRING([--enable-zlib], [enable Stream Compression (XEP-0138) using zlib (default: yes)])],
161 [case "${enableval}" in
162   yes) zlib=true ;;
163   no)  zlib=false ;;
164   *) AC_MSG_ERROR(bad value ${enableval} for --enable-zlib) ;;
165 esac],[if test "x$zlib" = "x"; then zlib=true; fi])
166
167 AC_ARG_ENABLE(riak,
168 [AC_HELP_STRING([--enable-riak], [enable Riak support (default: no)])],
169 [case "${enableval}" in
170   yes) riak=true ;;
171   no)  riak=false ;;
172   *) AC_MSG_ERROR(bad value ${enableval} for --enable-riak) ;;
173 esac],[if test "x$riak" = "x"; then riak=false; fi])
174
175 AC_ARG_ENABLE(redis,
176 [AC_HELP_STRING([--enable-redis], [enable Redis support (default: no)])],
177 [case "${enableval}" in
178   yes) redis=true ;;
179   no)  redis=false ;;
180   *) AC_MSG_ERROR(bad value ${enableval} for --enable-redis) ;;
181 esac],[if test "x$redis" = "x"; then redis=false; fi])
182
183 AC_ARG_ENABLE(elixir,
184 [AC_HELP_STRING([--enable-elixir], [enable Elixir support (default: no)])],
185 [case "${enableval}" in
186   yes) elixir=true ;;
187   no)  elixir=false ;;
188   *) AC_MSG_ERROR(bad value ${enableval} for --enable-elixir) ;;
189 esac],[if test "x$elixir" = "x"; then elixir=false; fi])
190
191 AC_ARG_ENABLE(iconv,
192 [AC_HELP_STRING([--enable-iconv], [enable iconv support (default: yes)])],
193 [case "${enableval}" in
194   yes) iconv=true ;;
195   no)  iconv=false ;;
196   *) AC_MSG_ERROR(bad value ${enableval} for --enable-iconv) ;;
197 esac],[if test "x$iconv" = "x"; then iconv=true; fi])
198
199 AC_ARG_ENABLE(debug,
200 [AC_HELP_STRING([--enable-debug], [enable debug information (default: yes)])],
201 [case "${enableval}" in
202   yes) debug=true ;;
203   no)  debug=false ;;
204   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
205 esac],[if test "x$debug" = "x"; then debug=true; fi])
206
207 AC_ARG_ENABLE(latest_deps,
208 [AC_HELP_STRING([--enable-latest-deps], [makes rebar use latest commits for dependences instead of tagged versions (default: no)])],
209 [case "${enableval}" in
210   yes) latest_deps=true ;;
211   no)  latest_deps=false ;;
212   *) AC_MSG_ERROR(bad value ${enableval} for --enable-latest-deps) ;;
213 esac],[if test "x$latest_deps" = "x"; then latest_deps=false; fi])
214
215 AC_CONFIG_FILES([Makefile
216                  vars.config
217                  src/ejabberd.app.src])
218
219 ENABLEUSER=""
220 AC_ARG_ENABLE(user,
221   [AS_HELP_STRING([--enable-user[[[[=USER]]]]], [allow this system user to start ejabberd (default: no)])],
222   [case "${enableval}" in
223      yes) ENABLEUSER=`whoami` ;;
224      no) ENABLEUSER="" ;;
225      *) ENABLEUSER=$enableval
226    esac],
227   [])
228 if test "$ENABLEUSER" != ""; then
229   echo "allow this system user to start ejabberd: $ENABLEUSER"
230   AC_SUBST([INSTALLUSER], [$ENABLEUSER])
231 fi
232
233 ERLANG_DEPRECATED_TYPES_CHECK
234
235 if test "$sqlite" = "true"; then
236    AX_LIB_SQLITE3([3.6.19])
237    if test "x$SQLITE3_VERSION" = "x"; then
238       AC_MSG_ERROR(SQLite3 library >= 3.6.19 was not found)
239    fi
240 fi
241
242 AC_SUBST(hipe)
243 AC_SUBST(roster_gateway_workaround)
244 AC_SUBST(full_xml)
245 AC_SUBST(db_type)
246 AC_SUBST(odbc)
247 AC_SUBST(mysql)
248 AC_SUBST(pgsql)
249 AC_SUBST(sqlite)
250 AC_SUBST(pam)
251 AC_SUBST(zlib)
252 AC_SUBST(riak)
253 AC_SUBST(redis)
254 AC_SUBST(elixir)
255 AC_SUBST(iconv)
256 AC_SUBST(debug)
257 AC_SUBST(tools)
258 AC_SUBST(latest_deps)
259 AC_SUBST(CFLAGS)
260 AC_SUBST(CPPFLAGS)
261 AC_SUBST(LDFLAGS)
262
263 AC_OUTPUT