evas-software-qtopia.pc \
evas-software-x11.pc \
evas-software-16-x11.pc \
-evas-software-xcb.pc \
evas-xrender-x11.pc \
evas-xrender-xcb.pc \
evas-software-gdi.pc \
evas-software-qtopia.pc.in \
evas-software-x11.pc.in \
evas-software-16-x11.pc.in \
-evas-software-xcb.pc.in \
evas-xrender-x11.pc.in \
evas-xrender-xcb.pc.in \
evas-software-gdi.pc.in \
evas-software-sdl.pc.in \
evas.spec.in evas.spec
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = evas.pc
+
if BUILD_ENGINE_SOFTWARE_X11
-psoftwarex11 = evas-software-x11.pc
+pkgconfig_DATA += evas-software-x11.pc
endif
if BUILD_ENGINE_SOFTWARE_16_X11
-psoftware16x11 = evas-software-16-x11.pc
-endif
-
-if BUILD_ENGINE_SOFTWARE_XCB
-psoftwarexcb = evas-software-xcb.pc
+pkgconfig_DATA += evas-software-16-x11.pc
endif
if BUILD_ENGINE_DIRECTFB
-pdirectfb = evas-directfb.pc
+pkgconfig_DATA += evas-directfb.pc
endif
if BUILD_ENGINE_FB
-pfb = evas-fb.pc
+pkgconfig_DATA += evas-fb.pc
endif
if BUILD_ENGINE_BUFFER
-psoftwarebuffer = evas-software-buffer.pc
+pkgconfig_DATA += evas-software-buffer.pc
endif
#if BUILD_ENGINE_SOFTWARE_QTOPIA
-#psoftwareqtopia = evas-software-qtopia.pc
+#pkgconfig_DATA += evas-software-qtopia.pc
#endif
if BUILD_ENGINE_GL_X11
-popenglx11 = evas-opengl-x11.pc
+pkgconfig_DATA += evas-opengl-x11.pc
endif
if BUILD_ENGINE_QUARTZ
-pquartz = evas-quartz.pc
+pkgconfig_DATA += evas-quartz.pc
endif
if BUILD_ENGINE_GL_GLEW
-popenglglew = evas-opengl-glew.pc
+pkgconfig_DATA += evas-opengl-glew.pc
endif
#if BUILD_ENGINE_CAIRO_X11
-#pcairox11 = evas-cairo-x11.pc
+#pkgconfig_DATA += evas-cairo-x11.pc
#endif
if BUILD_ENGINE_XRENDER_X11
-pxrenderx11 = evas-xrender-x11.pc
+pkgconfig_DATA += evas-xrender-x11.pc
endif
if BUILD_ENGINE_XRENDER_XCB
-pxrenderxcb = evas-xrender-xcb.pc
+pkgconfig_DATA += evas-xrender-xcb.pc
endif
if BUILD_ENGINE_SOFTWARE_GDI
-psoftwaregdi = evas-software-gdi.pc
+pkgconfig_DATA += evas-software-gdi.pc
endif
if BUILD_ENGINE_SOFTWARE_DDRAW
-psoftwareddraw = evas-software-ddraw.pc
+pkgconfig_DATA += evas-software-ddraw.pc
endif
if BUILD_ENGINE_SOFTWARE_16_DDRAW
-psoftware16ddraw = evas-software-16-ddraw.pc
+pkgconfig_DATA += evas-software-16-ddraw.pc
endif
if BUILD_ENGINE_DIRECT3D
-pdirect3d = evas-direct3d.pc
+pkgconfig_DATA += evas-direct3d.pc
endif
if BUILD_ENGINE_SOFTWARE_16_WINCE
-psoftware16wince = evas-software-16-wince.pc
+pkgconfig_DATA += evas-software-16-wince.pc
endif
if BUILD_ENGINE_SOFTWARE_SDL
-psoftwaresdl = evas-software-sdl.pc
+pkgconfig_DATA += evas-software-sdl.pc
endif
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = \
- evas.pc $(psoftwarex11) $(psoftwarexcb) $(pdirectfb) $(pfb) \
- $(psoftwarebuffer) $(popenglx11) $(pquartz) \
- $(pxrenderx11) $(pxrenderxcb) $(psoftwaregdi) $(psoftwareddraw) $(psoftwaresdl) \
- $(psoftware16x11) $(pdirect3d) $(psoftware16ddraw) $(psoftware16wince) $(popenglglew)
-# $(psoftwareqtopia) $(pcairox11)
-
.PHONY: doc
doc:
want_evas_cserve="yes"
want_evas_engine_buffer="yes"
-want_evas_engine_software_x11="no"
+want_evas_engine_software_xlib="no"
want_evas_engine_xrender_x11="no"
want_evas_engine_gl_x11="no"
want_evas_engine_cairo_x11="no"
want_evas_image_loader_svg="no"
;;
darwin*)
- want_evas_engine_software_x11="auto"
+ want_evas_engine_software_xlib="auto"
want_evas_engine_quartz="auto"
;;
*)
- want_evas_engine_software_x11="auto"
+ want_evas_engine_software_xlib="auto"
want_evas_engine_xrender_x11="auto"
want_evas_engine_software_16_x11="auto"
;;
EVAS_CHECK_ENGINE([buffer], [${want_evas_engine_buffer}], [no], [Buffer])
-EVAS_CHECK_ENGINE([software-x11], [${want_evas_engine_software_x11}], [yes], [Software X11])
+EVAS_CHECK_ENGINE([software-xlib], [${want_evas_engine_software_xlib}], [yes], [Software Xlib])
EVAS_CHECK_ENGINE([xrender-x11], [${want_evas_engine_xrender_x11}], [yes], [XRender X11])
AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, [1], [Build software generic engine as part of libevas])
fi
+# if software_xlib or software_xcb are available, define everything needed for X11
+have_evas_engine_software_x11="no"
+if test "x$have_evas_engine_software_xlib" = "xstatic" -o "x$have_evas_engine_software_xcb" = "xstatic" ; then
+ have_evas_engine_software_x11="static"
+else
+ if test "x$have_evas_engine_software_xlib" = "xyes" -o "x$have_evas_engine_software_xcb" = "xyes" ; then
+ have_evas_engine_software_x11="yes"
+ fi
+fi
+
+if test "x$have_evas_engine_software_xlib" = "xstatic" ; then
+ have_evas_engine_software_xlib="yes"
+fi
+
+if test "x$have_evas_engine_software_xcb" = "xstatic" ; then
+ have_evas_engine_software_xcb="yes"
+fi
+
+if test "x$have_evas_engine_software_x11" = "xyes" -o "x$have_evas_engine_software_x11" = "xstatic" ; then
+ AC_DEFINE(BUILD_ENGINE_SOFTWARE_X11, [1], [Build software X11 engines])
+fi
+
+if test "x$have_evas_engine_software_x11" = "xstatic" ; then
+ AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_X11, [1], [Build software X11 engines as part of libevas])
+fi
+
+AM_CONDITIONAL([BUILD_ENGINE_SOFTWARE_X11], [test "x${have_evas_engine_software_x11}" = "xyes" -o "x${have_evas_engine_software_x11}" = "xstatic"])
+AM_CONDITIONAL([EVAS_STATIC_BUILD_SOFTWARE_X11], [test "x${have_evas_engine_software_x11}" = "xstatic"])
+
+AC_SUBST(have_evas_engine_software_xlib)
+AC_SUBST(have_evas_engine_software_xcb)
+
# if software 16 x11 is enabled - build software_16 (the generic 16bit
# engine). later enable it fb_16 or other "16" bit engines are enabled.
have_evas_engine_software_16="no"
evas-software-buffer.pc
evas-software-x11.pc
evas-software-16-x11.pc
-evas-software-xcb.pc
evas-xrender-x11.pc
evas-xrender-xcb.pc
evas-software-gdi.pc
echo "Configuration Options Summary:"
echo
echo "Engines:"
-echo " Software Memory Buffer.....: $have_evas_engine_buffer $have_static_evas_engine_buffer"
-echo " Software X11...............: $have_evas_engine_software_x11 $have_static_evas_engine_software_x11 (XCB: $have_evas_engine_software_xcb)"
-echo " XRender X11................: $have_evas_engine_xrender_x11 $have_static_evas_engine_xrender_x11 (XCB: $have_evas_engine_xrender_xcb)"
-echo " OpenGL X11.................: $have_evas_engine_gl_x11 $have_static_evas_engine_gl_x11"
-#echo " Cairo X11..................: $have_evas_engine_cairo_x11 $have_static_evas_engine_cairo_x11"
-echo " Software GDI...............: $have_evas_engine_software_gdi $have_static_evas_engine_gdi"
-echo " Software DirectDraw........: $have_evas_engine_software_ddraw $have_static_evas_engine_ddraw"
-echo " Direct3d...................: $have_evas_engine_direct3d $have_static_evas_engine_direct3d"
-echo " Quartz.....................: $have_evas_engine_quartz $have_static_evas_engine_quartz"
-echo " OpenGL Glew................: $have_evas_engine_gl_glew $have_static_evas_engine_gl_glew"
-echo " Software SDL...............: $have_evas_engine_software_sdl $have_static_evas_engine_software_sdl (primitive: $sdl_primitive)"
-echo " Software Framebuffer.......: $have_evas_engine_fb $have_static_evas_engine_fb"
-echo " DirectFB...................: $have_evas_engine_directfb $have_static_evas_engine_directfb"
-#echo " Software Qtopia............: $have_evas_engine_software_qtopia $have_static_evas_engine_software_qtopia"
-echo " Software 16bit ............: $have_evas_engine_software_16 $have_static_evas_engine_software_16"
-echo " Software 16bit X11.........: $have_evas_engine_software_16_x11 $have_static_evas_engine_software_16_x11"
-echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw $have_static_evas_engine_ddraw"
-echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince $have_static_evas_engine_wince"
-echo " Software 16bit SDL.........: $have_evas_engine_software_sdl $have_static_evas_engine_software_sdl (primitive: $sdl_primitive)"
+echo " Software Memory Buffer.....: $have_evas_engine_buffer"
+echo " Software X11...............: $have_evas_engine_software_x11 (Xlib: $have_evas_engine_software_xlib) (XCB: $have_evas_engine_software_xcb)"
+echo " XRender X11................: $have_evas_engine_xrender_x11 (XCB: $have_evas_engine_xrender_xcb)"
+echo " OpenGL X11.................: $have_evas_engine_gl_x11"
+#echo " Cairo X11..................: $have_evas_engine_cairo_x11"
+echo " Software GDI...............: $have_evas_engine_software_gdi"
+echo " Software DirectDraw........: $have_evas_engine_software_ddraw"
+echo " Direct3d...................: $have_evas_engine_direct3d"
+echo " Quartz.....................: $have_evas_engine_quartz"
+echo " OpenGL Glew................: $have_evas_engine_gl_glew"
+echo " Software SDL...............: $have_evas_engine_software_sdl (primitive: $sdl_primitive)"
+echo " Software Framebuffer.......: $have_evas_engine_fb"
+echo " DirectFB...................: $have_evas_engine_directfb"
+#echo " Software Qtopia............: $have_evas_engine_software_qtopia"
+echo " Software 16bit ............: $have_evas_engine_software_16"
+echo " Software 16bit X11.........: $have_evas_engine_software_16_x11"
+echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw"
+echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince"
+echo " Software 16bit SDL.........: $have_evas_engine_software_sdl (primitive: $sdl_primitive)"
# FIXME: opengl engine needs to be fixed and tested lots for all drivers
echo
echo "Image Loaders:"
-echo " EDB.....................: $have_evas_image_loader_edb $have_static_evas_image_loader_edb"
-echo " EET.....................: $have_evas_image_loader_eet $have_static_evas_image_loader_eet"
-echo " GIF.....................: $have_evas_image_loader_gif $have_static_evas_image_loader_gif"
-echo " JPEG....................: $have_evas_image_loader_jpeg $have_static_evas_image_loader_jpeg"
-echo " PMAPS...................: $have_evas_image_loader_pmaps $have_static_evas_image_loader_pmaps"
-echo " PNG.....................: $have_evas_image_loader_png $have_static_evas_image_loader_png"
-echo " SVG.....................: $have_evas_image_loader_svg $have_static_evas_image_loader_svg"
-echo " TIFF....................: $have_evas_image_loader_tiff $have_static_evas_image_loader_tiff"
-echo " XPM.....................: $have_evas_image_loader_xpm $have_static_evas_image_loader_xpm"
+echo " EDB.....................: $have_evas_image_loader_edb"
+echo " EET.....................: $have_evas_image_loader_eet"
+echo " GIF.....................: $have_evas_image_loader_gif"
+echo " JPEG....................: $have_evas_image_loader_jpeg"
+echo " PMAPS...................: $have_evas_image_loader_pmaps"
+echo " PNG.....................: $have_evas_image_loader_png"
+echo " SVG.....................: $have_evas_image_loader_svg"
+echo " TIFF....................: $have_evas_image_loader_tiff"
+echo " XPM.....................: $have_evas_image_loader_xpm"
# FIXME: need to add modular image loader system
# FIXME: add more image loader modules
echo
echo "and then afterwards as root (or the user who will install this), type"
echo "'make install'. Change users with 'su' or 'sudo' appropriately."
echo
+if test "x${have_static_module}" = "xyes" ; then
+echo -e "\0033\01331;31mWarning\0033\01331;0m: You are trying to link statically one or more modules to Evas."
+echo " You must know what you are doing, or else you will have a lot of problems."
+echo " And Kenny will be killed."
+echo " Think about that."
+echo
+fi
Name: evas-software-x11
Description: Evas software X11 engine
Version: @VERSION@
+
+Xlib=@have_evas_engine_software_xlib@
+XCB=@have_evas_engine_software_xcb@
+++ /dev/null
-Name: evas-software-xcb
-Description: Evas software XCB engine
-Version: @VERSION@
])
-dnl use: EVAS_CHECK_ENGINE_DEP_SOFTWARE_X11(engine, simple[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+dnl use: EVAS_CHECK_ENGINE_DEP_SOFTWARE_XLIB(engine, simple[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
-AC_DEFUN([EVAS_CHECK_ENGINE_DEP_SOFTWARE_X11],
+AC_DEFUN([EVAS_CHECK_ENGINE_DEP_SOFTWARE_XLIB],
[
have_dep="no"
fi
fi
-AC_MSG_CHECKING([whether to statically include $4 rendering backend inside evas library])
-AC_MSG_RESULT([${want_static_engine}])
-
if test "x${have_engine}" = "xyes" ; then
AC_DEFINE(BUILD_ENGINE_[]UP, [1], [$4 rendering backend])
fi
if test "x${want_static_engine}" = "xyes" ; then
AC_DEFINE(EVAS_STATIC_BUILD_[]UP, [1], [Build $1 engine inside libevas])
+ have_static_module="yes"
fi
AM_CONDITIONAL(EVAS_STATIC_BUILD_[]UP, [test "x${want_static_engine}" = "xyes"])
fi
fi
-AC_MSG_CHECKING([whether to build inside evas library $1 image loader])
-AC_MSG_RESULT([${want_static_loader}])
-
if test "x${have_loader}" = "xyes" ; then
AC_DEFINE(BUILD_LOADER_[]UP, [1], [UP Image Loader Support])
fi
if test "x${want_static_loader}" = "xyes" ; then
AC_DEFINE(EVAS_STATIC_BUILD_[]UP, [1], [Build $1 image loader inside libevas])
+ have_static_module="yes"
fi
AM_CONDITIONAL(EVAS_STATIC_BUILD_[]UP, [test "x${want_static_loader}" = "xyes"])
if EVAS_STATIC_BUILD_SOFTWARE_X11
SUBDIRS += ../modules/engines/software_x11/
EVAS_STATIC_MODULE += ../modules/engines/software_x11/libevas_engine_software_x11.la
-EVAS_STATIC_LIBADD += @evas_engine_software_x11_libs@ @evas_engine_software_xcb_libs@
+EVAS_STATIC_LIBADD += @evas_engine_software_xlib_libs@ @evas_engine_software_xcb_libs@
endif
if EVAS_STATIC_BUILD_XRENDER_X11
SUBDIRS += ../modules/engines/xrender_x11/
#ifndef _EVAS_ENGINE_SOFTWARE_X11_H
#define _EVAS_ENGINE_SOFTWARE_X11_H
-#include <X11/Xlib.h>
-
typedef enum
{
EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB,
-I$(top_srcdir)/src/modules/engines \
@FREETYPE_CFLAGS@ \
@EINA_CFLAGS@ \
-@evas_engine_software_x11_cflags@ \
+@evas_engine_software_xlib_cflags@ \
@evas_engine_software_xcb_cflags@
if BUILD_ENGINE_SOFTWARE_X11
-SOFTWARE_X11_SOURCES = \
-evas_engine.c \
+SOFTWARE_X11_SOURCES = evas_engine.c
+
+if BUILD_ENGINE_SOFTWARE_XLIB
+
+SOFTWARE_X11_SOURCES += \
evas_xlib_outbuf.c \
evas_xlib_buffer.c \
evas_xlib_color.c \
evas_xlib_main.c
-SOFTWARE_X11_LIBADD = @evas_engine_software_x11_libs@ @evas_engine_software_xcb_libs@
+SOFTWARE_X11_LIBADD = @evas_engine_software_xlib_libs@ @evas_engine_software_xcb_libs@
+
+endif
if BUILD_ENGINE_SOFTWARE_XCB
-SOFTWARE_X11_SOURCES +=\
+SOFTWARE_X11_SOURCES += \
evas_xcb_outbuf.c \
evas_xcb_buffer.c \
evas_xcb_color.c \
#include "Evas_Engine_Software_X11.h"
#include "evas_engine.h"
-#include "evas_xlib_outbuf.h"
-#include "evas_xlib_color.h"
+
+#ifdef BUILD_ENGINE_SOFTWARE_XLIB
+# include "evas_xlib_outbuf.h"
+# include "evas_xlib_color.h"
+#endif
#ifdef BUILD_ENGINE_SOFTWARE_XCB
# include "evas_xcb_outbuf.h"
/* internal engine routines */
+#ifdef BUILD_ENGINE_SOFTWARE_XLIB
static void *
_output_xlib_setup(int w,
int h,
evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
return re;
}
+#endif
#ifdef BUILD_ENGINE_SOFTWARE_XCB
static void *
{
if (!connection) return NULL;
- if (backend == 0)
+#ifdef BUILD_ENGINE_SOFTWARE_XLIB
+ if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
{
return DefaultVisual((Display *)connection, screen);
}
+#endif
#ifdef BUILD_ENGINE_SOFTWARE_XCB
- if (backend == 1)
+ if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
{
xcb_screen_iterator_t iter_screen;
xcb_depth_iterator_t iter_depth;
{
if (!connection) return 0;
- if (backend == 0)
+#ifdef BUILD_ENGINE_SOFTWARE_XLIB
+ if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
{
return DefaultColormap((Display *)connection, screen);
}
+#endif
#ifdef BUILD_ENGINE_SOFTWARE_XCB
- if (backend == 1)
+ if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
{
xcb_screen_iterator_t iter_screen;
xcb_screen_t *s;
{
if (!connection) return 0;
- if (backend == 0)
+#ifdef BUILD_ENGINE_SOFTWARE_XLIB
+ if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
{
return DefaultDepth((Display *)connection, screen);
}
+#endif
#ifdef BUILD_ENGINE_SOFTWARE_XCB
- if (backend == 1)
+ if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
{
xcb_screen_iterator_t iter_screen;
xcb_screen_t *s;
evas_common_draw_init();
evas_common_tilebuf_init();
- if (info->info.backend == 0)
+#ifdef BUILD_ENGINE_SOFTWARE_XLIB
+ if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
{
re = _output_xlib_setup(e->output.w,
e->output.h,
re->outbuf_idle_flush = evas_software_xlib_outbuf_idle_flush;
re->outbuf_alpha_get = evas_software_xlib_outbuf_alpha_get;
}
+#endif
#ifdef BUILD_ENGINE_SOFTWARE_XCB
- if (info->info.backend == 1)
+ if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
{
re = _output_xcb_setup(e->output.w,
e->output.h,
re = e->engine.data.output;
ponebuf = re->ob->onebuf;
- if (info->info.backend == 0)
+#ifdef BUILD_ENGINE_SOFTWARE_XLIB
+ if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
{
evas_software_xlib_outbuf_free(re->ob);
re->ob = evas_software_xlib_outbuf_setup_x(e->output.w,
info->info.destination_alpha);
evas_software_xlib_outbuf_debug_set(re->ob, info->info.debug);
}
+#endif
#ifdef BUILD_ENGINE_SOFTWARE_XCB
- if (info->info.backend == 1)
+ if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
{
evas_software_xcb_outbuf_free(re->ob);
re->ob = evas_software_xcb_outbuf_setup_x(e->output.w,
#include <sys/ipc.h>
#include <sys/shm.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/Xatom.h>
-#include <X11/extensions/XShm.h>
+#ifdef BUILD_ENGINE_SOFTWARE_XLIB
+# include <X11/Xlib.h>
+# include <X11/Xutil.h>
+# include <X11/Xatom.h>
+# include <X11/extensions/XShm.h>
+#endif
#ifdef BUILD_ENGINE_SOFTWARE_XCB
# include <xcb/xcb.h>
struct {
Convert_Pal *pal;
union {
+#ifdef BUILD_ENGINE_SOFTWARE_XLIB
struct {
Display *disp;
Window win;
unsigned char swap : 1;
unsigned char bit_swap : 1;
} xlib;
+#endif
#ifdef BUILD_ENGINE_SOFTWARE_XCB
struct {
xcb_connection_t *conn;