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