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