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