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