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