From: Jihoon Kim <imfine98@gmail.com>
[framework/uifw/ecore.git] / configure.ac
1 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3 m4_define([v_maj], [1])
4 m4_define([v_min], [1])
5 m4_define([v_mic], [99])
6 m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n' | sed 's/Unversioneddirectory/0/']))
7 m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
8 ##--   When released, remove the dnl on the below line
9 dnl m4_undefine([v_rev])
10 ##--   When doing snapshots - change soname. remove dnl on below line
11 dnl m4_define([relname], [ver-pre-svn-07])
12 dnl m4_define([v_rel], [-release relname])
13 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
14 m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], [m4_define([v_ver], [v_maj.v_min.v_mic])])
15 m4_define([lt_cur], m4_eval(v_maj + v_min))
16 m4_define([lt_rev], v_mic)
17 m4_define([lt_age], v_min)
18 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
19 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
20
21 AC_INIT([ecore], [v_ver], [enlightenment-devel@lists.sourceforge.net])
22 AC_PREREQ([2.52])
23 AC_CONFIG_SRCDIR([configure.ac])
24 AC_CONFIG_MACRO_DIR([m4])
25
26 AC_CONFIG_HEADERS([config.h])
27 AH_TOP([
28 #ifndef EFL_CONFIG_H__
29 #define EFL_CONFIG_H__
30 ])
31 AH_BOTTOM([
32 #endif /* EFL_CONFIG_H__ */
33 ])
34
35 AM_INIT_AUTOMAKE([1.6 dist-bzip2])
36 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
37
38 AC_GNU_SOURCE
39
40 AC_LIBTOOL_WIN32_DLL
41 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
42 AC_PROG_LIBTOOL
43
44 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
45 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
46 m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
47 m4_ifdef([v_rel], , [m4_define([v_rel], [])])
48 AC_DEFINE_UNQUOTED(VERS_MAJ, [v_maj], [Major version])
49 AC_DEFINE_UNQUOTED(VERS_MIN, [v_min], [Minor version])
50 AC_DEFINE_UNQUOTED(VERS_MIC, [v_mic], [Micro version])
51 AC_DEFINE_UNQUOTED(VERS_REV, [v_rev], [Revison])
52 version_info="lt_cur:lt_rev:lt_age"
53 release_info="v_rel"
54 AC_SUBST(version_info)
55 AC_SUBST(release_info)
56 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
57 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
58 VMAJ=v_maj
59 AC_SUBST(VMAJ)
60
61 m4_ifdef([AM_GNU_GETTEXT_VERSION], [
62 AM_GNU_GETTEXT_VERSION([0.17])
63 ])
64
65 m4_ifdef([AM_GNU_GETTEXT], [
66 AM_GNU_GETTEXT([external])
67 po_makefile_in=po/Makefile.in
68 have_po="yes"
69 ],[
70 have_po="no"
71 ])
72 AC_SUBST(LTLIBINTL)
73
74 if test "x${POSUB}" = "x" ; then
75    have_po="no"
76 fi
77
78 AM_CONDITIONAL([HAVE_PO], [test "x${have_po}" = "xyes"])
79
80 with_max_log_level="<unset>"
81 AC_ARG_WITH(internal-maximum-log-level,
82    [AC_HELP_STRING([--with-internal-maximum-log-level=NUMBER],
83                    [limit ecore internal log level to the given number, any call to EINA_LOG() with values greater than this will be compiled out, ignoring runtime settings, but saving function calls.])],
84    [
85     if test "x${withval}" != "xno"; then
86        if echo "${withval}" | grep -E '^[[0-9]]+$' >/dev/null 2>/dev/null; then
87           AC_MSG_NOTICE([ignoring any EINA_LOG() with level greater than ${withval}])
88           AC_DEFINE_UNQUOTED(EINA_LOG_LEVEL_MAXIMUM, ${withval}, [if set, logging is limited to this amount.])
89           with_max_log_level="${withval}"
90        else
91           AC_MSG_ERROR([--with-internal-maximum-log-level takes a decimal number, got "${withval}" instead.])
92        fi
93     fi
94     ], [:])
95
96
97 ### Default options with respect to host
98
99 AC_CANONICAL_BUILD
100 AC_CANONICAL_HOST
101
102 # dependencies and options
103 want_curl="no"
104 want_local_sockets="yes"
105 want_abstract_sockets="no"
106 want_gnutls="no"
107 want_openssl="no"
108 want_cares="no"
109 want_cipher="no"
110 want_signature="no"
111 want_poll="yes"
112 want_inotify="no"
113 want_notify_win32="no"
114 want_tslib="no"
115 want_glib="no"
116
117 # core modules
118 want_ecore_con="yes"
119 want_ecore_ipc="yes"
120 want_ecore_file="yes"
121 #want_ecore_config="no"
122 want_ecore_imf="no"
123 want_ecore_input="yes"
124
125 # graphic system modules
126 want_evas_simple_x11="no"
127 want_ecore_x_xcb="no"
128 want_ecore_x="no"
129 want_ecore_win32="no"
130 want_ecore_cocoa="no"
131 want_ecore_sdl="no"
132 want_ecore_psl1ght="no"
133 want_ecore_fb="no"
134 want_ecore_directfb="no"
135 want_ecore_wince="no"
136
137 # ecore_x options (both xlib and xcb)
138 want_ecore_x_composite="yes"
139 want_ecore_x_damage="yes"
140 want_ecore_x_dpms="yes"
141 want_ecore_x_randr="yes"
142 want_ecore_x_render="yes"
143 want_ecore_x_screensaver="yes"
144 want_ecore_x_shape="yes"
145 want_ecore_x_gesture="no"
146 want_ecore_x_sync="yes"
147 want_ecore_x_xfixes="yes"
148 want_ecore_x_xinerama="yes"
149 want_ecore_x_xprint="yes"
150 want_ecore_x_xtest="yes"
151 want_ecore_x_cursor="yes"
152 want_ecore_x_input="yes"
153 want_ecore_x_dri="yes"
154
155 # ecore_evas modules
156 want_ecore_evas="yes"
157 want_ecore_evas_software_buffer="yes"
158 want_ecore_evas_software_x11="no"
159 want_ecore_evas_opengl_x11="no"
160 want_ecore_evas_software_16_x11="no"
161 want_ecore_evas_software_8_x11="no"
162 want_ecore_evas_software_xcb="no"
163 want_ecore_evas_software_gdi="no"
164 want_ecore_evas_software_ddraw="no"
165 want_ecore_evas_direct3d="no"
166 want_ecore_evas_opengl_glew="no"
167 want_ecore_evas_software_16_ddraw="no"
168 want_ecore_evas_software_sdl="no"
169 want_ecore_evas_gl_sdl="no"
170 want_ecore_evas_gl_cocoa="no"
171 want_ecore_evas_psl1ght="no"
172 want_ecore_evas_directfb="no"
173 want_ecore_evas_fb="no"
174 want_ecore_evas_software_16_wince="no"
175 want_ecore_evas_ews="yes"
176
177 # ecore_imf modules
178 want_ecore_imf_xim="no"
179 want_ecore_imf_scim="no"
180
181 case "$host_os" in
182    mingw32ce* | cegcc*)
183       want_ecore_con="no"
184       want_ecore_ipc="no"
185       want_ecore_wince="yes"
186       want_ecore_evas_software_16_wince="yes"
187       ;;
188    mingw*)
189       want_notify_win32="yes"
190       want_curl="yes"
191       want_glib="auto"
192       want_gnutls="auto"
193       want_openssl="auto"
194       want_ecore_imf="yes"
195       want_ecore_win32="yes"
196       want_ecore_evas_software_gdi="yes"
197       want_ecore_evas_software_ddraw="yes"
198       want_ecore_evas_direct3d="yes"
199       want_ecore_evas_opengl_glew="yes"
200       want_ecore_evas_software_16_ddraw="auto"
201       want_ecore_evas_software_sdl="yes"
202       want_ecore_evas_gl_sdl="yes"
203       ;;
204    darwin*)
205       want_curl="yes"
206       want_glib="auto"
207       want_gnutls="auto"
208       want_openssl="auto"
209       want_ecore_imf="yes"
210       want_ecore_cocoa="yes"
211       want_ecore_evas_software_sdl="yes"
212       want_ecore_evas_gl_sdl="yes"
213       want_ecore_evas_gl_cocoa="yes"
214       ;;
215    *)
216       want_curl="yes"
217       want_glib="auto"
218       want_abstract_sockets="yes"
219       want_gnutls="auto"
220       want_openssl="auto"
221       want_cipher="yes"
222       want_signature="yes"
223       want_inotify="yes"
224       want_tslib="yes"
225       want_ecore_fb="yes"
226       want_ecore_imf="yes"
227       want_ecore_x="yes"
228       want_ecore_evas_software_x11="yes"
229       want_ecore_evas_opengl_x11="yes"
230       want_ecore_evas_software_16_x11="yes"
231       want_ecore_evas_software_8_x11="yes"
232       want_ecore_evas_software_xcb="no"
233       want_ecore_evas_software_sdl="yes"
234       want_ecore_evas_gl_sdl="yes"
235       want_ecore_evas_gl_cocoa="no"
236       want_ecore_evas_directfb="yes"
237       want_ecore_evas_fb="yes"
238       want_ecore_imf_xim="yes"
239       want_ecore_imf_scim="yes"
240       ;;
241 esac
242
243 case "$host_vendor" in
244   ps3*)
245       want_local_sockets="no"
246       ;;
247 esac
248 requirements_ecore=""
249 requirements_ecore_con=""
250 #requirements_ecore_config=""
251 requirements_ecore_directfb=""
252 requirements_ecore_evas=""
253 requirements_ecore_fb=""
254 requirements_ecore_file=""
255 requirements_ecore_imf=""
256 requirements_ecore_imf_evas=""
257 requirements_ecore_input=""
258 requirements_ecore_input_evas=""
259 requirements_ecore_ipc=""
260 requirements_ecore_cocoa=""
261 requirements_ecore_sdl=""
262 requirements_ecore_psl1ght=""
263 requirements_ecore_x=""
264 requirements_ecore_win32=""
265 requirements_ecore_wince=""
266 requirements_ecore_imf_xim=""
267 requirements_ecore_imf_scim=""
268
269 AC_CHECK_DECL([MAXHOSTNAMELEN],[FOUND_MAXHOSTNAMELEN=yes])
270
271 if test x$FOUND_MAXHOSTNAMELEN != xyes ; then
272   AC_MSG_CHECKING([for header that defines MAXHOSTNAMELEN])
273
274   FOUND_MAXHOSTNAMELEN='not found'
275
276   AC_COMPILE_IFELSE(
277         AC_LANG_PROGRAM([#include <sys/param.h>],
278                 [int h = MAXHOSTNAMELEN;]),
279         [FOUND_MAXHOSTNAMELEN='sys/param.h'
280            AC_DEFINE(NEED_SYS_PARAM_H,1,
281              [Define to 1 if you need <sys/param.h> to define MAXHOSTNAMELEN])])
282
283         AC_COMPILE_IFELSE(
284             AC_LANG_PROGRAM([#include <netdb.h>],
285                             [int h = MAXHOSTNAMELEN;]),
286             [FOUND_MAXHOSTNAMELEN='netdb.h'
287              AC_DEFINE(NEED_NETDB_H,1,
288                [Define to 1 if you need <netdb.h> to define MAXHOSTNAMELEN])])
289
290   AC_MSG_RESULT([$FOUND_MAXHOSTNAMELEN])
291 fi
292
293 ### Additional options to configure
294
295 want_glib_integration_always=no
296 AC_ARG_ENABLE(glib-integration-always,
297   AC_HELP_STRING([--enable-glib-integration-always], [enable glib integration when ecore_init() is called always]),
298   [want_glib_integration_always=$enableval])
299
300 if test "x${want_glib_integration_always}" = "xyes" ; then
301   AC_DEFINE([GLIB_INTEGRATION_ALWAYS], [1], [Always integrate glib if support compiled])
302   want_glib=yes
303 fi
304
305 want_g_main_loop=no
306 AC_ARG_ENABLE(g-main-loop,
307   AC_HELP_STRING([--enable-g-main-loop], [ecore_main_loop based on g_main_loop]),
308   [want_g_main_loop=$enableval])
309
310 if test "x${want_g_main_loop}" = "xyes" ; then
311   AC_DEFINE([USE_G_MAIN_LOOP], [1], [Use g_main_loop in ecore])
312   want_glib=yes
313 fi
314
315 if test "x${want_glib_integration_always}" = "xyes" -a "x${want_g_main_loop}" = "xyes"; then
316   AC_MSG_ERROR([--enable-glib-integration-always and --enable-glib-main-loop are mutually exclusive])
317 fi
318
319 # local sockets (ecore_con.c)
320 AC_ARG_ENABLE([local-sockets],
321    [AC_HELP_STRING([--disable-local-sockets], [disable local sockets.])],
322    [
323     if test "x${enableval}" = "xyes" ; then
324        want_ecore_con_local_sockets="yes"
325     else
326        want_ecore_con_local_sockets="no"
327     fi
328    ],
329    [want_ecore_con_local_sockets=${want_local_sockets}])
330
331 if test "x${want_ecore_con_local_sockets}" = "xyes" ; then
332    AC_DEFINE([HAVE_LOCAL_SOCKETS], [1], [Have local sockets support])
333 fi
334
335 # abstract sockets (ecore_con.c)
336 AC_ARG_ENABLE([abstract-sockets],
337    [AC_HELP_STRING([--disable-abstract-sockets], [disable abstract sockets.])],
338    [
339     if test "x${enableval}" = "xyes" ; then
340        want_ecore_con_abstract_sockets="yes"
341     else
342        want_ecore_con_abstract_sockets="no"
343     fi
344    ],
345    [want_ecore_con_abstract_sockets=${want_abstract_sockets}])
346
347 if test "x${want_ecore_con_abstract_sockets}" = "xyes" ; then
348    AC_DEFINE([HAVE_ABSTRACT_SOCKETS], [1], [Have abstract sockets namespace])
349 fi
350
351 # Simple X11 build/link
352
353 AC_ARG_ENABLE(simple-x11,
354   AC_HELP_STRING([--enable-simple-x11], [enable simple x11 linking]),
355   [want_evas_simple_x11=$enableval])
356
357 # XIM
358 AC_ARG_ENABLE([xim],
359    [AC_HELP_STRING([--disable-xim], [disable X Input Method.])],
360    [
361     if test "x${enableval}" = "xyes" ; then
362        want_xim="yes"
363     else
364        want_xim="no"
365     fi
366    ],
367    [want_xim="yes"])
368
369 if test "x${want_xim}" = "xyes" ; then
370    AC_DEFINE([ENABLE_XIM], [1], [Enable X Input Method])
371 fi
372
373 # Unit tests
374
375 EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"])
376
377 ### Checks for programs
378
379 m4_ifdef([AC_PROG_OBJC],
380    [
381     AC_PROG_OBJC
382     _AM_DEPENDENCIES(OBJC)
383    ],
384    [
385     AC_CHECK_TOOL([OBJC], [gcc])
386     AC_SUBST([OBJC])
387     AC_SUBST([OBJCFLAGS])
388    ])
389 m4_ifndef([am__fastdepOBJC], [
390     AM_CONDITIONAL([am__fastdepOBJC], [false])
391 ])
392
393 AC_PROG_CXX
394 AC_PROG_CC
395
396 have_gnu_objc=${ac_cv_objc_compiler_gnu}
397
398 # doxygen program for documentation building
399
400 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
401
402 m4_ifdef([v_mic],
403    [
404     EFL_COMPILER_FLAG([-Wall])
405     EFL_COMPILER_FLAG([-W])
406    ])
407
408 # The first call to PKG_CHECK_MODULES is done conditionally,
409 # so we should include this here:
410 PKG_PROG_PKG_CONFIG
411
412 # Check whether pkg-config supports Requires.private
413 if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then
414    pkgconfig_requires_private="Requires.private"
415 else
416    pkgconfig_requires_private="Requires"
417 fi
418 AC_SUBST(pkgconfig_requires_private)
419
420 ### Checks for some build time option
421 have_backtrace="no"
422 AC_CHECK_FUNCS([backtrace], [have_backtrace="yes"], [])
423
424 want_ecore_timer_dump="no"
425
426 AC_ARG_ENABLE([ecore-timer-dump],
427    [AC_HELP_STRING([--disable-ecore-timer-dump], [disable tracking of timer allocation. @<:@default=enable@:>@])],
428    [want_ecore_timer_dump=$enableval], [])
429
430 if test "x$want_ecore_timer_dump" = "xyes" -a "x$have_backtrace" = "xyes"; then
431    AC_DEFINE(WANT_ECORE_TIMER_DUMP, [1], [Want Ecore_Timer dump infrastructure])
432 fi
433
434 ### Checks for libraries
435
436 # Evil library for compilation on Windows
437
438 case "$host_os" in
439    mingw*)
440       PKG_CHECK_MODULES([EVIL], [evil >= 1.0.0])
441       AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if Evil library is installed])
442       requirements_ecore="evil ${requirements_ecore}"
443       requirements_ecore_evas="evil ${requirements_ecore_evas}"
444       requirements_ecore_file="evil ${requirements_ecore_file}"
445       requirements_ecore_imf="evil ${requirements_ecore_imf}"
446       requirements_ecore_imf_evas="evil ${requirements_ecore_imf_evas}"
447       EFL_ECORE_BUILD="-DEFL_ECORE_BUILD"
448       EFL_ECORE_CON_BUILD="-DEFL_ECORE_CON_BUILD"
449       EFL_ECORE_EVAS_BUILD="-DEFL_ECORE_EVAS_BUILD"
450       EFL_ECORE_FILE_BUILD="-DEFL_ECORE_FILE_BUILD"
451       EFL_ECORE_IMF_BUILD="-DEFL_ECORE_IMF_BUILD"
452       EFL_ECORE_IMF_EVAS_BUILD="-DEFL_ECORE_IMF_EVAS_BUILD"
453       EFL_ECORE_INPUT_BUILD="-DEFL_ECORE_INPUT_BUILD"
454       EFL_ECORE_INPUT_EVAS_BUILD="-DEFL_ECORE_INPUT_EVAS_BUILD"
455       EFL_ECORE_IPC_BUILD="-DEFL_ECORE_IPC_BUILD"
456       ;;
457 esac
458
459 have_win32=""
460 have_wince=""
461 case "$host_os" in
462    mingw32ce* | cegcc*)
463       EFL_ECORE_WINCE_BUILD="-DEFL_ECORE_WINCE_BUILD"
464       requirements_ecore_wince="evil ${requirements_ecore_wince}"
465       have_wince="yes"
466       ;;
467    mingw*)
468       EFL_ECORE_WIN32_BUILD="-DEFL_ECORE_WIN32_BUILD"
469       EFL_ECORE_SDL_BUILD="-DEFL_ECORE_SDL_BUILD"
470       requirements_ecore_win32="evil ${requirements_ecore_win32}"
471       requirements_ecore_sdl="evil ${requirements_ecore_sdl}"
472       have_win32="yes"
473       ;;
474 esac
475
476 have_ps3=""
477 case "$host_vendor" in
478   ps3*)
479       have_ps3="yes"
480       PKG_CHECK_MODULES([ESCAPE], [escape])
481       CFLAGS="$CFLAGS $ESCAPE_CFLAGS"
482       AC_DEFINE(HAVE_ESCAPE, 1, [Set to 1 if Escape library is installed])
483       EFL_ECORE_PSL1GHT_BUILD="-DEFL_ECORE_PSL1GHT_BUILD"
484       requirements_ecore="escape ${requirements_ecore}"
485       requirements_ecore_evas="escape ${requirements_ecore_evas}"
486       requirements_ecore_file="escape ${requirements_ecore_file}"
487       requirements_ecore_imf="escape ${requirements_ecore_imf}"
488       requirements_ecore_imf_evas="escape ${requirements_ecore_imf_evas}"
489       requirements_ecore_sdl="escape ${requirements_ecore_sdl}"
490       want_ecore_psl1ght="yes"
491       want_ecore_evas_psl1ght="yes"
492       ;;
493 esac
494
495 AC_SUBST(EFL_ECORE_BUILD)
496 AC_SUBST(EFL_ECORE_CON_BUILD)
497 AC_SUBST(EFL_ECORE_EVAS_BUILD)
498 AC_SUBST(EFL_ECORE_FILE_BUILD)
499 AC_SUBST(EFL_ECORE_IMF_BUILD)
500 AC_SUBST(EFL_ECORE_IMF_EVAS_BUILD)
501 AC_SUBST(EFL_ECORE_INPUT_BUILD)
502 AC_SUBST(EFL_ECORE_INPUT_EVAS_BUILD)
503 AC_SUBST(EFL_ECORE_IPC_BUILD)
504 AC_SUBST(EFL_ECORE_WINCE_BUILD)
505 AC_SUBST(EFL_ECORE_WIN32_BUILD)
506 AC_SUBST(EFL_ECORE_SDL_BUILD)
507 AC_SUBST(EFL_ECORE_PSL1GHT_BUILD)
508
509 AM_CONDITIONAL(ECORE_HAVE_WINCE, test "x${have_wince}" = "xyes")
510 AM_CONDITIONAL(ECORE_HAVE_WIN32, test "x${have_win32}" = "xyes")
511 AM_CONDITIONAL(ECORE_HAVE_PS3, test "x${have_ps3}" = "xyes")
512
513 WIN32_LIBS=""
514 case "$host_os" in
515    mingw32ce* | cegcc*)
516       WIN32_LIBS="-lws2"
517       dlopen_libs="-ldl"
518       ;;
519    mingw*)
520       WIN32_LIBS="-lws2_32"
521       dlopen_libs="-ldl"
522       ;;
523    *)
524       AC_CHECK_LIB([c], [dlopen],
525          [],
526          [AC_CHECK_LIB([dl], [dlopen],
527              [dlopen_libs=-ldl])
528          ])
529       AC_CHECK_LIB([c], [clock_gettime],
530          [AC_DEFINE(HAVE_CLOCK_GETTIME, [1], [Have clock_gettime()])],
531          [AC_CHECK_LIB([rt], [clock_gettime],
532              [
533               rt_libs=-lrt
534               AC_DEFINE(HAVE_CLOCK_GETTIME, [1], [Have clock_gettime()])
535              ])
536          ])
537       ;;
538 esac
539 AC_SUBST(WIN32_LIBS)
540 AC_SUBST(dlopen_libs)
541 AC_SUBST(rt_libs)
542
543 # Eina library
544
545 PKG_CHECK_MODULES(EINA, [eina >= 1.1.0])
546 #FIXME check all the requirements when the eina move will be finished
547 requirements_ecore="eina >= 1.1.0 ${requirements_ecore}"
548 requirements_ecore_con="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_con}"
549 #requirements_ecore_config="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_config}"
550 requirements_ecore_directfb="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_directfb}"
551 requirements_ecore_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_evas}"
552 requirements_ecore_fb="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_fb}"
553 requirements_ecore_file="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_file}"
554 requirements_ecore_imf="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_imf}"
555 requirements_ecore_imf_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_imf_evas}"
556 requirements_ecore_input="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_input}"
557 requirements_ecore_input_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_input_evas}"
558 requirements_ecore_ipc="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_ipc}"
559 requirements_ecore_cocoa="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_cocoa}"
560 requirements_ecore_sdl="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_sdl}"
561 requirements_ecore_psl1ght="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_sdl}"
562 requirements_ecore_win32="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_win32}"
563 requirements_ecore_wince="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_wince}"
564 requirements_ecore_x="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_x}"
565
566
567 # glib support (main loop integration)
568 AC_ARG_ENABLE([glib],
569    [AC_HELP_STRING([--disable-glib], [disable glib support. @<:@default=detect@:>@])],
570    [want_glib=$enableval], [])
571
572 if test "x$want_glib" != "xno"; then
573    PKG_CHECK_MODULES([GLIB], [glib-2.0], [have_glib="yes"], [have_glib="no"])
574 else
575    have_glib="no"
576 fi
577 if test "x$want_glib" = "xyes" -a "x$have_glib" = "xno"; then
578    AC_MSG_ERROR([GLib support requested, but no GLib found by pkg-config.])
579 elif test "x$have_glib" = "xyes"; then
580    AC_DEFINE(HAVE_GLIB, [1], [Have GLib])
581    requirements_ecore="glib-2.0 ${requirements_ecore}"
582 fi
583
584
585 # SDL library (ecore_sdl)
586
587 have_sdl="no"
588 PKG_CHECK_MODULES([SDL], [sdl >= 1.2.0], [have_sdl="yes"], [have_sdl="no"])
589 if test "x${have_sdl}" != "xyes" ; then
590    SDL_CONFIG="sdl-config"
591    AC_ARG_WITH([sdl-config],
592       [AC_HELP_STRING([--with-sdl-config=PATH], [use sdl-config specified])],
593       [
594        SDL_CONFIG=$withval
595        AC_MSG_NOTICE([using ${SDL_CONFIG} for sdl-config])
596       ])
597
598    AC_PATH_PROG([SDL_CONFIG], ["sdl-config"], [""], [$PATH])
599
600    if test -n "$SDL_CONFIG" ; then
601       SDL_CFLAGS=`$SDL_CONFIG --cflags`
602       SDL_LIBS=`$SDL_CONFIG --libs`
603       AC_SUBST(SDL_CFLAGS)
604       AC_SUBST(SDL_LIBS)
605       have_sdl="yes"
606    fi
607 fi
608
609 if test "x${have_sdl}" = "xyes" ; then
610    PKG_CHECK_EXISTS([sdl >= 1.3.0],
611       [AC_DEFINE(BUILD_ECORE_EVAS_SDL_130, 1, [Support for SVN SDL])])
612 fi
613
614
615 # DirectFB library (ecore_directfb)
616
617 PKG_CHECK_MODULES([DIRECTFB],
618    [directfb >= 0.9.16],
619    [have_directfb="yes"],
620    [have_directfb="no"])
621
622
623 # Eet library (ecore_config)
624
625 #PKG_CHECK_MODULES([EET],
626 #   [eet >= 1.4.0],
627 #   [have_eet="yes"],
628 #   [have_eet="no"])
629
630
631 # Xlib and XCB (ecore_x)
632
633 have_x="no"
634 have_ecore_x="no"
635 have_ecore_x_xlib="no"
636 have_ecore_x_xcb="no"
637
638 x_dir="";
639 x_includes="";
640 x_cflags="";
641 x_libs="";
642
643 ecore_x_libs_private=""
644
645 AC_ARG_ENABLE(ecore-x-composite,
646    [AC_HELP_STRING([--disable-ecore-x-composite],
647        [disable the ecore_x support for Xcomposite extension.
648         @<:@default=detect@:>@])],
649    [want_ecore_x_composite=$enableval])
650
651 AC_ARG_ENABLE(ecore-x-damage,
652    [AC_HELP_STRING([--disable-ecore-x-damage],
653        [disable the ecore_x support for Xdamage extension.
654         @<:@default=detect@:>@])],
655    [want_ecore_x_damage=$enableval])
656
657 AC_ARG_ENABLE(ecore-x-dpms,
658    [AC_HELP_STRING([--disable-ecore-x-dpms],
659        [disable the ecore_x support for Xdpms extension.
660         @<:@default=detect@:>@])],
661    [want_ecore_x_dpms=$enableval])
662
663 AC_ARG_ENABLE(ecore-x-randr,
664    [AC_HELP_STRING([--disable-ecore-x-randr],
665        [disable the ecore_x support for Xrandr extension.
666         @<:@default=detect@:>@])],
667    [want_ecore_x_randr=$enableval])
668
669 AC_ARG_ENABLE(ecore-x-render,
670    [AC_HELP_STRING([--disable-ecore-x-render],
671        [disable the ecore_x support for Xrender extension.
672         @<:@default=detect@:>@])],
673    [want_ecore_x_render=$enableval])
674
675 AC_ARG_ENABLE(ecore-x-screensaver,
676    [AC_HELP_STRING([--disable-ecore-x-screensaver],
677        [disable the ecore_x support for Xscreensaver extension.
678         @<:@default=detect@:>@])],
679    [want_ecore_x_screensaver=$enableval])
680
681 AC_ARG_ENABLE(ecore-x-shape,
682    [AC_HELP_STRING([--disable-ecore-x-shape],
683        [disable the ecore_x support for Xshape extension.
684         @<:@default=detect@:>@])],
685    [want_ecore_x_shape=$enableval])
686
687 AC_ARG_ENABLE(ecore-x-gesture,
688    [AC_HELP_STRING([--enable-ecore-x-gesture],
689        [enable the ecore_x support for Xgesture extension.
690         @<:@default=detect@:>@])],
691    [want_ecore_x_gesture=$enableval])
692
693 AC_ARG_ENABLE(ecore-x-sync,
694    [AC_HELP_STRING([--disable-ecore-x-sync],
695        [disable the ecore_x support for Xsync extension.
696         @<:@default=detect@:>@])],
697    [want_ecore_x_sync=$enableval])
698
699 AC_ARG_ENABLE(ecore-x-xfixes,
700    [AC_HELP_STRING([--disable-ecore-x-xfixes],
701        [disable the ecore_x support for Xfixes extension.
702         @<:@default=detect@:>@])],
703    [want_ecore_x_xfixes=$enableval])
704
705 AC_ARG_ENABLE(ecore-x-xinerama,
706    [AC_HELP_STRING([--disable-ecore-x-xinerama],
707        [disable the ecore_x support for Xinerama extension.
708         @<:@default=detect@:>@])],
709    [want_ecore_x_xinerama=$enableval])
710
711 AC_ARG_ENABLE(ecore-x-xprint,
712    [AC_HELP_STRING([--disable-ecore-x-xprint],
713        [disable the ecore_x support for Xprint extension.
714         @<:@default=detect@:>@])],
715    [want_ecore_x_xprint=$enableval])
716
717 AC_ARG_ENABLE(ecore-x-xtest,
718    [AC_HELP_STRING([--disable-ecore-x-xtest],
719        [disable the ecore_x support for Xtest extension.
720         @<:@default=detect@:>@])],
721    [want_ecore_x_xtest=$enableval])
722
723 AC_ARG_ENABLE(ecore-x-cursor,
724    [AC_HELP_STRING([--disable-ecore-x-cursor],
725        [disable the ecore_x support for Xcursor extension.
726         @<:@default=detect@:>@])],
727    [want_ecore_x_cursor=$enableval])
728
729 AC_ARG_ENABLE(ecore-x-input,
730    [AC_HELP_STRING([--disable-ecore-x-input],
731        [disable the ecore_x support for Xinput/Xinput2 extension.
732         @<:@default=detect@:>@])],
733    [want_ecore_x_input=$enableval])
734
735 AC_ARG_ENABLE(ecore-x-dri,
736    [AC_HELP_STRING([--disable-ecore-x-dri],
737        [disable the ecore_x support for DRI extension.
738         @<:@default=detect@:>@])],
739    [want_ecore_x_dri=$enableval])
740
741 AC_ARG_ENABLE(ecore-x-xcb,
742    [AC_HELP_STRING([--enable-ecore-x-xcb],
743        [enable the ecore_x module with XCB backend. @<:@default=disabled@:>@])],
744    [want_ecore_x_xcb=$enableval])
745
746 AC_MSG_CHECKING(whether ecore_x with XCB backend is to be built)
747 AC_MSG_RESULT($want_ecore_x_xcb)
748
749 if test "x$want_ecore_x_xcb" = "xyes" ; then
750
751   AC_MSG_CHECKING([keysym definitions])
752   KEYSYMDEFDIR=`$PKG_CONFIG --variable=includedir xproto`/X11
753   FILES="keysymdef.h XF86keysym.h Sunkeysym.h DECkeysym.h HPkeysym.h"
754   for i in $FILES; do
755       if test -f "$KEYSYMDEFDIR/$i"; then
756         KEYSYMDEFS="$KEYSYMDEFS $KEYSYMDEFDIR/$i"
757       elif test "x$i" = "xkeysymdef.h"; then
758         AC_MSG_ERROR([Cannot find keysymdef.h])
759       fi
760   done
761   AC_MSG_RESULT([$KEYSYMDEFS])
762   AC_SUBST(KEYSYMDEFS)
763
764   have_iconv="no"
765   AC_ARG_WITH([iconv-link],
766     AC_HELP_STRING([--with-iconv-link=ICONV_LINK], [explicitly specify an iconv link option]),
767       [
768         LIBS="$withval $LIBS"
769         have_iconv="yes"
770       ])
771
772   AC_MSG_CHECKING(for explicit iconv link options)
773   if test "x${iconv_libs}" = "x" ; then
774     AC_MSG_RESULT([no explicit iconv link option])
775   else
776     AC_MSG_RESULT([$iconv_libs])
777   fi
778
779   if test "x${have_iconv}" = "xno" ; then
780     AC_CHECK_HEADERS([iconv.h], [have_iconv="yes"])
781
782     if test "x${have_iconv}" = "xyes" ; then
783       AC_MSG_CHECKING([whether iconv() is in libc])
784
785       AC_LINK_IFELSE(
786         [AC_LANG_PROGRAM(
787         [[
788           #include <stdlib.h>
789           #include <iconv.h>
790         ]],
791         [[
792           iconv_t ic;
793           size_t count = iconv(ic, NULL, NULL, NULL, NULL);
794         ]])],
795         [have_iconv="yes"],
796         [have_iconv="no"])
797
798       AC_MSG_RESULT([${have_iconv}])
799     fi
800
801     if test "x${have_iconv}" = "xno" ; then
802       AC_MSG_CHECKING([whether iconv() is in libiconv.a])
803
804       LIBS_save="${LIBS}"
805       LIBS="-liconv $LIBS"
806       AC_LINK_IFELSE(
807       [AC_LANG_PROGRAM(
808         [[
809           #include <stdlib.h>
810           #include <iconv.h>
811         ]],
812         [[
813           iconv_t ic;
814           size_t count;
815           count = iconv(ic, NULL, NULL, NULL, NULL);
816         ]])],
817         [have_iconv="yes"],
818         [
819           have_iconv="no"
820           LIBS=${LIBS_save}
821         ])
822
823       AC_MSG_RESULT([${have_iconv}])
824     fi
825
826     if test "x${have_iconv}" = "xno" ; then
827       AC_MSG_CHECKING([whether iconv() is in libiconv_plug.a])
828
829       LIBS_save="${LIBS}"
830       LIBS="-liconv_plug $LIBS"
831       AC_LINK_IFELSE(
832       [AC_LANG_PROGRAM(
833       [[
834         #include <stdlib.h>
835         #include <iconv.h>
836       ]],
837       [[
838         iconv_t ic;
839         size_t count = iconv(ic, NULL, NULL, NULL, NULL);
840       ]])],
841       [have_iconv="yes"],
842       [
843         have_iconv="no"
844         LIBS=${LIBS_save}
845       ])
846
847       AC_MSG_RESULT([${have_iconv}])
848     fi
849
850     if test "x${have_iconv}" = "xyes" ; then
851       AC_DEFINE([HAVE_ICONV], [1], [Set to 1 if iconv library is installed])
852     fi
853   fi
854
855   PKG_CHECK_MODULES(ECORE_XCB, x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8,
856     [ have_ecore_x_xcb="yes"
857       requirements_ecore_x="x11-xcb xcb xcb-shm xcb-event xcb-icccm xcb-util xcb-image xcb-keysyms ${requirements_ecore_x}"
858     ],
859     [ 
860         PKG_CHECK_MODULES(ECORE_XCB, x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms, 
861           [ have_ecore_x_xcb="yes"
862             AC_DEFINE(OLD_XCB_VERSION, 1, [xcb version])
863             requirements_ecore_x="x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms ${requirements_ecore_x}" ],
864           [ have_ecore_x_xcb="no" ])
865     ], 
866     [have_ecore_x_xcb="no" ])
867
868   if test "x$have_ecore_x_xcb" = "xyes" ; then
869
870    PKG_CHECK_MODULES([PIXMAN],
871       [pixman-1],
872       [
873        have_pixman="yes"
874        AC_DEFINE(HAVE_PIXMAN, 1, [have pixman for rendering])
875        requirements_ecore_x="pixman-1 ${requirements_ecore_x}"
876       ],
877       [
878        if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
879           AC_MSG_ERROR([Pixman not found (strict dependencies checking)])
880        fi
881       ])
882
883     if test "x$want_ecore_x_composite" != "xno"; then
884       PKG_CHECK_MODULES(XCB_COMPOSITE, xcb-composite,
885         [ have_ecore_x_xcb_composite="yes"
886           requirements_ecore_x="xcb-composite ${requirements_ecore_x}"
887           AC_DEFINE(ECORE_XCB_COMPOSITE, 1, [Build support for XCB composite]) ],
888         [ have_ecore_x_xcb_composite="no" ])
889     else
890       have_ecore_x_xcb_composite="no"
891       AC_MSG_NOTICE("composite extension explicitly disabled")
892     fi
893
894     if test "x$want_ecore_x_damage" != "xno"; then
895       PKG_CHECK_MODULES(XCB_DAMAGE, xcb-damage,
896         [ have_ecore_x_xcb_damage="yes"
897           requirements_ecore_x="xcb-damage ${requirements_ecore_x}"
898           AC_DEFINE(ECORE_XCB_DAMAGE, 1, [Build support for XCB damage]) ],
899         [ have_ecore_x_xcb_damage="no" ])
900     else
901       have_ecore_x_xcb_damage="no"
902       AC_MSG_NOTICE("damage extension explicitly disabled")
903     fi
904
905     if test "x$want_ecore_x_dpms" != "xno"; then
906       PKG_CHECK_MODULES(XCB_DPMS, xcb-dpms,
907         [ have_ecore_x_xcb_dpms="yes"
908           requirements_ecore_x="xcb-dpms ${requirements_ecore_x}"
909           AC_DEFINE(ECORE_XCB_DPMS, 1, [Build support for XCB dpms]) ],
910         [ have_ecore_x_xcb_dpms="no" ])
911     else
912       have_ecore_x_xcb_dpms="no"
913       AC_MSG_NOTICE("dpms extension explicitly disabled")
914     fi
915
916     if test "x$want_ecore_x_randr" != "xno"; then
917       PKG_CHECK_MODULES(XCB_RANDR, xcb-randr,
918         [ have_ecore_x_xcb_randr="yes"
919           requirements_ecore_x="xcb-randr ${requirements_ecore_x}"
920           AC_DEFINE(ECORE_XCB_RANDR, 1, [Build support for XCB randr]) ],
921         [ have_ecore_x_xcb_randr="no" ])
922     else
923       have_ecore_x_xcb_randr="no"
924       AC_MSG_NOTICE("randr extension explicitly disabled")
925     fi
926
927     if test "x$want_ecore_x_render" != "xno"; then
928       PKG_CHECK_MODULES(XCB_RENDER, xcb-render xcb-renderutil,
929         [ have_ecore_x_xcb_render="yes"
930           requirements_ecore_x="xcb-render xcb-renderutil ${requirements_ecore_x}"
931           AC_DEFINE(ECORE_XCB_RENDER, 1, [Build support for XCB render]) ],
932         [ have_ecore_x_xcb_render="no" ])
933     else
934       have_ecore_x_xcb_render="no"
935       AC_MSG_NOTICE("render extension explicitly disabled")
936     fi
937
938     if test "x$want_ecore_x_screensaver" != "xno"; then
939       PKG_CHECK_MODULES(XCB_SCREENSAVER, xcb-screensaver,
940         [ have_ecore_x_xcb_screensaver="yes"
941           requirements_ecore_x="xcb-screensaver ${requirements_ecore_x}"
942           AC_DEFINE(ECORE_XCB_SCREENSAVER, 1, [Build support for XCB screensaver]) ],
943         [ have_ecore_x_xcb_screensaver="no" ])
944     else
945       have_ecore_x_xcb_screensaver="no"
946       AC_MSG_NOTICE("screensaver extension explicitly disabled")
947     fi
948
949     if test "x$want_ecore_x_shape" != "xno"; then
950       PKG_CHECK_MODULES(XCB_SHAPE, xcb-shape,
951         [ have_ecore_x_xcb_shape="yes"
952           requirements_ecore_x="xcb-shape ${requirements_ecore_x}"
953           AC_DEFINE(ECORE_XCB_SHAPE, 1, [Build support for XCB shape]) ],
954         [ have_ecore_x_xcb_shape="no" ])
955     else
956       have_ecore_x_xcb_shape="no"
957       AC_MSG_NOTICE("shape extension explicitly disabled")
958     fi
959
960     if test "x$want_ecore_x_gesture" != "xno"; then
961       PKG_CHECK_MODULES(XCB_XGESTURE, xcb-gesture,
962         [ have_ecore_x_xcb_gesture="yes"
963           requirements_ecore_x="xcb-gesture ${requirements_ecore_x}"
964           AC_DEFINE(ECORE_XCB_XGESTURE, 1, [Build support for XCB gesture]) ],
965         [ have_ecore_x_xcb_gesture="no" ])
966     else
967       have_ecore_x_xcb_gesture="no"
968       AC_MSG_NOTICE("gesture extension explicitly disabled")
969     fi
970
971     if test "x$want_ecore_x_sync" != "xno"; then
972       PKG_CHECK_MODULES(XCB_SYNC, xcb-sync,
973         [ have_ecore_x_xcb_sync="yes"
974           requirements_ecore_x="xcb-sync ${requirements_ecore_x}"
975           AC_DEFINE(ECORE_XCB_SYNC, 1, [Build support for XCB sync]) ],
976         [ have_ecore_x_xcb_sync="no" ])
977     else
978       have_ecore_x_xcb_sync="no"
979       AC_MSG_NOTICE("sync extension explicitly disabled")
980     fi
981
982     if test "x$want_ecore_x_xfixes" != "xno"; then
983       PKG_CHECK_MODULES(XCB_XFIXES, xcb-xfixes,
984         [ have_ecore_x_xcb_xfixes="yes"
985           requirements_ecore_x="xcb-xfixes ${requirements_ecore_x}"
986           AC_DEFINE(ECORE_XCB_XFIXES, 1, [Build support for XCB xfixes]) ],
987         [ have_ecore_x_xcb_xfixes="no" ])
988     else
989       have_ecore_x_xcb_xfixes="no"
990       AC_MSG_NOTICE("xfixes extension explicitly disabled")
991     fi
992
993     if test "x$want_ecore_x_xinerama" != "xno"; then
994       PKG_CHECK_MODULES(XCB_XINERAMA, xcb-xinerama,
995         [ have_ecore_x_xcb_xinerama="yes"
996           requirements_ecore_x="xcb-xinerama ${requirements_ecore_x}"
997           AC_DEFINE(ECORE_XCB_XINERAMA, 1, [Build support for XCB xinerama]) ],
998         [ have_ecore_x_xcb_xinerama="no" ])
999     else
1000       have_ecore_x_xcb_xinerama="no"
1001       AC_MSG_NOTICE("xinerama extension explicitly disabled")
1002     fi
1003
1004     if test "x$want_ecore_x_xprint" != "xno"; then
1005       PKG_CHECK_MODULES(XCB_XPRINT, xcb-xprint,
1006         [ have_ecore_x_xcb_xprint="yes"
1007           requirements_ecore_x="xcb-xprint ${requirements_ecore_x}"
1008           AC_DEFINE(ECORE_XCB_XPRINT, 1, [Build support for XCB xprint]) ],
1009         [ have_ecore_x_xcb_xprint="no" ])
1010     else
1011       have_ecore_x_xcb_xprint="no"
1012       AC_MSG_NOTICE("xprint extension explicitly disabled")
1013     fi
1014
1015     if test "x$want_ecore_x_xtest" != "xno"; then
1016       PKG_CHECK_MODULES(XCB_XTEST, xcb-xtest,
1017         [ have_ecore_x_xcb_xtest="yes"
1018           requirements_ecore_x="xcb-xtest ${requirements_ecore_x}"
1019           AC_DEFINE(ECORE_XCB_XTEST, 1, [Build support for XCB xtest]) ],
1020         [ have_ecore_x_xcb_xtest="no" ])
1021     else
1022       have_ecore_x_xcb_xtest="no"
1023       AC_MSG_NOTICE("xtest extension explicitly disabled")
1024     fi
1025
1026 # input extension disabled currently in xcb as xcb-input has some issues
1027     want_ecore_x_input="no"
1028     if test "x$want_ecore_x_input" != "xno"; then
1029       PKG_CHECK_MODULES(XCB_XINPUT, xcb-xinput,
1030         [ have_ecore_x_xcb_xinput="yes"
1031           requirements_ecore_x="xcb-xinput ${requirements_ecore_x}"
1032           AC_DEFINE(ECORE_XCB_XINPUT, 1, [Build support for XCB xinput]) ],
1033         [ have_ecore_x_xcb_xinput="no" ])
1034     else
1035       have_ecore_x_xcb_xinput="no"
1036       AC_MSG_NOTICE("xinput extension explicitly disabled")
1037     fi
1038
1039     if test "x$want_ecore_x_cursor" != "xno"; then
1040       PKG_CHECK_MODULES(XCB_CURSOR, xcb-render xcb-renderutil,
1041         [ have_ecore_x_xcb_cursor="yes"
1042           requirements_ecore_x="xcb-render xcb-renderutil ${requirements_ecore_x}"
1043           AC_DEFINE(ECORE_XCB_CURSOR, 1, [Build support for XCB cursor]) ],
1044         [ have_ecore_x_xcb_cursor="no" ])
1045     else
1046       have_ecore_x_xcb_cursor="no"
1047       AC_MSG_NOTICE("cursor extension explicitly disabled")
1048     fi
1049
1050 #    if test "x$want_ecore_x_dri" != "xno"; then
1051 #      PKG_CHECK_MODULES(XCB_DRI, xcb-dri2,
1052 #        [ have_ecore_x_xcb_dri="yes"
1053 #          requirements_ecore_x="xcb-dri2 ${requirements_ecore_x}"
1054 #          AC_DEFINE(ECORE_XCB_DRI, 1, [Build support for XCB dri/dri2]) ],
1055 #        [ have_ecore_x_xcb_dri="no" ])
1056 #    else
1057 #      have_ecore_x_xcb_dri="no"
1058 #      AC_MSG_NOTICE("dri extension explicitly disabled")
1059 #    fi
1060
1061     AC_DEFINE(HAVE_ECORE_X_XCB, 1, [Defined to 1 if XCB is enabled.])
1062
1063     x_cflags=$ECORE_XCB_CFLAGS
1064     x_libs=$ECORE_XCB_LIBS
1065     have_x="yes"
1066
1067     have_ecore_x_xcb_define="-DHAVE_ECORE_X_XCB"
1068     AC_SUBST(have_ecore_x_xcb_define)
1069   fi
1070 fi
1071
1072 if ! test "x$have_ecore_x_xcb" = "xyes" ; then
1073   AC_PATH_XTRA
1074   AC_CHECK_HEADER(X11/X.h,
1075     [
1076      if test "x$want_evas_simple_x11" = "xyes"; then
1077        x_libs="${x_libs} -lX11 -lXext"
1078      else
1079        x_dir=${x_dir:-/usr/X11R6}
1080        x_cflags=${x_cflags:--I${x_includes:-$x_dir/include}}
1081        x_libs="${x_libs:--L${x_libraries:-$x_dir/lib}} -lX11 -lXext"
1082      fi
1083      have_ecore_x_xlib="yes"
1084     ]
1085   )
1086
1087   if test "x$have_ecore_x_xlib" = "xyes"; then
1088     Xcursor_libs=""
1089     Xcursor_cflags=""
1090     use_Xcursor="no"
1091     PCFLAGS=$CFLAGS
1092     CFLAGS="$x_cflags $x_includes"
1093
1094     if test "x$want_ecore_x_cursor" = "xyes"; then
1095       AC_CHECK_HEADER(X11/Xcursor/Xcursor.h,
1096         [
1097           AC_CHECK_LIB(Xcursor, XcursorImageLoadCursor,
1098             [
1099               AC_DEFINE(ECORE_XCURSOR, 1, [Build support for Xcursor])
1100               Xcursor_cflags=""
1101               Xcursor_libs="-lXcursor"
1102               use_Xcursor="yes"
1103             ], [
1104               Xcursor_cflags=""
1105               Xcursor_libs=""
1106               use_Xcursor="no"
1107             ], [
1108               $x_libs -lXrender
1109             ]
1110           )
1111         ], [
1112           Xcursor_cflags=""
1113           Xcursor_libs=""
1114           use_Xcursor="no"
1115         ], [
1116           #include <X11/Xlib.h>
1117         ]
1118       )
1119       CFLAGS=$PCFLAGS
1120     else
1121       Xcursor_cflags=""
1122       Xcursor_libs=""
1123       use_Xcursor="no"
1124       AC_MSG_NOTICE("Xcursor explicitly disabled")
1125     fi
1126
1127     AC_SUBST(Xcursor_cflags)
1128     AC_SUBST(Xcursor_libs)
1129
1130     ECORE_CHECK_X_EXTENSION([Xkb], [XKB.h], [X11], [XkbSetDetectableAutoRepeat], [$want_ecore_x_xkb])
1131     ECORE_CHECK_X_EXTENSION([Xcomposite], [Xcomposite.h], [Xcomposite], [XCompositeQueryExtension], [$want_ecore_x_composite])
1132     ECORE_CHECK_X_EXTENSION([Xdamage], [Xdamage.h], [Xdamage], [XDamageSubtract], [$want_ecore_x_damage])
1133     ECORE_CHECK_X_EXTENSION([Xdpms], [dpms.h], [Xdpms], [DPMSQueryExtension], [$want_ecore_x_dpms])
1134     if test "x$use_xdpms" = "xno" ; then
1135       ECORE_CHECK_X_EXTENSION([Xdpms], [dpms.h], [Xext], [DPMSQueryExtension], [$want_ecore_x_dpms])
1136     fi
1137     ECORE_CHECK_X_EXTENSION([Xfixes], [Xfixes.h], [Xfixes], [XFixesExpandRegion], [$want_ecore_x_xfixes])
1138     ECORE_CHECK_X_EXTENSION([Xinerama], [Xinerama.h], [Xinerama], [XineramaQueryScreens], [$want_ecore_x_xinerama])
1139     ECORE_CHECK_X_EXTENSION([Xprint], [Print.h], [Xp], [XpQueryScreens], [$want_ecore_x_xprint])
1140     ECORE_CHECK_X_EXTENSION([Xrandr], [Xrandr.h], [Xrandr], [XRRGetScreenResourcesCurrent], [$want_ecore_x_randr])
1141     ECORE_CHECK_X_EXTENSION([Xgesture], [gesture.h], [Xgesture], [XGestureQueryExtension], [$want_ecore_x_gesture])
1142     ECORE_CHECK_X_EXTENSION([Xrender], [Xrender.h], [Xrender], [XRenderFindVisualFormat], [$want_ecore_x_render])
1143     ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent], [$want_ecore_x_xtest])
1144     ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], [XScreenSaverSelectInput], [$want_ecore_x_screensaver])
1145     ECORE_CHECK_X_EXTENSION([Xi2], [XInput2.h], [Xi], [XIQueryDevice], [$want_ecore_x_input])
1146
1147     ecore_x_libs_private="${Xcursor_libs} ${XKB_LIBS} ${XCOMPOSITE_LIBS} ${XGESTURE_LIBS} ${XDAMAGE_LIBS} ${XDPMS_LIBS} ${XFIXES_LIBS} ${XINERAMA_LIBS} ${XPRINT_LIBS} ${XRANDR_LIBS} ${XRENDER_LIBS} ${XTEST_LIBS} ${XSS_LIBS} ${XI2_LIBS}"
1148
1149     AC_DEFINE(HAVE_ECORE_X_XLIB, 1, [Defined to 1 if Xlib is enabled.])
1150     have_x="yes"
1151
1152     have_ecore_x_xlib="yes"
1153   fi
1154 fi
1155
1156 AC_SUBST(x_cflags)
1157 AC_SUBST(x_includes)
1158 AC_SUBST(x_libs)
1159 AC_SUBST(ecore_x_libs_private)
1160
1161 AM_CONDITIONAL(BUILD_ECORE_X_XLIB, test $have_ecore_x_xlib = yes)
1162 AM_CONDITIONAL(BUILD_ECORE_X_XCB, test $have_ecore_x_xcb = yes)
1163
1164
1165 # Evas library (ecore_config, ecore_input_evas, ecore_imf_evas and ecore_evas)
1166
1167 PKG_CHECK_MODULES([EVAS], [evas >= 1.1.99],
1168    [have_evas="yes"],
1169    [have_evas="no"])
1170
1171
1172 ### Checks for header files
1173
1174 AC_CHECK_HEADERS([sys/select.h sys/prctl.h])
1175
1176 EFL_CHECK_PATH_MAX
1177
1178 AC_HEADER_SYS_WAIT
1179 AC_SYS_LARGEFILE
1180
1181 have_addrinfo="no"
1182 case "$host_os" in
1183    mingw* | cegcc*)
1184       AC_DEFINE(HAVE_DLFCN_H, 1, [Define to 1 if you have the <dlfcn.h> header file.])
1185       AC_DEFINE(HAVE_SYS_MMAN_H, 1, [Define to 1 if you have the <sys/mman.h> header file.])
1186       AC_DEFINE(HAVE_SYS_TIME_H, 1, [Define to 1 if you have the <sys/time.h> header file.])
1187       have_addrinfo="yes"
1188       ;;
1189    *)
1190       AC_CHECK_HEADERS([dlfcn.h features.h langinfo.h locale.h sys/time.h sys/mman.h signal.h sys/resource.h])
1191       ;;
1192 esac
1193
1194 # ecore_con
1195
1196 AC_CHECK_HEADERS([arpa/inet.h arpa/nameser.h netinet/tcp.h net/if.h netinet/in.h sys/socket.h sys/un.h ws2tcpip.h netdb.h])
1197
1198 if test "x${ac_cv_header_netdb_h}" = "xyes" ; then
1199    have_addrinfo="yes"
1200 fi
1201
1202 # Framebuffer (ecore_fb)
1203 have_fb="no"
1204 AC_CHECK_HEADER([linux/fb.h],
1205    [AC_CHECK_HEADER([linux/input.h], [have_fb="yes"])])
1206
1207 # Cocoa header files (ecore_cocoa)
1208
1209 if test "x${want_ecore_cocoa}" = "xyes" ; then
1210    cocoa_ldflags=""
1211    have_cocoa="no"
1212    m4_ifdef([AC_PROG_OBJC],
1213       [
1214        if test "x${have_gnu_objc}" = "xyes" ; then
1215           AC_LANG_PUSH([Objective C])
1216           LIBS_save="$LIBS"
1217           LIBS="$LIBS -framework Cocoa"
1218           AC_LINK_IFELSE(
1219              [AC_LANG_PROGRAM(
1220                  [[
1221 #include <Cocoa/Cocoa.h>
1222                  ]],
1223                  [[
1224 NSWindow *window;
1225 window = [[NSWindow alloc]
1226            initWithContentRect:NSMakeRect(0, 0, 1, 1)
1227            styleMask:(NSTitledWindowMask)
1228            backing:NSBackingStoreBuffered
1229            defer:NO
1230            screen:nil
1231          ];
1232                  ]])],
1233              [
1234               have_cocoa="yes"
1235               cocoa_ldflags="-framework Cocoa"
1236              ],
1237              [have_cocoa="no"])
1238           LIBS="$LIBS_save"
1239           AC_MSG_CHECKING([whether Cocoa framework is supported])
1240           AC_MSG_RESULT([${have_cocoa}])
1241           AC_LANG_POP([Objective C])
1242        fi
1243    ])
1244 fi
1245 AC_SUBST(cocoa_ldflags)
1246
1247 want_epoll=yes
1248 AC_ARG_ENABLE(epoll,
1249   AC_HELP_STRING([--enable-epoll], [enable or disable epoll support]),
1250   [want_epoll=$enableval])
1251
1252 if test "x${want_epoll}" = "xyes" ; then
1253   # check for epoll support
1254   AC_CHECK_HEADERS([sys/epoll.h])
1255 fi
1256
1257 # timerfd_create
1258 AC_CHECK_HEADERS([sys/timerfd.h])
1259 AC_CHECK_FUNCS(timerfd_create)
1260
1261 # thread support
1262
1263 EFL_CHECK_THREADS(
1264    [
1265     if test "x${_efl_have_posix_threads}" = "xyes" ; then
1266        have_threads="POSIX"
1267     else
1268        if test "x${_efl_have_win32_threads}" = "xyes" ; then
1269           have_threads="Win32"
1270        else
1271           have_threads="no"
1272        fi
1273     fi
1274    ],
1275    [have_threads="no"])
1276
1277 ### enable thread safety if we have threads, unless specifically asked not to
1278 if test "x${have_threads}" = "xno"
1279 then
1280   want_thread_safety="no"
1281 else
1282   want_thread_safety="no"  # to be changed to yes when ready
1283   AC_ARG_ENABLE(thread-safety,
1284     AC_HELP_STRING([--enable-thread-safety], [enable or disable thread safety]),
1285     [want_thread_safety=$enableval])
1286 fi
1287
1288 if test "x${want_thread_safety}" = "xyes"
1289 then
1290    AC_DEFINE([HAVE_THREAD_SAFETY], [1], [Define to enable thread safety])
1291 fi
1292
1293 ### Checks for types
1294 AC_CHECK_SIZEOF(int, 4)
1295 AC_CHECK_SIZEOF(long, 4)
1296
1297
1298 ### Checks for structures
1299
1300
1301 ### Checks for compiler characteristics
1302 AC_PROG_CC_STDC
1303 AC_C_CONST
1304 AC_C_BIGENDIAN
1305 AC_HEADER_STDC
1306 AC_C___ATTRIBUTE__
1307
1308 WIN32_CPPFLAGS=""
1309 WIN32_CFLAGS=""
1310 case "$host_os" in
1311    mingw32ce*)
1312       WIN32_CPPFLAGS="-D_WIN32_WCE=0x0420"
1313       ;;
1314    cegcc*)
1315       WIN32_CPPFLAGS="-D_WIN32_WCE=0x0420"
1316       WIN32_CFLAGS="-mwin32"
1317       ;;
1318    mingw*)
1319       WIN32_CPPFLAGS="-D_WIN32_WINNT=0x0501"
1320       ;;
1321 esac
1322 AC_SUBST(WIN32_CPPFLAGS)
1323 AC_SUBST(WIN32_CFLAGS)
1324
1325
1326 ### Checks for linker characteristics
1327
1328 # use --enable-auto-import on Windows
1329
1330 lt_enable_auto_import=""
1331 case "$host_os" in
1332    mingw* | cegcc*)
1333       lt_enable_auto_import="-Wl,--enable-auto-import"
1334       ;;
1335 esac
1336 AC_SUBST(lt_enable_auto_import)
1337
1338 ### Checks for library functions
1339 AC_ISC_POSIX
1340 AC_FUNC_ALLOCA
1341 AC_CHECK_FUNCS([gettimeofday strlcpy execvp])
1342
1343 AC_COMPILE_IFELSE(
1344    [AC_LANG_PROGRAM(
1345        [[
1346 #include <math.h>
1347        ]],
1348        [[
1349 int i = isfinite(0);
1350        ]])],
1351    [
1352     AC_DEFINE(HAVE_ISFINITE, 1, [Define to 1 if you have `isfinite', as a function or macro.])
1353     have_isfinite="yes"
1354    ],
1355    [have_isfinite="no"])
1356
1357 AC_MSG_CHECKING([for isfinite])
1358 AC_MSG_RESULT([${have_isfinite}])
1359
1360 have_atfile_source=auto
1361 AC_ARG_ENABLE([atfile-source],
1362    [AC_HELP_STRING([--disable-atfile-source],
1363        [disable use of atfile source functions as openat and mkdirat @<:@default=detect@:>@])],
1364    [
1365     if test "x${enableval}" = "xyes" ; then
1366        have_atfile_source="yes"
1367     else
1368        have_atfile_source="no"
1369     fi],
1370    [have_atfile_source=auto])
1371
1372 if ! test "x${have_atfile_source}" = "xno" ; then
1373    AC_CHECK_FUNCS(mkdirat,
1374       [
1375        have_atfile_source="yes"
1376        AC_DEFINE(HAVE_ATFILE_SOURCE, 1, [mkdirat exists])
1377       ],
1378       [
1379        if test "x${have_atfile_source}" = "xyes" ; then
1380           AC_MSG_ERROR([required atfile-source but no mkdirat()])
1381        fi
1382        have_atfile_source="no"
1383       ])
1384 fi
1385
1386 ### Checks for optionnal feature
1387 AC_CHECK_FUNC([mallinfo],
1388    [
1389     have_mallinfo="yes"
1390     AC_DEFINE(HAVE_MALLINFO, 1, [Gather memory statistic])
1391    ],
1392    [have_mallinfo="no"])
1393
1394 ### Ecore modules
1395
1396 ## Core modules
1397
1398 # ecore_con
1399 ECORE_CHECK_MODULE([con], [${want_ecore_con}], [Con], [${have_addrinfo}])
1400
1401 have_curl="no"
1402 have_gnutls="no"
1403 have_openssl="no"
1404 have_cares="no"
1405 want_ipv6="yes"
1406 have_ipv6="no"
1407
1408 AC_ARG_ENABLE([ipv6],
1409    [AC_HELP_STRING([--disable-ipv6],
1410        [disable ipv6 functionality @<:@default=detect@:>@])],
1411    [
1412     if test "x${enableval}" = "xyes" ; then
1413        want_ipv6="yes"
1414     else
1415        want_ipv6="no"
1416     fi],
1417    [want_ipv6="auto"])
1418
1419 if test "x${have_ecore_con}" = "xyes" ; then
1420
1421    # Verify IPV6 availability in headers
1422    if test "x${want_ipv6}" != "xno" ; then
1423       AC_CHECK_TYPES([struct ipv6_mreq],
1424          [have_ipv6="yes"],
1425          [have_ipv6="no"],
1426          [[
1427 #ifdef HAVE_NETINET_IN_H
1428 # include <netinet/in.h>
1429 #endif
1430 #ifdef HAVE_WS2TCPIP_H
1431 # include <ws2tcpip.h>
1432 #endif
1433          ]])
1434    fi
1435
1436    if test "x${have_ipv6}" = "xyes" ; then
1437       AC_DEFINE(HAVE_IPV6, 1, [Define if IPV6 is supported])
1438    fi
1439
1440    ECORE_CHECK_CURL([${want_curl}],
1441       [
1442        have_curl="yes"
1443        requirements_ecore_con="libcurl ${requirements_ecore_con}"
1444       ],
1445       [have_curl="no"])
1446
1447    ECORE_CHECK_GNUTLS([${want_gnutls}],
1448       [have_gnutls="yes"],
1449       [have_gnutls="no"])
1450
1451    ECORE_CHECK_OPENSSL([${want_openssl}],
1452       [have_openssl="yes"],
1453       [have_openssl="no"])
1454
1455    if test "x${have_gnutls}" = "xyes" ; then
1456       requirements_ecore_con="gnutls ${requirements_ecore_con}"
1457       # no need to add it to req_ecore_ipc, since they
1458       # depends on ecore_con anyway.
1459    else
1460       if test "x${have_openssl}" = "xyes" ; then
1461          requirements_ecore_con="openssl ${requirements_ecore_con}"
1462          # no need to add it to req_ecore_ipc, since they
1463          # depends on ecore_con anyway.
1464       fi
1465    fi
1466
1467    ECORE_CHECK_CARES([${want_cares}],
1468       [
1469        have_cares="yes"
1470        requirements_ecore_con="libcares ${requirements_ecore_con}"
1471       ],
1472       [have_cares="no"])
1473
1474 fi
1475
1476 AM_CONDITIONAL([HAVE_CARES], [test "x${have_cares}" = "xyes"])
1477
1478 # ecore_ipc
1479 ECORE_CHECK_MODULE([ipc], [${want_ecore_ipc}], [Ipc], [${have_ecore_con}],
1480    [
1481      requirements_ecore_ipc="ecore-con >= 1.1.99 ${requirements_ecore_ipc}"
1482      requirements_ecore_evas="ecore-ipc >= 1.1.99 ${requirements_ecore_evas}"
1483    ])
1484
1485 # ecore_file
1486 ECORE_CHECK_MODULE([file], [${want_ecore_file}], [File])
1487
1488 have_poll="no"
1489 have_inotify="no"
1490 have_notify_win32="no"
1491 if test "x${have_ecore_file}" = "xyes" ; then
1492    ECORE_CHECK_POLL([${want_poll}], [have_poll="yes"], [have_poll="no"])
1493    ECORE_CHECK_INOTIFY([${want_inotify}], [have_inotify="yes"], [have_inotify="no"])
1494    ECORE_CHECK_NOTIFY_WIN32([${want_notify_win32}], [have_notify_win32="yes"], [have_notify_win32="no"])
1495
1496    if test "x${have_ecore_con}" = "xyes" ; then
1497       requirements_ecore_file="ecore-con >= 1.1.99 ${requirements_ecore_file}"
1498    else
1499       ECORE_CHECK_CURL([${want_curl}],
1500          [
1501           have_curl="yes"
1502           requirements_ecore_file="libcurl ${requirements_ecore_file}"
1503          ],
1504          [have_curl="no"])
1505    fi
1506
1507 fi
1508
1509 # ecore_config
1510 #ecore_config_deps="no"
1511 #if test "x${have_eet}" = "xyes" -a "x${have_evas}"  -a "x${have_ecore_ipc}" ; then
1512 #   ecore_config_deps="yes"
1513 #fi
1514
1515 #ECORE_CHECK_MODULE([config], [${want_ecore_config}], [Config], [${ecore_config_deps}],
1516 #   [requirements_ecore_config="ecore-ipc >= 1.1.99 evas >= 1.1.99 eet >= 1.5.0 ${requirements_ecore_config}"])
1517
1518 AM_CONDITIONAL(BUILD_ECORE_CONFIG, false)
1519
1520 # ecore_imf
1521
1522 ECORE_CHECK_MODULE([imf], [${want_ecore_imf}], [Imf])
1523
1524 # ecore_imf_evas
1525
1526 ecore_imf_evas_deps="no"
1527 if test "x${have_ecore_imf}" = "xyes" -a "x${have_evas}" = "xyes" ; then
1528    ecore_imf_evas_deps="yes"
1529 fi
1530
1531 ECORE_CHECK_MODULE([imf-evas], [${want_ecore_imf}], [Imf_Evas], [${ecore_imf_evas_deps}],
1532    [requirements_ecore_imf_evas="ecore-imf >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_imf_evas}"])
1533
1534 # ecore_input{_evas}
1535 ECORE_CHECK_MODULE([input], [${want_ecore_input}], [Input])
1536 ECORE_CHECK_MODULE([input-evas], [${want_ecore_input}], [Input_Evas], [${have_evas}],
1537    [requirements_ecore_input_evas="ecore-input >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_input}"])
1538
1539 # ecore_imf_xim
1540 AM_CONDITIONAL(BUILD_ECORE_IMF_XIM, false)
1541 ecore_imf_xim_deps="no"
1542 echo "have_ecore_x_xlib: ${have_ecore_x_xlib}"
1543 if test    "x${have_ecore_imf}" = "xyes" \
1544         -a "x${have_ecore_x_xlib}" = "xyes" \
1545         -a "x${have_ecore_input}" = "xyes" ; then
1546    ecore_imf_xim_deps="yes"
1547    AC_DEFINE(BUILD_ECORE_IMF_XIM, 1, [Ecore Imf XIM Support])
1548 fi
1549
1550 ECORE_CHECK_MODULE([imf-xim], [${want_ecore_imf}], [Imf_XIM], [${ecore_imf_xim_deps}],
1551    [requirements_ecore_imf_xim="ecore-imf >= 1.1.99 ecore-x >= 1.1.99 ecore-input >= 1.1.99 ${requirements_ecore_imf_xim}"])
1552
1553 # ecore_imf_scim
1554 PKG_CHECK_MODULES([SCIM], [scim], [have_scim="yes"], [have_scim="no"])
1555
1556 AM_CONDITIONAL(BUILD_ECORE_IMF_SCIM, false)
1557 ecore_imf_scim_deps="no"
1558 echo "have_ecore_x_xlib: ${have_ecore_x_xlib}"
1559 if test    "x${have_ecore_imf}" = "xyes" \
1560         -a "x${have_scim}" =  "xyes" \
1561         -a "x${have_ecore_input}" = "xyes" ; then
1562    ecore_imf_scim_deps="yes"
1563    AC_DEFINE(BUILD_ECORE_IMF_SCIM, 1, [Ecore Imf SCIM Support])
1564 fi
1565
1566 ECORE_CHECK_MODULE([imf-scim], [${want_ecore_imf}], [Imf_SCIM], [${ecore_imf_scim_deps}],
1567    [requirements_ecore_imf_scim="ecore-imf >= 1.1.0 ecore-x >= 1.1.0 ecore-input >= 1.1.0 ${requirements_ecore_imf_scim}"])
1568
1569 ## Graphic systems
1570
1571 # ecore_x{cb}
1572
1573 ecore_x_deps="no"
1574 if test "x${have_x}" = "xyes" -a \
1575         "x${have_ecore_input}" = "xyes" ; then
1576    ecore_x_deps="yes"
1577 fi
1578
1579 ECORE_CHECK_MODULE([x], [${want_ecore_x}], [X], [${ecore_x_deps}],
1580   [
1581    ecore_x_libs="$ecore_x_libs $x_libs"
1582    requirements_ecore_x="ecore-input >= 1.1.99 ${requirements_ecore_x}"
1583   ])
1584
1585 # ecore_win32
1586
1587 ECORE_CHECK_MODULE([win32], [${want_ecore_win32}], [Win32], [${have_ecore_input}],
1588    [
1589     ecore_win32_libs="-lole32 -lgdi32"
1590     requirements_ecore_win32="ecore-input >= 1.1.99 ${requirements_ecore_win32}"
1591    ])
1592 AC_SUBST(ecore_win32_libs)
1593
1594 # ecore_cocoa
1595
1596 ecore_cocoa_deps="no"
1597 if test "x${have_ecore_input}" = "xyes" -a "x${have_cocoa}" = "xyes" ; then
1598    ecore_cocoa_deps="yes"
1599 fi
1600
1601 ECORE_CHECK_MODULE([cocoa], [${want_ecore_cocoa}], [Cocoa], [${ecore_cocoa_deps}],
1602    [requirements_ecore_cocoa="ecore-input >= 1.1.99 ${requirements_ecore_cocoa}"])
1603
1604 # ecore_sdl
1605
1606 ecore_sdl_deps="no"
1607 if test "x${have_sdl}" = "xyes" -a "x${have_ecore_input}" = "xyes" ; then
1608    ecore_sdl_deps="yes"
1609 fi
1610
1611 ECORE_CHECK_MODULE([sdl], [${want_ecore_sdl}], [Sdl], [${ecore_sdl_deps}],
1612    [requirements_ecore_sdl="ecore-input >= 1.1.99 ${requirements_ecore_sdl}"])
1613
1614 ECORE_CHECK_MODULE([psl1ght], [${want_ecore_psl1ght}], [psl1ght], [${ecore_psl1ght_deps}],
1615    [requirements_ecore_psl1ght="ecore-input >= 1.1.99 ${requirements_ecore_psl1ght}"])
1616
1617 # ecore_fb
1618 ECORE_CHECK_MODULE([fb], [${want_ecore_fb}], [FB], [$have_fb])
1619
1620 if test "x${have_ecore_fb}" = "xyes" ; then
1621    ECORE_CHECK_TSLIB([${want_tslib}],
1622       [
1623        have_tslib="yes"
1624        requirements_ecore_fb="${_tslib_requirement} ${requirements_ecore_fb}"
1625       ],
1626       [have_tslib="no"])
1627 fi
1628
1629 # ecore_directfb
1630
1631 ECORE_CHECK_MODULE([directfb], [${want_ecore_directfb}], [DirectFB], [${have_directfb}],
1632    [requirements_ecore_directfb="directfb ${requirements_ecore_directfb}"])
1633
1634 # ecore_wince
1635
1636 ECORE_CHECK_MODULE([wince], [${want_ecore_wince}], [WinCE], [${have_ecore_input}],
1637    [requirements_ecore_win32="ecore-input >= 1.1.99 ${requirements_ecore_win32}"])
1638
1639 ## Ecore Evas
1640
1641 # ecore_evas
1642
1643 ecore_evas_deps="no"
1644 if test "x${have_evas}" = "xyes" -a "x${have_ecore_input}" = "xyes" -a "x${have_ecore_input_evas}" = "xyes" ; then
1645    ecore_evas_deps="yes"
1646 fi
1647
1648 ECORE_CHECK_MODULE([evas], [${want_ecore_evas}], [Evas], [${ecore_evas_deps}],
1649   [requirements_ecore_evas="ecore-input >= 1.1.99 ecore-input-evas >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_evas}"])
1650
1651 # ecore_evas_buffer
1652
1653 ECORE_EVAS_CHECK_MODULE([software-buffer],
1654    [${want_ecore_evas_software_buffer}],
1655    [Software Buffer],
1656    [yes])
1657
1658 # ecore_evas_x11
1659
1660 # ecore_evas_software_x11
1661
1662 ECORE_EVAS_CHECK_MODULE([software-x11],
1663    [${want_ecore_evas_software_x11}],
1664    [Software X11],
1665    [${have_ecore_x}])
1666
1667 have_ecore_evas_software_xlib="no"
1668 have_ecore_evas_software_xcb="no"
1669 if test "x$have_ecore_evas_software_x11" = "xyes" ; then
1670    have_ecore_evas_software_xlib=`${PKG_CONFIG} --variable=Xlib evas-software-x11`
1671    if test "x${have_ecore_evas_software_xlib}" = "xstatic"; then
1672       have_ecore_evas_software_xlib="yes"
1673    fi
1674    if test "x${have_ecore_evas_software_xlib}" = "xyes" -a "x${have_ecore_x_xlib}" = "xyes" ; then
1675       AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_XLIB, 1, [Evas Software Xlib Engine Support])
1676    fi
1677    have_ecore_evas_software_xcb=`${PKG_CONFIG} --variable=XCB evas-software-x11`
1678    if test "x$have_ecore_evas_software_xcb" = "xstatic"; then
1679       have_ecore_evas_software_xcb="yes"
1680    fi
1681    if test "x$have_ecore_evas_software_xcb" = "xyes" -a "x${have_ecore_x_xcb}" = "xyes" ; then
1682       AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_XCB, 1, [Evas Software XCB Engine Support])
1683    fi
1684 fi
1685
1686 # ecore_evas_opengl_x11
1687
1688 ECORE_EVAS_CHECK_MODULE([opengl-x11],
1689    [${want_ecore_evas_opengl_x11}],
1690    [OpenGL Xlib],
1691    [${have_ecore_x}])
1692
1693 have_ecore_evas_opengl_xlib="no"
1694 have_ecore_evas_opengl_xcb="no"
1695 if test "x${have_ecore_evas_opengl_x11}" = "xyes" -o "x${have_ecore_evas_opengl_x11}" = "xstatic" ; then
1696    have_ecore_evas_opengl_xlib=`${PKG_CONFIG} --variable=Xlib evas-opengl-x11`
1697    if test "x${have_ecore_evas_opengl_xlib}" = "xyes" ; then
1698       AC_DEFINE(BUILD_ECORE_EVAS_OPENGL_XLIB, 1, [OpenGL Xlib rendering backend])
1699    fi
1700
1701 # opengl does not work with xcb (yet)
1702    have_ecore_evas_opengl_xcb=`${PKG_CONFIG} --variable=XCB evas-opengl-x11`
1703    if test "x${have_ecore_evas_opengl_xcb}" = "xstatic"; then
1704       have_ecore_evas_opengl_xcb="yes"
1705    fi
1706    if test "x${have_ecore_evas_opengl_xcb}" = "xyes" -a "x${have_ecore_x_xcb}" = "xyes" ; then
1707       PKG_CHECK_MODULES(XCB_X11, x11-xcb,
1708         [ have_ecore_x_opengl_xcb="yes"
1709           requirements_ecore_x="x11-xcb ${requirements_ecore_x}"
1710           AC_DEFINE(BUILD_ECORE_X_OPENGL_XCB, 1, [Build support for XCB-based OpenGL])
1711           AC_DEFINE(BUILD_ECORE_EVAS_OPENGL_XCB, 1, [OpenGL XCB rendering backend])
1712         ],
1713         [ have_ecore_x_opengl_xcb="no" ])
1714     else
1715       have_ecore_x_opengl_xcb="no"
1716       AC_MSG_NOTICE("XCB-based OpenGL explicitly disabled")
1717     fi
1718 fi
1719
1720 # ecore_evas_software_x11 16 bits
1721
1722 ECORE_EVAS_CHECK_MODULE([software-16-x11],
1723    [${want_ecore_evas_software_16_x11}],
1724    [Software Xlib 16 bits],
1725    [${have_ecore_x_xlib}])
1726
1727 ECORE_EVAS_CHECK_MODULE([software-8-x11],
1728     [$want_ecore_evas_software_8_x11],
1729     [Software 8bit X11],
1730     $have_ecore_x_xcb)
1731
1732
1733 if test "x$have_ecore_evas_software_x11" = "xyes" -o \
1734         "x$have_ecore_evas_opengl_x11" = "xyes" -o \
1735         "x$have_ecore_evas_software_8_x11" = "xyes" -o \
1736         "x$have_ecore_evas_software_16_x11" = "xyes" -o \
1737         "x$have_ecore_evas_software_xcb" = "xyes"; then
1738    AC_DEFINE(BUILD_ECORE_EVAS_X11, 1, [Support for X Window Engines in Ecore_Evas])
1739    requirements_ecore_evas="ecore-x >= 1.1.99 ${requirements_ecore_evas}"
1740 fi
1741
1742 # ecore_evas_win32
1743
1744 ECORE_EVAS_CHECK_MODULE([software-gdi],
1745    [${want_ecore_evas_software_gdi}],
1746    [Software GDI],
1747    [${have_ecore_win32}])
1748
1749 ECORE_EVAS_CHECK_MODULE([software-ddraw],
1750    [${want_ecore_evas_software_ddraw}],
1751    [Software DirectDraw],
1752    [${have_ecore_win32}])
1753
1754 ECORE_EVAS_CHECK_MODULE([direct3d],
1755    [${want_ecore_evas_direct3d}],
1756    [Direct3d],
1757    [${have_ecore_win32}])
1758
1759 ECORE_EVAS_CHECK_MODULE([opengl-glew],
1760    [${want_ecore_evas_opengl_glew}],
1761    [Glew OpenGL],
1762    [${have_ecore_win32}])
1763
1764 ECORE_EVAS_CHECK_MODULE([software-16-ddraw],
1765    [${want_ecore_evas_software_16_ddraw}],
1766    [16 bpp Software DirectDraw],
1767    [${have_ecore_win32}])
1768
1769 if test "x${have_ecore_evas_software_gdi}" = "xyes" -o \
1770         "x${have_ecore_evas_software_ddraw}" = "xyes" -o \
1771         "x${have_ecore_evas_direct3d}" = "xyes" -o \
1772         "x${have_ecore_evas_opengl_glew}" = "xyes" -o \
1773         "x${have_ecore_evas_software_16_ddraw}" = "xyes" ; then
1774    AC_DEFINE(BUILD_ECORE_EVAS_WIN32, 1, [Support for Win32 Engine in Ecore_Evas])
1775    requirements_ecore_evas="ecore-win32 >= 1.1.99 ${requirements_ecore_evas}"
1776 fi
1777
1778 # ecore_evas_software_sdl
1779
1780 ECORE_EVAS_CHECK_MODULE([software-sdl],
1781    [${want_ecore_evas_software_sdl}],
1782    [Software SDL],
1783    [${have_ecore_sdl}],
1784    [requirements_ecore_evas="ecore-sdl >= 1.1.99 ${requirements_ecore_evas}"])
1785
1786 # ecore_evas_gl_sdl
1787
1788 ECORE_EVAS_CHECK_MODULE([opengl-sdl],
1789    [${want_ecore_evas_gl_sdl}],
1790    [OpenGL SDL],
1791    [${have_ecore_sdl}],
1792    [requirements_ecore_evas="ecore-sdl >= 1.1.99 ${requirements_ecore_evas}"])
1793
1794 # ecore_evas_cocoa
1795
1796 ECORE_EVAS_CHECK_MODULE([opengl-cocoa],
1797    [${want_ecore_evas_gl_cocoa}],
1798    [OpenGL Cocoa],
1799    [${have_ecore_cocoa}],
1800    [requirements_ecore_evas="ecore-cocoa >= 1.1.99 ${requirements_ecore_evas}"])
1801
1802 # ecore_evas_directfb
1803
1804 ECORE_EVAS_CHECK_MODULE([directfb],
1805    [${want_ecore_evas_directfb}],
1806    [DirectFB],
1807    [${have_ecore_directfb}],
1808    [requirements_ecore_evas="ecore-directfb >= 1.1.99 ${requirements_ecore_evas}"])
1809
1810 # ecore_evas_fb
1811
1812 ECORE_EVAS_CHECK_MODULE([fb],
1813    [${want_ecore_evas_fb}],
1814    [Linux Framebuffer],
1815    [${have_ecore_fb}],
1816    [requirements_ecore_evas="ecore-fb >= 1.1.99 ${requirements_ecore_evas}"])
1817
1818 # ecore_evas_wince
1819
1820 ECORE_EVAS_CHECK_MODULE([software-16-wince],
1821    [${want_ecore_evas_software_16_wince}],
1822    [16 bpp Software Windows CE],
1823    [${have_ecore_wince}],
1824    [requirements_ecore_evas="ecore-wince >= 1.1.99 ${requirements_ecore_evas}"])
1825
1826 # ecore_evas_ews
1827
1828 ECORE_EVAS_CHECK_MODULE_FULL([ews], [software-buffer],
1829    [${want_ecore_evas_ews}],
1830    [Ecore Evas Single Process Windowing System],
1831    [yes], [])
1832
1833 # ecore_evas_psl1ght
1834
1835 ECORE_EVAS_CHECK_MODULE([psl1ght],
1836    [${want_ecore_evas_psl1ght}],
1837    [PSL1GHT],
1838    [${have_ecore_psl1ght}],
1839    [requirements_ecore_evas="ecore-psl1ght >= 1.1.99 ${requirements_ecore_evas}"])
1840
1841 ### install and build examples
1842
1843 EFL_CHECK_BUILD_EXAMPLES([enable_build_examples="yes"], [enable_build_examples="no"])
1844 EFL_CHECK_INSTALL_EXAMPLES([enable_install_examples="yes"], [enable_install_examples="no"])
1845
1846 ### requirements
1847
1848 AC_SUBST(requirements_ecore)
1849 AC_SUBST(requirements_ecore_con)
1850 #AC_SUBST(requirements_ecore_config)
1851 AC_SUBST(requirements_ecore_directfb)
1852 AC_SUBST(requirements_ecore_evas)
1853 AC_SUBST(requirements_ecore_fb)
1854 AC_SUBST(requirements_ecore_file)
1855 AC_SUBST(requirements_ecore_imf)
1856 AC_SUBST(requirements_ecore_imf_evas)
1857 AC_SUBST(requirements_ecore_input)
1858 AC_SUBST(requirements_ecore_input_evas)
1859 AC_SUBST(requirements_ecore_ipc)
1860 AC_SUBST(requirements_ecore_cocoa)
1861 AC_SUBST(requirements_ecore_sdl)
1862 AC_SUBST(requirements_ecore_psl1ght)
1863 AC_SUBST(requirements_ecore_x)
1864 AC_SUBST(requirements_ecore_win32)
1865 AC_SUBST(requirements_ecore_wince)
1866 AC_SUBST(requirements_ecore_imf_xim)
1867 AC_SUBST(requirements_ecore_imf_scim)
1868
1869 AC_CONFIG_FILES([
1870 Makefile
1871 ecore-con.pc
1872 ecore-config.pc
1873 ecore-directfb.pc
1874 ecore-evas.pc
1875 ecore-fb.pc
1876 ecore-file.pc
1877 ecore-imf.pc
1878 ecore-imf-evas.pc
1879 ecore-ipc.pc
1880 ecore-x.pc
1881 ecore-input.pc
1882 ecore-input-evas.pc
1883 ecore-win32.pc
1884 ecore-sdl.pc
1885 ecore-cocoa.pc
1886 ecore-psl1ght.pc
1887 ecore-wince.pc
1888 ecore.pc
1889 doc/ecore.dox
1890 doc/Makefile
1891 doc/Doxyfile
1892 src/Makefile
1893 src/util/Makefile
1894 src/bin/Makefile
1895 src/lib/Makefile
1896 src/lib/ecore/Makefile
1897 src/lib/ecore_con/Makefile
1898 src/lib/ecore_config/Makefile
1899 src/lib/ecore_directfb/Makefile
1900 src/lib/ecore_evas/Makefile
1901 src/lib/ecore_fb/Makefile
1902 src/lib/ecore_file/Makefile
1903 src/lib/ecore_cocoa/Makefile
1904 src/lib/ecore_sdl/Makefile
1905 src/lib/ecore_psl1ght/Makefile
1906 src/lib/ecore_imf/Makefile
1907 src/lib/ecore_imf_evas/Makefile
1908 src/lib/ecore_input/Makefile
1909 src/lib/ecore_input_evas/Makefile
1910 src/lib/ecore_ipc/Makefile
1911 src/lib/ecore_win32/Makefile
1912 src/lib/ecore_wince/Makefile
1913 src/lib/ecore_x/Makefile
1914 src/lib/ecore_x/xlib/Makefile
1915 src/lib/ecore_x/xcb/Makefile
1916 src/examples/Makefile
1917 src/tests/Makefile
1918 src/modules/Makefile
1919 src/modules/immodules/Makefile
1920 src/modules/immodules/xim/Makefile
1921 src/modules/immodules/scim/Makefile
1922 ecore.spec
1923 $po_makefile_in
1924 ])
1925
1926 AC_OUTPUT
1927
1928 echo
1929 echo "$PACKAGE $VERSION"
1930 echo
1931 echo "Optional Modules:"
1932 echo
1933 echo " Core:"
1934 echo
1935 echo "  Ecore........................: always"
1936 echo "    Thread support.............: $have_threads"
1937 echo "    Thread safety..............: $want_thread_safety"
1938 echo "    GLib support...............: $have_glib"
1939 echo "    Always integrate GLib......: $want_glib_integration_always"
1940 echo "    Use g_main_loop............: $want_g_main_loop"
1941 echo "    Gathering memory statistic.: $have_mallinfo"
1942 echo "    Gathering timer allocation.: $want_ecore_timer_dump"
1943 echo "  Ecore_Con....................: $have_ecore_con"
1944 if test "x$have_ecore_con" = "xyes" ; then
1945   echo $ECHO_N "    OpenSSL....................: $have_openssl $ECHO_C"
1946 if test "x$have_gnutls" = "xyes" ; then
1947   echo " (disabled)"
1948 else
1949   echo
1950 fi
1951   echo "    IPv6.......................: $have_ipv6"
1952   echo "    GnuTLS.....................: $have_gnutls"
1953   echo "    CURL.......................: $have_curl"
1954   echo "    Local Sockets..............: $want_ecore_con_local_sockets"
1955 if test "x$want_ecore_con_local_sockets" = "xyes" ; then
1956   echo "      Abstract Sockets.........: $want_ecore_con_abstract_sockets"
1957 fi
1958   echo "    c-ares.....................: $have_cares"
1959 fi
1960 echo "  Ecore_Ipc....................: $have_ecore_ipc"
1961 if test "x$have_ecore_ipc" = "xyes" ; then
1962   echo $ECHO_N "    OpenSSL....................: $have_openssl $ECHO_C"
1963 if test "x$have_gnutls" = "xyes" ; then
1964   echo " (disabled)"
1965 else
1966   echo
1967 fi
1968   echo "    GnuTLS.....................: $have_gnutls"
1969 fi
1970 echo "  Ecore_File...................: $have_ecore_file"
1971 if test "x$have_ecore_file" = "xyes" ; then
1972   echo "    Inotify....................: $have_inotify"
1973   echo "    Windows notification.......: $have_notify_win32"
1974   echo "    Poll.......................: $have_poll"
1975   echo "    CURL.......................: $have_curl"
1976 fi
1977 #echo "  Ecore_Config.................: $have_ecore_config (deprecated)"
1978 echo "  Ecore_IMF....................: $have_ecore_imf"
1979 echo "    XIM........................: $have_ecore_imf_xim"
1980 echo "    SCIM.......................: $have_ecore_imf_scim"
1981 echo "  Ecore_IMF_Evas...............: $have_ecore_imf_evas"
1982 echo "  Ecore_Input..................: $have_ecore_input"
1983 echo "  Ecore_Input_Evas.............: $have_ecore_input_evas"
1984
1985 echo
1986 echo " Graphic systems:"
1987 echo
1988
1989 if test "x$have_ecore_x" = "xyes" ; then
1990   if test "x$have_ecore_x_xcb" = "xyes" ; then
1991     echo "  Ecore_X (XCB backend)........: $have_ecore_x_xcb"
1992     echo "    Xprint.....................: $have_ecore_x_xcb_xprint"
1993     echo "    Xinerama...................: $have_ecore_x_xcb_xinerama"
1994     echo "    Xrandr.....................: $have_ecore_x_xcb_randr"
1995     echo "    Xscreensaver...............: $have_ecore_x_xcb_screensaver"
1996     echo "    Xshape.....................: $have_ecore_x_xcb_shape"
1997     echo "    Xgesture...................: $have_ecore_x_xcb_gesture"
1998     echo "    Xsync......................: $have_ecore_x_xcb_sync"
1999     echo "    Xrender....................: $have_ecore_x_xcb_render"
2000     echo "    Xcomposite.................: $have_ecore_x_xcb_composite"
2001     echo "    Xfixes.....................: $have_ecore_x_xcb_xfixes"
2002     echo "    Xdamage....................: $have_ecore_x_xcb_damage"
2003     echo "    Xdpms......................: $have_ecore_x_xcb_dpms"
2004     echo "    Xtest......................: $have_ecore_x_xcb_xtest"
2005   else
2006     echo "  Ecore_X (Xlib backend).......: $have_ecore_x"
2007     echo "    Xcursor....................: $use_Xcursor"
2008     echo "    Xkb........................: $use_xkb"
2009     echo "    Xprint.....................: $use_xprint"
2010     echo "    Xinerama...................: $use_xinerama"
2011     echo "    Xrandr.....................: $use_xrandr"
2012     echo "    Xgesture...................: $use_xgesture"
2013     echo "    Xscreensaver...............: $use_xss"
2014     echo "    Xrender....................: $use_xrender"
2015     echo "    Xcomposite.................: $use_xcomposite"
2016     echo "    Xfixes.....................: $use_xfixes"
2017     echo "    Xdamage....................: $use_xdamage"
2018     echo "    Xdpms......................: $use_xdpms"
2019     echo "    Xtest......................: $use_xtest"
2020     echo "    XIM........................: $want_xim"
2021     echo "    Xi2........................: $use_xi2"
2022   fi
2023 else
2024   echo "  Ecore_X......................: $have_ecore_x"
2025 fi
2026 echo "  Ecore_Win32..................: $have_ecore_win32"
2027 echo "  Ecore_Cocoa..................: $have_ecore_cocoa"
2028 echo "  Ecore_SDL....................: $have_ecore_sdl"
2029 echo "  Ecore_FB.....................: $have_ecore_fb"
2030 if test "x${have_ecore_fb}" = "xyes" ; then
2031   echo "    Touchscreen................: $have_tslib"
2032 fi
2033 echo "  Ecore_DirectFB...............: $have_ecore_directfb"
2034 echo "  Ecore_WinCE..................: $have_ecore_wince"
2035 echo "  Ecore_PSL1GHT................: $have_ecore_psl1ght"
2036
2037 echo
2038 echo " Ecore Evas:"
2039 echo
2040
2041 echo "  Ecore_Evas...................: $have_ecore_evas"
2042 if test "x${have_ecore_evas}" = "xyes" ; then
2043   echo "    Software Memory Buffer.....: $have_ecore_evas_software_buffer"
2044   if test "x${have_ecore_evas_software_x11}" = "xyes" ; then
2045     echo "    Software X11...............: $have_ecore_evas_software_x11 (Xlib=${have_ecore_evas_software_xlib}) (XCB=${have_ecore_evas_software_xcb})"
2046   else
2047     echo "    Software X11...............: $have_ecore_evas_software_x11"
2048   fi
2049   if test "x${have_ecore_evas_opengl_x11}" = "xyes" ; then
2050     echo "    OpenGL X11.................: $have_ecore_evas_opengl_x11 (Xlib=${have_ecore_evas_opengl_xlib}) (XCB=${have_ecore_evas_opengl_xcb})"
2051   else
2052     echo "    OpenGL X11.................: $have_ecore_evas_opengl_x11"
2053   fi
2054   echo "    Software GDI...............: $have_ecore_evas_software_gdi"
2055   echo "    Software DirectDraw........: $have_ecore_evas_software_ddraw"
2056   echo "    Direct3D...................: $have_ecore_evas_direct3d"
2057   echo "    OpenGL Glew................: $have_ecore_evas_opengl_glew"
2058   echo "    Software SDL...............: $have_ecore_evas_software_sdl"
2059   echo "    OpenGL SDL.................: $have_ecore_evas_opengl_sdl"
2060   echo "    OpenGL Cocoa...............: $have_ecore_evas_opengl_cocoa"
2061   echo "    DirectFB...................: $have_ecore_evas_directfb"
2062   echo "    PSL1GHT....................: $have_ecore_evas_psl1ght"
2063   echo "    Software Framebuffer.......: $have_ecore_evas_fb"
2064   echo "    Software 8bit grayscale XCB: $have_ecore_evas_software_8_x11"
2065   echo "    Software 16bit X11.........: $have_ecore_evas_software_16_x11"
2066   echo "    Software 16bit DirectDraw..: $have_ecore_evas_software_16_ddraw"
2067   echo "    Software 16bit WinCE.......: $have_ecore_evas_software_16_wince"
2068   echo "    Sing.Proc. Windowing System: $have_ecore_evas_ews"
2069 fi
2070 echo
2071 echo "  Tests................: ${enable_tests}"
2072 echo "  Maximum log level....: ${with_max_log_level}"
2073 echo "Documentation..........: ${build_doc}"
2074 echo
2075 echo "Compilation............: make (or gmake)"
2076 echo "  CPPFLAGS.............: $CPPFLAGS"
2077 echo "  CFLAGS...............: $CFLAGS"
2078 echo "  CXXFLAGS.............: $CXXFLAGS"
2079 echo "  LDFLAGS..............: $LDFLAGS"
2080 echo
2081 echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
2082 echo "  prefix...............: $prefix"
2083 echo