1 # get rid of that stupid cache mechanism
4 AC_INIT([evas], [0.9.9.062], [enlightenment-devel@lists.sourceforge.net])
6 AC_CONFIG_SRCDIR([configure.ac])
7 AC_CONFIG_MACRO_DIR([m4])
12 AM_INIT_AUTOMAKE(1.6 dist-bzip2)
13 AM_CONFIG_HEADER(config.h)
16 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
19 VMAJ=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $1);}'`
20 VMIN=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $2);}'`
21 VMIC=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $3);}'`
22 SNAP=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $4);}'`
23 version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN"
24 AC_SUBST(version_info)
27 ### Needed information
29 release="ver-pre-svn-04"
32 MODULE_ARCH="$host_os-$host_cpu"
35 release_info="-release $release"
36 MODULE_ARCH="$host_os-$host_cpu-$release"
39 AC_SUBST(release_info)
41 AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture")
43 # weird debian etch bug where pthread_barrier doesn't work without adding
45 CFLAGS="${CFLAGS=} -D_GNU_SOURCE"
48 want_fontconfig="auto"
50 want_evas_cserve="yes"
52 want_evas_engine_buffer="yes"
53 want_evas_engine_software_xlib="no"
54 want_evas_engine_xrender_x11="no"
55 want_evas_engine_gl_x11="no"
56 want_evas_engine_cairo_x11="no"
57 want_evas_engine_software_xcb="no"
58 want_evas_engine_xrender_xcb="no"
59 want_evas_engine_software_gdi="no"
60 want_evas_engine_software_ddraw="no"
61 want_evas_engine_direct3d="no"
62 want_evas_engine_quartz="no"
63 want_evas_engine_gl_glew="no"
64 want_evas_engine_software_sdl="no"
65 want_evas_engine_fb="no"
66 want_evas_engine_directfb="no"
67 want_evas_engine_software_qtopia="no"
68 want_evas_engine_software_16_x11="no"
69 want_evas_engine_software_16_ddraw="no"
70 want_evas_engine_software_16_wince="no"
72 want_evas_image_loader_edb="yes"
73 want_evas_image_loader_eet="yes"
74 want_evas_image_loader_gif="yes"
75 want_evas_image_loader_jpeg="yes"
76 want_evas_image_loader_pmaps="yes"
77 want_evas_image_loader_png="yes"
78 want_evas_image_loader_svg="yes"
79 want_evas_image_loader_tiff="yes"
80 want_evas_image_loader_xpm="yes"
82 want_evas_font_loader_eet="yes"
87 want_evas_engine_software_16_wince="yes"
88 want_evas_image_loader_edb="no"
89 want_evas_image_loader_gif="no"
90 want_evas_image_loader_svg="no"
91 want_evas_image_loader_tiff="no"
94 want_evas_engine_software_gdi="yes"
95 want_evas_engine_software_ddraw="yes"
96 want_evas_engine_direct3d="yes"
97 want_evas_engine_software_16_ddraw="yes"
98 want_evas_image_loader_edb="no"
99 want_evas_image_loader_svg="no"
102 want_evas_engine_software_xlib="auto"
103 want_evas_engine_quartz="auto"
106 want_evas_engine_software_xlib="auto"
107 want_evas_engine_xrender_x11="auto"
108 want_evas_engine_software_16_x11="auto"
113 ### Additional options to configure
115 # when used, that option makes configure script fails when
116 # a requirement is selected, but not met.
118 AC_ARG_ENABLE([strict],
119 AC_HELP_STRING([--enable-strict], [enable strict checking mode. @<:@default==disabled@:>@]),
123 # Simple X11 build/link
124 AC_ARG_ENABLE([simple-x11],
125 AC_HELP_STRING([--enable-simple-x11], [enable simple x11 linking]),
127 if test "x${enableval}" = "xyes" ; then
128 want_evas_simple_x11="yes"
130 want_evas_simple_x11="no"
135 ### Checks for programs
143 # doxygen program for documentation building
144 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
147 ### Checks for libraries
149 # Evil library for compilation on Windows CE
153 PKG_CHECK_MODULES([EVIL], [evil])
154 AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed])
158 ## strong dependencies
161 PKG_CHECK_MODULES([EINA], [eina-0])
164 PKG_CHECK_MODULES([FREETYPE], [freetype2 >= 9.3.0])
166 ## optional dependencies
170 AC_ARG_ENABLE([fontconfig],
171 AC_HELP_STRING([--disable-fontconfig],
172 [disable fontconfig for finding fonts. @<:@default=enabled@:>@]),
174 if test "x${enableval}" = "xyes" ; then
175 want_fontconfig="yes"
182 if test "x${want_fontconfig}" = "xyes" -o "x${want_fontconfig}" = "xauto" ; then
183 PKG_CHECK_MODULES([FONTCONFIG],
186 have_fontconfig="yes"
187 AC_DEFINE(HAVE_FONTCONFIG, 1, [have fontconfig searching capabilities])
190 if test "x${want_fontconfig}" = "xyes" -a "x${use_strict}" = "xyes" ; then
191 AC_MSG_ERROR([Fontconfig not found (strict dependencies checking)])
198 AC_ARG_ENABLE([fribidi],
199 AC_HELP_STRING([--disable-fribidi],
200 [disable bidirectional text support. @<:@default=enabled@:>@]),
202 if test "x${enableval}" = "xyes" ; then
209 if test "x${want_fribidi}" = "xyes" -o "x${want_fribidi}" = "xauto" ; then
210 PKG_CHECK_MODULES([FRIBIDI],
214 AC_DEFINE(HAVE_FRIBIDI, 1, [have fribidi support])
217 if test "x$want_fribidi" = "xyes" -a "x$use_strict" = "xyes" ; then
218 AC_MSG_ERROR([Fribidi not found (strict dependencies checking)])
223 if test "x${have_fribidi}" = "xno"; then
227 ### Checks for header files
231 AC_CHECK_HEADER([fnmatch.h],
233 [AC_MSG_ERROR([Cannot find fnmatch.h. Make sure your CFLAGS environment variable contains include lines for the location of this file. MinGW users: see the INSTALL file])])
239 ### Checks for structures
242 ### Checks for compiler characteristics
251 WIN32_CPPFLAGS="-D_WIN32_WCE=0x0420"
254 WIN32_CPPFLAGS="-D_WIN32_WINNT=0x0500"
257 AC_SUBST(WIN32_CPPFLAGS)
262 WIN32_CFLAGS="-mwin32"
265 AC_SUBST(WIN32_CFLAGS)
268 ### Checks for linker characteristics
269 lt_enable_auto_import=""
272 AC_DEFINE(EFL_EVAS_BUILD, 1, [Define to mention that evas is built])
273 lt_enable_auto_import="-Wl,--enable-auto-import"
276 AC_SUBST(lt_enable_auto_import)
279 ### Checks for library functions
285 AC_CHECK_FUNCS([fnmatch], [res="yes"], [res="no"])
286 if test "x$res" = "xno"; then
287 AC_SEARCH_LIBS([fnmatch],
288 [fnmatch evil iberty],
291 if test "x$res" = "xno"; then
292 AC_MSG_ERROR([Cannot find fnmatch() in neither libc nor libfnmatch, nor libiberty, nor libevil])
301 AC_DEFINE(HAVE_DLADDR)
304 # nothing on mingw platform
307 AC_CHECK_FUNCS(dlopen, res=yes, res=no)
308 if test "x$res" = "xyes"; then
309 AC_CHECK_FUNCS(dladdr, AC_DEFINE(HAVE_DLADDR))
311 AC_CHECK_LIB(dl, dlopen, res=yes, res=no)
312 if test "x$res" = "xyes"; then
313 AC_CHECK_LIB(dl, dladdr, AC_DEFINE(HAVE_DLADDR))
316 AC_MSG_ERROR(Cannot find dlopen)
320 AC_SUBST(dlopen_libs)
322 # (shm_open (for cache server)
323 AC_ARG_ENABLE([evas-cserve],
324 AC_HELP_STRING([--disable-evas-cserve],
325 [disable shared cache server support. @<:@default=enabled@:>@]),
327 if test "x${enableval}" = "xyes" ; then
328 want_evas_cserve="yes"
330 want_evas_cserve="no"
333 AC_MSG_CHECKING(whether to build shared cache server and support)
334 AC_MSG_RESULT(${want_evas_cserve})
336 if test "x${want_evas_cserve}" = "xyes" ; then
337 AC_MSG_CHECKING([whether shm_open() is present])
343 #include <sys/types.h>
344 #include <sys/mman.h>
349 fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
352 [want_evas_cserve="yes"],
353 [want_evas_cserve="no"])
355 AC_MSG_RESULT([${want_evas_cserve}])
358 if test "x${want_evas_cserve}" = "xyes" ; then
359 AC_DEFINE(EVAS_CSERVE, 1, [Shared caceh server.])
362 AM_CONDITIONAL([EVAS_CSERVE], [test "x${want_evas_cserve}" = "xyes"])
366 #####################################################################
369 EVAS_CHECK_ENGINE([buffer], [${want_evas_engine_buffer}], [no], [Buffer])
371 EVAS_CHECK_ENGINE([software-xlib], [${want_evas_engine_software_xlib}], [yes], [Software Xlib])
373 EVAS_CHECK_ENGINE([xrender-x11], [${want_evas_engine_xrender_x11}], [yes], [XRender X11])
375 EVAS_CHECK_ENGINE([gl-x11], [${want_evas_engine_gl_x11}], [yes], [OpenGL X11])
377 # disable cairo engine for the release
378 #EVAS_CHECK_ENGINE([cairo-x11], [${want_evas_engine_cairo_x11}], [yes], [Cairo X11])
380 EVAS_CHECK_ENGINE([software-xcb], [${want_evas_engine_software_xcb}], [no], [Software XCB])
382 EVAS_CHECK_ENGINE([xrender-xcb], [${want_evas_engine_xrender_xcb}], [no], [XRender XCB])
384 EVAS_CHECK_ENGINE([software-gdi], [${want_evas_engine_software_gdi}], [no], [Software GDI])
386 EVAS_CHECK_ENGINE([software-ddraw], [${want_evas_engine_software_ddraw}], [no], [Software DirectDraw])
388 EVAS_CHECK_ENGINE([direct3d], [${want_evas_engine_direct3d}], [no], [Direct3D])
390 EVAS_CHECK_ENGINE([quartz], [${want_evas_engine_quartz}], [no], [Quartz])
392 EVAS_CHECK_ENGINE([gl-glew], [${want_evas_engine_gl_glew}], [no], [OpenGL Glew])
394 EVAS_CHECK_ENGINE([software-sdl], [${want_evas_engine_software_sdl}], [no], [Software SDL])
396 EVAS_CHECK_ENGINE([fb], [${want_evas_engine_fb}], [no], [Framebuffer])
398 EVAS_CHECK_ENGINE([directfb], [${want_evas_engine_directfb}], [no], [DirectFB])
400 # disable cairo engine for the release
401 #EVAS_CHECK_ENGINE([software-qtopia], [${want_evas_engine_software_qtopia}], [no], [Qtopia])
403 EVAS_CHECK_ENGINE([software-16-x11], [${want_evas_engine_software_16_x11}], [yes], [Software X11 16 bits])
405 EVAS_CHECK_ENGINE([software-16-ddraw], [${want_evas_engine_software_16_ddraw}], [no], [Software DirectDraw 16 bits])
407 EVAS_CHECK_ENGINE([software-16-wince], [${want_evas_engine_software_16_wince}], [no], [Software Windows CE 16 bits])
410 #have_evas_engine_cairo_common="no"
411 #if test "x${have_evas_engine_cairo_x11}" = "xyes" ; then
412 # have_evas_engine_cairo_common="yes"
413 # AC_DEFINE([BUILD_ENGINE_CAIRO_COMMON], [1], [Generic Cairo Rendering Support])
415 #AM_CONDITIONAL([BUILD_ENGINE_CAIRO_COMMON], [test "x$have_evas_engine_cairo_common" = "xyes"])
418 have_evas_engine_gl_common="no"
419 if test "x$have_evas_engine_gl_x11" = "xyes" -o "x$have_evas_engine_gl_glew" = "xyes"; then
420 AC_DEFINE(BUILD_ENGINE_GL_COMMON, 1, [Generic OpenGL Rendering Support])
421 have_evas_engine_gl_common="yes"
422 evas_engine_gl_common_libs="-lglu32"
425 if test "x$have_evas_engine_gl_x11" = "xyes" ; then
426 evas_engine_gl_common_libs="-lGL -lGLU -lpthread"
429 if test "x$have_evas_engine_gl_glew" = "xyes" ; then
430 evas_engine_gl_common_libs="-lglu32"
432 AC_SUBST([evas_engine_gl_common_libs])
434 AM_CONDITIONAL(BUILD_ENGINE_GL_COMMON, test "x$have_evas_engine_gl_common" = "xyes")
439 AC_ARG_ENABLE([sdl-primitive],
440 [AC_HELP_STRING([--enable-sdl-primitive], [])],
441 [sdl_primitive=${enableval}]
443 AC_MSG_CHECKING([whether to use SDL primitive when possible])
444 AC_MSG_RESULT([${sdl_primitive}])
446 if test "x${sdl_primitive}" = "xyes" ; then
447 AC_DEFINE([ENGINE_SDL_PRIMITIVE], [1], [Use SDL primitive when possible])
450 # if software generic need to be build as part of libevas.so
451 have_static_software_generic="no"
452 AC_ARG_ENABLE([static-software-generic],
453 [AC_HELP_STRING([--enable-static-software-generic], [Build software generic engine as part of libevas])],
454 [have_static_software_generic=${enableval}]
456 AC_MSG_CHECKING([Whether to build software generic engine as part of libevas])
457 AC_MSG_RESULT([${have_static_software_generic}])
459 AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, test "x${have_static_software_generic}" = "xyes")
460 if test "x${have_static_software_generic}" = "xyes"; then
461 AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, [1], [Build software generic engine as part of libevas])
464 # if software_xlib or software_xcb are available, define everything needed for X11
465 have_evas_engine_software_x11="no"
466 if test "x$have_evas_engine_software_xlib" = "xstatic" -o "x$have_evas_engine_software_xcb" = "xstatic" ; then
467 have_evas_engine_software_x11="static"
469 if test "x$have_evas_engine_software_xlib" = "xyes" -o "x$have_evas_engine_software_xcb" = "xyes" ; then
470 have_evas_engine_software_x11="yes"
474 if test "x$have_evas_engine_software_xlib" = "xstatic" ; then
475 have_evas_engine_software_xlib="yes"
478 if test "x$have_evas_engine_software_xcb" = "xstatic" ; then
479 have_evas_engine_software_xcb="yes"
482 if test "x$have_evas_engine_software_x11" = "xyes" -o "x$have_evas_engine_software_x11" = "xstatic" ; then
483 AC_DEFINE(BUILD_ENGINE_SOFTWARE_X11, [1], [Build software X11 engines])
486 if test "x$have_evas_engine_software_x11" = "xstatic" ; then
487 AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_X11, [1], [Build software X11 engines as part of libevas])
490 AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_X11], [test "x${have_evas_engine_software_x11}" = "xyes" -o "x${have_evas_engine_software_x11}" = "xstatic"])
491 AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_X11], [test "x${have_evas_engine_software_x11}" = "xstatic"])
493 AC_SUBST(have_evas_engine_software_xlib)
494 AC_SUBST(have_evas_engine_software_xcb)
496 # if software 16 x11 is enabled - build software_16 (the generic 16bit
497 # engine). later enable it fb_16 or other "16" bit engines are enabled.
498 have_evas_engine_software_16="no"
499 if test "x$have_evas_engine_software_16_x11" = "xyes" -o "x$have_evas_engine_software_16_x11" = "xstatic"; then
500 have_evas_engine_software_16="yes"
502 if test "x$have_evas_engine_software_sdl" = "xyes" -o "x$have_evas_engine_software_sdl" = "xstatic"; then
503 have_evas_engine_software_16="yes"
505 if test "x$have_evas_engine_software_16_ddraw" = "xyes" -o "x$have_evas_engine_software_16_ddraw" = "xstatic"; then
506 have_evas_engine_software_16="yes"
508 if test "x$have_evas_engine_software_16_wince" = "xyes" -o "x$have_evas_engine_software_16_wince" = "xstatic"; then
509 have_evas_engine_software_16="yes"
511 AM_CONDITIONAL(BUILD_ENGINE_SOFTWARE_16, test "x$have_evas_engine_software_16" = "xyes")
513 # if software 16 need to be build as part of libevas.so
514 have_static_software_16="no"
515 AC_ARG_ENABLE([static-software-16],
516 [AC_HELP_STRING([--enable-static-software-16], [Build software 16 engine as part of libevas])],
517 [have_static_software_16=${enableval}]
519 AC_MSG_CHECKING([Whether to build software 16 engine as part of libevas])
520 AC_MSG_RESULT([${have_static_software_16}])
522 AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_16, test "x${have_static_software_16}" = "xyes")
523 if test "x${have_static_software_16}" = "xyes"; then
524 AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_16, [1], [Build software 16 engine as part of libevas])
527 #####################################################################
530 EVAS_CHECK_IMAGE_LOADER([Edb], [${want_evas_image_loader_edb}])
532 EVAS_CHECK_IMAGE_LOADER([Eet], [${want_evas_image_loader_eet}])
533 EVAS_CHECK_FONT_LOADER([${want_evas_font_loader_eet}])
535 EVAS_CHECK_IMAGE_LOADER([Gif], [${want_evas_image_loader_gif}])
537 have_evas_image_saver_jpeg="no"
538 EVAS_CHECK_IMAGE_LOADER([Jpeg], [${want_evas_image_loader_jpeg}])
540 dnl Windows has no sigsetjmp function, nor equivalent.
541 dnl So we disable the jpeg saver.
542 dnl TODO: must find a workaround
547 if test "x${have_evas_image_loader_jpeg}" = "xyes" ; then
548 have_evas_image_saver_jpeg="yes"
552 AM_CONDITIONAL([BUILD_SAVER_JPEG], [test "x${have_evas_image_saver_jpeg}" = "xyes"])
554 EVAS_CHECK_IMAGE_LOADER([PMAPS], [${want_evas_image_loader_pmaps}])
556 EVAS_CHECK_IMAGE_LOADER([PNG], [${want_evas_image_loader_png}])
558 EVAS_CHECK_IMAGE_LOADER([SVG], [${want_evas_image_loader_svg}])
560 EVAS_CHECK_IMAGE_LOADER([Tiff], [${want_evas_image_loader_tiff}])
562 EVAS_CHECK_IMAGE_LOADER([XPM], [${want_evas_image_loader_xpm}])
565 #####################################################################
566 ## Cpu based optimizations
568 #######################################
575 # basic pthread support
576 AC_CHECK_HEADER(pthread.h,
585 # sched_getaffinity pthread_attr_setaffinity_np
586 AC_CHECK_HEADERS(pthread.h sched.h,
588 AC_CHECK_LIB(pthread, pthread_attr_setaffinity_np,
590 AC_CHECK_LIB(pthread, pthread_barrier_wait,
591 [ build_pthreads="yes" ],
592 [ build_pthreads="no" ]
595 [ build_pthreads="no" ]
598 [ build_pthreads="no" ]
601 #######################################
603 AC_MSG_CHECKING(whether to build pthread code)
604 AC_ARG_ENABLE(pthreads,
605 AC_HELP_STRING([--enable-pthreads], [enable threaded rendering]),
607 if test "x$enableval" = "xyes" ; then
608 if test "x$build_pthreads" = "xyes"; then
610 AC_DEFINE(BUILD_PTHREAD, 1, [Build Threaded Rendering])
614 if "x$use_strict" = "xyes"; then
615 AC_MSG_ERROR(pthreads headers or functions not found (strict dependencies checking))
617 AC_MSG_RESULT(no: pthread headers or functions not found)
626 AC_MSG_RESULT($build_pthreads)
627 if test "x$build_pthreads" = "xyes" ; then
628 AC_DEFINE(BUILD_PTHREAD, 1, [Build Threaded Rendering])
634 #######################################
636 build_pipe_render="no"
637 AC_MSG_CHECKING(whether to build Threaded Pipe Rendering support)
638 AC_ARG_ENABLE(pipe-render,
639 AC_HELP_STRING([--enable-pipe-render], [enable threaded pipe rendering support]),
640 [ build_pipe_render=$enableval ]
642 AC_MSG_RESULT($build_pipe_render)
644 AC_MSG_CHECKING(whether we can build Threaded Pipe Rendering support)
645 if test \( "x$build_pipe_render" = "xyes" -o "x$build_pipe_render" = "xauto" \); then
647 AC_DEFINE(BUILD_PIPE_RENDER, 1, [Build pipe render support])
648 build_pipe_render="yes"
652 build_pipe_render="no"
655 #######################################
657 build_async_events="auto"
658 AC_MSG_CHECKING(whether to build Async Events support)
659 AC_ARG_ENABLE(async-events,
660 AC_HELP_STRING([--enable-async-events], [enable async events support]),
661 [ build_async_events=$enableval ]
663 AC_MSG_RESULT($build_async_events)
665 AC_MSG_CHECKING(whether we can build Async Events support)
666 if test \( "x$build_async_events" = "xyes" -o "x$build_async_events" = "xauto" \) -a "x$has_pthreads" = "xyes"; then
668 AC_DEFINE(BUILD_ASYNC_EVENTS, 1, [Build async events support])
669 build_async_events="yes"
673 build_async_events="no"
676 #######################################
677 ## Async image preload
678 build_async_preload="auto"
679 AC_MSG_CHECKING(whether to build Async Image Preload support)
680 AC_ARG_ENABLE(async-preload,
681 AC_HELP_STRING([--enable-async-preload], [enable async image preloading support]),
682 [ build_async_preload=$enableval ]
684 AC_MSG_RESULT($build_async_preload)
686 AC_MSG_CHECKING(whether we can build Async Image Preload support)
687 if test \( "x$build_async_preload" = "xyes" -o "x$build_async_preload" = "xauto" \) -a "x$build_async_events" = "xyes"; then
689 AC_DEFINE(BUILD_ASYNC_PRELOAD, 1, [Build async image preload support])
690 build_async_preload="yes"
694 build_async_preload="no"
697 #######################################
698 ## Link with pthread if needed
699 AC_MSG_CHECKING(whether we should link with pthread)
700 if test "x$need_pthreads" = "xyes"; then
703 pthread_libs="-lpthread"
708 #######################################
719 AC_MSG_CHECKING(whether to build mmx code)
720 AC_ARG_ENABLE(cpu-mmx,
721 AC_HELP_STRING([--enable-cpu-mmx], [enable mmx code]),
723 if test "x$enableval" = "xyes" ; then
725 AC_DEFINE(BUILD_MMX, 1, [Build MMX Code])
733 AC_MSG_RESULT($build_cpu_mmx)
734 if test "x$build_cpu_mmx" = "xyes" ; then
735 AC_DEFINE(BUILD_MMX, 1, [Build MMX Code])
740 #######################################
751 AC_MSG_CHECKING(whether to build sse code)
752 AC_ARG_ENABLE(cpu-sse,
753 AC_HELP_STRING([--enable-cpu-sse], [enable sse code]),
755 if test "x$enableval" = "xyes" ; then
757 AC_DEFINE(BUILD_SSE, 1, [Build SSE Code])
765 AC_MSG_RESULT($build_cpu_sse)
766 if test "x$build_cpu_sse" = "xyes" ; then
767 AC_DEFINE(BUILD_SSE, 1, [Build SSE Code])
772 #######################################
774 build_cpu_altivec="no"
777 build_cpu_altivec="auto"
781 AC_MSG_CHECKING(whether to build altivec code)
782 AC_ARG_ENABLE(cpu-altivec,
783 AC_HELP_STRING([--enable-cpu-altivec], [enable altivec code]),
784 [ build_cpu_altivec=$enableval ],
786 if test ! "x$build_cpu_altivec" = "xauto"; then
787 build_cpu_altivec="no"
791 AC_MSG_RESULT($build_cpu_altivec)
793 if test "x$build_cpu_altivec" = "xyes"; then
794 AC_CHECK_HEADER(altivec.h,
796 AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
797 AC_DEFINE(HAVE_ALTIVEC_H, 1, [Have altivec.h header file])
798 build_cpu_altivec="yes"
802 save_CPPFLAGS=$CPPFLAGS
803 CFLAGS=$CFLAGS" -maltivec"
804 CPPFLAGS=$CPPFLAGS" -maltivec"
805 unset ac_cv_header_altivec_h
806 AC_CHECK_HEADER(altivec.h,
808 AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
809 AC_DEFINE(HAVE_ALTIVEC_H, 1, [Have altivec.h header file])
810 build_cpu_altivec="yes"
813 if test "x$build_cpu_altivec" = "xyes" -a "x$use_strict" = "xyes" ; then
814 AC_MSG_ERROR(Altivec not found (strict dependencies checking))
816 build_cpu_altivec="no"
820 CPPFLAGS=$save_CPPFLAGS
825 if test "x$build_cpu_altivec" = "xyes"; then
826 AC_MSG_CHECKING(whether to use altivec compiler flag)
827 if test "x$GCC" = "xyes"; then
828 if echo "int main(){return 0;}" | ${CPP} -faltivec - > /dev/null 2>&1; then
829 altivec_cflags="-faltivec"
830 AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
831 elif echo "int main(){return 0;}" | ${CPP} -maltivec - > /dev/null 2>&1; then
832 altivec_cflags="-maltivec"
833 AC_DEFINE(BUILD_ALTIVEC, 1, [Build Altivec Code])
836 AC_MSG_RESULT($altivec_cflags)
837 CFLAGS="$CFLAGS $altivec_cflags"
840 #######################################
848 AC_MSG_CHECKING(whether to build neon code)
849 AC_ARG_ENABLE(cpu-neon,
850 AC_HELP_STRING([--enable-cpu-neon], [enable neon code]),
852 if test "x$enableval" = "xyes" ; then
854 AC_DEFINE(BUILD_NEON, 1, [Build NEON Code])
862 AC_MSG_RESULT($build_cpu_neon)
863 if test "x$build_cpu_neon" = "xyes" ; then
864 AC_DEFINE(BUILD_NEON, 1, [Build NEON Code])
869 #######################################
872 AC_MSG_CHECKING(whether to build c code)
874 AC_HELP_STRING([--enable-cpu-c], [enable C code]),
876 if test "x$enableval" = "xyes" ; then
878 AC_DEFINE(BUILD_C, 1, [Build plain C code])
885 AC_MSG_RESULT($build_cpu_c)
886 if test "x$build_cpu_c" = "xyes" ; then
887 AC_DEFINE(BUILD_C, 1, [Build plain C code])
892 #######################################
894 want_evas_magic_debug="yes"
895 AC_MSG_CHECKING(whether to check magic for evas object)
896 AC_ARG_ENABLE(evas-magic-debug,
898 [--disable-evas-magic-debug],
899 [disable MAGIC_DEBUG check when people pass in wrong object type. [[default=enabled]]]
901 [ want_evas_magic_debug="$enableval" ]
903 AC_MSG_RESULT($want_evas_magic_debug)
905 AM_CONDITIONAL(EVAS_MAGIC_DEBUG, test "x$want_evas_magic_debug" = "xyes")
906 if test "x$want_evas_magic_debug" = "xyes"; then
907 AC_DEFINE(EVAS_MAGIC_DEBUG, 1, [complain when peole pass in wrong object types etc.])
910 #####################################################################
911 ## ARGB engine options
913 #######################################
914 ## Nearest sampling scaler
915 EVAS_CHECK_SCALER([scale-sample], [sampling scaler], [scaler_sample="yes"], [scaler_sample="no"])
916 ## Smooth super and sub sampling scaler
917 EVAS_CHECK_SCALER([scale-smooth], [smooth scaler], [scaler_smooth="yes"], [scaler_smooth="no"])
919 #######################################
920 ## YUV -> ARGB converter
923 AC_MSG_CHECKING(whether to build yuv converter code)
924 AC_ARG_ENABLE(convert-yuv,
925 AC_HELP_STRING([--enable-convert-yuv], [enable yuv converter code]),
927 if test "x$enableval" = "xyes" ; then
929 AC_DEFINE(BUILD_CONVERT_YUV, 1, [YUV Converter Support])
936 AC_MSG_RESULT($conv_yuv)
937 if test "x$conv_yuv" = "xyes" ; then
938 AC_DEFINE(BUILD_CONVERT_YUV, 1, [YUV Converter Support])
943 #####################################################################
944 ## Output rendering features
946 #######################################
947 ## Small dither mask instead of big one (lower quality)
948 EVAS_CHECK_DITHER([small-dither-mask], [small dither mask], [conv_small_dither="yes"], [conv_small_dither="no"])
949 ## Alternate Line dither mask instead of big one (lower quality - but fastest)
950 EVAS_CHECK_DITHER([line-dither-mask], [line dither mask], [conv_line_dither="yes"], [conv_line_dither="no"])
951 ## No dither mask at all for 16bpp
952 EVAS_CHECK_DITHER([no-dither-mask], [conversion to 16bpp without dither mask], [conv_no_dither="yes"], [conv_no_dither="no"])
954 #######################################
955 ## Convert to 8bpp RGB 332
956 EVAS_CONVERT_COLOR(8, RGB, 332, [yes])
957 ## Convert to 8bpp RGB 666
958 EVAS_CONVERT_COLOR(8, RGB, 666, [yes])
959 ## Convert to 8bpp RGB 232
960 EVAS_CONVERT_COLOR(8, RGB, 232, [yes])
961 ## Convert to 8bpp RGB 222
962 EVAS_CONVERT_COLOR(8, RGB, 222, [yes])
963 ## Convert to 8bpp RGB 221
964 EVAS_CONVERT_COLOR(8, RGB, 221, [yes])
965 ## Convert to 8bpp RGB 121
966 EVAS_CONVERT_COLOR(8, RGB, 121, [yes])
967 ## Convert to 8bpp RGB 111
968 EVAS_CONVERT_COLOR(8, RGB, 111, [yes])
969 ## Convert to 16bpp RGB 565
970 EVAS_CONVERT_COLOR(16, RGB, 565)
971 ## Convert to 16bpp BGR 565
972 EVAS_CONVERT_COLOR(16, BGR, 565)
973 ## Convert to 16bpp RGB 555
974 EVAS_CONVERT_COLOR(16, RGB, 555)
975 ## Convert to 16bpp RGB 444
976 EVAS_CONVERT_COLOR(16, RGB, 444)
978 #######################################
979 ## Convert to 16bpp RGB 565 (444 ipaq)
980 conv_16_rgb_ipq="yes"
981 AC_MSG_CHECKING(whether to build 16bpp 565 (444 ipaq) converter code)
982 AC_ARG_ENABLE(convert-16-rgb-ipq,
983 AC_HELP_STRING([--disable-convert-16-rgb-ipq], [disable 16bpp 565 (444 ipaq) converter code]),
985 if test "x$enableval" = "xyes" ; then
986 AC_DEFINE(BUILD_CONVERT_16_RGB_454645, 1, [16bpp 565 (444 ipaq) Converter Support])
987 conv_16_rgb_ipq="yes"
992 if test "x$conv_16_rgb_ipq" = "xyes" ; then
993 AC_DEFINE(BUILD_CONVERT_16_RGB_454645, 1, [16bpp 565 (444 ipaq) Converter Support])
997 AC_MSG_RESULT($conv_16_rgb_ipq)
999 #######################################
1000 ## Convert to 16bpp RGB with rotation of 0
1001 EVAS_CONVERT_ROT(16, RGB, 0)
1002 ## Convert to 16bpp RGB with rotation of 180
1003 EVAS_CONVERT_ROT(16, RGB, 180)
1004 ## Convert to 16bpp RGB with rotation of 270
1005 EVAS_CONVERT_ROT(16, RGB, 270)
1006 ## Convert to 16bpp RGB with rotation of 90
1007 EVAS_CONVERT_ROT(16, RGB, 90)
1009 #######################################
1010 ## Convert to 24bpp RGB 888
1011 EVAS_CONVERT_COLOR(24, RGB, 888)
1012 ## Convert to 24bpp BGR 888
1013 EVAS_CONVERT_COLOR(24, BGR, 888)
1014 ## Convert to 32bpp RGB 8888
1015 EVAS_CONVERT_COLOR(32, RGB, 8888)
1016 ## Convert to 32bpp RGBX 8888
1017 EVAS_CONVERT_COLOR(32, RGBX, 8888)
1018 ## Convert to 32bpp BGR 8888
1019 EVAS_CONVERT_COLOR(32, BGR, 8888)
1020 ## Convert to 32bpp BGRX 8888
1021 EVAS_CONVERT_COLOR(32, BGRX, 8888)
1023 #######################################
1024 ## Convert to 24bpp RGB 666 (666 ezx)
1025 conv_24_rgb_ezx="yes"
1026 AC_MSG_CHECKING(whether to build 24bpp 666 (666 ezx) converter code)
1027 AC_ARG_ENABLE(convert-24-rgb-ezx,
1028 AC_HELP_STRING([--disable-convert-24-rgb-ezx], [disable 24bpp 666 (666 ezx) converter code]),
1030 if test "x$enableval" = "xyes" ; then
1031 AC_DEFINE(BUILD_CONVERT_24_RGB_666, 1, [24bpp 666 (666 ezx) Converter Support])
1032 conv_24_rgb_ezx="yes"
1034 conv_24_rgb_ezx="no"
1037 if test "x$conv_24_rgb_ezx" = "xyes" ; then
1038 AC_DEFINE(BUILD_CONVERT_24_RGB_666, 1, [24bpp 666 (666 ezx) Converter Support])
1042 AC_MSG_RESULT($conv_24_rgb_ezx)
1044 #######################################
1045 ## Convert to 32bpp RGB 666 (666 ezx)
1046 conv_32_rgb_ezx="yes"
1047 AC_MSG_CHECKING(whether to build 32bpp 666 (666 ezx) converter code)
1048 AC_ARG_ENABLE(convert-32-rgb-ezx,
1049 AC_HELP_STRING([--disable-convert-32-rgb-ezx], [disable 32bpp 666 (666 ezx) converter code]),
1051 if test "x$enableval" = "xyes" ; then
1052 AC_DEFINE(BUILD_CONVERT_32_RGB_666, 1, [32bpp 666 (666 ezx) Converter Support])
1053 conv_32_rgb_ezx="yes"
1055 conv_32_rgb_ezx="no"
1058 if test "x$conv_32_rgb_ezx" = "xyes" ; then
1059 AC_DEFINE(BUILD_CONVERT_32_RGB_666, 1, [32bpp 666 (666 ezx) Converter Support])
1063 AC_MSG_RESULT($conv_32_rgb_ezx)
1065 #######################################
1066 ## Convert to 32bpp RGB with rotation of 0
1067 EVAS_CONVERT_ROT(32, RGB, 0)
1068 ## Convert to 32bpp RGB with rotation of 180
1069 EVAS_CONVERT_ROT(32, RGB, 180)
1070 ## Convert to 32bpp RGB with rotation of 270
1071 EVAS_CONVERT_ROT(32, RGB, 270)
1072 ## Convert to 32bpp RGB with rotation of 90
1073 EVAS_CONVERT_ROT(32, RGB, 90)
1079 AC_MSG_CHECKING(whether to enable build with valgrind)
1080 AC_ARG_ENABLE(valgrind,
1081 AC_HELP_STRING([--enable-valgrind], [enable valgrind fixes to stop false reports]),
1082 [ want_valgrind=$enableval ]
1084 AC_MSG_RESULT($want_valgrind)
1086 if test x$want_valgrind = "xyes"; then
1087 PKG_CHECK_MODULES(VALGRIND, valgrind >= 2.4.0,
1089 AC_DEFINE(HAVE_VALGRIND, 1, [Valgrind support])
1093 if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then
1094 AC_MSG_ERROR([Valgrind not found (strict dependencies checking)])
1100 #####################################################################
1103 AC_SUBST(altivec_cflags)
1104 AC_SUBST(pthread_cflags)
1105 AC_SUBST(pthread_libs)
1108 #####################################################################
1118 evas-software-buffer.pc
1119 evas-software-x11.pc
1120 evas-software-16-x11.pc
1123 evas-software-gdi.pc
1124 evas-software-ddraw.pc
1125 evas-software-16-ddraw.pc
1127 evas-software-16-wince.pc
1128 evas-software-sdl.pc
1135 src/lib/canvas/Makefile
1136 src/lib/file/Makefile
1137 src/lib/imaging/Makefile
1138 src/lib/cache/Makefile
1139 src/lib/cserve/Makefile
1140 src/lib/engines/Makefile
1141 src/lib/engines/common/Makefile
1142 src/lib/engines/common/evas_op_add/Makefile
1143 src/lib/engines/common/evas_op_blend/Makefile
1144 src/lib/engines/common/evas_op_copy/Makefile
1145 src/lib/engines/common/evas_op_mask/Makefile
1146 src/lib/engines/common/evas_op_mul/Makefile
1147 src/lib/engines/common/evas_op_sub/Makefile
1148 src/lib/engines/common_16/Makefile
1149 src/modules/Makefile
1150 src/modules/engines/Makefile
1151 src/modules/engines/software_generic/Makefile
1152 src/modules/engines/software_gdi/Makefile
1153 src/modules/engines/software_ddraw/Makefile
1154 src/modules/engines/direct3d/Makefile
1155 src/modules/engines/software_16_wince/Makefile
1156 src/modules/engines/software_x11/Makefile
1157 src/modules/engines/fb/Makefile
1158 src/modules/engines/buffer/Makefile
1159 src/modules/engines/directfb/Makefile
1160 src/modules/engines/gl_common/Makefile
1161 src/modules/engines/gl_glew/Makefile
1162 src/modules/engines/gl_x11/Makefile
1163 src/modules/engines/quartz/Makefile
1164 src/modules/engines/xrender_x11/Makefile
1165 src/modules/engines/software_sdl/Makefile
1166 src/modules/engines/software_16/Makefile
1167 src/modules/engines/software_16_x11/Makefile
1168 src/modules/engines/software_16_ddraw/Makefile
1169 src/modules/engines/software_16_sdl/Makefile
1170 src/modules/loaders/Makefile
1171 src/modules/loaders/edb/Makefile
1172 src/modules/loaders/eet/Makefile
1173 src/modules/loaders/gif/Makefile
1174 src/modules/loaders/jpeg/Makefile
1175 src/modules/loaders/png/Makefile
1176 src/modules/loaders/tiff/Makefile
1177 src/modules/loaders/xpm/Makefile
1178 src/modules/loaders/svg/Makefile
1179 src/modules/loaders/pmaps/Makefile
1180 src/modules/savers/Makefile
1181 src/modules/savers/edb/Makefile
1182 src/modules/savers/eet/Makefile
1183 src/modules/savers/jpeg/Makefile
1184 src/modules/savers/png/Makefile
1185 src/modules/savers/tiff/Makefile
1186 src/lib/include/Makefile
1191 #disabled for the release:
1193 # evas-software-qtopia.pc
1194 # src/modules/engines/cairo_common/Makefile
1195 # src/modules/engines/cairo_x11/Makefile
1196 # src/modules/engines/software_qtopia/Makefile
1199 #####################################################################
1205 echo "------------------------------------------------------------------------"
1206 echo "$PACKAGE $VERSION"
1207 echo "------------------------------------------------------------------------"
1209 echo "Configuration Options Summary:"
1212 echo " Software Memory Buffer.....: $have_evas_engine_buffer"
1213 echo " Software X11...............: $have_evas_engine_software_x11 (Xlib: $have_evas_engine_software_xlib) (XCB: $have_evas_engine_software_xcb)"
1214 echo " XRender X11................: $have_evas_engine_xrender_x11 (XCB: $have_evas_engine_xrender_xcb)"
1215 echo " OpenGL X11.................: $have_evas_engine_gl_x11"
1216 #echo " Cairo X11..................: $have_evas_engine_cairo_x11"
1217 echo " Software GDI...............: $have_evas_engine_software_gdi"
1218 echo " Software DirectDraw........: $have_evas_engine_software_ddraw"
1219 echo " Direct3d...................: $have_evas_engine_direct3d"
1220 echo " Quartz.....................: $have_evas_engine_quartz"
1221 echo " OpenGL Glew................: $have_evas_engine_gl_glew"
1222 echo " Software SDL...............: $have_evas_engine_software_sdl (primitive: $sdl_primitive)"
1223 echo " Software Framebuffer.......: $have_evas_engine_fb"
1224 echo " DirectFB...................: $have_evas_engine_directfb"
1225 #echo " Software Qtopia............: $have_evas_engine_software_qtopia"
1226 echo " Software 16bit ............: $have_evas_engine_software_16"
1227 echo " Software 16bit X11.........: $have_evas_engine_software_16_x11"
1228 echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw"
1229 echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince"
1230 echo " Software 16bit SDL.........: $have_evas_engine_software_sdl (primitive: $sdl_primitive)"
1231 # FIXME: opengl engine needs to be fixed and tested lots for all drivers
1233 echo "Image Loaders:"
1234 echo " EDB.....................: $have_evas_image_loader_edb"
1235 echo " EET.....................: $have_evas_image_loader_eet"
1236 echo " GIF.....................: $have_evas_image_loader_gif"
1237 echo " JPEG....................: $have_evas_image_loader_jpeg"
1238 echo " PMAPS...................: $have_evas_image_loader_pmaps"
1239 echo " PNG.....................: $have_evas_image_loader_png"
1240 echo " SVG.....................: $have_evas_image_loader_svg"
1241 echo " TIFF....................: $have_evas_image_loader_tiff"
1242 echo " XPM.....................: $have_evas_image_loader_xpm"
1243 # FIXME: need to add modular image loader system
1244 # FIXME: add more image loader modules
1246 echo "Font Sourcing Systems:"
1247 echo " EET.....................: $have_evas_font_loader_eet"
1249 echo "Font Searching Systems:"
1250 echo " Fontconfig..............: $have_fontconfig"
1251 echo " Fribidi.................: $have_fribidi"
1252 # FIXME: add non freetype2 font engine support
1253 # FIXME: make freetype2 optional
1255 echo "CPU Specific Extensions:"
1256 echo " Fallback C Code.........: $build_cpu_c"
1257 echo " MMX.....................: $build_cpu_mmx"
1258 echo " SSE.....................: $build_cpu_sse"
1259 echo " ALTIVEC.................: $build_cpu_altivec"
1260 echo " NEON....................: $build_cpu_neon"
1261 echo " Thread Support..........: $build_pthreads"
1264 echo " MAGIC_DEBUG.............: $want_evas_magic_debug"
1265 echo " Cache Server............: $want_evas_cserve"
1267 echo " Threaded Pipe Rendering.: $build_pipe_render"
1268 echo " Async Events............: $build_async_events"
1269 echo " Async Image Preload.....: $build_async_preload"
1271 echo "ARGB Software Engine Options:"
1272 echo " Sampling Scaler.........: $scaler_sample"
1273 echo " Smooth Scaler...........: $scaler_smooth"
1274 # FIXME: add an mmx scaler routine
1275 echo " YUV Converter...........: $conv_yuv"
1276 # FIXME: add more YUV format and colorvariant support
1278 echo "ARGB Conversion Options:"
1279 echo " Smaller Dither Mask.....: $conv_small_dither"
1280 echo " Line Dither Mask........: $conv_line_dither"
1281 echo " No Dither Mask for 16bpp: $conv_no_dither"
1282 echo " 8bpp RGB 332............: $conv_8_rgb_332"
1283 echo " 8bpp RGB 666............: $conv_8_rgb_666"
1284 echo " 8bpp RGB 232............: $conv_8_rgb_232"
1285 echo " 8bpp RGB 222............: $conv_8_rgb_222"
1286 echo " 8bpp RGB 221............: $conv_8_rgb_221"
1287 echo " 8bpp RGB 121............: $conv_8_rgb_121"
1288 echo " 8bpp RGB 111............: $conv_8_rgb_111"
1289 # FIXME: add grayscale and B&W support
1290 echo " 16bpp RGB 565...........: $conv_16_rgb_565"
1291 echo " 16bpp BGR 565...........: $conv_16_bgr_565"
1292 echo " 16bpp RGB 555...........: $conv_16_rgb_555"
1293 echo " 16bpp RGB 444...........: $conv_16_rgb_444"
1294 echo " 16bpp RGB 565 (444 ipaq): $conv_16_rgb_ipq"
1295 # FIXME: add 555 (444 ipaq) support
1296 # FIXME: add 30bpp support
1297 # FIXME: add palletted support
1298 # FIXME: add 8bpp and below rotation
1299 echo " 16bpp Rotation 0........: $conv_16_rgb_rot_0"
1300 echo " 16bpp Rotation 90.......: $conv_16_rgb_rot_90"
1301 echo " 16bpp Rotation 180......: $conv_16_rgb_rot_180"
1302 echo " 16bpp Rotation 270......: $conv_16_rgb_rot_270"
1303 echo " 24bpp RGB 888...........: $conv_24_rgb_888"
1304 echo " 24bpp BGR 888...........: $conv_24_bgr_888"
1305 echo " 24bpp RGB 666 (666 ezx).: $conv_24_rgb_ezx"
1306 # FIXME: add 24bpp rotation
1307 echo " 32bpp RGB 8888..........: $conv_32_rgb_8888"
1308 echo " 32bpp RGBX 8888.........: $conv_32_rgbx_8888"
1309 echo " 32bpp BGR 8888..........: $conv_32_bgr_8888"
1310 echo " 32bpp BGRX 8888.........: $conv_32_bgrx_8888"
1311 echo " 32bpp RGB 666 (666 ezx).: $conv_32_rgb_ezx"
1312 echo " 32bpp Rotation 0........: $conv_32_rgb_rot_0"
1313 echo " 32bpp Rotation 90.......: $conv_32_rgb_rot_90"
1314 echo " 32bpp Rotation 180......: $conv_32_rgb_rot_180"
1315 echo " 32bpp Rotation 270......: $conv_32_rgb_rot_270"
1317 echo "Documentation.............: ${build_doc}"
1319 echo "------------------------------------------------------------------------"
1321 echo "Now type 'make' ('gmake' on some systems) to compile $PACKAGE,"
1322 echo "and then afterwards as root (or the user who will install this), type"
1323 echo "'make install'. Change users with 'su' or 'sudo' appropriately."
1325 if test "x${have_static_module}" = "xyes" ; then
1326 echo -e "\0033\01331;31mWarning\0033\01331;0m: You are trying to link statically one or more modules to Evas."
1327 echo " You must know what you are doing, or else you will have a lot of problems."
1328 echo " And Kenny will be killed."
1329 echo " Think about that."