Evas: Iterating the pixmap formats from xcb_setup can be expensive,
[framework/uifw/evas.git] / configure.ac
1 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3 m4_define([v_maj], [1])
4 m4_define([v_min], [0])
5 m4_define([v_mic], [999])
6 m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
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 # rw_PROG_OBJC_WORKS
22 # Check whether the Objective C compiler works.
23 AC_DEFUN([rw_PROG_OBJC_WORKS],
24 [m4_ifdef([AC_PROG_OBJC], [AC_REQUIRE([AC_PROG_OBJC])dnl
25 AC_CACHE_CHECK([whether the Objective C compiler works],
26                [rw_cv_prog_objc_works],
27                [AC_LANG_PUSH([Objective C])
28                 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
29                                [rw_cv_prog_objc_works=yes],
30                                [rw_cv_prog_objc_works=no])
31                 AC_LANG_POP([Objective C])])], [rw_cv_prog_objc_works=no])
32 ])
33
34 AC_INIT([evas], [v_ver], [enlightenment-devel@lists.sourceforge.net])
35 AC_PREREQ([2.52])
36 AC_CONFIG_SRCDIR([configure.ac])
37 AC_CONFIG_MACRO_DIR([m4])
38
39 AC_CONFIG_HEADERS([config.h])
40 AH_TOP([
41 #ifndef EFL_CONFIG_H__
42 #define EFL_CONFIG_H__
43 ])
44 AH_BOTTOM([
45 #endif /* EFL_CONFIG_H__ */
46 ])
47
48 AM_INIT_AUTOMAKE([1.6 dist-bzip2])
49 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
50
51 AC_GNU_SOURCE
52
53 AC_LIBTOOL_WIN32_DLL
54 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
55 AC_PROG_LIBTOOL
56
57 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
58 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
59 m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
60 m4_ifdef([v_rel], , [m4_define([v_rel], [])])
61 AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version])
62 AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version])
63 AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
64 AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
65 version_info="lt_cur:lt_rev:lt_age"
66 release_info="v_rel"
67 AC_SUBST(version_info)
68 AC_SUBST(release_info)
69 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
70 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
71 VMAJ=v_maj
72 AC_SUBST(VMAJ)
73
74 ### Needed information
75
76 AC_CANONICAL_BUILD
77 AC_CANONICAL_HOST
78
79 case "$host_os" in
80    mingw32ce* | cegcc*)
81       MODULE_ARCH="$host_os-$host_cpu"
82       ;;
83    *)
84       MODULE_ARCH="$host_os-$host_cpu-v_maj.v_min.v_mic"
85       ;;
86 esac
87 AC_SUBST(MODULE_ARCH)
88 AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture")
89
90 want_fontconfig="auto"
91 want_fribidi="auto"
92 want_harfbuzz="auto"
93 want_pixman="no"
94 want_evas_cserve="yes"
95
96 want_evas_engine_buffer="yes"
97 want_evas_engine_software_xlib="no"
98 want_evas_engine_software_xcb="no"
99 want_evas_engine_software_gdi="no"
100 want_evas_engine_software_ddraw="no"
101 want_evas_engine_software_sdl="no"
102 want_evas_engine_software_8_x11="no"
103 want_evas_engine_software_16_x11="no"
104 want_evas_engine_software_16_ddraw="no"
105 want_evas_engine_software_16_wince="no"
106 want_evas_engine_gl_xlib="no"
107 want_evas_engine_gl_xcb="no"
108 want_evas_engine_gl_sdl="no"
109 want_evas_engine_direct3d="no"
110 want_evas_engine_fb="no"
111 want_evas_engine_directfb="no"
112
113 want_evas_image_loader_edb="yes"
114 want_evas_image_loader_eet="yes"
115 want_evas_image_loader_gif="yes"
116 want_evas_image_loader_jpeg="yes"
117 want_evas_image_loader_pmaps="yes"
118 want_evas_image_loader_png="yes"
119 want_evas_image_loader_svg="yes"
120 want_evas_image_loader_tiff="yes"
121 want_evas_image_loader_xpm="yes"
122 want_evas_image_loader_bmp="yes"
123 want_evas_image_loader_tga="yes"
124 want_evas_image_loader_wbmp="yes"
125 want_evas_image_loader_ico="yes"
126 want_evas_image_loader_psd="yes"
127 want_evas_image_loader_generic="yes"
128
129 want_evas_font_loader_eet="yes"
130
131 case "$host_os" in
132    mingw32ce* | cegcc*)
133       want_fontconfig="no"
134       want_evas_engine_software_16_wince="yes"
135       want_evas_image_loader_edb="no"
136       want_evas_image_loader_gif="no"
137       want_evas_image_loader_svg="no"
138       want_evas_image_loader_tiff="no"
139       ;;
140    mingw*)
141       want_evas_engine_software_gdi="yes"
142       want_evas_engine_software_ddraw="yes"
143       want_evas_engine_direct3d="yes"
144       want_evas_engine_software_16_ddraw="yes"
145       want_evas_image_loader_edb="no"
146       want_evas_image_loader_svg="no"
147       ;;
148    darwin*)
149       want_evas_engine_software_xlib="auto"
150       ;;
151    *)
152       want_evas_engine_software_xlib="auto"
153       want_evas_engine_gl_xlib="auto"
154       want_evas_engine_software_xcb="no"
155       want_evas_engine_gl_xcb="no"
156       want_evas_engine_fb="auto"
157 ### no - not ready/usable/complete
158 #      want_evas_engine_software_8_x11="auto"
159 #      want_evas_engine_software_16_x11="auto"
160       ;;
161 esac
162
163 requirement_evas=""
164
165
166 ### Additional options to configure
167
168 # when used, that option makes configure script fails when
169 # a requirement is selected, but not met.
170 use_strict="no"
171 AC_ARG_ENABLE([strict],
172    AC_HELP_STRING([--enable-strict], [enable strict checking mode. @<:@default==disabled@:>@]),
173    [use_strict="yes"],
174    [use_strict="no"])
175
176 # Simple X11 build/link
177 AC_ARG_ENABLE([simple-x11],
178    AC_HELP_STRING([--enable-simple-x11], [enable simple x11 linking]),
179    [
180     if test "x${enableval}" = "xyes" ; then
181        want_evas_simple_x11="yes"
182     else
183        want_evas_simple_x11="no"
184     fi
185    ])
186
187
188 ### Checks for programs
189
190 m4_ifdef([AC_PROG_OBJC],
191    [
192     AC_PROG_OBJC
193     _AM_DEPENDENCIES(OBJC)
194    ],
195    [
196     dnl#AC_CHECK_TOOL([OBJC], [gcc])
197     dnl#AC_SUBST([OBJC])
198     dnl#AC_SUBST([OBJCFLAGS])
199    ])
200
201 rw_PROG_OBJC_WORKS
202
203 AC_PROG_CXX
204 AC_PROG_CC
205
206 # pkg-config
207 PKG_PROG_PKG_CONFIG
208
209 # Check whether pkg-config supports Requires.private
210 if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then
211    pkgconfig_requires_private="Requires.private"
212 else
213    pkgconfig_requires_private="Requires"
214 fi
215 AC_SUBST(pkgconfig_requires_private)
216
217 # doxygen program for documentation building
218 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
219
220
221 ### Checks for libraries
222
223 # Evil library for compilation on Windows CE
224
225 case "$host_os" in
226    mingw* | cegcc*)
227       PKG_CHECK_MODULES([EVIL], [evil])
228       AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed])
229       requirement_evas="evil ${requirement_evas}"
230    ;;
231 esac
232
233 ## strong dependencies
234
235 # Eina
236 PKG_CHECK_MODULES([EINA], [eina >= 1.0.0])
237 CPPFLAGS_SAVE="$CPPFLAGS"
238 CPPFLAGS="$CPPFLAGS $EINA_CFLAGS"
239 AC_CHECK_SIZEOF(Eina_Unicode,, [#include <Eina.h>])
240 CPPFLAGS="$CPPFLAGS_SAVE"
241
242 # Freetype
243 PKG_CHECK_MODULES([FREETYPE], [freetype2 >= 9.3.0])
244
245 requirement_evas="freetype2 eina >= 1.0.0 ${requirement_evas}"
246
247 ## optional dependencies
248
249 # FontConfig
250 have_fontconfig="no"
251 AC_ARG_ENABLE([fontconfig],
252    AC_HELP_STRING([--disable-fontconfig],
253       [disable fontconfig for finding fonts. @<:@default=enabled@:>@]),
254    [
255     if test "x${enableval}" = "xyes" ; then
256        want_fontconfig="yes"
257     else
258        want_fontconfig="no"
259     fi
260    ])
261
262
263 if test "x${want_fontconfig}" = "xyes" -o "x${want_fontconfig}" = "xauto" ; then
264    PKG_CHECK_MODULES([FONTCONFIG],
265       [fontconfig],
266       [
267        have_fontconfig="yes"
268        AC_DEFINE(HAVE_FONTCONFIG, 1, [have fontconfig searching capabilities])
269        requirement_evas="fontconfig ${requirement_evas}"
270       ],
271       [
272        if test "x${want_fontconfig}" = "xyes" -a "x${use_strict}" = "xyes" ; then
273           AC_MSG_ERROR([Fontconfig not found (strict dependencies checking)])
274        fi
275       ])
276 fi
277
278 # linebreak
279 have_linebreak="no"
280 want_linebreak="yes"
281 AC_ARG_ENABLE([liblinebreak],
282    AC_HELP_STRING([--disable-liblinebreak],
283       [disable linking against liblinebreak. @<:@default=enabled@:>@]),
284    [
285     if test "x${enableval}" = "xyes" ; then
286        want_linebreak="yes"
287     else
288        want_linebreak="no"
289     fi
290    ])
291
292
293 AM_CONDITIONAL(EVAS_USE_LINEBREAK, test "x${want_linebreak}" = "xyes")
294 if test "x${want_linebreak}" = "xyes" ; then
295    have_linebreak="yes"
296    LINEBREAK_CFLAGS='-I$(top_srcdir)/src/static_deps/liblinebreak'
297    LINEBREAK_LIBS='$(top_builddir)/src/static_deps/liblinebreak/liblinebreak.la'
298    AC_SUBST(LINEBREAK_CFLAGS)
299    AC_SUBST(LINEBREAK_LIBS)
300    AC_DEFINE(HAVE_LINEBREAK, 1, [have liblinebreak support])
301 else
302    have_linebreak="no"
303 fi
304
305 # fribidi support
306 have_fribidi="no"
307 AC_ARG_ENABLE([fribidi],
308    AC_HELP_STRING([--disable-fribidi],
309       [disable bidirectional text support. @<:@default=enabled@:>@]),
310    [
311     if test "x${enableval}" = "xyes" ; then
312        want_fribidi="yes"
313     else
314        want_fribidi="no"
315     fi
316    ])
317
318 if test "x${want_fribidi}" = "xyes" -o "x${want_fribidi}" = "xauto" ; then
319    PKG_CHECK_MODULES([FRIBIDI],
320       [fribidi >= 0.19.2],
321       [
322        have_fribidi="yes"
323        AC_DEFINE(HAVE_FRIBIDI, 1, [have fribidi support])
324        requirement_evas="fribidi ${requirement_evas}"
325        CPPFLAGS_SAVE="$CPPFLAGS"
326        CPPFLAGS="$CPPFLAGS $FRIBIDI_CFLAGS"
327        AC_CHECK_SIZEOF(FriBidiChar,, [#include <fribidi/fribidi.h>])
328        CPPFLAGS="$CPPFLAGS_SAVE"
329       ],
330       [
331        if test "x$want_fribidi" = "xyes" -a "x$use_strict" = "xyes" ; then
332           AC_MSG_ERROR([Fribidi not found (strict dependencies checking)])
333        fi
334       ])
335 fi
336
337 if test "x${have_fribidi}" = "xno"; then
338   HAS_BIDI=0
339 fi
340
341 # harfbuzz support
342 have_harfbuzz="no"
343 have_harfbuzz_ft="no"
344 AC_ARG_ENABLE([harfbuzz],
345    AC_HELP_STRING([--disable-harfbuzz],
346       [disable complex text shaping and layouting support. @<:@default=enabled@:>@]),
347    [
348     if test "x${enableval}" = "xyes" ; then
349        want_harfbuzz="yes"
350     else
351        want_harfbuzz="no"
352     fi
353    ])
354
355 if test "x${want_harfbuzz}" = "xyes" -o "x${want_harfbuzz}" = "xauto" ; then
356    PKG_CHECK_MODULES([HARFBUZZ],
357       [harfbuzz >= 0.6.0],
358       [
359        have_harfbuzz="yes"
360        requirement_evas="harfbuzz ${requirement_evas}"
361       ],
362       [
363        if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then
364           AC_MSG_ERROR([Harfbuzz not found (strict dependencies checking)])
365        fi
366       ])
367    if test "x$have_harfbuzz" = "xyes" ; then
368
369       CPPFLAGS_SAVE="$CPPFLAGS"
370       CPPFLAGS="$CPPFLAGS $HARFBUZZ_CFLAGS $FREETYPE_CFLAGS"
371 # must have for usage with harfbuzz although harfbuzz may not have it.
372
373       AC_CHECK_HEADER(hb-ft.h,
374           [
375            have_harfbuzz_ft="yes"
376            #Depend on harfbuzz ft for harfbuzz support
377            AC_DEFINE(HAVE_HARFBUZZ, 1, [have harfbuzz support])
378           ],
379           [
380            if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then
381               AC_MSG_ERROR([Harfbuzz-ft not found (strict dependencies checking)])
382            fi
383            have_harfbuzz="no"
384           ])
385       CPPFLAGS="$CPPFLAGS_SAVE"
386    fi
387 fi
388
389 if test "x${have_harfbuzz}" = "xno"; then
390   HAS_HARFBUZZ=0
391 fi
392
393 # Pixman
394 have_pixman="no"
395 AC_ARG_ENABLE([pixman],
396    AC_HELP_STRING([--disable-pixman],
397       [disable pixman for software rendering. @<:@default=enabled@:>@]),
398    [
399     if test "x${enableval}" = "xyes" ; then
400        want_pixman="yes"
401     else
402        want_pixman="no"
403     fi
404    ])
405
406
407 if test "x${want_pixman}" = "xyes" -o "x${want_pixman}" = "xauto" ; then
408    PKG_CHECK_MODULES([PIXMAN],
409       [pixman-1],
410       [
411        have_pixman="yes"
412        AC_DEFINE(HAVE_PIXMAN, 1, [have pixman for rendering])
413        requirement_evas="pixman-1 ${requirement_evas}"
414       ],
415       [
416        if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
417           AC_MSG_ERROR([Pixman not found (strict dependencies checking)])
418        fi
419       ])
420 fi
421
422 ### Checks for header files
423 AC_HEADER_STDC
424 AC_CHECK_HEADERS([unistd.h stdint.h sys/param.h netinet/in.h])
425
426 EFL_CHECK_PATH_MAX
427
428
429 ### Checks for types
430
431
432 ### Checks for structures
433
434
435 ### Checks for compiler characteristics
436 AC_C_CONST
437 AC_C_BIGENDIAN
438 AC_C___ATTRIBUTE__
439 AM_PROG_CC_STDC
440
441 WIN32_CPPFLAGS=""
442 case "$host_os" in
443    mingw32ce* | cegcc*)
444       WIN32_CPPFLAGS="-D_WIN32_WCE=0x0420"
445       ;;
446    mingw*)
447       WIN32_CPPFLAGS="-D_WIN32_WINNT=0x0500"
448       ;;
449 esac
450 AC_SUBST(WIN32_CPPFLAGS)
451
452 WIN32_CFLAGS=""
453 case "${host_os}" in
454    cegcc*)
455       WIN32_CFLAGS="-mwin32"
456    ;;
457 esac
458 AC_SUBST(WIN32_CFLAGS)
459
460
461 ### Checks for linker characteristics
462 lt_enable_auto_import=""
463 case "${host_os}" in
464    mingw* | cegcc*)
465       AC_DEFINE(EFL_EVAS_BUILD, 1, [Define to mention that evas is built])
466       lt_enable_auto_import="-Wl,--enable-auto-import"
467    ;;
468 esac
469 AC_SUBST(lt_enable_auto_import)
470
471
472 ### Checks for library functions
473
474 AC_ISC_POSIX
475
476 # alloca
477 AC_FUNC_ALLOCA
478
479 # fnmatch
480 EFL_CHECK_FNMATCH([], [AC_MSG_ERROR([Cannot find fnmatch()])])
481
482 # dlopen
483 dlopen_libs=""
484 case "$host_os" in
485   mingw32ce* | cegcc*)
486 # managed by evil
487     AC_DEFINE(HAVE_DLADDR)
488   ;;
489   mingw*)
490 # nothing on mingw platform
491   ;;
492   *)
493     AC_CHECK_FUNCS(dlopen, res=yes, res=no)
494     if test "x$res" = "xyes"; then
495       AC_CHECK_FUNCS(dladdr, AC_DEFINE(HAVE_DLADDR))
496     else
497       AC_CHECK_LIB(dl, dlopen, res=yes, res=no)
498       if test "x$res" = "xyes"; then
499         AC_CHECK_LIB(dl, dladdr, AC_DEFINE(HAVE_DLADDR))
500         dlopen_libs=-ldl
501       else
502         AC_MSG_ERROR(Cannot find dlopen)
503       fi
504     fi
505 esac
506 AC_SUBST(dlopen_libs)
507
508 SHM_OPEN_LINK=""
509 AC_MSG_CHECKING([whether shm_open() is present])
510 LIBS_save=${LIBS}
511 LIBS="${LIBS} -lrt"
512 AC_LINK_IFELSE(
513    [AC_LANG_PROGRAM(
514       [[
515 #include <sys/stat.h>
516 #include <sys/mman.h>
517 #include <fcntl.h>
518       ]],
519       [[
520 int fd;
521 fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
522 shm_unlink("/");
523       ]])],
524    [
525     have_shm_open="yes"
526     AC_DEFINE(HAVE_SHM_OPEN, 1, [Have shm_open() call])
527     SHM_OPEN_LINK="-lrt"
528    ],
529    [have_shm_open="no"])
530 LIBS=${LIBS_save}
531 AC_MSG_RESULT([${have_shm_open}])
532 AC_SUBST(SHM_OPEN_LINK)
533
534 # (shm_open (for cache server)
535 AC_ARG_ENABLE([evas-cserve],
536    AC_HELP_STRING([--disable-evas-cserve],
537       [disable shared cache server support. @<:@default=enabled@:>@]),
538    [
539     if test "x${enableval}" = "xyes" ; then
540        want_evas_cserve="yes"
541     else
542        want_evas_cserve="no"
543     fi
544    ])
545 AC_MSG_CHECKING(whether to build shared cache server and support)
546 AC_MSG_RESULT(${want_evas_cserve})
547
548 if test "x${want_evas_cserve}" = "xyes" ; then
549    AC_MSG_CHECKING([whether shm_open() is present])
550    LIBS_save=${LIBS}
551    LIBS="${LIBS} -lrt"
552    AC_LINK_IFELSE(
553       [AC_LANG_PROGRAM(
554          [[
555 #include <sys/types.h>
556 #include <sys/mman.h>
557 #include <fcntl.h>
558          ]],
559          [[
560 int fd;
561 fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
562 shm_unlink("/");
563          ]])],
564       [want_evas_cserve="yes"],
565       [want_evas_cserve="no"])
566    LIBS=${LIBS_save}
567    AC_MSG_RESULT([${want_evas_cserve}])
568 fi
569
570 if test "x${want_evas_cserve}" = "xyes" ; then
571   AC_DEFINE(EVAS_CSERVE, 1, [Shared caceh server.])
572 fi
573
574 AM_CONDITIONAL([EVAS_CSERVE], [test "x${want_evas_cserve}" = "xyes"])
575
576
577
578 #######################################
579 ## GL force flavor gles
580 gl_flavor_gles="no"
581 AC_MSG_CHECKING(whether to build GLES flavor of GL)
582 AC_ARG_ENABLE(gl-flavor-gles,
583   AC_HELP_STRING([--enable-gl-flavor-gles], [enable gles falvor of gl instead of standard]),
584   [
585       if test "x$enableval" = "xyes" ; then
586         AC_MSG_RESULT(yes)
587         gl_flavor_gles="yes"
588       else
589         AC_MSG_RESULT(no)
590         gl_flavor_gles="no"
591       fi
592   ], [
593       AC_MSG_RESULT(no)
594       gl_flavor_gles="no"
595   ]
596 )
597
598 #######################################
599 ## GLES variety sgx
600 gles_variety_sgx="no"
601 AC_MSG_CHECKING(whether to build GLES variety for SGX)
602 AC_ARG_ENABLE(gles-variety-sgx,
603   AC_HELP_STRING([--enable-gles-variety-sgx], [GLES variety SGX 3D unit]),
604   [
605       if test "x$enableval" = "xyes" ; then
606         AC_MSG_RESULT(yes)
607         AC_DEFINE(GLES_VARIETY_SGX, 1, [Imagination SGX GLES2 support])
608         gles_variety_sgx="yes"
609       else
610         AC_MSG_RESULT(no)
611         gles_variety_sgx="no"
612       fi
613   ], [
614       AC_MSG_RESULT(no)
615       gles_variety_sgx="no"
616   ]
617 )
618
619 #######################################
620 ## GLES variety s3c6410
621 gles_variety_s3c6410="no"
622 AC_MSG_CHECKING(whether to build GLES variety for s3c6410)
623 AC_ARG_ENABLE(gles-variety-s3c6410,
624   AC_HELP_STRING([--enable-gles-variety-s3c6410], [GLES variety s3c6410 3D unit]),
625   [
626       if test "x$enableval" = "xyes" ; then
627         AC_MSG_RESULT(yes)
628         AC_DEFINE(GLES_VARIETY_S3C6410, 1, [Samsung S3c6410 GLES2 support])
629         gles_variety_s3c6410="yes"
630       else
631         AC_MSG_RESULT(no)
632         gles_variety_s3c6410="no"
633       fi
634   ], [
635       AC_MSG_RESULT(no)
636       gles_variety_s3c6410="no"
637   ]
638 )
639
640 if test "x$gl_flavor_gles" = "xyes"; then
641   eng=""
642   if test "x$gles_variety_sgx" = "xyes"; then eng="x"$eng; fi
643   if test "x$gles_variety_s3c6410" = "xyes"; then eng="x"$eng; fi
644   if test "x$eng" = "xx"; then
645     eng=""
646   else
647      AC_MSG_ERROR(
648        [Please enable just 1 OpenGL-ES flavor. Choices are:
649           --enable-gles-variety-sgx (Most GL-ES2 GPUs with shader compiler)
650           --enable-gles-variety-s3c6410 (s3c6410 with offline shader compiler)
651         You will also need to enable the OpenGL engine for X11 with:
652           --enable-gl-xlib or --enable-gl-xcb
653        ])
654   fi
655 fi
656
657 #####################################################################
658 ## Engines
659
660 EVAS_CHECK_ENGINE([buffer], [${want_evas_engine_buffer}], [yes], [Buffer])
661
662 EVAS_CHECK_ENGINE([software-gdi], [${want_evas_engine_software_gdi}], [no], [Software GDI])
663
664 EVAS_CHECK_ENGINE([software-ddraw], [${want_evas_engine_software_ddraw}], [no], [Software DirectDraw])
665
666 EVAS_CHECK_ENGINE([direct3d], [${want_evas_engine_direct3d}], [no], [Direct3D])
667
668 EVAS_CHECK_ENGINE([software-sdl], [${want_evas_engine_software_sdl}], [no], [Software SDL])
669
670 EVAS_CHECK_ENGINE([gl-sdl], [${want_evas_engine_gl_sdl}], [no], [OpenGL SDL])
671
672 EVAS_CHECK_ENGINE([fb], [${want_evas_engine_fb}], [no], [Framebuffer])
673
674 EVAS_CHECK_ENGINE([directfb], [${want_evas_engine_directfb}], [no], [DirectFB])
675
676 EVAS_CHECK_ENGINE([software-8-x11], [${want_evas_engine_software_8_x11}], [no], [Software X11 8 bits grayscale])
677
678 EVAS_CHECK_ENGINE([software-16-x11], [${want_evas_engine_software_16_x11}], [no], [Software X11 16 bits])
679
680 EVAS_CHECK_ENGINE([software-16-ddraw], [${want_evas_engine_software_16_ddraw}], [no], [Software DirectDraw 16 bits])
681
682 EVAS_CHECK_ENGINE([software-16-wince], [${want_evas_engine_software_16_wince}], [no], [Software Windows CE 16 bits])
683
684 # SDL primitive
685 sdl_primitive="no"
686
687 AC_ARG_ENABLE([sdl-primitive],
688    [AC_HELP_STRING([--enable-sdl-primitive], [])],
689    [sdl_primitive=${enableval}]
690 )
691 AC_MSG_CHECKING([whether to use SDL primitive when possible])
692 AC_MSG_RESULT([${sdl_primitive}])
693
694 if test "x${sdl_primitive}" = "xyes" ; then
695    AC_DEFINE([ENGINE_SDL_PRIMITIVE], [1], [Use SDL primitive when possible])
696 fi
697
698 # if software generic need to be build as part of libevas.so
699 have_static_software_generic="no"
700 AC_ARG_ENABLE([static-software-generic],
701    [AC_HELP_STRING([--enable-static-software-generic], [Build software generic engine as part of libevas])],
702    [have_static_software_generic=${enableval}]
703 )
704 AC_MSG_CHECKING([Whether to build software generic engine as part of libevas])
705 AC_MSG_RESULT([${have_static_software_generic}])
706
707 if test "x${have_static_module}" = "xyes" -a "x${have_static_software_generic}" = "xno"; then
708    AC_MSG_WARN([Forcing --enable-static-software-generic as engines must be compiled statically])
709    have_static_software_generic="yes"
710 fi
711
712 AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, test "x${have_static_software_generic}" = "xyes")
713 if test "x${have_static_software_generic}" = "xyes"; then
714    AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, [1], [Build software generic engine as part of libevas])
715 fi
716
717
718 ######## Software Engine ########
719 have_evas_engine_software_x11="no"
720 have_evas_engine_software_xcb="no"
721 have_evas_engine_software_xlib="no"
722 build_software_xcb=
723
724 ## XCB Checks ##
725 want_xcb="no"
726 AC_MSG_CHECKING(whether to build Software XCB Engine)
727 AC_ARG_ENABLE(software-xcb,
728   AC_HELP_STRING([--enable-software-xcb], [enable Software XCB Engine. @<:@default=disabled@:>@]), [want_xcb=$enableval]
729 )
730 if test "x$want_xcb" != "xno" ; then
731   EVAS_CHECK_ENGINE([software-xcb], [${want_evas_engine_software_xcb}], [no], [Software XCB])
732   if test "x$have_evas_engine_software_xcb" != "xno" ; then
733     build_software_xcb="yes"
734     have_evas_engine_software_x11="yes"
735     AC_DEFINE_UNQUOTED(BUILD_ENGINE_SOFTWARE_X11, [1], [Build software X11 engine])
736     AC_DEFINE_UNQUOTED(BUILD_ENGINE_SOFTWARE_XCB, [1], [Build software XCB backend])
737   fi
738 else
739   AC_MSG_RESULT(no)
740   build_software_xcb="no"
741 fi
742
743 ## If we are not building XCB, then we can build XLib ##
744
745 if test "x$build_software_xcb" = "xno" ; then
746   EVAS_CHECK_ENGINE([software-xlib], [${want_evas_engine_software_xlib}], [no], [Software Xlib])
747   # if software_x11 is available, define everything needed for X11
748   if test "x$have_evas_engine_software_xlib" != "xno" ; then
749     have_evas_engine_software_x11="yes"
750     AC_DEFINE_UNQUOTED(BUILD_ENGINE_SOFTWARE_X11, [1], [Build software X11 engine])
751     AC_DEFINE_UNQUOTED(BUILD_ENGINE_SOFTWARE_XLIB, [1], [Build software Xlib backend])
752   fi
753 else
754   have_evas_engine_software_xlib="no"
755 fi
756
757 if test "x$have_evas_engine_software_xlib" = "xstatic" -o "x$have_evas_engine_software_xcb" = "xstatic"; then
758    AC_DEFINE_UNQUOTED(EVAS_STATIC_BUILD_SOFTWARE_X11, [1], [Build software X11 engine as part of libevas])
759 fi
760
761 AC_SUBST(have_evas_engine_software_xcb)
762 AC_SUBST(have_evas_engine_software_xlib)
763
764 AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_XLIB], [test "x${have_evas_engine_software_xlib}" != "xno"])
765 AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_XCB], [test "x${have_evas_engine_software_xcb}" != "xno"])
766 AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_X11], [test "x${have_evas_engine_software_x11}" != "xno"])
767
768 AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_X11], [test "x${have_evas_engine_software_xcb}" = "xstatic" -o "x${have_evas_engine_software_xlib}" = "xstatic"])
769 AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_XLIB], [test "x${have_evas_engine_software_xlib}" = "xstatic"])
770 AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_XCB], [test "x${have_evas_engine_software_xcb}" = "xstatic"])
771
772 AC_SUBST(have_evas_engine_software_x11)
773
774
775 ######## OpenGL Engine ########
776 have_evas_engine_gl_x11="no"
777 have_evas_engine_gl_xcb="no"
778 build_gl_xcb="no"
779
780 ## XCB Checks ##
781 want_gl_xcb="no"
782 AC_MSG_CHECKING(whether to build OpenGL XCB Engine)
783 AC_ARG_ENABLE(gl-xcb,
784   AC_HELP_STRING([--enable-gl-xcb], [enable OpenGL XCB Engine. @<:@default=disabled@:>@]), [want_gl_xcb=$enableval]
785 )
786 if test "x$want_gl_xcb" = "xyes" ; then
787   EVAS_CHECK_ENGINE([gl-xcb], [${want_evas_engine_gl_xcb}], [no], [OpenGL XCB])
788   if test "x$have_evas_engine_gl_xcb" != "xno" ; then
789     build_gl_xcb="yes"
790     have_evas_engine_gl_x11="yes"
791    AC_DEFINE(BUILD_ENGINE_GL_X11, [1], [Build GL X11 engine])
792    AC_DEFINE(BUILD_ENGINE_GL_XCB, [1], [Build GL Xcb backend])
793     if test "x$have_evas_engine_gl_xcb" = "xstatic" ; then
794       AC_DEFINE(EVAS_STATIC_BUILD_GL_X11, [1], [Build GL X11 engine as part of libevas])
795     fi
796   fi
797   AC_SUBST(have_evas_engine_gl_xcb)
798 else
799   AC_MSG_RESULT(no)
800   build_gl_xcb="no"
801 fi
802
803 ## If we are not building XCB, then we can build XLib ##
804
805 if test "x$build_gl_xcb" = "xno" ; then
806   EVAS_CHECK_ENGINE([gl-xlib], [${want_evas_engine_gl_xlib}], [no], [OpenGL XLib])
807   if test "x$have_evas_engine_gl_xlib" != "xno" ; then
808     have_evas_engine_gl_x11="yes"
809     AC_DEFINE_UNQUOTED(BUILD_ENGINE_GL_X11, [1], [Build OpenGL X11 engine])
810     AC_DEFINE_UNQUOTED(BUILD_ENGINE_GL_XLIB, [1], [Build OpenGL Xlib backend])
811     if test "x$have_evas_engine_gl_xlib" = "xstatic" ; then
812       AC_DEFINE_UNQUOTED(EVAS_STATIC_BUILD_GL_X11, [1], [Build OpenGL X11 engine as part of libevas])
813     fi
814   fi
815 else
816   have_evas_engine_gl_xlib="no"
817 fi
818 AC_SUBST(have_evas_engine_gl_xlib)
819
820 AM_CONDITIONAL([BUILD_ENGINE_GL_XLIB], [test "x${have_evas_engine_gl_xlib}" != "xno"])
821 AM_CONDITIONAL([BUILD_ENGINE_GL_XCB], [test "x${have_evas_engine_gl_xcb}" != "xno"])
822 AM_CONDITIONAL([BUILD_ENGINE_GL_X11], [test "x${have_evas_engine_gl_x11}" != "xno"])
823
824 AM_CONDITIONAL([EVAS_STATIC_BUILD_GL_X11], [test "x${have_evas_engine_gl_xcb}" = "xstatic" -o "x${have_evas_engine_gl_xlib}" = "xstatic"])
825 AM_CONDITIONAL([EVAS_STATIC_BUILD_GL_XLIB], [test "x${have_evas_engine_gl_xlib}" = "xstatic"])
826 AM_CONDITIONAL([EVAS_STATIC_BUILD_GL_XCB], [test "x${have_evas_engine_gl_xcb}" = "xstatic"])
827
828 AC_SUBST(have_evas_engine_gl_x11)
829
830 # common gl
831 have_evas_engine_gl_common="no"
832 have_static_evas_engine_gl_common="no"
833 if test "x$have_evas_engine_gl_xlib" = "xyes" \
834    || test "x$have_evas_engine_gl_xcb" = "xyes" \
835    || test "x$have_evas_engine_gl_sdl" = "xyes"; then
836    have_evas_engine_gl_common="yes"
837 fi
838 if test "x$have_evas_engine_gl_xlib" = "xstatic" \
839    || test "x$have_evas_engine_gl_xcb" = "xstatic" \
840    || test "x$have_evas_engine_gl_sdl" = "xstatic"; then
841    have_evas_engine_gl_common="yes"
842    have_static_evas_engine_gl_common="yes"
843 fi
844
845 if test "x$have_evas_engine_gl_common" = "xyes"; then
846    evas_engine_gl_common_libs=""
847    AC_DEFINE(BUILD_ENGINE_GL_COMMON, [1], [Generic OpenGL Rendering Support])
848 fi
849
850 AC_SUBST([evas_engine_gl_common_libs])
851
852 AM_CONDITIONAL(BUILD_ENGINE_GL_COMMON, [test "x$have_evas_engine_gl_common" = "xyes"])
853
854 AM_CONDITIONAL(EVAS_STATIC_BUILD_GL_COMMON, test "x${have_static_evas_engine_gl_common}" = "xyes")
855 if test "x${have_static_evas_engine_gl_common}" = "xyes"; then
856    AC_DEFINE(EVAS_STATIC_BUILD_GL_COMMON, [1], [Build GL generic engine as part of libevas])
857 fi
858
859 # gl_sdl
860 if test "x$have_evas_engine_gl_sdl" = "xyes" || test "x$have_evas_engine_gl_sdl" = "xstatic" ; then
861    AC_CHECK_DECL(SDL_GL_CONTEXT_MAJOR_VERSION,
862       [AC_DEFINE(HAVE_SDL_GL_CONTEXT_VERSION, [1], [SDL_GL version attributes present])],,
863       [#include <SDL/SDL_video.h>])
864 fi
865
866 if test "x$gl_flavor_gles" = "xyes"; then
867    AC_CHECK_DECL(SDL_OPENGLES,
868       [AC_DEFINE(HAVE_SDL_FLAG_OPENGLES, [1], [SDL_OPENGLES flag is present])],,
869       [#include <SDL/SDL_video.h>])
870 fi
871
872 # if software 16 x11 is enabled - build software_16 (the generic 16bit
873 # engine). later enable it fb_16 or other "16" bit engines are enabled.
874 have_evas_engine_software_16="no"
875 if test "x$have_evas_engine_software_16_x11" = "xyes" -o "x$have_evas_engine_software_16_x11" = "xstatic"; then
876    have_evas_engine_software_16="yes"
877 fi
878 if test "x$have_evas_engine_software_sdl" = "xyes" -o "x$have_evas_engine_software_sdl" = "xstatic"; then
879    have_evas_engine_software_16="yes"
880 fi
881 if test "x$have_evas_engine_software_16_ddraw" = "xyes" -o "x$have_evas_engine_software_16_ddraw" = "xstatic"; then
882    have_evas_engine_software_16="yes"
883 fi
884 if test "x$have_evas_engine_software_16_wince" = "xyes" -o "x$have_evas_engine_software_16_wince" = "xstatic"; then
885    have_evas_engine_software_16="yes"
886 fi
887 AM_CONDITIONAL(BUILD_ENGINE_SOFTWARE_16, test "x$have_evas_engine_software_16" = "xyes")
888
889 # if software 16 need to be build as part of libevas.so
890 have_static_software_16="no"
891 AC_ARG_ENABLE([static-software-16],
892    [AC_HELP_STRING([--enable-static-software-16], [Build software 16 engine as part of libevas])],
893    [have_static_software_16=${enableval}]
894 )
895 AC_MSG_CHECKING([Whether to build software 16 engine as part of libevas])
896 AC_MSG_RESULT([${have_static_software_16}])
897
898 AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_16, test "x${have_static_software_16}" = "xyes")
899 if test "x${have_static_software_16}" = "xyes"; then
900    AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_16, [1], [Build software 16 engine as part of libevas])
901 fi
902
903 # if software 8 x11 is enabled - build software_8 (the generic 8bit
904 # engine).
905 have_evas_engine_software_8="no"
906 if test "x$have_evas_engine_software_8_x11" = "xyes" -o "x$have_evas_engine_software_8_x11" = "xstatic"; then
907    have_evas_engine_software_8="yes"
908 fi
909 AM_CONDITIONAL(BUILD_ENGINE_SOFTWARE_8, test "x$have_evas_engine_software_8" = "xyes")
910
911 # if software 8 need to be build as part of libevas.so
912 have_static_software_8="no"
913 AC_ARG_ENABLE([static-software-8],
914    [AC_HELP_STRING([--enable-static-software-8], [Build software 8 engine as part of libevas])],
915    [have_static_software_8=${enableval}]
916 )
917 AC_MSG_CHECKING([Whether to build software 8 engine as part of libevas])
918 AC_MSG_RESULT([${have_static_software_8}])
919
920 AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_8, test "x${have_static_software_8}" = "xyes")
921 if test "x${have_static_software_8}" = "xyes"; then
922    AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_8, [1], [Build software 8 engine as part of libevas])
923 fi
924
925 #####################################################################
926 ## Image loaders
927
928 EVAS_CHECK_IMAGE_LOADER([Edb], [${want_evas_image_loader_edb}])
929
930 EVAS_CHECK_IMAGE_LOADER([Eet], [${want_evas_image_loader_eet}])
931 EVAS_CHECK_FONT_LOADER([${want_evas_font_loader_eet}])
932
933 EVAS_CHECK_IMAGE_LOADER([Gif], [${want_evas_image_loader_gif}])
934
935 have_evas_image_saver_jpeg="no"
936 EVAS_CHECK_IMAGE_LOADER([Jpeg], [${want_evas_image_loader_jpeg}])
937
938 dnl Windows has no sigsetjmp function, nor equivalent.
939 dnl So we disable the jpeg saver.
940 dnl TODO: must find a workaround
941 case "$host_os" in
942    mingw* | cegcc*)
943       ;;
944    *)
945       if test "x${have_evas_image_loader_jpeg}" = "xyes" ; then
946          AC_DEFINE(EVAS_BUILD_SAVER_JPEG, [1], [Build JPEG saver])
947          have_evas_image_saver_jpeg="yes"
948       fi
949       ;;
950 esac
951 AM_CONDITIONAL([BUILD_SAVER_JPEG], [test "x${have_evas_image_saver_jpeg}" = "xyes"])
952
953 EVAS_CHECK_IMAGE_LOADER([PMAPS], [${want_evas_image_loader_pmaps}])
954
955 EVAS_CHECK_IMAGE_LOADER([PNG], [${want_evas_image_loader_png}])
956
957 EVAS_CHECK_IMAGE_LOADER([SVG], [${want_evas_image_loader_svg}])
958
959 EVAS_CHECK_IMAGE_LOADER([Tiff], [${want_evas_image_loader_tiff}])
960
961 EVAS_CHECK_IMAGE_LOADER([XPM], [${want_evas_image_loader_xpm}])
962
963 EVAS_CHECK_IMAGE_LOADER([BMP], [${want_evas_image_loader_bmp}])
964
965 EVAS_CHECK_IMAGE_LOADER([TGA], [${want_evas_image_loader_tga}])
966
967 EVAS_CHECK_IMAGE_LOADER([WBMP], [${want_evas_image_loader_wbmp}])
968
969 EVAS_CHECK_IMAGE_LOADER([ICO], [${want_evas_image_loader_ico}])
970
971 EVAS_CHECK_IMAGE_LOADER([PSD], [${want_evas_image_loader_psd}])
972
973 EVAS_CHECK_IMAGE_LOADER([GENERIC], [${want_evas_image_loader_generic}])
974
975 #####################################################################
976 ## Cpu based optimizations
977
978 #######################################
979 ## PTHREADS
980 pthread_cflags=""
981 pthread_libs=""
982 build_pthreads="no"
983 has_pthreads="no"
984 need_pthreads="no"
985 # basic pthread support
986 AC_CHECK_HEADER(pthread.h,
987   [
988    has_pthreads="yes"
989   ],
990   [
991    has_pthreads="no"
992   ]
993 )
994
995 # sched_getaffinity pthread_attr_setaffinity_np
996 AC_CHECK_HEADERS(pthread.h sched.h,
997   [
998     AC_CHECK_LIB(pthread, pthread_attr_setaffinity_np,
999       [
1000         AC_CHECK_LIB(pthread, pthread_barrier_wait,
1001           [ build_pthreads="yes" ],
1002           [ build_pthreads="no" ]
1003         )
1004       ],
1005       [ build_pthreads="no" ]
1006     )
1007   ],
1008   [ build_pthreads="no" ]
1009 )
1010
1011 #######################################
1012 ## Pthread
1013 AC_MSG_CHECKING(whether to build pthread code)
1014 AC_ARG_ENABLE(pthreads,
1015   AC_HELP_STRING([--enable-pthreads], [enable threaded rendering]),
1016   [
1017     if test "x$enableval" = "xyes" ; then
1018       if test "x$build_pthreads" = "xyes"; then
1019         AC_MSG_RESULT(yes)
1020         AC_DEFINE(BUILD_PTHREAD, 1, [Build Threaded Rendering])
1021         build_pthreads="yes"
1022         need_pthreads="yes"
1023       else
1024         if "x$use_strict" = "xyes"; then
1025           AC_MSG_ERROR(pthreads headers or functions not found (strict dependencies checking))
1026         else
1027           AC_MSG_RESULT(no: pthread headers or functions not found)
1028         fi
1029       fi
1030     else
1031       AC_MSG_RESULT(no)
1032       build_pthreads="no"
1033     fi
1034   ],
1035   [
1036     AC_MSG_RESULT($build_pthreads)
1037     if test "x$build_pthreads" = "xyes" ; then
1038       AC_DEFINE(BUILD_PTHREAD, 1, [Build Threaded Rendering])
1039       need_pthreads="yes"
1040     fi
1041   ]
1042 )
1043
1044 #######################################
1045 ## Pipe Renderer
1046 build_pipe_render="no"
1047
1048 AC_MSG_CHECKING(whether to build Threaded Pipe Rendering support)
1049 AC_ARG_ENABLE(pipe-render,
1050   AC_HELP_STRING([--enable-pipe-render], [enable threaded pipe rendering support]),
1051   [ build_pipe_render=$enableval ]
1052 )
1053 AC_MSG_RESULT($build_pipe_render)
1054
1055 AC_MSG_CHECKING(whether we can build Threaded Pipe Rendering support)
1056 if test \( "x$build_pipe_render" = "xyes" -o "x$build_pipe_render" = "xauto" \); then
1057   AC_MSG_RESULT(yes)
1058   AC_DEFINE(BUILD_PIPE_RENDER, 1, [Build pipe render support])
1059   build_pipe_render="yes"
1060   need_pthreads="yes"
1061 else
1062   AC_MSG_RESULT(no)
1063   build_pipe_render="no"
1064 fi
1065
1066 #######################################
1067 ## Async Renderer
1068 build_async_render="no"
1069
1070 AC_MSG_CHECKING(whether to build Asynchronously Threaded Pipe Rendering support)
1071 AC_ARG_ENABLE(async-render,
1072  AC_HELP_STRING([--enable-async-render], [enable asynchronously threaded pipe rendering support]),
1073  [ build_async_render=$enableval ]
1074 )
1075 AC_MSG_RESULT($build_async_render)
1076
1077 AC_MSG_CHECKING(whether we can build Asynchronously Threaded Pipe Rendering support)
1078 if test \( "x$build_async_render" = "xyes" \); then
1079   AC_MSG_RESULT(yes)
1080   AC_DEFINE(EVAS_FRAME_QUEUING, 1, [Build async render support])
1081   build_async_render="yes"
1082   AC_DEFINE(BUILD_PIPE_RENDER, 1, [Build pipe render support])
1083   build_pipe_render="yes"
1084   need_pthreads="yes"
1085
1086   PKG_CHECK_MODULES([XEXT],
1087     [xext < 1.1.1],
1088     [ build_avoid_libXext_bug=yes ],
1089     [ build_avoid_libXext_bug=no ]
1090   )
1091   if test \( "x$build_avoid_libXext_bug" = "xyes" \); then
1092     AC_DEFINE(LIBXEXT_VERSION_LOW, 1, [To avoid bug on old libXext version])
1093   fi
1094 else
1095   AC_MSG_RESULT(no)
1096   build_async_render="no"
1097 fi
1098
1099 #######################################
1100 ## Async events
1101 build_async_events="auto"
1102 AC_MSG_CHECKING(whether to build Async Events support)
1103 AC_ARG_ENABLE(async-events,
1104   AC_HELP_STRING([--enable-async-events], [enable async events support]),
1105   [ build_async_events=$enableval ]
1106 )
1107 AC_MSG_RESULT($build_async_events)
1108
1109 AC_MSG_CHECKING(whether we can build Async Events support)
1110 if test "x$build_async_events" = "xyes" || test "x$build_async_events" = "xauto" ; then
1111   AC_MSG_RESULT(yes)
1112   AC_DEFINE(BUILD_ASYNC_EVENTS, 1, [Build async events support])
1113   build_async_events="yes"
1114 else
1115   AC_MSG_RESULT(no)
1116   build_async_events="no"
1117 fi
1118
1119 #######################################
1120 ## Async image preload
1121 build_async_preload="auto"
1122 AC_MSG_CHECKING(whether to build Async Image Preload support)
1123 AC_ARG_ENABLE(async-preload,
1124   AC_HELP_STRING([--enable-async-preload], [enable async image preloading support]),
1125   [ build_async_preload=$enableval ]
1126 )
1127 AC_MSG_RESULT($build_async_preload)
1128
1129 AC_MSG_CHECKING(whether we can build Async Image Preload support)
1130 if test \( "x$build_async_preload" = "xyes" -o "x$build_async_preload" = "xauto" \) -a "x$build_async_events" = "xyes"; then
1131   AC_MSG_RESULT(yes)
1132   AC_DEFINE(BUILD_ASYNC_PRELOAD, 1, [Build async image preload support])
1133   build_async_preload="yes"
1134   need_pthreads="yes"
1135 else
1136   AC_MSG_RESULT(no)
1137   build_async_preload="no"
1138 fi
1139
1140 #######################################
1141 ## Link with pthread if needed
1142 AC_MSG_CHECKING(whether we should link with pthread)
1143 if test "x$need_pthreads" = "xyes"; then
1144   AC_MSG_RESULT(yes)
1145   pthread_cflags=""
1146   pthread_libs="-lpthread"
1147 else
1148   AC_MSG_RESULT(no)
1149 fi
1150
1151 #######################################
1152 ## MMX
1153 build_cpu_mmx="no"
1154 case $host_cpu in
1155   i*86)
1156     build_cpu_mmx="yes"
1157     ;;
1158   x86_64)
1159     build_cpu_mmx="yes"
1160     ;;
1161   amd64)
1162     build_cpu_mmx="yes"
1163     ;;
1164 esac
1165 AC_MSG_CHECKING(whether to build mmx code)
1166 AC_ARG_ENABLE(cpu-mmx,
1167   AC_HELP_STRING([--enable-cpu-mmx], [enable mmx code]),
1168   [
1169       if test "x$enableval" = "xyes" ; then
1170         AC_MSG_RESULT(yes)
1171         AC_DEFINE(BUILD_MMX, 1, [Build MMX Code])
1172         build_cpu_mmx="yes"
1173       else
1174         AC_MSG_RESULT(no)
1175         build_cpu_mmx="no"
1176       fi
1177   ],
1178   [
1179     AC_MSG_RESULT($build_cpu_mmx)
1180     if test "x$build_cpu_mmx" = "xyes" ; then
1181       AC_DEFINE(BUILD_MMX, 1, [Build MMX Code])
1182     fi
1183   ]
1184 )
1185
1186 #######################################
1187 ## SSE
1188 build_cpu_sse="no"
1189 case $host_cpu in
1190   i*86)
1191     build_cpu_sse="yes"
1192     ;;
1193   x86_64)
1194     build_cpu_sse="yes"
1195     ;;
1196   amd64)
1197     build_cpu_sse="yes"
1198     ;;
1199 esac
1200 AC_MSG_CHECKING(whether to build sse code)
1201 AC_ARG_ENABLE(cpu-sse,
1202   AC_HELP_STRING([--enable-cpu-sse], [enable sse code]),
1203   [
1204       if test "x$enableval" = "xyes" ; then
1205         AC_MSG_RESULT(yes)
1206         AC_DEFINE(BUILD_SSE, 1, [Build SSE Code])
1207         build_cpu_sse="yes"
1208       else
1209         AC_MSG_RESULT(no)
1210         build_cpu_sse="no"
1211       fi
1212   ],
1213   [
1214     AC_MSG_RESULT($build_cpu_sse)
1215     if test "x$build_cpu_sse" = "xyes" ; then
1216       AC_DEFINE(BUILD_SSE, 1, [Build SSE Code])
1217     fi
1218   ]
1219 )
1220
1221 #######################################
1222 ## ALTIVEC
1223 build_cpu_altivec="no"
1224 case $host_cpu in
1225   *power* | *ppc*)
1226     build_cpu_altivec="auto"
1227     ;;
1228 esac
1229 altivec_cflags=""
1230 AC_MSG_CHECKING(whether to build altivec code)
1231 AC_ARG_ENABLE(cpu-altivec,
1232   AC_HELP_STRING([--enable-cpu-altivec], [enable altivec code]),
1233   [ build_cpu_altivec=$enableval ],
1234   [
1235     if test ! "x$build_cpu_altivec" = "xauto"; then
1236       build_cpu_altivec="no"
1237     fi
1238   ]
1239 )
1240 AC_MSG_RESULT($build_cpu_altivec)
1241
1242 if test "x$build_cpu_altivec" = "xyes"; then
1243    AC_CHECK_HEADER(altivec.h,
1244      [
1245         AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
1246         AC_DEFINE(HAVE_ALTIVEC_H, 1, [Have altivec.h header file])
1247         build_cpu_altivec="yes"
1248      ],
1249      [
1250        save_CFLAGS=$CFLAGS
1251        save_CPPFLAGS=$CPPFLAGS
1252        CFLAGS=$CFLAGS" -maltivec"
1253        CPPFLAGS=$CPPFLAGS" -maltivec"
1254        unset ac_cv_header_altivec_h
1255        AC_CHECK_HEADER(altivec.h,
1256          [
1257             AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
1258             AC_DEFINE(HAVE_ALTIVEC_H, 1, [Have altivec.h header file])
1259             build_cpu_altivec="yes"
1260          ],
1261          [
1262             if test "x$build_cpu_altivec" = "xyes" -a "x$use_strict" = "xyes" ; then
1263               AC_MSG_ERROR(Altivec not found (strict dependencies checking))
1264             fi
1265             build_cpu_altivec="no"
1266          ]
1267        )
1268        CFLAGS=$save_CFLAGS
1269        CPPFLAGS=$save_CPPFLAGS
1270      ]
1271    )
1272 fi
1273
1274 if test "x$build_cpu_altivec" = "xyes"; then
1275    AC_MSG_CHECKING(whether to use altivec compiler flag)
1276    if test "x$GCC" = "xyes"; then
1277       if echo "int main(){return 0;}" | ${CPP} -faltivec - > /dev/null 2>&1; then
1278          altivec_cflags="-faltivec"
1279          AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
1280       elif echo "int main(){return 0;}" | ${CPP} -maltivec - > /dev/null 2>&1; then
1281          altivec_cflags="-maltivec"
1282          AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
1283       fi
1284    fi
1285   AC_MSG_RESULT($altivec_cflags)
1286    CFLAGS="$CFLAGS $altivec_cflags"
1287 fi
1288
1289 #######################################
1290 ## NEON
1291 build_cpu_neon="no"
1292 case $host_cpu in
1293   arm*)
1294     build_cpu_neon="yes"
1295     ;;
1296 esac
1297 AC_MSG_CHECKING(whether to build neon code)
1298 AC_ARG_ENABLE(cpu-neon,
1299   AC_HELP_STRING([--enable-cpu-neon], [build neon code, the code will be
1300           checked at run time to see if the CPU supports it]),
1301   [
1302      if test "x$enableval" = "xyes" ; then
1303        AC_TRY_COMPILE([],
1304         [asm volatile (".fpu neon\nvqadd.u8 d0, d1, d0\n")],
1305         [
1306           AC_MSG_RESULT(yes)
1307           AC_DEFINE(BUILD_NEON, 1, [Build NEON Code])
1308           build_cpu_neon="yes"
1309         ],[
1310           AC_MSG_RESULT(no)
1311           build_cpu_neon="no"
1312         ])
1313       else
1314         AC_MSG_RESULT(no)
1315         build_cpu_neon="no"
1316       fi
1317   ],
1318   [
1319     if test "x$build_cpu_neon" = "xyes" ; then
1320        AC_TRY_COMPILE([#include <arm_neon.h>],
1321         [asm volatile ("vqadd.u8 d0, d1, d0\n")],
1322         [
1323           AC_MSG_RESULT(yes)
1324           AC_DEFINE(BUILD_NEON, 1, [Build NEON Code])
1325           build_cpu_neon="yes"
1326         ],[
1327           AC_MSG_RESULT(no)
1328           build_cpu_neon="no"
1329         ])
1330     fi
1331   ]
1332 )
1333      
1334 #######################################
1335 ## C
1336 build_cpu_c="yes"
1337 AC_MSG_CHECKING(whether to build c code)
1338 AC_ARG_ENABLE(cpu-c,
1339   AC_HELP_STRING([--enable-cpu-c], [enable C code]),
1340   [
1341       if test "x$enableval" = "xyes" ; then
1342         AC_MSG_RESULT(yes)
1343         AC_DEFINE(BUILD_C, 1, [Build plain C code])
1344         build_cpu_c="yes"
1345       else
1346         AC_MSG_RESULT(no)
1347         build_cpu_c="no"
1348       fi
1349   ], [
1350       AC_MSG_RESULT($build_cpu_c)
1351       if test "x$build_cpu_c" = "xyes" ; then
1352         AC_DEFINE(BUILD_C, 1, [Build plain C code])
1353       fi
1354   ]
1355 )
1356
1357 #######################################
1358 ## MAGIC_DEBUG
1359 want_evas_magic_debug="yes"
1360 AC_MSG_CHECKING(whether to check magic for evas object)
1361 AC_ARG_ENABLE(evas-magic-debug,
1362   AC_HELP_STRING(
1363     [--disable-evas-magic-debug],
1364     [disable MAGIC_DEBUG check when people pass in wrong object type. [[default=enabled]]]
1365   ),
1366   [ want_evas_magic_debug="$enableval" ]
1367 )
1368 AC_MSG_RESULT($want_evas_magic_debug)
1369
1370 AM_CONDITIONAL(EVAS_MAGIC_DEBUG, test "x$want_evas_magic_debug" = "xyes")
1371 if test "x$want_evas_magic_debug" = "xyes"; then
1372   AC_DEFINE(EVAS_MAGIC_DEBUG, 1, [complain when people pass in wrong object types etc.])
1373 fi
1374
1375
1376 #######################################
1377 ## Word Caching
1378 want_word_cache="no"
1379 AC_MSG_CHECKING(whether to enable caching of rendered words)
1380 AC_ARG_ENABLE(word-cache,
1381   AC_HELP_STRING(
1382     [--enable-word-cache],
1383     [Enable experimental word caching to speed up rendering [[default=disabled]]]
1384   ),
1385   [ want_word_cache="$enableval" ]
1386 )
1387 AC_MSG_RESULT($want_word_cache)
1388
1389 AM_CONDITIONAL(WORD_CACHE, test "x$want_word_cache" = "xyes")
1390 if test "x$want_word_cache" = "xyes"; then
1391   AC_DEFINE(WORD_CACHE, 1, [Experimental word caching to speed up text rendering.])
1392 fi
1393
1394 #######################################
1395 ## Metric Caching
1396 want_metric_cache="no"
1397 AC_MSG_CHECKING(whether to enable caching of rendered metrics)
1398 AC_ARG_ENABLE(metric-cache,
1399   AC_HELP_STRING(
1400     [--enable-metric-cache],
1401     [Enable experimental metric caching to speed up rendering [[default=disabled]]]
1402   ),
1403   [ want_metric_cache="$enableval" ]
1404 )
1405 AC_MSG_RESULT($want_metric_cache)
1406
1407 AM_CONDITIONAL(METRIC_CACHE, test "x$want_metric_cache" = "xyes")
1408 if test "x$want_metric_cache" = "xyes"; then
1409   AC_DEFINE(METRIC_CACHE, 1, [Experimental metric caching to speed up text rendering.])
1410 fi
1411
1412
1413
1414 #####################################################################
1415 ## ARGB engine options
1416
1417 #######################################
1418 ## Nearest sampling scaler
1419 EVAS_CHECK_SCALER([scale-sample], [sampling scaler], [scaler_sample="yes"], [scaler_sample="no"])
1420 ## Smooth super and sub sampling scaler
1421 EVAS_CHECK_SCALER([scale-smooth], [smooth scaler], [scaler_smooth="yes"], [scaler_smooth="no"])
1422
1423 #######################################
1424 ## YUV -> ARGB converter
1425 conv_yuv="no"
1426 conv_yuv="yes"
1427 AC_MSG_CHECKING(whether to build yuv converter code)
1428 AC_ARG_ENABLE(convert-yuv,
1429   AC_HELP_STRING([--enable-convert-yuv], [enable yuv converter code]),
1430   [
1431       if test "x$enableval" = "xyes" ; then
1432         AC_MSG_RESULT(yes)
1433         AC_DEFINE(BUILD_CONVERT_YUV, 1, [YUV Converter Support])
1434         conv_yuv="yes"
1435       else
1436         AC_MSG_RESULT(no)
1437         conv_yuv="no"
1438       fi
1439   ], [
1440       AC_MSG_RESULT($conv_yuv)
1441       if test "x$conv_yuv" = "xyes" ; then
1442         AC_DEFINE(BUILD_CONVERT_YUV, 1, [YUV Converter Support])
1443       fi
1444   ]
1445 )
1446
1447 #####################################################################
1448 ## Output rendering features
1449
1450 #######################################
1451 ## Small dither mask instead of big one (lower quality)
1452 EVAS_CHECK_DITHER([small-dither-mask], [small dither mask], [conv_small_dither="yes"], [conv_small_dither="no"])
1453 ## Alternate Line dither mask instead of big one (lower quality - but fastest)
1454 EVAS_CHECK_DITHER([line-dither-mask], [line dither mask], [conv_line_dither="yes"], [conv_line_dither="no"])
1455 ## No dither mask at all for 16bpp
1456 EVAS_CHECK_DITHER([no-dither-mask], [conversion to 16bpp without dither mask], [conv_no_dither="yes"], [conv_no_dither="no"])
1457
1458 #######################################
1459 ## Convert to 8bpp RGB 332
1460 EVAS_CONVERT_COLOR(8, RGB, 332, [yes])
1461 ## Convert to 8bpp RGB 666
1462 EVAS_CONVERT_COLOR(8, RGB, 666, [yes])
1463 ## Convert to 8bpp RGB 232
1464 EVAS_CONVERT_COLOR(8, RGB, 232, [yes])
1465 ## Convert to 8bpp RGB 222
1466 EVAS_CONVERT_COLOR(8, RGB, 222, [yes])
1467 ## Convert to 8bpp RGB 221
1468 EVAS_CONVERT_COLOR(8, RGB, 221, [yes])
1469 ## Convert to 8bpp RGB 121
1470 EVAS_CONVERT_COLOR(8, RGB, 121, [yes])
1471 ## Convert to 8bpp RGB 111
1472 EVAS_CONVERT_COLOR(8, RGB, 111, [yes])
1473 ## Convert to 16bpp RGB 565
1474 EVAS_CONVERT_COLOR(16, RGB, 565)
1475 ## Convert to 16bpp BGR 565
1476 EVAS_CONVERT_COLOR(16, BGR, 565)
1477 ## Convert to 16bpp RGB 555
1478 EVAS_CONVERT_COLOR(16, RGB, 555)
1479 ## Convert to 16bpp RGB 444
1480 EVAS_CONVERT_COLOR(16, RGB, 444)
1481
1482 #######################################
1483 ## Convert to 16bpp RGB 565 (444 ipaq)
1484 conv_16_rgb_ipq="yes"
1485 AC_MSG_CHECKING(whether to build 16bpp 565 (444 ipaq) converter code)
1486 AC_ARG_ENABLE(convert-16-rgb-ipq,
1487   AC_HELP_STRING([--disable-convert-16-rgb-ipq], [disable 16bpp 565 (444 ipaq) converter code]),
1488   [
1489       if test "x$enableval" = "xyes" ; then
1490         AC_DEFINE(BUILD_CONVERT_16_RGB_454645, 1, [16bpp 565 (444 ipaq) Converter Support])
1491         conv_16_rgb_ipq="yes"
1492       else
1493         conv_16_rgb_ipq="no"
1494       fi
1495   ], [
1496       if test "x$conv_16_rgb_ipq" = "xyes" ; then
1497         AC_DEFINE(BUILD_CONVERT_16_RGB_454645, 1, [16bpp 565 (444 ipaq) Converter Support])
1498       fi
1499   ]
1500 )
1501 AC_MSG_RESULT($conv_16_rgb_ipq)
1502
1503 #######################################
1504 ## Convert to 16bpp RGB with rotation of 0
1505 EVAS_CONVERT_ROT(16, RGB, 0)
1506 ## Convert to 16bpp RGB with rotation of 180
1507 EVAS_CONVERT_ROT(16, RGB, 180)
1508 ## Convert to 16bpp RGB with rotation of 270
1509 EVAS_CONVERT_ROT(16, RGB, 270)
1510 ## Convert to 16bpp RGB with rotation of 90
1511 EVAS_CONVERT_ROT(16, RGB, 90)
1512
1513 #######################################
1514 ## Convert to 24bpp RGB 888
1515 EVAS_CONVERT_COLOR(24, RGB, 888)
1516 ## Convert to 24bpp BGR 888
1517 EVAS_CONVERT_COLOR(24, BGR, 888)
1518 ## Convert to 32bpp RGB 8888
1519 EVAS_CONVERT_COLOR(32, RGB, 8888)
1520 ## Convert to 32bpp RGBX 8888
1521 EVAS_CONVERT_COLOR(32, RGBX, 8888)
1522 ## Convert to 32bpp BGR 8888
1523 EVAS_CONVERT_COLOR(32, BGR, 8888)
1524 ## Convert to 32bpp BGRX 8888
1525 EVAS_CONVERT_COLOR(32, BGRX, 8888)
1526
1527 #######################################
1528 ## Convert to 24bpp RGB 666 (666 ezx)
1529 conv_24_rgb_ezx="yes"
1530 AC_MSG_CHECKING(whether to build 24bpp 666 (666 ezx) converter code)
1531 AC_ARG_ENABLE(convert-24-rgb-ezx,
1532   AC_HELP_STRING([--disable-convert-24-rgb-ezx], [disable 24bpp 666 (666 ezx) converter code]),
1533   [
1534       if test "x$enableval" = "xyes" ; then
1535         AC_DEFINE(BUILD_CONVERT_24_RGB_666, 1, [24bpp 666 (666 ezx) Converter Support])
1536         conv_24_rgb_ezx="yes"
1537       else
1538         conv_24_rgb_ezx="no"
1539       fi
1540   ], [
1541       if test "x$conv_24_rgb_ezx" = "xyes" ; then
1542         AC_DEFINE(BUILD_CONVERT_24_RGB_666, 1, [24bpp 666 (666 ezx) Converter Support])
1543       fi
1544   ]
1545 )
1546 AC_MSG_RESULT($conv_24_rgb_ezx)
1547
1548 #######################################
1549 ## Convert to 32bpp RGB 666 (666 ezx)
1550 conv_32_rgb_ezx="yes"
1551 AC_MSG_CHECKING(whether to build 32bpp 666 (666 ezx) converter code)
1552 AC_ARG_ENABLE(convert-32-rgb-ezx,
1553   AC_HELP_STRING([--disable-convert-32-rgb-ezx], [disable 32bpp 666 (666 ezx) converter code]),
1554   [
1555       if test "x$enableval" = "xyes" ; then
1556         AC_DEFINE(BUILD_CONVERT_32_RGB_666, 1, [32bpp 666 (666 ezx) Converter Support])
1557         conv_32_rgb_ezx="yes"
1558       else
1559         conv_32_rgb_ezx="no"
1560       fi
1561   ], [
1562       if test "x$conv_32_rgb_ezx" = "xyes" ; then
1563         AC_DEFINE(BUILD_CONVERT_32_RGB_666, 1, [32bpp 666 (666 ezx) Converter Support])
1564       fi
1565   ]
1566 )
1567 AC_MSG_RESULT($conv_32_rgb_ezx)
1568
1569 #######################################
1570 ## Convert to 32bpp RGB with rotation of 0
1571 EVAS_CONVERT_ROT(32, RGB, 0)
1572 ## Convert to 32bpp RGB with rotation of 180
1573 EVAS_CONVERT_ROT(32, RGB, 180)
1574 ## Convert to 32bpp RGB with rotation of 270
1575 EVAS_CONVERT_ROT(32, RGB, 270)
1576 ## Convert to 32bpp RGB with rotation of 90
1577 EVAS_CONVERT_ROT(32, RGB, 90)
1578
1579 #######################################
1580 ## Convert to 8bpp grayscale with 256 value, no palette
1581 EVAS_CONVERT_COLOR(8, GRY, 1)
1582 ## Convert to 8bpp grayscale with 16 value, no palette
1583 EVAS_CONVERT_COLOR(8, GRY, 16)
1584
1585 #######################################
1586 ## Convert to 8bpp grayscale, 64-palette
1587 conv_8_grayscale_64="yes"
1588 AC_MSG_CHECKING(whether to build 8bpp grayscale 64-palette converter code)
1589 AC_ARG_ENABLE(convert-8-grayscale-64,
1590   AC_HELP_STRING([--disable-convert-8-grayscale-64], [disable 8bpp grayscale 64-palette converter code]),
1591   [
1592      if test "x$enableval" = "xyes"; then
1593        AC_DEFINE(BUILD_CONVERT_8_GRAYSCALE_64, 1, [8bpp Grayscale 64-palette Converter Support])
1594        conv_8_grayscale_64="yes"
1595      else
1596        conv_8_grayscale_64="no"
1597      fi
1598   ], [
1599      if test "x$conv_8_grayscale_64" = "xyes"; then
1600        AC_DEFINE(BUILD_CONVERT_8_GRAYSCALE_64, 1, [32bpp Grayscale 64-palette Converter Support])
1601      fi
1602   ]
1603 )
1604 AC_MSG_RESULT($conv_8_grayscale_64)
1605
1606 ## valgrind
1607 want_valgrind="no"
1608 have_valgrind="no"
1609
1610 AC_MSG_CHECKING(whether to enable build with valgrind)
1611 AC_ARG_ENABLE(valgrind,
1612   AC_HELP_STRING([--enable-valgrind], [enable valgrind fixes to stop false reports]),
1613   [ want_valgrind=$enableval ]
1614 )
1615 AC_MSG_RESULT($want_valgrind)
1616
1617 if test x$want_valgrind = "xyes"; then
1618   PKG_CHECK_MODULES(VALGRIND, valgrind >= 2.4.0,
1619     [
1620       AC_DEFINE(HAVE_VALGRIND, 1, [Valgrind support])
1621       have_valgrind=yes
1622       requirement_evas="valgrind ${requirement_evas}"
1623     ],
1624     [
1625       if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then
1626         AC_MSG_ERROR([Valgrind not found (strict dependencies checking)])
1627       fi
1628     ]
1629   )
1630 fi
1631
1632 ## Examples
1633
1634 install_examples="yes"
1635 AC_ARG_ENABLE([install-examples],
1636    AC_HELP_STRING([--disable-install-examples],
1637                   [disable installing examples (compiled or just source).
1638                    @<:@default==enabled@:>@]),
1639    [
1640     if test "x${enableval}" = "xyes" ; then
1641        install_examples="yes"
1642     else
1643        install_examples="no"
1644     fi
1645    ],
1646    [install_examples="yes"])
1647 AM_CONDITIONAL([INSTALL_EXAMPLES], [test "x${install_examples}" = "xyes"])
1648
1649 build_examples="no"
1650 AC_ARG_ENABLE([build-examples],
1651    AC_HELP_STRING([--enable-build-examples],
1652                   [enable building examples (this requires extra denpendencies. if you don't have them installed yet, don't build with this option or it will fail. build again when you have it, overriding the previous installation). @<:@default==disabled@:>@]),
1653    [
1654     if test "x${enableval}" = "xyes" ; then
1655        build_examples="yes"
1656        # put in here the dependencies for Evas' examples. they are
1657        # meant to be 'real world' usage examples, thus one will be
1658        # using higher level libraries on these programs
1659        PKG_CHECK_MODULES([ECORE_EVAS], [ecore-evas ecore], [], [build_examples="no"])
1660        PKG_CHECK_MODULES([EDJE], [edje],
1661         [edje_cc=$($PKG_CONFIG --variable=prefix edje)/bin/edje_cc],
1662         [build_examples="no"])
1663        AC_SUBST(edje_cc)
1664     else
1665        build_examples="no"
1666     fi
1667    ],
1668    [build_examples="no"])
1669 AM_CONDITIONAL([BUILD_EXAMPLES], [test "x${build_examples}" = "xyes"])
1670
1671 ## Unit tests, coverage
1672
1673 EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"])
1674
1675 EFL_CHECK_COVERAGE([${enable_tests}], [enable_coverage="yes"], [enable_coverage="no"])
1676 EVAS_CFLAGS="${EVAS_CFLAGS} ${EFL_COVERAGE_CFLAGS}"
1677 EVAS_LIBS="${EVAS_LIBS} ${EFL_COVERAGE_LIBS}"
1678 if test "x$enable_coverage" = "xyes" ; then
1679    EVAS_CFLAGS="${EVAS_CFLAGS} ${EFL_DEBUG_CFLAGS}"
1680 fi
1681
1682 AC_SUBST(EVAS_CFLAGS)
1683 AC_SUBST(EVAS_LIBS)
1684
1685 #####################################################################
1686 ## Fill in flags
1687
1688 AC_SUBST(altivec_cflags)
1689 AC_SUBST(pthread_cflags)
1690 AC_SUBST(pthread_libs)
1691 AC_SUBST(requirement_evas)
1692
1693
1694 #####################################################################
1695 ## Output
1696
1697 AC_OUTPUT([
1698 Makefile
1699 evas-directfb.pc
1700 evas-fb.pc
1701 evas-opengl-x11.pc
1702 evas-opengl-sdl.pc
1703 evas-software-buffer.pc
1704 evas-software-x11.pc
1705 evas-software-8-x11.pc
1706 evas-software-16-x11.pc
1707 evas-software-gdi.pc
1708 evas-software-ddraw.pc
1709 evas-software-16-ddraw.pc
1710 evas-direct3d.pc
1711 evas-software-16-wince.pc
1712 evas-software-sdl.pc
1713 evas.pc
1714 doc/evas.dox
1715 doc/Makefile
1716 doc/Doxyfile
1717 src/Makefile
1718 src/bin/Makefile
1719 src/lib/Makefile
1720 src/lib/canvas/Makefile
1721 src/lib/file/Makefile
1722 src/lib/cache/Makefile
1723 src/lib/cserve/Makefile
1724 src/lib/engines/Makefile
1725 src/lib/engines/common/Makefile
1726 src/lib/engines/common/evas_op_add/Makefile
1727 src/lib/engines/common/evas_op_blend/Makefile
1728 src/lib/engines/common/evas_op_copy/Makefile
1729 src/lib/engines/common/evas_op_mask/Makefile
1730 src/lib/engines/common/evas_op_mul/Makefile
1731 src/lib/engines/common/evas_op_sub/Makefile
1732 src/lib/engines/common_8/Makefile
1733 src/lib/engines/common_16/Makefile
1734 src/modules/Makefile
1735 src/modules/engines/Makefile
1736 src/modules/engines/software_generic/Makefile
1737 src/modules/engines/software_gdi/Makefile
1738 src/modules/engines/software_ddraw/Makefile
1739 src/modules/engines/direct3d/Makefile
1740 src/modules/engines/software_16_wince/Makefile
1741 src/modules/engines/software_x11/Makefile
1742 src/modules/engines/fb/Makefile
1743 src/modules/engines/buffer/Makefile
1744 src/modules/engines/directfb/Makefile
1745 src/modules/engines/gl_common/Makefile
1746 src/modules/engines/gl_x11/Makefile
1747 src/modules/engines/gl_sdl/Makefile
1748 src/modules/engines/software_sdl/Makefile
1749 src/modules/engines/software_8/Makefile
1750 src/modules/engines/software_8_x11/Makefile
1751 src/modules/engines/software_16/Makefile
1752 src/modules/engines/software_16_x11/Makefile
1753 src/modules/engines/software_16_ddraw/Makefile
1754 src/modules/engines/software_16_sdl/Makefile
1755 src/modules/loaders/Makefile
1756 src/modules/loaders/edb/Makefile
1757 src/modules/loaders/eet/Makefile
1758 src/modules/loaders/gif/Makefile
1759 src/modules/loaders/jpeg/Makefile
1760 src/modules/loaders/png/Makefile
1761 src/modules/loaders/tiff/Makefile
1762 src/modules/loaders/xpm/Makefile
1763 src/modules/loaders/bmp/Makefile
1764 src/modules/loaders/ico/Makefile
1765 src/modules/loaders/tga/Makefile
1766 src/modules/loaders/svg/Makefile
1767 src/modules/loaders/pmaps/Makefile
1768 src/modules/loaders/wbmp/Makefile
1769 src/modules/loaders/psd/Makefile
1770 src/modules/loaders/generic/Makefile
1771 src/modules/savers/Makefile
1772 src/modules/savers/edb/Makefile
1773 src/modules/savers/eet/Makefile
1774 src/modules/savers/jpeg/Makefile
1775 src/modules/savers/png/Makefile
1776 src/modules/savers/tiff/Makefile
1777 src/static_deps/Makefile
1778 src/static_deps/liblinebreak/Makefile
1779 src/lib/include/Makefile
1780 src/examples/Makefile
1781 src/tests/Makefile
1782 README
1783 evas.spec
1784 ])
1785
1786 #####################################################################
1787 ## Sanity Checks
1788
1789 if test "x$build_pthreads" = "xno" ; then
1790   if test "x$build_async_render" = "xyes" ; then
1791     echo "ERROR: PThreads off, but async rendering on. Async rendering"
1792     echo "  needs thread support."
1793     exit 1
1794   fi
1795   if test "x$build_pipe_render" = "xyes" ; then
1796     echo "ERROR: PThreads off, but pipe rendering on. Pipe rendering"
1797     echo "  needs thread support."
1798     exit 1
1799   fi
1800 fi
1801
1802 if test "x${has_pthreads}" = "xno" ; then
1803   if test "x$build_async_preload" = "xyes" ; then
1804     echo "ERROR: PThreads off, but Async Preload on. Async Preload"
1805     echo "  needs thread support."
1806     exit 1
1807   fi
1808 fi
1809
1810 #####################################################################
1811 ## Info
1812
1813 echo
1814 echo
1815 echo
1816 echo "------------------------------------------------------------------------"
1817 echo "$PACKAGE $VERSION"
1818 echo "------------------------------------------------------------------------"
1819 echo
1820 echo "Configuration Options Summary:"
1821 echo
1822 echo "Engines:"
1823 echo "  Software Memory Buffer.....: $have_evas_engine_buffer"
1824 echo "  Software X11...............: $have_evas_engine_software_x11 (Xlib: $have_evas_engine_software_xlib) (XCB: $have_evas_engine_software_xcb)"
1825 echo $ECHO_N "  OpenGL X11.................: $have_evas_engine_gl_x11 (Xlib: $have_evas_engine_gl_xlib) (XCB: $have_evas_engine_gl_xcb) $ECHO_C"
1826 if test "x$have_evas_engine_gl_x11" = "xyes"; then
1827   echo "(GLES: $gl_flavor_gles) (SGX: $gles_variety_sgx) (s3c6410: $gles_variety_s3c6410)"
1828 else
1829   echo
1830 fi
1831 echo "  Software GDI...............: $have_evas_engine_software_gdi"
1832 echo "  Software DirectDraw........: $have_evas_engine_software_ddraw"
1833 echo "  Direct3d...................: $have_evas_engine_direct3d"
1834 echo "  Software SDL...............: $have_evas_engine_software_sdl (primitive: $sdl_primitive)"
1835 echo $ECHO_N "  OpenGL SDL.................: $have_evas_engine_gl_sdl $ECHO_C"
1836 if test "x$have_evas_engine_gl_sdl" = "xyes"; then
1837   echo "(GLES: $gl_flavor_gles) (SGX: $gles_variety_sgx) (s3c6410: $gles_variety_s3c6410)"
1838 else
1839   echo
1840 fi
1841 echo "  Software Framebuffer.......: $have_evas_engine_fb"
1842 echo "  DirectFB...................: $have_evas_engine_directfb"
1843 echo "  Software 8bit grayscale....: $have_evas_engine_software_8"
1844 # FIXME: kill software 16bit
1845 echo "  Software 16bit ............: $have_evas_engine_software_16"
1846 echo "  Software 16bit X11.........: $have_evas_engine_software_16_x11"
1847 echo "  Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw"
1848 echo "  Software 16bit WinCE.......: $have_evas_engine_software_16_wince"
1849 echo "  Software 16bit SDL.........: $have_evas_engine_software_sdl (primitive: $sdl_primitive)"
1850 echo
1851 echo "Image Loaders:"
1852 echo "  BMP.....................: $have_evas_image_loader_bmp"
1853 echo "  EDB.....................: $have_evas_image_loader_edb"
1854 echo "  EET.....................: $have_evas_image_loader_eet"
1855 echo "  GENERIC.................: $have_evas_image_loader_generic"
1856 echo "  GIF.....................: $have_evas_image_loader_gif"
1857 echo "  ICO.....................: $have_evas_image_loader_ico"
1858 echo "  JPEG....................: $have_evas_image_loader_jpeg (region: $have_jpeg_region)"
1859 echo "  PMAPS...................: $have_evas_image_loader_pmaps"
1860 echo "  PNG.....................: $have_evas_image_loader_png"
1861 echo "  PSD.....................: $have_evas_image_loader_psd"
1862 echo "  SVG.....................: $have_evas_image_loader_svg"
1863 echo "  TGA.....................: $have_evas_image_loader_tga"
1864 echo "  TIFF....................: $have_evas_image_loader_tiff"
1865 echo "  WBMP....................: $have_evas_image_loader_wbmp"
1866 echo "  XPM.....................: $have_evas_image_loader_xpm"
1867 echo
1868 echo "Font Sourcing Systems:"
1869 echo "  EET.....................: $have_evas_font_loader_eet"
1870 echo
1871 echo "Font Searching Systems:"
1872 echo "  Fontconfig..............: $have_fontconfig"
1873 echo
1874 echo "Font Rendering Helpers:"
1875 echo "  Fribidi.................: $have_fribidi"
1876 echo "  Harfbuzz................: $have_harfbuzz"
1877 echo "  liblinebreak............: $have_linebreak"
1878 # FIXME: add non freetype2 font engine support
1879 # FIXME: make freetype2 optional
1880 echo
1881 echo "CPU Specific Extensions:"
1882 echo "  Fallback C Code.........: $build_cpu_c"
1883 echo "  MMX.....................: $build_cpu_mmx"
1884 echo "  SSE.....................: $build_cpu_sse"
1885 echo "  ALTIVEC.................: $build_cpu_altivec"
1886 echo "  NEON....................: $build_cpu_neon"
1887 echo "  Thread Support..........: $build_pthreads"
1888 echo
1889 echo "Features:"
1890 echo "  MAGIC_DEBUG.............: $want_evas_magic_debug"
1891 echo "  Cache Server............: $want_evas_cserve"
1892 echo
1893 dnl
1894 dnl ... DISABLED! some testing has shown that this seems to have some
1895 dnl nasty bugs on both x86 and arm (tegra2 dual core tested), so just
1896 dnl disabling this for now until it can be fixed
1897 dnl 
1898 echo "  Threaded Pipe Rendering.: $build_pipe_render"
1899 echo "  Async Pipe Rendering....: $build_async_render"
1900 echo "  Async Events............: $build_async_events"
1901 echo "  Async Image Preload.....: $build_async_preload"
1902 echo
1903 echo "  Word Cache..............: $want_word_cache"
1904 echo "  Metric Cache............: $want_metric_cache"
1905 echo
1906 echo "ARGB Software Engine Options:"
1907 echo "  Sampling Scaler.........: $scaler_sample"
1908 echo "  Smooth Scaler...........: $scaler_smooth"
1909 # FIXME: add an mmx scaler routine
1910 echo "  YUV Converter...........: $conv_yuv"
1911 # FIXME: add more YUV format and colorvariant support
1912 echo
1913 echo "ARGB Conversion Options:"
1914 echo "  Smaller Dither Mask.....: $conv_small_dither"
1915 echo "  Line Dither Mask........: $conv_line_dither"
1916 echo "  No Dither Mask for 16bpp: $conv_no_dither"
1917 echo "  8bpp RGB 332............: $conv_8_rgb_332"
1918 echo "  8bpp RGB 666............: $conv_8_rgb_666"
1919 echo "  8bpp RGB 232............: $conv_8_rgb_232"
1920 echo "  8bpp RGB 222............: $conv_8_rgb_222"
1921 echo "  8bpp RGB 221............: $conv_8_rgb_221"
1922 echo "  8bpp RGB 121............: $conv_8_rgb_121"
1923 echo "  8bpp RGB 111............: $conv_8_rgb_111"
1924 echo "  8bpp Grayscale (256)....: $conv_8_gry_1"
1925 echo "  8bpp Grayscale (16).....: $conv_8_gry_16"
1926 echo "  8bpp Grayscale 64-pal...: $conv_8_grayscale_64"
1927 # FIXME: add grayscale and B&W support to standard x converters
1928 echo "  16bpp RGB 565...........: $conv_16_rgb_565"
1929 echo "  16bpp BGR 565...........: $conv_16_bgr_565"
1930 echo "  16bpp RGB 555...........: $conv_16_rgb_555"
1931 echo "  16bpp RGB 444...........: $conv_16_rgb_444"
1932 echo "  16bpp RGB 565 (444 ipaq): $conv_16_rgb_ipq"
1933 # FIXME: add 555 (444 ipaq) support
1934 # FIXME: add 30bpp support
1935 # FIXME: add palletted support (ugh!)
1936 # FIXME: add 8bpp and below rotation
1937 echo "  16bpp Rotation 0........: $conv_16_rgb_rot_0"
1938 echo "  16bpp Rotation 90.......: $conv_16_rgb_rot_90"
1939 echo "  16bpp Rotation 180......: $conv_16_rgb_rot_180"
1940 echo "  16bpp Rotation 270......: $conv_16_rgb_rot_270"
1941 echo "  24bpp RGB 888...........: $conv_24_rgb_888"
1942 echo "  24bpp BGR 888...........: $conv_24_bgr_888"
1943 echo "  24bpp RGB 666 (666 ezx).: $conv_24_rgb_ezx"
1944 # FIXME: add 24bpp rotation
1945 echo "  32bpp RGB 8888..........: $conv_32_rgb_8888"
1946 echo "  32bpp RGBX 8888.........: $conv_32_rgbx_8888"
1947 echo "  32bpp BGR 8888..........: $conv_32_bgr_8888"
1948 echo "  32bpp BGRX 8888.........: $conv_32_bgrx_8888"
1949 echo "  32bpp RGB 666 (666 ezx).: $conv_32_rgb_ezx"
1950 echo "  32bpp Rotation 0........: $conv_32_rgb_rot_0"
1951 echo "  32bpp Rotation 90.......: $conv_32_rgb_rot_90"
1952 echo "  32bpp Rotation 180......: $conv_32_rgb_rot_180"
1953 echo "  32bpp Rotation 270......: $conv_32_rgb_rot_270"
1954 echo
1955 echo "Documentation.............: ${build_doc}"
1956 echo "Examples..................: install:${install_examples} build:${build_examples}"
1957 if test "x${enable_tests}" = "xyes" ; then
1958    echo "Tests.....................: ${enable_tests} (make check)"
1959 else
1960    echo "Tests.....................: ${enable_tests}"
1961 fi
1962 if test "x${enable_coverage}" = "xyes" ; then
1963    echo "Coverage..................: ${enable_coverage} (make coverage)"
1964 else
1965    echo "Coverage..................: ${enable_coverage}"
1966 fi
1967 echo
1968 echo "Compilation............: make (or gmake)"
1969 echo "  CPPFLAGS.............: $CPPFLAGS"
1970 echo "  CFLAGS...............: $CFLAGS"
1971 echo "  CXXFLAGS.............: $CXXFLAGS"
1972 echo "  LDFLAGS..............: $LDFLAGS"
1973 echo
1974 echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
1975 echo "  prefix...............: $prefix"
1976 echo
1977 if test "x${have_static_module}" = "xyes" ; then
1978 echo -e "\0033\01331;31mWarning\0033\01331;0m: You are trying to link statically one or more modules to Evas."
1979 echo "         You must know what you are doing, or else you will have a lot of"
1980 echo "         problems. And Kenny will be killed."
1981 echo "         Think about that."
1982 echo
1983 fi