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