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