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