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