Tizen 2.1 base
[framework/uifw/ecore.git] / configure.in
1 # get rid of that stupid cache mechanism
2 rm -f config.cache
3
4 AC_INIT(ecore, 0.9.9.043, enlightenment-devel@lists.sourceforge.net)
5 AC_PREREQ(2.52)
6 AC_CONFIG_SRCDIR(configure.in)
7 AC_CANONICAL_BUILD
8 AC_CANONICAL_HOST
9 AC_ISC_POSIX
10
11 AM_INIT_AUTOMAKE(1.6 dist-bzip2)
12 AM_CONFIG_HEADER(config.h)
13
14 AC_PROG_CXX
15 AC_C_BIGENDIAN
16 AC_PROG_CC
17 AM_PROG_CC_STDC
18 AC_HEADER_STDC
19 AC_C_CONST
20 AC_CHECK_SIZEOF(int, 4)
21 AC_CHECK_SIZEOF(long, 4)
22 AC_C___ATTRIBUTE__
23 AC_HEADER_SYS_WAIT
24
25 AC_LIBTOOL_WIN32_DLL
26 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
27 AC_PROG_LIBTOOL
28 AC_DEFINE_UNQUOTED(SHARED_LIB_SUFFIX, "$shrext_cmds", [Suffix for shared objects])
29
30 VMAJ=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $1);}'`
31 VMIN=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $2);}'`
32 VMIC=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $3);}'`
33 SNAP=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $4);}'`
34 version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN"
35 AC_SUBST(version_info)
36
37 # define pkg-config requirements for all our submodules.
38 # only the trivial requirements go here.
39 requirements_ecore_con=""
40 requirements_ecore_config=""
41 requirements_ecore_desktop=""
42 requirements_ecore_directfb=""
43 requirements_ecore_evas="evas"
44 requirements_ecore_fb=""
45 requirements_ecore_file=""
46 requirements_ecore_ipc=""
47 requirements_ecore_job=""
48 requirements_ecore_txt=""
49 requirements_ecore_x=""
50 requirements_ecore_win32=""
51 requirements_ecore_wince=""
52 requirements_ecore_sdl=""
53
54 dnl The first call to PKG_CHECK_MODULES is done conditionally,
55 dnl so we should include this here:
56 PKG_PROG_PKG_CONFIG
57
58 dnl add windows requirements
59 WIN32_CFLAGS=""
60 WIN32_LIBS=""
61 lt_no_undefined=""
62 lt_enable_auto_import=""
63 case "$host_os" in
64         mingw*|cegcc)
65                 PKG_CHECK_MODULES([EVIL], [evil])
66                 AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed.])
67                 dnl needed for correct definition of EAPI
68                 AC_DEFINE(EFL_ECORE_BUILD, 1, [Define to mention that ecore is built.])
69                 AC_DEFINE(EFL_ECORE_EVAS_BUILD, 1, [Define to mention that ecore evas is built.])
70                 AC_DEFINE(EFL_ECORE_FILE_BUILD, 1, [Define to mention that ecore file is built.])
71                 AC_DEFINE(EFL_ECORE_IMF_BUILD, 1, [Define to mention that ecore imf is built.])
72                 AC_DEFINE(EFL_ECORE_JOB_BUILD, 1, [Define to mention that ecore job is built.])
73                 AC_DEFINE(EFL_ECORE_SDL_BUILD, 1, [Define to mention that ecore SDL is built.])
74                 AC_DEFINE(EFL_ECORE_TXT_BUILD, 1, [Define to mention that ecore txt is built.])
75                 AC_DEFINE(EFL_ECORE_WIN32_BUILD, 1, [Define to mention that ecore Win32 is built.])
76                 AC_DEFINE(HAVE_DLFCN_H, 1, [Define to 1 if you have the <dlfcn.h> header file.])
77                 AC_DEFINE(HAVE_SYS_MMAN_H, 1, [Define to 1 if you have the <sys/mman.h> header file.])
78                 AC_DEFINE(HAVE_SYS_TIME_H, 1, [Define to 1 if you have the <sys/time.h> header file.])
79                 if test "$host_os" = "cegcc" ; then
80                         AC_DEFINE(EFL_ECORE_WINCE_BUILD, 1, [Define to mention that ecore WinCE is built.])
81                         WIN32_CFLAGS="-mwin32"
82                         WIN32_LIBS="-lws2 -laygshell"
83                         lt_enable_auto_import="-Wl,--enable-auto-import"
84                 else
85                         WIN32_LIBS="-lws2_32"
86                 fi
87                 lt_no_undefined="-no-undefined"
88                 ;;
89         *)
90                 AC_CHECK_HEADERS([dlfcn.h features.h langinfo.h locale.h netdb.h netinet/in.h sys/time.h sys/mman.h])
91                 AC_CHECK_LIB(dl, dlopen, dlopen_libs=-ldl)
92                 AC_SUBST(dlopen_libs)
93                 ;;
94 esac
95 AC_SUBST(WIN32_CFLAGS)
96 AC_SUBST(WIN32_LIBS)
97 AC_SUBST(lt_no_undefined)
98 AC_SUBST(lt_enable_auto_import)
99
100 dnl check common functions and headers
101 AC_CHECK_FUNCS(gettimeofday)
102 AC_CHECK_FUNCS(strlcpy)
103
104 dnl openssl
105 want_openssl="yes"
106 have_openssl="no"
107 AC_ARG_ENABLE(openssl,
108   AC_HELP_STRING(
109     [--disable-openssl],
110     [disable openssl support]
111   ),
112   [ want_openssl=$enableval ]
113 )
114
115 if test "x$want_openssl" = "xyes"; then
116     PKG_CHECK_MODULES([SSL], [openssl], [
117         AC_DEFINE(USE_OPENSSL, 1, [Use OpenSSL])
118         requirements_ecore_con="$requirements_ecore_con openssl"
119         # no need to add it to req_ecore_ipc, since they
120         # depends on ecore_con anyway.
121         have_openssl="yes"
122     ], [
123         have_openssl="no"
124     ])
125 fi
126
127 dnl curl
128 want_curl="yes"
129 have_curl="no"
130 AC_ARG_ENABLE(curl,
131   AC_HELP_STRING(
132     [--disable-curl],
133     [disable curl support]
134   ),
135   [ want_curl=$enableval ]
136 )
137
138 if test "x$want_curl" = "xyes"; then
139   PKG_CHECK_MODULES(CURL, libcurl,
140     [
141       AC_DEFINE(HAVE_CURL, 1, [ Downloading with CURL ])
142       requirements_ecore_con="$requirements_ecore_con libcurl"
143       have_curl="yes"
144     ],
145     [ have_curl="no" ]
146   )
147 fi
148
149 dnl abstract sockets
150 want_abstract_sockets="yes"
151 AC_ARG_ENABLE(abstract-sockets,
152   AC_HELP_STRING(
153     [--disable-abstract-sockets],
154     [disable abstract sockets.]
155   ),
156   [ want_abstract_sockets=$enableval ]
157 )
158 if test "x$want_abstract_sockets" = "xyes"; then
159   AC_DEFINE(HAVE_ABSTRACT_SOCKETS, 1, [Have abstract sockets namespace])
160 fi
161
162 dnl ecore_job
163 ECORE_CHECK_MODULE([Job], [yes])
164
165 dnl ecore_con
166 ECORE_CHECK_MODULE([Con], [yes])
167
168 dnl ecore_ipc
169 ECORE_CHECK_MODULE([Ipc], [yes], [$have_ecore_con])
170
171 dnl ecore_config
172 PKG_CHECK_MODULES(EET, [eet >= 1.0.0],
173   [ have_eet="yes" ],
174   [ have_eet="no" ]
175 )
176 ecore_config_deps="no"
177 if test "x$have_eet" = "xyes" -a "x$have_ecore_ipc" = "xyes" ; then
178   ecore_config_deps="yes"
179 fi
180 ECORE_CHECK_MODULE([Config], [yes], [$ecore_config_deps],
181   [requirements_ecore_config="$requirements_ecore_config ecore-ipc eet"])
182
183 dnl ecore_txt
184 iconv_cflags=""
185 iconv_libs=""
186 have_iconv="no"
187 AC_ARG_WITH(iconv-link,
188   AC_HELP_STRING([--with-iconv-link=ICONV_LINK], [explicitly specify an iconv link option]),
189   [
190     iconv_libs=$withval
191     have_iconv="yes"
192   ]
193 )
194
195 if test "x$have_iconv" = "xno" ; then
196   AC_CHECK_LIB(c, iconv,
197     [ have_iconv="yes" ]
198   )
199
200   if test "x$have_iconv" != "xyes"; then
201     AC_CHECK_LIB(iconv, iconv,
202       [
203        iconv_libs="-liconv"
204        have_iconv="yes"
205       ]
206     )
207   fi
208 fi
209 AC_MSG_CHECKING(for explicit iconv link options)
210 AC_MSG_RESULT($iconv_libs)
211
212 AC_SUBST(iconv_cflags)
213 AC_SUBST(iconv_libs)
214
215 ECORE_CHECK_MODULE([Txt], [yes], [$have_iconv],
216   [ecore_txt_libs="$ecore_txt_libs $iconv_libs"])
217
218 dnl ecore_evas
219 PKG_CHECK_MODULES(EVAS, [evas >= 0.9.9],
220   [ have_evas="yes" ],
221   [ have_evas="no" ]
222 )
223
224 ECORE_CHECK_MODULE([Evas], [yes], [$have_evas])
225
226 #######################################
227 ## Simple X11 build/link
228
229 AC_ARG_ENABLE(simple-x11,
230   AC_HELP_STRING([--enable-simple-x11], [enable simple x11 linking]),
231   [ want_evas_simple_x11=$enableval ]
232 )
233
234 have_x="no"
235 have_ecore_x="no"
236 have_ecore_x_xlib="no"
237 have_ecore_x_xcb="no"
238
239 x_dir="";
240 x_includes="";
241 x_cflags="";
242 x_libs="";
243
244 dnl ecore_x{cb}
245
246 AC_ARG_ENABLE(ecore-x-xcb,
247   AC_HELP_STRING(
248     [--enable-ecore-x-xcb],
249     [enable the ecore_x module with XCB backend. [[default=disabled]]]),
250   [ want_ecore_x_xcb=$enableval ],
251   [ want_ecore_x_xcb="no" ])
252
253 AC_MSG_CHECKING(whether ecore_x with XCB backend is to be built)
254 AC_MSG_RESULT($want_ecore_x_xcb)
255
256 if test "x$want_ecore_x_xcb" = "xyes" ; then
257   PKG_CHECK_MODULES(XCB, xcb xcb-icccm xcb-image xcb-keysyms,
258     [ have_ecore_x_xcb="yes" ],
259     [ have_ecore_x_xcb="no" ])
260
261   if test "x$have_ecore_x_xcb" = "xyes" ; then
262     PKG_CHECK_MODULES(XCB_COMPOSITE, xcb-composite,
263       [ have_ecore_x_xcb_composite="yes"
264         AC_DEFINE(ECORE_XCB_COMPOSITE, 1, [Build support for XCB composite]) ],
265       [ have_ecore_x_xcb_composite="no" ])
266
267     PKG_CHECK_MODULES(XCB_DAMAGE, xcb-damage,
268       [ have_ecore_x_xcb_damage="yes"
269         AC_DEFINE(ECORE_XCB_DAMAGE, 1, [Build support for XCB damage]) ],
270       [ have_ecore_x_xcb_damage="no" ])
271
272     PKG_CHECK_MODULES(XCB_DPMS, xcb-dpms,
273       [ have_ecore_x_xcb_dpms="yes"
274         AC_DEFINE(ECORE_XCB_DPMS, 1, [Build support for XCB dpms]) ],
275       [ have_ecore_x_xcb_dpms="no" ])
276
277     PKG_CHECK_MODULES(XCB_RANDR, xcb-randr,
278       [ have_ecore_x_xcb_randr="yes"
279         AC_DEFINE(ECORE_XCB_RANDR, 1, [Build support for XCB randr]) ],
280       [ have_ecore_x_xcb_randr="no" ])
281
282     PKG_CHECK_MODULES(XCB_RENDER, xcb-render,
283       [ have_ecore_x_xcb_render="yes"
284         AC_DEFINE(ECORE_XCB_RENDER, 1, [Build support for XCB render]) ],
285       [ have_ecore_x_xcb_render="no" ])
286
287     PKG_CHECK_MODULES(XCB_SCREENSAVER, xcb-screensaver,
288       [ have_ecore_x_xcb_screensaver="yes"
289         AC_DEFINE(ECORE_XCB_SCREENSAVER, 1, [Build support for XCB screensaver]) ],
290       [ have_ecore_x_xcb_screensaver="no" ])
291
292     PKG_CHECK_MODULES(XCB_SHAPE, xcb-shape,
293       [ have_ecore_x_xcb_shape="yes"
294         AC_DEFINE(ECORE_XCB_SHAPE, 1, [Build support for XCB shape]) ],
295       [ have_ecore_x_xcb_shape="no" ])
296
297     PKG_CHECK_MODULES(XCB_SYNC, xcb-sync,
298       [ have_ecore_x_xcb_sync="yes"
299         AC_DEFINE(ECORE_XCB_SYNC, 1, [Build support for XCB sync]) ],
300       [ have_ecore_x_xcb_sync="no" ])
301
302     PKG_CHECK_MODULES(XCB_XFIXES, xcb-xfixes,
303       [ have_ecore_x_xcb_xfixes="yes"
304         AC_DEFINE(ECORE_XCB_FIXES, 1, [Build support for XCB xfixes]) ],
305       [ have_ecore_x_xcb_xfixes="no" ])
306
307     PKG_CHECK_MODULES(XCB_XINERAMA, xcb-xinerama,
308       [ have_ecore_x_xcb_xinerama="yes"
309         AC_DEFINE(ECORE_XCB_XINERAMA, 1, [Build support for XCB xinerama]) ],
310       [ have_ecore_x_xcb_xinerama="no" ])
311
312     PKG_CHECK_MODULES(XCB_XPRINT, xcb-xprint,
313       [ have_ecore_x_xcb_xprint="yes"
314         AC_DEFINE(ECORE_XCB_XPRINT, 1, [Build support for XCB xprint]) ],
315       [ have_ecore_x_xcb_xprint="no" ])
316
317     PKG_CHECK_MODULES(XCB_XTEST, xcb-xtest,
318       [ have_ecore_x_xcb_xtest="yes"
319         AC_DEFINE(ECORE_XCB_XTEST, 1, [Build support for XCB xtest]) ],
320       [ have_ecore_x_xcb_xtest="no" ])
321
322     AC_DEFINE(HAVE_ECORE_X_XCB, 1, [Defined to 1 if XCB is enabled.])
323
324     x_cflags=$XCB_CFLAGS
325     x_libs=$XCB_LIBS
326     have_x="yes"
327
328     have_ecore_x_xcb_define="-DHAVE_ECORE_X_XCB"
329     AC_SUBST(have_ecore_x_xcb_define)
330   fi
331 fi
332
333 if ! test "x$have_ecore_x_xcb" = "xyes" ; then
334   AC_PATH_XTRA
335   AC_CHECK_HEADER(X11/X.h,
336     [
337      if test "x$want_evas_simple_x11" = "xyes"; then
338        x_libs="${x_libs} -lX11 -lXext"
339      else
340        x_dir=${x_dir:-/usr/X11R6}
341        x_cflags=${x_cflags:--I${x_includes:-$x_dir/include}}
342        x_libs="${x_libs:--L${x_libraries:-$x_dir/lib}} -lX11 -lXext"
343      fi
344      have_ecore_x_xlib="yes"
345     ]
346   )
347
348   if test "x$have_ecore_x_xlib" = "xyes"; then
349     Xcursor_libs=""
350     Xcursor_cflags=""
351     use_Xcursor="no"
352     PCFLAGS=$CFLAGS
353     CFLAGS="$x_cflags $x_includes"
354     AC_CHECK_HEADER(X11/Xcursor/Xcursor.h,
355       [
356         AC_CHECK_LIB(Xcursor, XcursorImageLoadCursor,
357           [
358             AC_DEFINE(ECORE_XCURSOR, 1, [Build support for Xcursor])
359             Xcursor_cflags=""
360             Xcursor_libs="-lXcursor"
361             use_Xcursor="yes"
362           ], [
363             Xcursor_cflags=""
364             Xcursor_libs=""
365             use_Xcursor="no"
366           ], [
367             $x_libs -lXrender
368           ]
369         )
370       ], [
371         Xcursor_cflags=""
372         Xcursor_libs=""
373         use_Xcursor="no"
374       ], [
375         #include <X11/Xlib.h>
376       ]
377     )
378     CFLAGS=$PCFLAGS
379
380     AC_SUBST(Xcursor_cflags)
381     AC_SUBST(Xcursor_libs)
382
383     ECORE_CHECK_X_EXTENSION([Xcomposite], [Xcomposite.h], [Xcomposite], [XCompositeQueryExtension])
384     ECORE_CHECK_X_EXTENSION([Xdamage], [Xdamage.h], [Xdamage], [XDamageSubtract])
385     ECORE_CHECK_X_EXTENSION([Xdpms], [dpms.h], [Xdpms], [DPMSQueryExtension])
386     if test "x$use_xdpms" = "xno" ; then
387       ECORE_CHECK_X_EXTENSION([Xdpms], [dpms.h], [Xext], [DPMSQueryExtension])
388     fi
389     ECORE_CHECK_X_EXTENSION([Xfixes], [Xfixes.h], [Xfixes], [XFixesExpandRegion])
390     ECORE_CHECK_X_EXTENSION([Xinerama], [Xinerama.h], [Xinerama], [XineramaQueryScreens])
391     ECORE_CHECK_X_EXTENSION([Xprint], [Print.h], [Xp], [XpQueryScreens])
392     ECORE_CHECK_X_EXTENSION([Xrandr], [Xrandr.h], [Xrandr], [XRRSizes])
393     ECORE_CHECK_X_EXTENSION([Xrender], [Xrender.h], [Xrender], [XRenderFindVisualFormat])
394     ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent])
395     ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], [XScreenSaverSelectInput])
396
397     AC_DEFINE(HAVE_ECORE_X_XLIB, 1, [Defined to 1 if Xlib is enabled.])
398     have_x="yes"
399
400     have_ecore_x_xlib="yes"
401   fi
402 fi
403
404 AC_SUBST(x_cflags)
405 AC_SUBST(x_includes)
406 AC_SUBST(x_libs)
407
408 ECORE_CHECK_MODULE([X], [yes], [$have_x],
409   [ecore_x_libs="$ecore_x_libs $x_libs"])
410
411 dnl ecore_evas_x11
412 have_ecore_evas_software_x11="no"
413 have_ecore_evas_xrender_x11="no";
414 have_ecore_evas_opengl_x11="no";
415 have_ecore_evas_software_xcb="no"
416 have_ecore_evas_xrender_xcb="no";
417 have_ecore_evas_software_16_x11="no";
418 if test "x$have_ecore_x" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
419
420   dnl ecore_evas_x Xlib
421   if test "x$have_ecore_x_xlib" = "xyes"; then
422     want_ecore_evas_software_x11="yes"
423     dnl disabling this will make things go haywire
424     #AC_ARG_ENABLE(ecore-evas-x11,
425     #  AC_HELP_STRING(
426     #    [--enable-ecore-evas-x11],
427     #    [enable X11 support in the ecore_evas module.]
428     #  ),
429     #  [ want_ecore_evas_x11=$enableval ]
430     #)
431     AC_MSG_CHECKING(whether ecore_evas Software Xlib support is to be built)
432     AC_MSG_RESULT($want_ecore_evas_software_x11)
433
434     if test "x$want_ecore_evas_software_x11" = "xyes"; then
435       PKG_CHECK_MODULES(EVAS_SOFTWARE_X11, evas-software-x11, [
436           AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_X11, 1, [Support for Software Xlib Engine in Ecore_Evas])
437           have_ecore_evas_software_x11="yes";
438       ], [
439           have_ecore_evas_software_x11="no";
440       ])
441     fi
442
443     dnl ecore_evas_opengl_x11
444     want_ecore_evas_opengl_x11=yes
445     AC_ARG_ENABLE(ecore-evas-opengl-x11,
446       AC_HELP_STRING(
447         [--enable-ecore-evas-opengl-x11],
448         [enable OpenGL Xlib support in the ecore_evas module.]
449       ),
450       [ want_ecore_evas_opengl_x11=$enableval ]
451     )
452     AC_MSG_CHECKING(whether ecore_evas OpenGL Xlib support is to be built)
453     AC_MSG_RESULT($want_ecore_evas_opengl_x11)
454
455     if test "x$want_ecore_evas_opengl_x11" = "xyes"; then
456       PKG_CHECK_MODULES(EVAS_OPENGL_X11, evas-opengl-x11, [
457           AC_DEFINE(BUILD_ECORE_EVAS_OPENGL_X11, 1, [Support for OpenGL Xlib Engine in Ecore_Evas])
458           have_ecore_evas_opengl_x11="yes";
459       ], [
460           have_ecore_evas_opengl_x11="no"
461       ])
462     fi
463
464     dnl ecore_evas_xrender_x11
465     want_ecore_evas_xrender_x11="yes"
466     AC_ARG_ENABLE(ecore-evas-xrender-x11,
467       AC_HELP_STRING(
468         [--disable-ecore-evas-xrender-x11],
469         [disable XRender Xlib support in the ecore_evas module. [[default=enabled]]]
470       ),
471       [ want_ecore_evas_xrender_x11=$enableval ]
472     )
473
474     AC_MSG_CHECKING(whether ecore_evas XRender Xlib support is to be built)
475     AC_MSG_RESULT($want_ecore_evas_xrender_x11)
476
477     if test "x$want_ecore_evas_xrender_x11" = "xyes"; then
478       PKG_CHECK_MODULES(EVAS_XRENDER_X11, evas-xrender-x11, [
479           AC_DEFINE(BUILD_ECORE_EVAS_XRENDER_X11, 1, [Support for XRender Xlib Engine in Ecore_Evas])
480           have_ecore_evas_xrender_x11="yes"
481       ], [
482           have_ecore_evas_xrender_x11="no"
483       ])
484     fi
485
486     dnl ecore_evas_software_16_x11
487     want_ecore_evas_software_16_x11=no
488     AC_ARG_ENABLE(ecore-evas-software-16-x11,
489       AC_HELP_STRING(
490         [--enable-ecore-evas-software-16-x11],
491         [enable 16bpp optimized mode support in the ecore_evas module. [[default=disabled]]]
492       ),
493       [ want_ecore_evas_software_16_x11=$enableval ]
494     )
495
496     AC_MSG_CHECKING(whether ecore_evas x11-16 support is to be built)
497     AC_MSG_RESULT($want_ecore_evas_software_16_x11)
498
499     if test "x$want_ecore_evas_software_16_x11" = "xyes"; then
500       PKG_CHECK_MODULES(EVAS_SOFTWARE_16_X11, evas-software-16-x11,
501         [
502           AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_16_X11, 1, [Support for X11 16bpp Engine in Ecore_Evas])
503           have_ecore_evas_software_16_x11="yes";
504         ]
505       )
506     fi
507   else
508     want_ecore_evas_software_xcb="yes"
509     ECORE_EVAS_CHECK_MODULE([software-xcb],
510       [$want_ecore_evas_software_xcb],
511       [Software XCB],
512       $have_ecore_x_xcb)
513
514     want_ecore_evas_xrender_xcb="auto"
515     ECORE_EVAS_CHECK_MODULE([xrender-xcb],
516       [$want_ecore_evas_xrender_xcb],
517       [XRender XCB],
518       $have_ecore_x_xcb)
519   fi
520
521   if test "x$have_ecore_evas_software_x11" = "xyes" -o \
522           "x$have_ecore_evas_opengl_x11" = "yes" -o \
523           "x$have_ecore_evas_xrender_x11" = "yes" -o \
524           "x$have_ecore_evas_software_16_x11" = "yes" -o \
525           "x$have_ecore_evas_software_xcb" = "xyes" -o \
526           "x$have_ecore_evas_xrender_xcb" = "yes"; then
527     AC_DEFINE(BUILD_ECORE_EVAS_X11, 1, [Support for X Window Engines in Ecore_Evas])
528     requirements_ecore_evas="$requirements_ecore_evas ecore-x"
529   fi
530
531 fi
532
533 dnl ecore_win32
534
535 ECORE_CHECK_MODULE([Win32], [no], [yes],
536   [ecore_win32_libs="-lgdi32"])
537 AC_SUBST(ecore_win32_libs)
538
539 want_ecore_evas_software_ddraw="yes"
540 ECORE_EVAS_CHECK_MODULE([software-ddraw],
541   [$want_ecore_evas_software_ddraw],
542   [Software DirectDraw],
543   $have_ecore_win32)
544
545 want_ecore_evas_direct3d="yes"
546 ECORE_EVAS_CHECK_MODULE([direct3d],
547   [$want_ecore_evas_direct3d],
548   [Direct3d],
549   $have_ecore_win32)
550
551 want_ecore_evas_opengl_glew="yes"
552 ECORE_EVAS_CHECK_MODULE([opengl-glew],
553   [$want_ecore_evas_opengl_glew],
554   [Glew OpenGL],
555   $have_ecore_win32)
556
557 want_ecore_evas_software_16_ddraw="yes"
558 ECORE_EVAS_CHECK_MODULE([software-16-ddraw],
559   [$want_ecore_evas_software_16_ddraw],
560   [16 bpp Software DirectDraw],
561   $have_ecore_win32)
562
563 if test "x$have_ecore_evas_software_ddraw" = "xyes" -o \
564         "x$have_ecore_evas_direct3d" = "yes" -o \
565         "x$have_ecore_evas_opengl_glew" = "yes" -o \
566         "x$have_ecore_evas_software_16_ddraw" = "yes"; then
567   AC_DEFINE(BUILD_ECORE_EVAS_WIN32, 1, [Support for Win32 Engine in Ecore_Evas])
568   requirements_ecore_evas="$requirements_ecore_evas ecore-win32"
569 fi
570
571 dnl ecore_wince
572
573 ECORE_CHECK_MODULE([WinCE], [no])
574
575 want_ecore_evas_software_16_wince="yes"
576 ECORE_EVAS_CHECK_MODULE([software-16-wince],
577   [$want_ecore_evas_software_16_wince],
578   [16 bpp Software Windows CE],
579   $have_ecore_wince)
580
581 if test "x$have_ecore_evas_software_16_wince" = "xyes"; then
582   requirements_ecore_evas="$requirements_ecore_evas ecore-wince"
583 fi
584
585 dnl ecore_dfb
586 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.16,
587   [ have_directfb="yes" ],
588   [ have_directfb="no" ]
589 )
590
591 ECORE_CHECK_MODULE([DirectFB], [no], [$have_directfb],
592   [requirements_ecore_directfb="directfb"])
593
594 dnl ecore_evas_dfb
595 have_ecore_evas_dfb="no"
596 if test "x$have_ecore_directfb" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
597   want_ecore_evas_dfb="yes"
598   AC_MSG_CHECKING(whether ecore_evas DirectFB support is to be built)
599   AC_ARG_ENABLE(ecore-evas-dfb,
600     AC_HELP_STRING([--disable-ecore-evas-dfb], [disable DirectFB in the ecore_evas module]),
601     [ want_ecore_evas_dfb=$enableval ]
602   )
603   AC_MSG_RESULT($want_ecore_evas_dfb)
604
605   if test "x$want_ecore_evas_dfb" = "xyes" -a "x$have_ecore_directfb" = "xyes" ; then
606     save_CFLAGS="$CFLAGS"
607     CFLAGS="$CFLAGS $DIRECTFB_CFLAGS"
608     PKG_CHECK_MODULES(EVAS_DIRECTFB, evas-directfb,
609       [
610         AC_DEFINE(BUILD_ECORE_EVAS_DIRECTFB, 1, [Support for DirectFB in Ecore_Evas])
611         have_ecore_evas_dfb="yes"
612         requirements_ecore_evas="$requirements_ecore_evas ecore-directfb"
613       ]
614     )
615     CFLAGS="$save_CFLAGS"
616   fi
617 fi
618
619 dnl ecore_fb
620 have_fb="no"
621 AC_CHECK_HEADER(linux/fb.h,
622   [ AC_CHECK_HEADER(linux/input.h, [ have_fb="yes" ]) ]
623 )
624 ECORE_CHECK_MODULE([FB], [no], [$have_fb])
625
626 tslib_libs=""
627 if test "x$have_ecore_fb" = "xyes" ; then
628 AC_CHECK_HEADER(tslib.h,
629   [
630    AC_CHECK_LIB(ts, ts_open, tslib_libs="-lts", tslib_libs="-ltslib")
631    AC_DEFINE(HAVE_TSLIB, 1, [Build Ecore_FB Touchscreen Code])
632   ]
633 )
634 fi
635 AC_SUBST(tslib_libs)
636
637 dnl ecore_evas_fb
638 have_ecore_evas_fb="no";
639 if test "x$have_ecore_fb" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
640   want_ecore_evas_fb="yes";
641   AC_MSG_CHECKING(whether ecore_evas fb support is to be built)
642   AC_ARG_ENABLE(ecore-evas-fb,
643     AC_HELP_STRING([--disable-ecore-evas-fb], [disable fb in the ecore_evas module]),
644     [ want_ecore_evas_fb=$enableval ]
645   )
646   AC_MSG_RESULT($want_ecore_evas_fb)
647
648   if test "x$want_ecore_evas_fb" = "xyes"; then
649     PKG_CHECK_MODULES(EVAS_FB, evas-fb,
650       [
651         AC_DEFINE(BUILD_ECORE_EVAS_FB, 1, [Support for Linux FB in Ecore_Evas])
652         have_ecore_evas_fb="yes"
653         requirements_ecore_evas="$requirements_ecore_evas ecore-fb"
654       ]
655     )
656   fi
657 fi
658
659 dnl ecore_sdl
660 AC_ARG_WITH(sdl-config, AC_HELP_STRING([--with-sdl-config=PATH], [use sdl-config specified]), [
661     SDL_CONFIG=$withval;
662     echo "using "$SDL_CONFIG" for sdl-config";
663 ], [
664     if test -z "$SDL_CONFIG"; then
665         AC_PATH_PROG(SDL_CONFIG, "sdl-config", "", $PATH)
666     fi
667 ])
668 if test -z "$SDL_CONFIG" ; then SDL_CONFIG="sdl-config"; fi
669
670 sdl_cflags="";
671 sdl_libs="";
672 have_sdl="no"
673 AC_CHECK_HEADER(SDL/SDL.h, [ have_sdl="yes" ], [ have_sdl="no" ])
674
675 ECORE_CHECK_MODULE([SDL], [no], [$have_sdl])
676
677 dnl ecore_evas_sdl
678 have_ecore_evas_sdl="no";
679 if test "x$have_ecore_sdl" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
680     want_ecore_evas_sdl="yes";
681     AC_MSG_CHECKING([whether ecore_evas SDL support is to be built])
682     AC_ARG_ENABLE(ecore-evas-sdl,
683         AC_HELP_STRING([--disable-ecore-evas-sdl], [disable SDL in the ecore_evas module]),
684         [ want_ecore_evas_sdl=$enableval ]
685     )
686     AC_MSG_RESULT($want_ecore_evas_sdl)
687
688     if test "x$want_ecore_evas_sdl" = "xyes"; then
689         save_CFLAGS=$CFLAGS
690         SDL_CFLAGS=`$SDL_CONFIG --cflags`
691         SDL_LIBS=`$SDL_CONFIG --libs`
692         CFLAGS="$CFLAGS $SDL_CFLAGS"
693         AC_SUBST(SDL_CFLAGS)
694         AC_SUBST(SDL_LIBS)
695
696         PKG_CHECK_MODULES(EVAS_SOFTWARE_SDL, evas-software-sdl, [
697             AC_DEFINE(BUILD_ECORE_EVAS_SDL, 1, [Support for SDL in Ecore_Evas])
698             have_ecore_evas_sdl="yes"
699             requirements_ecore_evas="$requirements_ecore_evas ecore-sdl"
700             PKG_CHECK_MODULES(SDL, sdl >= 1.3.0, [
701                 AC_DEFINE(BUILD_ECORE_EVAS_SDL_130, 1, [Support for SVN SDL])
702             ], [
703                 dummy="no"
704             ])
705         ], [
706             have_ecore_evas_sdl="no"
707         ])
708     CFLAGS=$save_CFLAGS
709   fi
710 fi
711
712 dnl ecore_evas_buffer
713 want_ecore_evas_buffer="yes";
714 have_ecore_evas_buffer="no";
715 AC_MSG_CHECKING(whether ecore_evas buffer support is to be built)
716 AC_ARG_ENABLE(ecore-evas-buffer,
717   AC_HELP_STRING([--disable-ecore-evas-buffer], [disable buffer in the ecore_evas module]),
718   [ want_ecore_evas_buffer=$enableval ]
719 )
720 AC_MSG_RESULT($want_ecore_evas_buffer)
721
722 if test "x$want_ecore_evas_buffer" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
723   PKG_CHECK_MODULES(EVAS_SOFTWARE_BUFFER, evas-software-buffer,
724     [
725       AC_DEFINE(BUILD_ECORE_EVAS_BUFFER, 1, [Support for Buffers in Ecore_Evas])
726       have_ecore_evas_buffer="yes"
727     ], [
728       have_ecore_evas_buffer="no"
729   ])
730 fi
731
732 dnl ecore_file
733 ECORE_CHECK_MODULE([File], [yes])
734 have_inotify="no"
735 have_poll="no"
736 if test "x$have_ecore_file" = "xyes"; then
737
738   dnl We need to check if the right inotify version is accessible
739   want_inotify="yes"
740   AC_MSG_CHECKING(whether inotify is to be used for filemonitoring)
741   AC_ARG_ENABLE(inotify,
742     AC_HELP_STRING([--disable-inotify], [disable inotify in the ecore_file module]),
743     [ want_inotify=$enableval ]
744   )
745   AC_MSG_RESULT($want_inotify)
746
747   dnl It's hard to find a good test on how to check the correct
748   dnl inotify version. They changed the headers a lot.
749   dnl in kernel 2.6.13 __NR_inotify_init was added to the defined syscalls
750   dnl in asm/unistd.h and IN_MOVE_SELF was added to linux/inotify.h
751   dnl so with this check you need a very new kernel and kernel-headers!
752   if test "x$want_inotify" = "xyes"; then
753     AC_CHECK_LIB(c, inotify_init, [
754         AC_DEFINE(HAVE_INOTIFY, 1, [ File monitoring with Inotify ])
755         AC_DEFINE(HAVE_SYS_INOTIFY, 1, [ File monitoring with Inotify - sys/inotify.h ])
756         have_inotify="yes"
757       ],
758       [
759         AC_TRY_COMPILE(
760           [
761             #include <asm/unistd.h>
762             #include <linux/inotify.h>
763           ],
764           [ int a = __NR_inotify_init; int b = IN_MOVE_SELF; ],
765           [
766             AC_DEFINE(HAVE_INOTIFY, 1, [ File monitoring with Inotify ])
767             have_inotify="yes"
768           ], [
769             have_inotify="no"
770           ]
771         )
772       ]
773     )
774   fi
775
776   want_poll="yes"
777   AC_MSG_CHECKING(whether polling is to be used for filemonitoring)
778   AC_ARG_ENABLE(poll,
779     AC_HELP_STRING([--disable-poll], [disable poll in the ecore_file module]),
780     [ want_poll=$enableval ]
781   )
782   AC_MSG_RESULT($want_poll)
783
784   if test "x$want_poll" = "xyes"; then
785     AC_DEFINE(HAVE_POLL, 1, [ File monitoring with polling ])
786     have_poll="yes"
787   fi
788   requirements_ecore_file="$requirements_ecore_file $requirements_ecore_con"
789 fi
790
791 dnl ecore_desktop
792 ECORE_CHECK_MODULE([Desktop], [no], [$have_ecore_file],
793   [requirements_ecore_desktop="ecore-file"])
794
795 dnl ecore_imf
796 ECORE_CHECK_MODULE([IMF], [yes])
797
798 try_ecore_imf_evas=no
799 if test "x$have_ecore_imf" = "xyes" -a "x$have_evas" = "xyes"; then
800   try_ecore_imf_evas=yes
801 fi
802
803 ECORE_CHECK_MODULE([IMF_EVAS], [yes], [$try_ecore_imf_evas])
804
805 dnl requirements
806 AC_SUBST(requirements_ecore_con)
807 AC_SUBST(requirements_ecore_config)
808 AC_SUBST(requirements_ecore_desktop)
809 AC_SUBST(requirements_ecore_directfb)
810 AC_SUBST(requirements_ecore_evas)
811 AC_SUBST(requirements_ecore_fb)
812 AC_SUBST(requirements_ecore_file)
813 AC_SUBST(requirements_ecore_ipc)
814 AC_SUBST(requirements_ecore_job)
815 AC_SUBST(requirements_ecore_txt)
816 AC_SUBST(requirements_ecore_x)
817 AC_SUBST(requirements_ecore_sdl)
818
819 # set up conditionals
820 AM_CONDITIONAL(BUILD_ECORE_X, test $have_ecore_x = yes)
821 AM_CONDITIONAL(BUILD_ECORE_X_XLIB, test $have_ecore_x_xlib = yes)
822 AM_CONDITIONAL(BUILD_ECORE_X_XCB, test $have_ecore_x_xcb = yes)
823
824 AC_OUTPUT([
825 Makefile
826 ecore-con.pc
827 ecore-config.pc
828 ecore-desktop.pc
829 ecore-directfb.pc
830 ecore-evas.pc
831 ecore-fb.pc
832 ecore-file.pc
833 ecore-imf.pc
834 ecore-imf-evas.pc
835 ecore-ipc.pc
836 ecore-job.pc
837 ecore-txt.pc
838 ecore-x.pc
839 ecore-win32.pc
840 ecore-sdl.pc
841 ecore-wince.pc
842 ecore.pc
843 src/Makefile
844 src/bin/Makefile
845 src/lib/Makefile
846 src/lib/ecore/Makefile
847 src/lib/ecore_job/Makefile
848 src/lib/ecore_x/Makefile
849 src/lib/ecore_x/xlib/Makefile
850 src/lib/ecore_x/xcb/Makefile
851 src/lib/ecore_fb/Makefile
852 src/lib/ecore_sdl/Makefile
853 src/lib/ecore_evas/Makefile
854 src/lib/ecore_con/Makefile
855 src/lib/ecore_imf/Makefile
856 src/lib/ecore_imf_evas/Makefile
857 src/lib/ecore_ipc/Makefile
858 src/lib/ecore_txt/Makefile
859 src/lib/ecore_config/Makefile
860 src/lib/ecore_file/Makefile
861 src/lib/ecore_desktop/Makefile
862 src/lib/ecore_directfb/Makefile
863 src/lib/ecore_win32/Makefile
864 src/lib/ecore_wince/Makefile
865 README
866 ecore.spec
867 ])
868
869 echo
870 echo "$PACKAGE $VERSION"
871 echo
872 echo "Optional Modules:"
873 echo
874 echo " Core:"
875 echo
876 echo "  Ecore_Job....................: $have_ecore_job"
877 echo "  Ecore_Txt....................: $have_ecore_txt"
878 echo "  Ecore_File...................: $have_ecore_file"
879 if test "x$have_ecore_file" = "xyes" ; then
880   echo "    Inotify....................: $have_inotify"
881   echo "    Poll.......................: $have_poll"
882   echo "    CURL.......................: $have_curl"
883 fi
884 echo "  Ecore_Desktop................: $have_ecore_desktop"
885 echo "  Ecore_Con....................: $have_ecore_con"
886 if test "x$have_ecore_con" = "xyes" ; then
887   echo "    OpenSSL....................: $have_openssl"
888   echo "    CURL.......................: $have_curl"
889 fi
890 echo "  Ecore_Ipc....................: $have_ecore_ipc"
891 if test "x$have_ecore_con" = "xyes" ; then
892   echo "    OpenSSL....................: $have_openssl"
893 fi
894 echo "  Ecore_Config.................: $have_ecore_config"
895 echo "  Ecore_IMF....................: $have_ecore_imf"
896 echo "  Ecore_IMF_Evas...............: $have_ecore_imf_evas"
897
898 echo
899 echo " Graphic systems:"
900 echo
901
902 if test "x$have_ecore_x" = "xyes" ; then
903   if test "x$have_ecore_x_xcb" = "xyes" ; then
904     echo "  Ecore_X (XCB backend)........: $have_ecore_x_xcb"
905     echo "    Xprint.....................: $have_ecore_x_xcb_xprint"
906     echo "    Xinerama...................: $have_ecore_x_xcb_xinerama"
907     echo "    Xrandr.....................: $have_ecore_x_xcb_randr"
908     echo "    Xscreensaver...............: $have_ecore_x_xcb_screensaver"
909     echo "    Xshape.....................: $have_ecore_x_xcb_shape"
910     echo "    Xsync......................: $have_ecore_x_xcb_sync"
911     echo "    Xrender....................: $have_ecore_x_xcb_render"
912     echo "    Xcomposite.................: $have_ecore_x_xcb_composite"
913     echo "    Xfixes.....................: $have_ecore_x_xcb_xfixes"
914     echo "    Xdamage....................: $have_ecore_x_xcb_damage"
915     echo "    Xdpms......................: $have_ecore_x_xcb_dpms"
916     echo "    Xtest......................: $have_ecore_x_xcb_xtest"
917   else
918     echo "  Ecore_X (Xlib backend).......: $have_ecore_x"
919     echo "    Xcursor....................: $use_Xcursor"
920     echo "    Xprint.....................: $use_xprint"
921     echo "    Xinerama...................: $use_xinerama"
922     echo "    Xrandr.....................: $use_xrandr"
923     echo "    Xscreensaver...............: $use_xss"
924     echo "    Xrender....................: $use_xrender"
925     echo "    Xcomposite.................: $use_xcomposite"
926     echo "    Xfixes.....................: $use_xfixes"
927     echo "    Xdamage....................: $use_xdamage"
928     echo "    Xdpms......................: $use_xdpms"
929     echo "    Xtest......................: $use_xtest"
930   fi
931 else
932   echo "  Ecore_X......................: $have_ecore_x"
933 fi
934 echo "  Ecore_Win32..................: $have_ecore_win32"
935 echo "  Ecore_SDL....................: $have_ecore_sdl"
936 echo "  Ecore_FB.....................: $have_ecore_fb"
937 echo "  Ecore_DFB....................: $have_ecore_directfb"
938 echo "  Ecore_WinCE..................: $have_ecore_wince"
939
940 echo
941 echo " Ecore Evas:"
942 echo
943
944 echo "  Ecore_Evas...................: $have_ecore_evas"
945 if test "x$have_ecore_evas" = "xyes" ; then
946   echo "    Software Memory Buffer.....: $have_ecore_evas_buffer"
947   echo "    Software X11...............: $have_ecore_evas_software_x11"
948   echo "    XRender X11................: $have_ecore_evas_xrender_x11"
949   echo "    OpenGL X11.................: $have_ecore_evas_opengl_x11"
950   echo "    Software XCB...............: $have_ecore_evas_software_xcb"
951   echo "    XRender XCB................: $have_ecore_evas_xrender_xcb"
952   echo "    Software DirectDraw........: $have_ecore_evas_software_ddraw"
953   echo "    Direct3D...................: $have_ecore_evas_direct3d"
954   echo "    OpenGL Glew................: $have_ecore_evas_opengl_glew"
955   echo "    Software SDL...............: $have_ecore_evas_sdl"
956   echo "    DirectFB...................: $have_ecore_evas_dfb"
957   echo "    Software Framebuffer.......: $have_ecore_evas_fb"
958   echo "    Software 16bit X11.........: $have_ecore_evas_software_16_x11"
959   echo "    Software 16bit DirectDraw..: $have_ecore_evas_software_16_ddraw"
960   echo "    Software 16bit WinCE.......: $have_ecore_evas_software_16_wince"
961 fi
962 echo
963 echo "Now type 'make' ('gmake' on some systems) to compile $PACKAGE."
964 echo