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