1gdnl Process this file with autoconf to produce a configure script.
2AC_PREREQ(2.57)
3
4ifdef([m4_pattern_allow],
5      [m4_pattern_allow([^AC_.*])])
6
7AC_INIT(electricsheep,2.7b33-svn,http://code.google.com/p/electricsheep/issues/list)
8AC_CANONICAL_HOST
9AC_CANONICAL_TARGET
10
11
12AC_CONFIG_SRCDIR([Makefile.am])
13AM_INIT_AUTOMAKE([1.9 tar-pax dist-bzip2])
14
15AM_MAINTAINER_MODE
16
17dnl Uncomment next line to have it build in /usr by default rather than /usr/local
18dnl AC_PREFIX_DEFAULT(/usr)
19
20AC_GNU_SOURCE
21AC_ISC_POSIX
22AC_PROG_INSTALL
23AC_PROG_CC
24AC_PROG_CXX
25
26dnl AC_CONFIG_MACRO_DIR([m4])
27
28AC_LIBTOOL_DLOPEN
29AC_PROG_LIBTOOL
30AM_PROG_CC_STDC
31AM_PROG_CC_C_O
32AC_HEADER_STDC
33AC_C_BIGENDIAN
34AC_C_CONST
35AC_C_INLINE
36AC_SYS_LARGEFILE
37
38AM_PROG_AS
39
40PTHREAD_OK=true
41
42IS_LINUX_GNU="false"
43
44case "{$target_os}" in
45 *linux-gnu*)
46   IS_LINUX_GNU="true"
47   echo "O/S is GNU/Linux"
48  ;;
49 *)
50  ;;
51esac
52
53AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
54
55if test x$PKG_CONFIG = xno; then
56   AC_MSG_ERROR([Cannot find pkg-config, make sure it is installed and in your PATH])
57fi
58
59
60AM_CONDITIONAL(IS_LINUX_GNU,$IS_LINUX_GNU)
61
62dnl Use -Wall if we have gcc.
63changequote(,)dnl
64if test "x$GCC" = "xyes"; then
65  case " $CFLAGS " in
66  *[\ \	]-Wall[\ \	]*) ;;
67  *) CFLAGS="$CFLAGS -Wall" ;;
68  esac
69fi
70changequote([,])dnl
71
72
73
74dnl Check for WXWidgets
75WX_VER_291=""
76
77#AC_PATH_PROGS(WX_CONFIG, [wx-config-2.9 wx-config], no)
78
79if test x$WX_CONFIG != xno; then
80   WX_VERSION=`$WX_CONFIG --version`
81
82   WX_MAJOR=${WX_VERSION%%.*};
83   WX_MINOR=${WX_VERSION#*.};
84   WX_MINOR=${WX_MINOR%%.*};
85   WX_MICRO=${WX_VERSION##*.};
86
87   if test $WX_MAJOR -gt 2; then
88      WX_VER_291=yes
89   else
90     if test $WX_MAJOR -eq 2; then
91        if test $WX_MINOR -gt 9; then
92           WX_VER_291=yes
93        else
94           if test $WX_MINOR -eq 9; then
95              if test $WX_MICRO -ge 1; then
96                 WX_VER_291=yes
97              fi
98           fi
99        fi
100     fi
101  fi
102fi
103
104if test "$WX_VER_291" != "yes"; then
105
106    dnl Use static version
107    echo "installed version of wx is too old,"
108
109    AC_MSG_ERROR([Please install development libraries for wxWidgets 2.9.1 or higher, and then run this configure script again.])
110fi
111
112WX_CXXFLAGS="`$WX_CONFIG --cxxflags`"
113WX_LIBS="-static `$WX_CONFIG --libs` `$WX_CONFIG --libs richtext`"
114
115echo "WX_CXXFLAGS is $WX_CXXFLAGS"
116echo "WX_LIBS is $WX_LIBS"
117
118WX_LDADD="$WX_LIBS"
119
120AC_SUBST(WX_CXXFLAGS)
121AC_SUBST(WX_LDADD)
122
123
124
125dnl Check for avcodec
126
127
128PKG_CHECK_MODULES([AVCODEC],[libavcodec])
129
130dnl Check for avcodec_decode_video2
131AC_CHECK_LIB([avcodec],[avcodec_decode_video2],HAVE_AVC_VID2=true,HAVE_AVC_VID2=false)
132
133AM_CONDITIONAL(HAVE_AVC_VID2,$HAVE_AVC_VID2)
134
135AC_SUBST(AVCODEC_CFLAGS)
136AC_SUBST(AVCODEC_LIBS)
137
138
139
140dnl Check for avformat
141
142PKG_CHECK_MODULES(AVFORMAT,libavformat)
143
144AC_SUBST(AVFORMAT_CFLAGS)
145AC_SUBST(AVFORMAT_LIBS)
146
147AC_CHECK_LIB([avformat], [av_open_input_file], AC_DEFINE([USE_OLD_FFMPEG_API]), AC_DEFINE([USE_NEW_FFMPEG_API]))
148
149dnl Check for swscale
150
151PKG_CHECK_MODULES(SWSCALE,libswscale)
152
153AC_SUBST(SWSCALE_CFLAGS)
154AC_SUBST(SWSCALE_LIBS)
155
156
157dnl Check for avutil
158
159PKG_CHECK_MODULES(AVUTIL,libavutil)
160
161AC_SUBST(AVUTIL_CFLAGS)
162AC_SUBST(AVUTIL_LIBS)
163
164
165dnl Check for lua
166
167PKG_CHECK_MODULES([LUA], [lua-5.1],,
168	[PKG_CHECK_MODULES([LUA], [lua >= 5.1])
169])
170
171AC_SUBST(LUA_CFLAGS)
172AC_SUBST(LUA_LIBS)
173
174
175
176dnl Check for glee
177
178PKG_CHECK_MODULES([GLEE],[glee], [HAVE_GLEE=true] , [HAVE_GLEE=false] )
179if test "$HAVE_GLEE" = "false"; then
180
181   PKG_CHECK_MODULES([GLEE],[GLee], [HAVE_GLEE=true] , [HAVE_GLEE=false] )
182   if test "$HAVE_GLEE" = "false"; then
183      AC_MSG_CHECKING(for GLee.h)
184      AC_CHECK_HEADERS(GLee.h GL/GLee.h)
185
186      if test "x$ac_cv_header_GLee_h" = "xno"; then
187      	 if test "xac_cv_header_GL_GLee_h" = "xno"; then
188      	    AC_MSG_ERROR([neither GLee.h nor GL/GLee.h were found. Please make sure you have GLee.h installed in your include path.])
189      	 fi
190      	 dnl found GLee.h in GL subdir
191      	 GLEE_CFLAGS="-I $includedir/GL -I/usr/include/GL"
192      fi
193
194      AC_CHECK_LIB([GLee],[main],GLEE_LIBS="-lGLee",
195	AC_CHECK_LIB([glee],[main],GLEE_LIBS="-lglee",,))
196
197      fi
198
199fi
200AC_SUBST(GLEE_CFLAGS)
201AC_SUBST(GLEE_LIBS)
202
203
204dnl Check for curl
205
206PKG_CHECK_MODULES(CURL,libcurl)
207
208AC_SUBST(CURL_CFLAGS)
209AC_SUBST(CURL_LIBS)
210
211
212dnl Check for libpng
213
214PKG_CHECK_MODULES(PNG,libpng)
215
216AC_SUBST(PNG_CFLAGS)
217AC_SUBST(PNG_LIBS)
218
219
220
221dnl Check for Xrender
222
223PKG_CHECK_MODULES(XRENDER,xrender)
224
225AC_SUBST(XRENDER_CFLAGS)
226AC_SUBST(XRENDER_LIBS)
227
228
229# Check for flam3-animate
230AC_PATH_PROG(FLAM3_ANIMATE, flam3-animate, no)
231if test x$FLAM3_ANIMATE = xno; then
232   AC_MSG_ERROR([Cannot find flam3-animate, make sure it is installed and in your PATH])
233fi
234
235
236dnl Check for libgtop-2.0
237
238PKG_CHECK_MODULES(LIBGTOP,libgtop-2.0)
239
240AC_SUBST(LIBGTOP_CFLAGS)
241AC_SUBST(LIBGTOP_LIBS)
242
243
244dnl Checks for boost
245AC_LANG_PUSH([C++])
246
247dnl Check boost version
248
249REQ_BOOST_VERSION=103900
250AC_MSG_CHECKING(for libboost >= 1.39)
251
252AC_RUN_IFELSE([
253  AC_LANG_PROGRAM(
254  [
255   #include <boost/version.hpp>
256   #include <fstream>
257  ],
258  [dnl
259#if BOOST_VERSION >= $REQ_BOOST_VERSION
260  std::ofstream ofs("conftest.out");
261  ofs << BOOST_VERSION / 100000 << '.' << BOOST_VERSION / 100 % 1000;
262#else
263#  error Boost version is too old
264#endif
265  ])],
266  [
267    BOOST_VERSION=`cat conftest.out`
268    AC_MSG_RESULT(yes)
269    succeeded=yes
270    found_system=yes
271  ],
272  [])
273
274AC_LANG_POP([C++])
275
276
277dnl Check result of boost version
278if test "x$succeeded" != "xyes"; then
279   AC_MSG_ERROR([libboost version 1.41 or higher is required to compile electricsheep.])
280fi
281
282
283AC_LANG_PUSH([C++])
284
285dnl Check for boost/thread.hpp
286AC_CHECK_HEADER([boost/thread.hpp],,
287	[AC_MSG_ERROR([you must install libboost-thread to compile electricsheep.])
288])
289
290AC_CHECK_LIB([boost_thread],[main],,
291	[AC_MSG_ERROR([you must install libboost-thread to compile electricsheep.])
292])
293
294
295dnl Check for boost/filesystem.hpp
296AC_CHECK_HEADER([boost/filesystem.hpp],,
297	[AC_MSG_ERROR([you must install libboost-filesystem to compile electricsheep.])
298])
299
300AC_CHECK_LIB([boost_filesystem],[main],,
301	[AC_MSG_ERROR([you must install libboost-filesystem to compile electricsheep.])
302])
303
304dnl Check for boost/system/config.hpp
305AC_CHECK_HEADER([boost/system/config.hpp],,
306	[AC_MSG_ERROR([you must install libboost-system to compile electricsheep.])
307])
308
309AC_CHECK_LIB([boost_system],[main],,
310	[AC_MSG_ERROR([you must install libboost-system to compile electricsheep.])
311])
312
313AC_LANG_POP([C++])
314
315
316
317BOOST_LDADD="-lboost_system"
318
319AC_SUBST(BOOST_LDADD)
320
321
322dnl Check for libtinyxml
323AC_CHECK_LIB([tinyxml],[main],,
324	[AC_MSG_ERROR([you must install libtinyxml dev to compile electricsheep.])
325])
326
327dnl Check for libglut
328AC_CHECK_LIB([glut],[glutMainLoop],,
329	[AC_MSG_ERROR([you must install libglut dev to compile electricsheep.])
330])
331
332
333AC_CHECK_LIB([GL],[glXCreateNewContext],,
334	[AC_MSG_ERROR([you must install libGL to compile electricsheep.])
335])
336
337AC_CHECK_LIB([rt],[clock_gettime],,
338	[AC_MSG_ERROR([you must install librt to compile electricsheep.])
339])
340
341
342
343AC_OUTPUT([
344Makefile
345Client/Makefile
346MSVC/SettingsGUI/Makefile
347])
348