diff --git a/legacy/evas/configure.ac b/legacy/evas/configure.ac index 249a2d004c..a34642505e 100644 --- a/legacy/evas/configure.ac +++ b/legacy/evas/configure.ac @@ -405,6 +405,33 @@ if test "x$have_evas_engine_software_16_wince" = "xyes"; then fi AM_CONDITIONAL(BUILD_ENGINE_SOFTWARE_16, test "x$have_evas_engine_software_16" = "xyes") +# if software generic need to be build as part of libevas.so +have_static_software_generic="no" +AC_ARG_ENABLE([static-software-generic], + [AC_HELP_STRING([--enable-static-software-generic], [Build software generic engine as part of libevas])], + [have_static_software_generic=${enableval}] +) +AC_MSG_CHECKING([Whether to build software generic engine as part of libevas]) +AC_MSG_RESULT([${have_static_software_generic}]) + +AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, test "x${have_static_software_generic}" = "xyes") +if test "x${have_static_software_generic}" = "xyes"; then + AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, [1], [Build software generic engine as part of libevas]) +fi + +# if software 16 need to be build as part of libevas.so +have_static_software_16="no" +AC_ARG_ENABLE([static-software-16], + [AC_HELP_STRING([--enable-static-software-16], [Build software 16 engine as part of libevas])], + [have_static_software_16=${enableval}] +) +AC_MSG_CHECKING([Whether to build software 16 engine as part of libevas]) +AC_MSG_RESULT([${have_static_software_16}]) + +AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_16, test "x${have_static_software_16}" = "xyes") +if test "x${have_static_software_16}" = "xyes"; then + AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_16, [1], [Build software 16 engine as part of libevas]) +fi ##################################################################### ## Image loaders @@ -1198,37 +1225,37 @@ echo echo "Configuration Options Summary:" echo echo "Engines:" -echo " Software Memory Buffer.....: $have_evas_engine_buffer" -echo " Software X11...............: $have_evas_engine_software_x11 (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)" +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)" # FIXME: opengl engine needs to be fixed and tested lots for all drivers echo echo "Image Loaders:" -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" +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_jpg" +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" # FIXME: need to add modular image loader system # FIXME: add more image loader modules echo diff --git a/legacy/evas/m4/evas_check_engine.m4 b/legacy/evas/m4/evas_check_engine.m4 index 2ad18f8806..1af1c30f86 100644 --- a/legacy/evas/m4/evas_check_engine.m4 +++ b/legacy/evas/m4/evas_check_engine.m4 @@ -617,6 +617,24 @@ fi AM_CONDITIONAL(BUILD_ENGINE_[]UP, [test "x${have_evas_engine_[]DOWN}" = "xyes"]) +want_static="no" +have_static_evas_engine_[]DOWN="" + +AC_ARG_ENABLE([static-$1], + [AC_HELP_STRING([--enable-static-$1], [enable static build of $4 rendering backend])], + [want_static=${enableval}] +) + +AC_MSG_CHECKING([whether to statically include $4 rendering backend inside evas library]) +AC_MSG_RESULT([${want_static}]) + +AM_CONDITIONAL(EVAS_STATIC_BUILD_[]UP, [test "x${want_static}" = "xyes" -a "x${have_evas_engine_[]DOWN}" = "xyes"]) + +if test "x${want_static}" = "xyes" -a "x${have_evas_engine_[]DOWN}" = "xyes"; then + have_static_evas_engine_[]DOWN="(static)" + AC_DEFINE(EVAS_STATIC_BUILD_[]UP, [1], [Build $1 engine inside libevas]) +fi + m4_popdef([UP]) m4_popdef([DOWN]) diff --git a/legacy/evas/m4/evas_check_loader.m4 b/legacy/evas/m4/evas_check_loader.m4 index e30d2c0c50..c0b7c76842 100644 --- a/legacy/evas/m4/evas_check_loader.m4 +++ b/legacy/evas/m4/evas_check_loader.m4 @@ -304,6 +304,23 @@ fi AM_CONDITIONAL(BUILD_LOADER_[]UP, [test "x${have_evas_image_loader_[]DOWN}" = "xyes"]) +want_static_[]DOWN="no" +have_static_evas_image_loader_[]DOWN="" + +AC_ARG_ENABLE([static-image-loader-[]DOWN], + [AC_HELP_STRING([--enable-static-image-loader-[]DOWN], [Build $1 image loader inside evas library])], + [want_static_[]DOWN=${enableval}] +) +AC_MSG_CHECKING([whether to build inside evas library $1 image loader]) +AC_MSG_RESULT([${want_static_[]DOWN}]) + +AM_CONDITIONAL(EVAS_STATIC_BUILD_[]UP, [test "x${want_static_[]DOWN}" = "xyes" -a "x${have_evas_image_loader_[]DOWN}" = "xyes"]) + +if test "x${want_static_[]DOWN}" = "xyes" -a "x${have_evas_image_loader_[]DOWN}" = "xyes"; then + have_static_evas_image_loader_[]DOWN="(static)" + AC_DEFINE(EVAS_STATIC_BUILD_[]UP, [1], [Build $1 image loader inside libevas]) +fi + m4_popdef([UP]) m4_popdef([DOWN]) diff --git a/legacy/evas/src/lib/Makefile.am b/legacy/evas/src/lib/Makefile.am index 4b22a8783f..67895d033b 100644 --- a/legacy/evas/src/lib/Makefile.am +++ b/legacy/evas/src/lib/Makefile.am @@ -1,6 +1,164 @@ MAINTAINERCLEANFILES = Makefile.in SUBDIRS = canvas data cache cserve file engines imaging include +EVAS_STATIC_MODULE = +EVAS_STATIC_LIBADD = + +if EVAS_STATIC_BUILD_SOFTWARE_GENERIC +SUBDIRS += ../modules/engines/software_generic/ +EVAS_STATIC_MODULE += ../modules/engines/software_generic/libevas_engine_software_generic.la +endif +if EVAS_STATIC_BUILD_BUFFER +SUBDIRS += ../modules/engines/buffer/ +EVAS_STATIC_MODULE += ../modules/engines/buffer/libevas_engine_buffer.la +endif +if EVAS_STATIC_BUILD_DIRECT3D +SUBDIRS += ../modules/engines/direct3d/ +EVAS_STATIC_MODULE += ../modules/engines/direct3d/libevas_engine_direct3d.la +EVAS_STATIC_LIBADD += @evas_engine_direct3d_libs@ +endif +if EVAS_STATIC_BUILD_DIRECTFB +SUBDIRS += ../modules/engines/directfb/ +EVAS_STATIC_MODULE += ../modules/engines/directfb/libevas_engine_directfb.la +EVAS_STATIC_LIBADD += @evas_engine_directfb_libs@ +endif +if EVAS_STATIC_BUILD_FB +SUBDIRS += ../modules/engines/fb/ +EVAS_STATIC_MODULE += ../modules/engines/fb/libevas_engine_fb.la +EVAS_STATIC_LIBADD += @evas_engine_fb_libs@ +endif +if EVAS_STATIC_BUILD_GL_GLEW +SUBDIRS += \ + ../modules/engines/gl_common \ + ../modules/engines/gl_glew +EVAS_STATIC_MODULE += \ + ../modules/engines/gl_common/libevas_engine_gl_common.la \ + ../modules/engines/gl_glew/libevas_engine_gl_glew.la +EVAS_STATIC_LIBADD += @evas_engine_gl_common_libs@ @evas_engine_gl_glew_libs@ +endif +if EVAS_STATIC_BUILD_GL_X11 +SUBDIRS += \ + ../modules/engines/gl_common \ + ../modules/engines/gl_x11 +EVAS_STATIC_MODULE += \ + ../modules/engines/gl_common/libevas_engine_gl_common.la \ + ../modules/engines/gl_x11/libevas_engine_gl_x11.la +EVAS_STATIC_LIBADD += @evas_engine_gl_common_libs@ @evas_engine_gl_x11_libs@ +endif +if EVAS_STATIC_BUILD_QUARTZ +SUBDIRS += ../modules/engines/quartz/ +EVAS_STATIC_MODULE += ../modules/engines/quartz/libevas_engine_quartz.la +EVAS_STATIC_LIBADD += @evas_engine_quartz_libs@ +endif +if EVAS_STATIC_BUILD_SOFTWARE_16 +SUBDIRS += ../modules/engines/software_16/ +EVAS_STATIC_MODULE += ../modules/engines/software_16/libevas_engine_software_16.la +endif +if EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW +SUBDIRS += ../modules/engines/software_16_ddraw/ +EVAS_STATIC_MODULE += ../modules/engines/software_16_ddraw/libevas_engine_software_16_ddraw.la +EVAS_STATIC_LIBADD += @evas_engine_software_16_ddraw_libs@ +endif +if EVAS_STATIC_BUILD_SOFTWARE_16_WINCE +SUBDIRS += ../modules/engines/software_16_wince/ +EVAS_STATIC_MODULE += ../modules/engines/software_16_wince/libevas_engine_software_16_wince.la +EVAS_STATIC_LIBADD += @evas_engine_software_16_wince_libs@ +endif +if EVAS_STATIC_BUILD_SOFTWARE_16_X11 +SUBDIRS += ../modules/engines/software_16_x11/ +EVAS_STATIC_MODULE += ../modules/engines/software_16_x11/libevas_engine_software_16_x11.la +EVAS_STATIC_LIBADD += @evas_engine_software_16_x11_libs@ +endif +if EVAS_STATIC_BUILD_SOFTWARE_SDL +SUBDIRS += \ + ../modules/engines/software_16_sdl/ \ + ../modules/engines/software_sdl/ +EVAS_STATIC_MODULE += \ + ../modules/engines/software_16_sdl/libevas_engine_software_16_sdl.la \ + ../modules/engines/software_sdl/libevas_engine_software_sdl.la +EVAS_STATIC_LIBADD += @SDL_LIBS@ +endif +if EVAS_STATIC_BUILD_SOFTWARE_DDRAW +SUBDIRS += ../modules/engines/software_ddraw/ +EVAS_STATIC_MODULE += ../modules/engines/software_ddraw/libevas_engine_software_ddraw.la +EVAS_STATIC_LIBADD += @evas_engine_software_ddraw_libs@ +endif +if EVAS_STATIC_BUILD_SOFTWARE_GDI +SUBDIRS += ../modules/engines/software_gdi/ +EVAS_STATIC_MODULE += ../modules/engines/software_gdi/libevas_engine_software_gdi.la +EVAS_STATIC_LIBADD += @evas_engine_software_gdi_libs@ +endif +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@ +endif +if EVAS_STATIC_BUILD_XRENDER_X11 +SUBDIRS += ../modules/engines/xrender_x11/ +EVAS_STATIC_MODULE += ../modules/engines/xrender_x11/libevas_engine_xrender_x11.la +EVAS_STATIC_LIBADD += @evas_engine_xrender_x11_libs@ @evas_engine_xrender_xcb_libs@ +endif +if EVAS_STATIC_BUILD_EDB +SUBDIRS += ../modules/savers/edb ../modules/loaders/edb +EVAS_STATIC_MODULE += ../modules/savers/edb/libevas_saver_edb.la ../modules/loaders/edb/libevas_loader_edb.la +EVAS_STATIC_LIBADD += @evas_image_loader_edb_libs@ +endif +if EVAS_STATIC_BUILD_EET +SUBDIRS += ../modules/savers/eet ../modules/loaders/eet +EVAS_STATIC_MODULE += ../modules/savers/eet/libevas_saver_eet.la ../modules/loaders/eet/libevas_loader_eet.la +EVAS_STATIC_LIBADD += @evas_image_loader_eet_libs@ +endif +if EVAS_STATIC_BUILD_GIF +SUBDIRS += ../modules/loaders/gif +EVAS_STATIC_MODULE += ../modules/loaders/gif/libevas_loader_gif.la +EVAS_STATIC_LIBADD += @evas_image_loader_gif_libs@ +endif +if EVAS_STATIC_BUILD_JPEG +SUBDIRS += ../modules/savers/jpeg ../modules/loaders/jpeg +EVAS_STATIC_MODULE += ../modules/savers/jpeg/libevas_saver_jpeg.la ../modules/loaders/jpeg/libevas_loader_jpeg.la +EVAS_STATIC_LIBADD += @evas_image_loader_jpeg_libs@ +endif +if EVAS_STATIC_BUILD_PMAPS +SUBDIRS += ../modules/loaders/pmaps +EVAS_STATIC_MODULE += ../modules/loaders/pmaps/libevas_loader_pmaps.la +EVAS_STATIC_LIBADD += @evas_image_loader_pmaps_libs@ +endif +if EVAS_STATIC_BUILD_PNG +SUBDIRS += ../modules/savers/png ../modules/loaders/png +EVAS_STATIC_MODULE += ../modules/savers/png/libevas_saver_png.la ../modules/loaders/png/libevas_loader_png.la +EVAS_STATIC_LIBADD += @evas_image_loader_png_libs@ +endif +if EVAS_STATIC_BUILD_SVG +SUBDIRS += ../modules/loaders/svg +EVAS_STATIC_MODULE += ../modules/loaders/svg/libevas_loader_svg.la +EVAS_STATIC_LIBADD += @evas_image_loader_svg_libs@ +endif +if EVAS_STATIC_BUILD_TIFF +SUBDIRS += ../modules/savers/tiff ../modules/loaders/tiff +EVAS_STATIC_MODULE += ../modules/savers/tiff/libevas_saver_tiff.la ../modules/loaders/tiff/libevas_loader_tiff.la +EVAS_STATIC_LIBADD += @evas_image_loader_tiff_libs@ +endif +if EVAS_STATIC_BUILD_XPM +SUBDIRS += ../modules/loaders/xpm +EVAS_STATIC_MODULE += ../modules/loaders/xpm/libevas_loader_xpm.la +EVAS_STATIC_LIBADD += @evas_image_loader_xpm_libs@ +endif + + +#if EVAS_STATIC_BUILD_CAIRO_X11 +#SUBDIRS += \ +# ../modules/engines/cairo_common \ +# ../modules/engines/cairo_x11 +#EVAS_STATIC_MODULE += \ +# ../modules/engines/cairo_common/libevas_engine_cairo_common.la \ +# ../modules/engines/cairo_x11/libevas_engine_cairo_x11.la +#EVAS_STATIC_LIBADD += @CAIRO_CFLAGS@ +#endif +#if EVAS_STATIC_BUILD_SOFTWARE_QTOPIA +#SUBDIRS += ../modules/engines/software_qtopia/ +#EVAS_STATIC_MODULE += ../modules/engines/software_qtopia/libevas_engine_software_qtopia.la +#EVAS_STATIC_LIBADD += @evas_engine_software_qtopia_libs@ +#endif AM_CPPFLAGS = \ -I. \ @@ -45,6 +203,8 @@ engines/common/libevas_engine_common.la \ @FONTCONFIG_LIBS@ \ @pthread_libs@ \ @EINA_LIBS@ \ +$(EVAS_STATIC_MODULE) \ +$(EVAS_STATIC_LIBADD) \ -lm libevas_la_DEPENDENCIES = \ @@ -54,7 +214,8 @@ file/libevas_file.la \ cache/libevas_cache.la \ imaging/libevas_imaging.la \ $(libevas_cserve_la) \ -engines/common/libevas_engine_common.la +engines/common/libevas_engine_common.la \ +$(EVAS_STATIC_MODULE) if BUILD_ENGINE_SOFTWARE_16 diff --git a/legacy/evas/src/lib/canvas/evas_main.c b/legacy/evas/src/lib/canvas/evas_main.c index 707b39223b..3953f77df7 100644 --- a/legacy/evas/src/lib/canvas/evas_main.c +++ b/legacy/evas/src/lib/canvas/evas_main.c @@ -2,7 +2,6 @@ #include "evas_private.h" #include "evas_cs.h" -extern Eina_List *evas_modules; static int initcount = 0; Eina_Mempool *_evas_rectangle_mp = NULL; @@ -250,7 +249,6 @@ evas_free(Evas *e) EAPI void evas_output_method_set(Evas *e, int render_method) { - Eina_List *l; Evas_Module *em; MAGIC_CHECK(e, Evas, MAGIC_EVAS); @@ -261,27 +259,22 @@ evas_output_method_set(Evas *e, int render_method) if (render_method == RENDER_METHOD_INVALID) return; /* if the engine is already set up - abort */ if (e->output.render_method != RENDER_METHOD_INVALID) return; - /* iterate trough the list to find the id */ - EINA_LIST_FOREACH(evas_modules, l, em) - { - Evas_Module_Engine *eme; + /* Request the right engine. */ + em = evas_module_engine_get(render_method); + if (!em) return ; + if (em->id_engine != render_method) return; + if (!evas_module_load(em)) return; - if (em->type != EVAS_MODULE_TYPE_ENGINE) continue; - if (!em->data) continue; - eme = (Evas_Module_Engine *)em->data; - if (eme->id != render_method) continue; - if (!evas_module_load(em)) return; - /* set the correct render */ - e->output.render_method = render_method; - e->engine.func = (em->functions); - evas_module_use(em); - if (e->engine.module) evas_module_unref(e->engine.module); - e->engine.module = em; - evas_module_ref(em); - /* get the engine info struct */ - if (e->engine.func->info) e->engine.info = e->engine.func->info(e); - return; - } + /* set the correct render */ + e->output.render_method = render_method; + e->engine.func = (em->functions); + evas_module_use(em); + if (e->engine.module) evas_module_unref(e->engine.module); + e->engine.module = em; + evas_module_ref(em); + /* get the engine info struct */ + if (e->engine.func->info) e->engine.info = e->engine.func->info(e); + return; } /** @@ -689,25 +682,14 @@ evas_coord_world_y_to_screen(const Evas *e, Evas_Coord y) EAPI int evas_render_method_lookup(const char *name) { - static int i = 1; Evas_Module *em; - Evas_Module_Engine *eem; - + if (!name) return RENDER_METHOD_INVALID; /* search on the engines list for the name */ em = evas_module_find_type(EVAS_MODULE_TYPE_ENGINE, name); - if (!em) return RENDER_METHOD_INVALID; - - eem = (Evas_Module_Engine *)em->data; - if (!eem) - { - eem = malloc(sizeof(Evas_Module_Engine)); - em->data = eem; - eem->id = i; - i++; - } - return eem->id; + + return em->id_engine; } /** @@ -748,58 +730,58 @@ evas_render_method_list(void) /* FIXME: get from modules - this is currently coded-in */ #ifdef BUILD_ENGINE_SOFTWARE_GDI - methods = eina_list_append(methods, strdup("software_gdi")); + methods = eina_list_append(methods, "software_gdi"); #endif #ifdef BUILD_ENGINE_SOFTWARE_DDRAW - methods = eina_list_append(methods, strdup("software_ddraw")); + methods = eina_list_append(methods, "software_ddraw"); #endif #ifdef BUILD_ENGINE_SOFTWARE_16_DDRAW - methods = eina_list_append(methods, strdup("software_16_ddraw")); + methods = eina_list_append(methods, "software_16_ddraw"); #endif #ifdef BUILD_ENGINE_DIRECT3D - methods = eina_list_append(methods, strdup("direct3d")); + methods = eina_list_append(methods, "direct3d"); #endif #ifdef BUILD_ENGINE_SOFTWARE_16_WINCE - methods = eina_list_append(methods, strdup("software_16_wince")); + methods = eina_list_append(methods, "software_16_wince"); #endif #ifdef BUILD_ENGINE_SOFTWARE_X11 - methods = eina_list_append(methods, strdup("software_x11")); + methods = eina_list_append(methods, "software_x11"); #endif #ifdef BUILD_ENGINE_XRENDER_X11 - methods = eina_list_append(methods, strdup("xrender_x11")); + methods = eina_list_append(methods, "xrender_x11"); #endif #ifdef BUILD_ENGINE_XRENDER_XCB - methods = eina_list_append(methods, strdup("xrender_xcb")); + methods = eina_list_append(methods, "xrender_xcb"); #endif #ifdef BUILD_ENGINE_SOFTWARE_16_X11 - methods = eina_list_append(methods, strdup("software_16_x11")); + methods = eina_list_append(methods, "software_16_x11"); #endif #ifdef BUILD_ENGINE_GL_X11 - methods = eina_list_append(methods, strdup("gl_x11")); + methods = eina_list_append(methods, "gl_x11"); #endif #ifdef BUILD_ENGINE_GL_GLEW - methods = eina_list_append(methods, strdup("gl_glew")); + methods = eina_list_append(methods, "gl_glew"); #endif #ifdef BUILD_ENGINE_CAIRO_X11 - methods = eina_list_append(methods, strdup("cairo_x11")); + methods = eina_list_append(methods, "cairo_x11"); #endif #ifdef BUILD_ENGINE_DIRECTFB - methods = eina_list_append(methods, strdup("directfb")); + methods = eina_list_append(methods, "directfb"); #endif #ifdef BUILD_ENGINE_FB - methods = eina_list_append(methods, strdup("fb")); + methods = eina_list_append(methods, "fb"); #endif #ifdef BUILD_ENGINE_BUFFER - methods = eina_list_append(methods, strdup("buffer")); + methods = eina_list_append(methods, "buffer"); #endif #ifdef BUILD_ENGINE_SOFTWARE_WIN32_GDI - methods = eina_list_append(methods, strdup("software_win32_gdi")); + methods = eina_list_append(methods, "software_win32_gdi"); #endif #ifdef BUILD_ENGINE_SOFTWARE_QTOPIA - methods = eina_list_append(methods, strdup("software_qtopia")); + methods = eina_list_append(methods, "software_qtopia"); #endif #ifdef BUILD_ENGINE_SOFTWARE_SDL - methods = eina_list_append(methods, strdup("software_sdl")); + methods = eina_list_append(methods, "software_sdl"); #endif return methods; @@ -835,11 +817,7 @@ evas_render_method_list(void) EAPI void evas_render_method_list_free(Eina_List *list) { - while (list) - { - free(list->data); - list = eina_list_remove(list, list->data); - } + eina_list_free(list); } /** diff --git a/legacy/evas/src/lib/engines/common/evas_image_load.c b/legacy/evas/src/lib/engines/common/evas_image_load.c index d6b1736acd..e65884f4ce 100644 --- a/legacy/evas/src/lib/engines/common/evas_image_load.c +++ b/legacy/evas/src/lib/engines/common/evas_image_load.c @@ -6,8 +6,6 @@ #include "evas_private.h" #include "evas_cs.h" -extern Eina_List *evas_modules; - struct ext_loader_s { const char* extention; const char* loader; @@ -34,12 +32,30 @@ static struct ext_loader_s loaders[] = { { "pnm", "pmaps" } }; +static Eina_Bool +_evas_image_foreach_loader(const Eina_Hash *hash, const char *key, Evas_Module *em, Image_Entry *ie) +{ + Evas_Image_Load_Func *evas_image_load_func = NULL; + + if (!evas_module_load(em)) return EINA_TRUE; + evas_image_load_func = em->functions; + evas_module_use(em); + if (evas_image_load_func && evas_image_load_func->file_head(ie, ie->file, ie->key)) + { + ie->info.module = (void*) em; + ie->info.loader = (void*) evas_image_load_func; + evas_module_ref((Evas_Module*) ie->info.module); + return EINA_FALSE; + } + + return EINA_TRUE; +} + EAPI int evas_common_load_rgba_image_module_from_file(Image_Entry *ie) { Evas_Image_Load_Func *evas_image_load_func = NULL; const char *loader = NULL; - Eina_List *l; Evas_Module *em; char *dot; int i; @@ -82,21 +98,9 @@ evas_common_load_rgba_image_module_from_file(Image_Entry *ie) } } - EINA_LIST_FOREACH(evas_modules, l, em) - { - if (em->type != EVAS_MODULE_TYPE_IMAGE_LOADER) continue; - if (!evas_module_load(em)) continue; - evas_image_load_func = em->functions; - evas_module_use(em); - if (evas_image_load_func && evas_image_load_func->file_head(ie, ie->file, ie->key)) - { - if (evas_modules != l) - { - evas_modules = eina_list_promote_list(evas_modules, l); - } - goto ok; - } - } + /* FIXME: We don't try not loaded module yet, changed behaviour with previous one. */ + evas_module_foreach_image_loader(_evas_image_foreach_loader, ie); + if (ie->info.module) return 0; return -1; diff --git a/legacy/evas/src/lib/engines/common/evas_image_save.c b/legacy/evas/src/lib/engines/common/evas_image_save.c index 21d666c070..a2fa3c87a2 100644 --- a/legacy/evas/src/lib/engines/common/evas_image_save.c +++ b/legacy/evas/src/lib/engines/common/evas_image_save.c @@ -12,8 +12,6 @@ #include "evas_private.h" -extern Eina_List *evas_modules; - int evas_common_save_image_to_file(RGBA_Image *im, const char *file, const char *key, int quality, int compress) { diff --git a/legacy/evas/src/lib/file/evas_module.c b/legacy/evas/src/lib/file/evas_module.c index 46f60710b5..7bb05f1bd7 100644 --- a/legacy/evas/src/lib/file/evas_module.c +++ b/legacy/evas/src/lib/file/evas_module.c @@ -2,35 +2,35 @@ # define _GNU_SOURCE #endif -#include /* DIR, dirent */ -#include /* dlopen,dlclose,etc */ +#include #include #include -Eina_List *evas_modules = NULL; +static Eina_Hash *evas_modules[4] = { + NULL, + NULL, + NULL, + NULL +}; + +static Eina_List *eina_evas_modules = NULL; static Eina_List *evas_module_paths = NULL; +static Eina_Array *evas_engines = NULL; -static void -_evas_module_path_append(Evas_Module_Type type, char *path, const char *subdir) +static Eina_List * +_evas_module_append(Eina_List *list, char *path) { - Evas_Module_Path *mp; - char *buf; - - buf = evas_file_path_join(path, subdir); - if (!buf) return; - if (evas_file_path_exists(buf)) + if (path) { - mp = malloc(sizeof(Evas_Module_Path)); - mp->type = type; - mp->path = buf; - evas_module_paths = eina_list_append(evas_module_paths, mp); + if (evas_file_path_exists(path)) + list = eina_list_append(list, path); + else + free(path); } - else - free(buf); + return list; } - /* this will alloc a list of paths to search for the modules */ /* by now these are: */ /* 1. ~/.evas/modules/ */ @@ -40,73 +40,21 @@ _evas_module_path_append(Evas_Module_Type type, char *path, const char *subdir) void evas_module_paths_init(void) { - char *prefix; char *path; - Eina_List *paths = NULL; /* 1. ~/.evas/modules/ */ - prefix = getenv("HOME"); - if (prefix) - { - path = malloc(strlen(prefix) + 1 + strlen("/.evas/modules")); - if (path) - { - path[0] = 0; - strcpy(path, prefix); - strcat(path, "/.evas/modules"); - if (evas_file_path_exists(path)) - paths = eina_list_append(paths, path); - else - free(path); - } - } + path = eina_module_environment_path_get("HOME", "/.evas/modules"); + evas_module_paths = _evas_module_append(evas_module_paths, path); /* 2. $(EVAS_MODULE_DIR)/evas/modules/ */ - prefix = getenv("EVAS_MODULES_DIR"); - if (prefix) - { - path = malloc(strlen(prefix) + 1 + strlen("/evas/modules")); - if (path) - { - path[0] = 0; - strcpy(path, prefix); - strcat(path, "/evas/modules"); - if (evas_file_path_exists(path)) - paths = eina_list_append(paths, path); - else - free(path); - } - } + path = eina_module_environment_path_get("EVAS_MODULES_DIR", "/evas/modules"); + evas_module_paths = _evas_module_append(evas_module_paths, path); -#ifdef HAVE_DLADDR - { - Dl_info evas_dl; - /* 3. libevas.so/../evas/modules/ */ - if (dladdr(evas_module_paths_init, &evas_dl)) - { - int length; + /* 3. libevas.so/../evas/modules/ */ + path = eina_module_symbol_path_get(evas_module_paths_init, "/evas/modules"); + evas_module_paths = _evas_module_append(evas_module_paths, path); - if (strrchr(evas_dl.dli_fname, '/')) - { - length = strlen(strrchr(evas_dl.dli_fname, '/')); - path = malloc(strlen(evas_dl.dli_fname) - length + - strlen("/evas/modules") + 1); - if (path) - { - strncpy(path, evas_dl.dli_fname, - strlen(evas_dl.dli_fname) - length); - path[strlen(evas_dl.dli_fname) - length] = 0; - strcat(path, "/evas/modules"); - if (evas_file_path_exists(path)) - paths = eina_list_append(paths, path); - else - free(path); - } - } - } - } -#else /* 4. PREFIX/evas/modules/ */ prefix = PACKAGE_LIB_DIR; path = malloc(strlen(prefix) + 1 + strlen("/evas/modules")); @@ -114,187 +62,323 @@ evas_module_paths_init(void) { strcpy(path, prefix); strcat(path, "/evas/modules"); - if (evas_file_path_exists(path)) - paths = eina_list_append(paths, path); - else - free(path); - } -#endif - - /* append all the module types subdirs */ - while (paths) - { - /* here must be added all the types of modules and their subdirectory */ - /* do this on a separate function */ - /* 1. engines */ - _evas_module_path_append(EVAS_MODULE_TYPE_ENGINE, paths->data, "engines"); - _evas_module_path_append(EVAS_MODULE_TYPE_IMAGE_LOADER, paths->data, "loaders"); - _evas_module_path_append(EVAS_MODULE_TYPE_IMAGE_SAVER, paths->data, "savers"); - _evas_module_path_append(EVAS_MODULE_TYPE_OBJECT, paths->data, "objects"); - free(paths->data); - paths = eina_list_remove_list(paths, paths); + evas_module_paths = _evas_module_append(evas_module_paths, path); } } +#define EVAS_EINA_STATIC_MODULE_DEFINE(Tn, Name) \ + Eina_Bool evas_##Tn##_##Name##_init(void); \ + void evas_##Tn##_##Name##_shutdown(void); + +#define EVAS_EINA_STATIC_MODULE_USE(Tn, Name) \ + { evas_##Tn##_##Name##_init, evas_##Tn##_##Name##_shutdown } + +EVAS_EINA_STATIC_MODULE_DEFINE(engine, buffer); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, cairo_x11); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, direct3d); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, directfb); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, fb); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, gl_glew); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, gl_x11); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, quartz); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_ddraw); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_sdl); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_wince); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_x11); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_ddraw); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_gdi); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_generic); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_qtopia); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_sdl); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_x11); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, xrender_x11); +EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, xpm); +EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, tiff); +EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, svg); +EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, png); +EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, pmaps); +EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, jpeg); +EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, gif); +EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, eet); +EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, edb); +EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, edb); +EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, eet); +EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, jpeg); +EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, png); +EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, tiff); + +static const struct { + Eina_Bool (*init)(void); + void (*shutdown)(void); +} evas_static_module[] = { +#ifdef EVAS_STATIC_BUILD_BUFFER + EVAS_EINA_STATIC_MODULE_USE(engine, buffer), +#endif +#ifdef EVAS_STATIC_BUILD_CAIRO_X11 + EVAS_EINA_STATIC_MODULE_USE(engine, cairo_x11), +#endif +#ifdef EVAS_STATIC_BUILD_DIRECT3D + EVAS_EINA_STATIC_MODULE_USE(engine, direct3d), +#endif +#ifdef EVAS_STATIC_BUILD_DIRECTFB + EVAS_EINA_STATIC_MODULE_USE(engine, directfb), +#endif +#ifdef EVAS_STATIC_BUILD_FB + EVAS_EINA_STATIC_MODULE_USE(engine, fb), +#endif +#ifdef EVAS_STATIC_BUILD_GL_GLEW + EVAS_EINA_STATIC_MODULE_USE(engine, gl_glew), +#endif +#ifdef EVAS_STATIC_BUILD_GL_X11 + EVAS_EINA_STATIC_MODULE_USE(engine, gl_x11), +#endif +#ifdef EVAS_STATIC_BUILD_QUARTZ + EVAS_EINA_STATIC_MODULE_USE(engine, quartz), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_16 + EVAS_EINA_STATIC_MODULE_USE(engine, software_16), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW + EVAS_EINA_STATIC_MODULE_USE(engine, software_16_ddraw), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_SDL + EVAS_EINA_STATIC_MODULE_USE(engine, software_16_sdl), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_WINCE + EVAS_EINA_STATIC_MODULE_USE(engine, software_16_wince), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_X11 + EVAS_EINA_STATIC_MODULE_USE(engine, software_16_x11), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW + EVAS_EINA_STATIC_MODULE_USE(engine, software_ddraw), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_GDI + EVAS_EINA_STATIC_MODULE_USE(engine, software_gdi), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_GENERIC + EVAS_EINA_STATIC_MODULE_USE(engine, software_generic), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_QTOPIA + EVAS_EINA_STATIC_MODULE_USE(engine, software_qtopia), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_SDL + EVAS_EINA_STATIC_MODULE_USE(engine, software_sdl), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_X11 + EVAS_EINA_STATIC_MODULE_USE(engine, software_x11), +#endif +#ifdef EVAS_STATIC_BUILD_XRENDER_X11 + EVAS_EINA_STATIC_MODULE_USE(engine, xrender_x11), +#endif +#ifdef EVAS_STATIC_BUILD_XPM + EVAS_EINA_STATIC_MODULE_USE(image_loader, xpm), +#endif +#ifdef EVAS_STATIC_BUILD_TIFF + EVAS_EINA_STATIC_MODULE_USE(image_loader, tiff), +#endif +#ifdef EVAS_STATIC_BUILD_SVG + EVAS_EINA_STATIC_MODULE_USE(image_loader, svg), +#endif +#ifdef EVAS_STATIC_BUILD_PNG + EVAS_EINA_STATIC_MODULE_USE(image_loader, png), +#endif +#ifdef EVAS_STATIC_BUILD_PMAPS + EVAS_EINA_STATIC_MODULE_USE(image_loader, pmaps), +#endif +#ifdef EVAS_STATIC_BUILD_JPEG + EVAS_EINA_STATIC_MODULE_USE(image_loader, jpeg), +#endif +#ifdef EVAS_STATIC_BUILD_GIF + EVAS_EINA_STATIC_MODULE_USE(image_loader, gif), +#endif +#ifdef EVAS_STATIC_BUILD_EET + EVAS_EINA_STATIC_MODULE_USE(image_loader, eet), +#endif +#ifdef EVAS_STATIC_BUILD_EDB + EVAS_EINA_STATIC_MODULE_USE(image_loader, edb), +#endif +#ifdef EVAS_STATIC_BUILD_ + EVAS_EINA_STATIC_MODULE_USE(image_saver, edb), +#endif +#ifdef EVAS_STATIC_BUILD_ + EVAS_EINA_STATIC_MODULE_USE(image_saver, eet), +#endif +#ifdef EVAS_STATIC_BUILD_ + EVAS_EINA_STATIC_MODULE_USE(image_saver, jpeg), +#endif +#ifdef EVAS_STATIC_BUILD_ + EVAS_EINA_STATIC_MODULE_USE(image_saver, png), +#endif +#ifdef EVAS_STATIC_BUILD_ + EVAS_EINA_STATIC_MODULE_USE(image_saver, tiff), +#endif + { NULL, NULL } +}; + /* this will alloc an Evas_Module struct for each module * it finds on the paths */ void evas_module_init(void) { - Eina_List *l; - Evas_Module_Path *mp; - int new_id_engine = 1; + int i; -/* printf("[init modules]\n"); */ evas_module_paths_init(); - EINA_LIST_FOREACH(evas_module_paths, l, mp) - { - DIR *dir; - struct dirent *de; - if (!(dir = opendir(mp->path))) break; -/* printf("[evas module] searching modules on %s\n", mp->path); */ - while ((de = readdir(dir))) - { - char *buf; + evas_modules[EVAS_MODULE_TYPE_ENGINE] = eina_hash_string_small_new(/* FIXME: Add a function to cleanup stuff. */ NULL); + evas_modules[EVAS_MODULE_TYPE_IMAGE_LOADER] = eina_hash_string_small_new(/* FIXME: Add a function to cleanup stuff. */ NULL); + evas_modules[EVAS_MODULE_TYPE_IMAGE_SAVER] = eina_hash_string_small_new(/* FIXME: Add a function to cleanup stuff. */ NULL); + evas_modules[EVAS_MODULE_TYPE_OBJECT] = eina_hash_string_small_new(/* FIXME: Add a function to cleanup stuff. */ NULL); - if ((!strcmp(de->d_name, ".")) || (!strcmp(de->d_name, ".."))) - continue; - buf = malloc(strlen(mp->path) + 1 + strlen(de->d_name) + 1); - sprintf(buf, "%s/%s", mp->path, de->d_name); - if (evas_file_path_is_dir(buf)) - { - Evas_Module *em; + evas_engines = eina_array_new(4); - em = calloc(1, sizeof(Evas_Module)); - if (!em) continue; - em->name = strdup(de->d_name); - em->path = strdup(mp->path); - em->type = mp->type; - em->handle = NULL; - em->data = NULL; - em->loaded = 0; -#ifdef BUILD_ASYNC_PRELOAD - LKI(em->lock); -#endif -//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD) -// pthread_mutex_init(&em->lock, NULL); -//#endif - if (em->type == EVAS_MODULE_TYPE_ENGINE) - { - Evas_Module_Engine *eme; - - eme = malloc(sizeof(Evas_Module_Engine)); - if (eme) - { - eme->id = new_id_engine; - em->data = eme; - new_id_engine++; - } - } - else if (em->type == EVAS_MODULE_TYPE_IMAGE_LOADER) - { - } - else if (em->type == EVAS_MODULE_TYPE_IMAGE_SAVER) - { - } -/* printf("[evas module] including module path %s/%s of type %d\n",em->path, em->name, em->type); */ - evas_modules = eina_list_append(evas_modules, em); - } - free(buf); - } - closedir(dir); - } + for (i = 0; evas_static_module[i].init != NULL; ++i) + evas_static_module[i].init(); } +Eina_Bool +evas_module_register(const Evas_Module_Api *module, Evas_Module_Type type) +{ + Evas_Module *em; + + if (type < 0 || type > 3) return EINA_FALSE; + if (module->version != EVAS_MODULE_API_VERSION) return EINA_FALSE; + if (!module) return EINA_FALSE; + + em = eina_hash_find(evas_modules[type], module->name); + if (em) return EINA_FALSE; + + em = calloc(1, sizeof (Evas_Module)); + if (!em) return EINA_FALSE; + + em->public = module; + + if (type == EVAS_MODULE_TYPE_ENGINE) + { + eina_array_push(evas_engines, em); + em->id_engine = eina_array_count_get(evas_engines); + } + + eina_hash_direct_add(evas_modules[type], module->name, em); + + return EINA_TRUE; +} + +Eina_Bool +evas_module_unregister(const Evas_Module_Api *module, Evas_Module_Type type) +{ + Evas_Module *em; + + if (type < 0 || type > 3) return EINA_FALSE; + if (!module) return EINA_FALSE; + + em = eina_hash_find(evas_modules[type], module->name); + if (!em || em->public != module) return EINA_FALSE; + + if (type == EVAS_MODULE_TYPE_ENGINE) + eina_array_data_set(evas_engines, em->id_engine, NULL); + + eina_hash_del(evas_modules[type], module->name, em); + free(em); + + return EINA_TRUE; +} + +#if defined(__CEGCC__) || defined(__MINGW32CE__) +# define EVAS_MODULE_NAME_IMAGE_SAVER "saver_%s.dll" +# define EVAS_MODULE_NAME_IMAGE_LOADER "loader_%s.dll" +# define EVAS_MODULE_NAME_ENGINE "engine_%s.dll" +# define EVAS_MODULE_NAME_OBJECT "object_%s.dll" +#elif _WIN32 +# define EVAS_MODULE_NAME_IMAGE_SAVER "module.dll" +# define EVAS_MODULE_NAME_IMAGE_LOADER "module.dll" +# define EVAS_MODULE_NAME_ENGINE "module.dll" +# define EVAS_MODULE_NAME_OBJECT "module.dll" +#else +# define EVAS_MODULE_NAME_IMAGE_SAVER "module.so" +# define EVAS_MODULE_NAME_IMAGE_LOADER "module.so" +# define EVAS_MODULE_NAME_ENGINE "module.so" +# define EVAS_MODULE_NAME_OBJECT "module.so" +#endif + Evas_Module * evas_module_find_type(Evas_Module_Type type, const char *name) { - Eina_List *l; + const char *path; + const char *format = NULL; + char buffer[4096]; Evas_Module *em; + Eina_Module *en; + Eina_List *l; - EINA_LIST_FOREACH(evas_modules, l, em) + if (type < 0 || type > 3) return NULL; + + em = eina_hash_find(evas_modules[type], name); + if (em) return em; + + EINA_LIST_FOREACH(evas_module_paths, l, path) { - if ((type == em->type) && (!strcmp(name,em->name))) + switch (type) { - if (evas_modules != l) - { - evas_modules = eina_list_promote_list(evas_modules, l); - } + case EVAS_MODULE_TYPE_ENGINE: format = "%s/engines/%s/%s/" EVAS_MODULE_NAME_ENGINE; break; + case EVAS_MODULE_TYPE_IMAGE_LOADER: format = "%s/loaders/%s/%s/" EVAS_MODULE_NAME_IMAGE_LOADER; break; + case EVAS_MODULE_TYPE_IMAGE_SAVER: format = "%s/savers/%s/%s/" EVAS_MODULE_NAME_IMAGE_SAVER; break; + case EVAS_MODULE_TYPE_OBJECT: format = "%s/object/%s/%s/" EVAS_MODULE_NAME_OBJECT; break; + } + + snprintf(buffer, sizeof (buffer), format, path, name, MODULE_ARCH, name); + if (!evas_file_path_is_file(buffer)) continue; + + en = eina_module_new(buffer); + if (!en) continue; + + if (!eina_module_load(en)) + { + eina_module_delete(en); + continue; + } + + em = eina_hash_find(evas_modules[type], name); + if (em) + { + eina_evas_modules = eina_list_append(eina_evas_modules, en); return em; } + + eina_module_delete(en); } + return NULL; } +Evas_Module * +evas_module_engine_get(int render_method) +{ + if (render_method <= 0 || render_method > eina_array_count_get(evas_engines)) + return NULL; + return eina_array_data_get(evas_engines, render_method - 1); +} + +void +evas_module_foreach_image_loader(Eina_Hash_Foreach cb, const void *fdata) +{ + eina_hash_foreach(evas_modules[EVAS_MODULE_TYPE_IMAGE_LOADER], cb, fdata); +} + int evas_module_load(Evas_Module *em) { - char buf[4096]; - void *handle; - if (em->loaded) return 1; + if (em->public == NULL) return 0; -/* printf("LOAD %s\n", em->name); */ -#if defined(__CEGCC__) || defined(__MINGW32CE__) - switch (em->type) { - case EVAS_MODULE_TYPE_IMAGE_SAVER: - snprintf(buf, sizeof(buf), "%s/%s/%s/saver_%s.dll", em->path, em->name, MODULE_ARCH, em->name); - break; - case EVAS_MODULE_TYPE_IMAGE_LOADER: - snprintf(buf, sizeof(buf), "%s/%s/%s/loader_%s.dll", em->path, em->name, MODULE_ARCH, em->name); - break; - case EVAS_MODULE_TYPE_ENGINE: - snprintf(buf, sizeof(buf), "%s/%s/%s/engine_%s.dll", em->path, em->name, MODULE_ARCH, em->name); - break; - default: - snprintf(buf, sizeof(buf), "%s/%s/%s/object_%s.dll", em->path, em->name, MODULE_ARCH, em->name); - } -#elif _WIN32 - snprintf(buf, sizeof(buf), "%s/%s/%s/module.dll", em->path, em->name, MODULE_ARCH); -#else - snprintf(buf, sizeof(buf), "%s/%s/%s/module.so", em->path, em->name, MODULE_ARCH); + if (!em->public->func.open(em)) return 0; + em->loaded = 1; + +#ifdef BUILD_ASYNC_PRELOAD + LKI(em->lock); #endif - if (!evas_file_path_exists(buf)) - { - printf("[evas module] error loading the module %s. It doesnt exists\n", buf); - return 0; - } - - handle = dlopen(buf, RTLD_LAZY); - if (handle) - { - em->handle = handle; - em->func.open = dlsym(em->handle, "module_open"); - em->func.close = dlsym(em->handle, "module_close"); - em->api = dlsym(em->handle, "evas_modapi"); - - if ((!em->func.open) || (!em->api) || (!em->func.close)) - goto error_dl; - /* check the api */ - if (em->api->version != EVAS_MODULE_API_VERSION) - { - printf("[evas module] error loading the modules %s. The version doesnt match\n", buf); - goto error_dl; - } - em->func.open(em); - em->loaded = 1; - return 1; - } - error_dl: - { - const char *err; - - err = dlerror(); - printf("[evas module] error loading the module %s. %s\n", buf, err); - if (handle) - dlclose(handle); - em->handle = NULL; - em->func.open = NULL; - em->func.close = NULL; - em->api = NULL; - } - return 0; + return 1; } void @@ -302,22 +386,15 @@ evas_module_unload(Evas_Module *em) { if (!em->loaded) return; - if (em->handle) - { - em->func.close(em); - dlclose(em->handle); - } - em->handle = NULL; - em->func.open = NULL; - em->func.close = NULL; - em->api = NULL; + if (em->public == NULL) + return ; + + em->public->func.close(em); em->loaded = 0; -#ifdef BUILD_ASYNC_PRELOAD + +#ifdef BUILD_ASYNC_PRELOAD LKD(em->lock); #endif -//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD) -// pthread_mutex_destroy(&em->lock); -//#endif } void @@ -325,18 +402,11 @@ evas_module_ref(Evas_Module *em) { #ifdef BUILD_ASYNC_PRELOAD LKL(em->lock); -#endif -//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD) -// pthread_mutex_lock(&em->lock); -//#endif +#endif em->ref++; -/* printf("M: %s ref++ = %i\n", em->name, em->ref); */ #ifdef BUILD_ASYNC_PRELOAD LKU(em->lock); #endif -//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD) -// pthread_mutex_unlock(&em->lock); -//#endif } void @@ -344,18 +414,11 @@ evas_module_unref(Evas_Module *em) { #ifdef BUILD_ASYNC_PRELOAD LKL(em->lock); -#endif -//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD) -// pthread_mutex_lock(&em->lock); -//#endif +#endif em->ref--; -/* printf("M: %s ref-- = %i\n", em->name, em->ref); */ #ifdef BUILD_ASYNC_PRELOAD LKU(em->lock); #endif -//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD) -// pthread_mutex_unlock(&em->lock); -//#endif } static int use_count = 0; @@ -370,10 +433,10 @@ void evas_module_clean(void) { static int call_count = 0; - int ago; +/* int ago; */ int noclean = -1; - Eina_List *l; - Evas_Module *em; +/* Eina_List *l; */ +/* Evas_Module *em; */ /* only clean modules every 256 calls */ call_count++; @@ -393,64 +456,51 @@ evas_module_clean(void) /* disable module cleaning for now - may cause instability with some modules */ return; - /* incriment use counter = 28bits */ - use_count++; - if (use_count > 0x0fffffff) use_count = 0; + /* FIXME: Don't know what it is supposed to do. */ +/* /\* incriment use counter = 28bits *\/ */ +/* use_count++; */ +/* if (use_count > 0x0fffffff) use_count = 0; */ - /* printf("CLEAN!\n"); */ - /* go through all modules */ - EINA_LIST_FOREACH(evas_modules, l, em) - { - /* printf("M %s %i %i\n", em->name, em->ref, em->loaded); */ - /* if the module is refernced - skip */ - if ((em->ref > 0) || (!em->loaded)) continue; - /* how many clean cycles ago was this module last used */ - ago = use_count - em->last_used; - if (em->last_used > use_count) ago += 0x10000000; - /* if it was used last more than N clean cycles ago - unload */ - if (ago > 5) - { - /* printf(" UNLOAD %s\n", em->name); */ - evas_module_unload(em); - } - } +/* /\* printf("CLEAN!\n"); *\/ */ +/* /\* go through all modules *\/ */ +/* EINA_LIST_FOREACH(evas_modules, l, em) */ +/* { */ +/* /\* printf("M %s %i %i\n", em->name, em->ref, em->loaded); *\/ */ +/* /\* if the module is refernced - skip *\/ */ +/* if ((em->ref > 0) || (!em->loaded)) continue; */ +/* /\* how many clean cycles ago was this module last used *\/ */ +/* ago = use_count - em->last_used; */ +/* if (em->last_used > use_count) ago += 0x10000000; */ +/* /\* if it was used last more than N clean cycles ago - unload *\/ */ +/* if (ago > 5) */ +/* { */ +/* /\* printf(" UNLOAD %s\n", em->name); *\/ */ +/* evas_module_unload(em); */ +/* } */ +/* } */ } /* will dlclose all the modules loaded and free all the structs */ void evas_module_shutdown(void) { - Evas_Module *em; + Eina_Module *en; + char *path; + int i; -/* printf("[shutdown modules]\n"); */ - while (evas_modules) - { - em = (Evas_Module *)evas_modules->data; - evas_module_unload(em); - if (em->name) free(em->name); - if (em->path) free(em->path); - if (em->type == EVAS_MODULE_TYPE_ENGINE) - { - if (em->data) free(em->data); - } - else if (em->type == EVAS_MODULE_TYPE_IMAGE_LOADER) - { - } - else if (em->type == EVAS_MODULE_TYPE_IMAGE_SAVER) - { - } - free(evas_modules->data); - evas_modules = eina_list_remove_list(evas_modules, evas_modules); - } - while (evas_module_paths) - { - Evas_Module_Path *mp; + for (i = 0; evas_static_module[i].shutdown != NULL; ++i) + evas_static_module[i].shutdown(); - mp = evas_module_paths->data; - evas_module_paths = eina_list_remove_list(evas_module_paths, evas_module_paths); - free(mp->path); - free(mp); - } + EINA_LIST_FREE(eina_evas_modules, en) + eina_module_delete(en); + + eina_hash_free(evas_modules[EVAS_MODULE_TYPE_ENGINE]); + eina_hash_free(evas_modules[EVAS_MODULE_TYPE_IMAGE_LOADER]); + eina_hash_free(evas_modules[EVAS_MODULE_TYPE_IMAGE_SAVER]); + eina_hash_free(evas_modules[EVAS_MODULE_TYPE_OBJECT]); + + EINA_LIST_FREE(evas_module_paths, path) + free(path); } EAPI int diff --git a/legacy/evas/src/lib/file/evas_module.h b/legacy/evas/src/lib/file/evas_module.h index d297fcd036..e853bcaaca 100644 --- a/legacy/evas/src/lib/file/evas_module.h +++ b/legacy/evas/src/lib/file/evas_module.h @@ -3,16 +3,16 @@ /* the module api version */ -#define EVAS_MODULE_API_VERSION 1 +#define EVAS_MODULE_API_VERSION 2 /* the module types */ typedef enum _Evas_Module_Type { - EVAS_MODULE_TYPE_ENGINE, - EVAS_MODULE_TYPE_IMAGE_LOADER, - EVAS_MODULE_TYPE_IMAGE_SAVER, - EVAS_MODULE_TYPE_OBJECT + EVAS_MODULE_TYPE_ENGINE = 0, + EVAS_MODULE_TYPE_IMAGE_LOADER = 1, + EVAS_MODULE_TYPE_IMAGE_SAVER = 2, + EVAS_MODULE_TYPE_OBJECT = 3 } Evas_Module_Type; @@ -20,40 +20,34 @@ typedef struct _Evas_Module_Api Evas_Module_Api; typedef struct _Evas_Module Evas_Module; typedef struct _Evas_Module_Path Evas_Module_Path; typedef struct _Evas_Module_Engine Evas_Module_Engine; +typedef struct _Evas_Module_Public Evas_Module_Public; /* the module api structure, all modules should define this struct */ struct _Evas_Module_Api { int version; - Evas_Module_Type type; const char *name; const char *author; -}; -/* the module structure */ -struct _Evas_Module -{ - Evas_Module_Api *api; - void *handle; /* the dlopen handle */ - char *path; /* the path where this modules is */ - char *name; /* the name of the dir where this module is */ struct { int (*open)(Evas_Module *); void (*close)(Evas_Module *); } func; - void *functions; /* this are the functions exported by the module */ - void *data; /* some internal data for the module i.e the id for engines */ +}; - Evas_Module_Type type; /* the type detected by the path */ +/* the module structure */ +struct _Evas_Module +{ + const Evas_Module_Api *public; + + void *functions; /* this are the functions exported by the module */ + int id_engine; /* some internal data for the module i.e the id for engines */ int ref; /* how many refs */ int last_used; /* the cycle count when it was last used */ LK(lock); -//#if defined(HAVE_PTHREAD_H) && defined(BUILD_ASYNC_PRELOAD) -// pthread_mutex_t lock; -//#endif unsigned char loaded : 1; }; @@ -68,14 +62,11 @@ struct _Evas_Module_Path char *path; }; -struct _Evas_Module_Engine -{ - int id; -}; - void evas_module_paths_init (void); void evas_module_init (void); Evas_Module *evas_module_find_type (Evas_Module_Type type, const char *name); +Evas_Module *evas_module_engine_get(int render_method); +void evas_module_foreach_image_loader(Eina_Hash_Foreach cb, const void *fdata); int evas_module_load (Evas_Module *em); void evas_module_unload (Evas_Module *em); void evas_module_ref (Evas_Module *em); @@ -83,6 +74,21 @@ void evas_module_unref (Evas_Module *em); void evas_module_use (Evas_Module *em); void evas_module_clean (void); void evas_module_shutdown (void); +Eina_Bool evas_module_register (const Evas_Module_Api *module, Evas_Module_Type type); +Eina_Bool evas_module_unregister (const Evas_Module_Api *module, Evas_Module_Type type); +#define EVAS_MODULE_DEFINE(Type, Tn, Name) \ + Eina_Bool evas_##Tn##_##Name##_init(void) \ + { \ + return evas_module_register(&evas_modapi, Type); \ + } \ + void evas_##Tn##_##Name##_shutdown(void) \ + { \ + evas_module_unregister(&evas_modapi, Type); \ + } + +#define EVAS_EINA_MODULE_DEFINE(Tn, Name) \ + EINA_MODULE_INIT(evas_##Tn##_##Name##_init); \ + EINA_MODULE_SHUTDOWN(evas_##Tn##_##Name##_shutdown); #endif /* _EVAS_MODULE_H */ diff --git a/legacy/evas/src/modules/engines/Makefile.am b/legacy/evas/src/modules/engines/Makefile.am index 3ddd1f3873..7a20c88408 100644 --- a/legacy/evas/src/modules/engines/Makefile.am +++ b/legacy/evas/src/modules/engines/Makefile.am @@ -1,25 +1,65 @@ MAINTAINERCLEANFILES = Makefile.in -SUBDIRS = \ -software_generic \ -buffer \ -directfb \ -fb \ -gl_common \ -gl_x11 \ -gl_glew \ -software_gdi \ -software_ddraw \ -software_x11 \ -xrender_x11 \ -software_sdl \ -software_16 \ -software_16_x11 \ -direct3d \ -software_16_ddraw \ -software_16_wince \ -software_16_sdl \ -quartz +SUBDIRS = + +if !EVAS_STATIC_BUILD_SOFTWARE_GENERIC +SUBDIRS += software_generic +endif +if !EVAS_STATIC_BUILD_BUFFER +SUBDIRS += buffer +endif +if !EVAS_STATIC_BUILD_DIRECT3D +SUBDIRS += direct3d +endif +if !EVAS_STATIC_BUILD_DIRECTFB +SUBDIRS += directfb +endif +if !EVAS_STATIC_BUILD_FB +SUBDIRS += fb +endif +if !EVAS_STATIC_BUILD_GL_GLEW +SUBDIRS += gl_common gl_glew +endif +if !EVAS_STATIC_BUILD_GL_X11 +SUBDIRS += gl_common gl_x11 +endif +if !EVAS_STATIC_BUILD_QUARTZ +SUBDIRS += quartz +endif +if !EVAS_STATIC_BUILD_SOFTWARE_16 +SUBDIRS += software_16 +endif +if !EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW +SUBDIRS += software_16_ddraw +endif +if !EVAS_STATIC_BUILD_SOFTWARE_16_WINCE +SUBDIRS += software_16_wince +endif +if !EVAS_STATIC_BUILD_SOFTWARE_16_X11 +SUBDIRS += software_16_x11 +endif +if !EVAS_STATIC_BUILD_SOFTWARE_SDL +SUBDIRS += software_16_sdl software_sdl +endif +if !EVAS_STATIC_BUILD_SOFTWARE_DDRAW +SUBDIRS += software_ddraw +endif +if !EVAS_STATIC_BUILD_SOFTWARE_GDI +SUBDIRS += software_gdi +endif +if !EVAS_STATIC_BUILD_SOFTWARE_X11 +SUBDIRS += software_x11 +endif +if !EVAS_STATIC_BUILD_XRENDER_X11 +SUBDIRS += xrender_x11 +endif + + +#if !EVAS_STATIC_BUILD_CAIRO_X11 +#SUBDIRS += #cairo_common #cairo_x11 -#software_qtopia +#endif +#if !EVAS_STATIC_BUILD_SOFTWARE_QTOPIA +#SUBDIRS += software_qtopia +#endif diff --git a/legacy/evas/src/modules/engines/buffer/Makefile.am b/legacy/evas/src/modules/engines/buffer/Makefile.am index 7d9b7c9a9b..371eabd4a0 100644 --- a/legacy/evas/src/modules/engines/buffer/Makefile.am +++ b/legacy/evas/src/modules/engines/buffer/Makefile.am @@ -13,20 +13,30 @@ AM_CFLAGS = @WIN32_CFLAGS@ if BUILD_ENGINE_BUFFER -pkgdir = $(libdir)/evas/modules/engines/buffer/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = \ +BUFFER_SOURCES = \ evas_engine.c \ evas_outbuf.c +pkgdir = $(libdir)/evas/modules/engines/buffer/$(MODULE_ARCH) + +include_HEADERS = Evas_Engine_Buffer.h + +if !EVAS_STATIC_BUILD_BUFFER + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(BUFFER_SOURCES) module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static -include_HEADERS = Evas_Engine_Buffer.h +else +noinst_LTLIBRARIES = libevas_engine_buffer.la + +libevas_engine_buffer_la_SOURCES = $(BUFFER_SOURCES) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/buffer/evas_engine.c b/legacy/evas/src/modules/engines/buffer/evas_engine.c index e5af0ccf6c..5343f1cfed 100644 --- a/legacy/evas/src/modules/engines/buffer/evas_engine.c +++ b/legacy/evas/src/modules/engines/buffer/evas_engine.c @@ -323,7 +323,7 @@ eng_output_idle_flush(void *data) } /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -351,15 +351,25 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { - EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "buffer", - "none" + EVAS_MODULE_API_VERSION, + "buffer", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, buffer); + +#ifndef EVAS_STATIC_BUILD_BUFFER +EVAS_EINA_MODULE_DEFINE(engine, buffer); +#endif + diff --git a/legacy/evas/src/modules/engines/cairo_x11/Makefile.am b/legacy/evas/src/modules/engines/cairo_x11/Makefile.am index e1dcc4d9d5..e861db2d94 100644 --- a/legacy/evas/src/modules/engines/cairo_x11/Makefile.am +++ b/legacy/evas/src/modules/engines/cairo_x11/Makefile.am @@ -12,20 +12,34 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_CAIRO_X11 -pkgdir = $(libdir)/evas/modules/engines/cairo_x11/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = \ +CAIRO_X11_SOURCES = \ evas_engine.c \ evas_x_main.c -module_la_LIBADD = @EINA_LIBS@ @evas_engine_cairo_x11_libs@ $(top_builddir)/src/modules/engines/cairo_common/libevas_engine_cairo_common.la $(top_builddir)/src/lib/libevas.la -module_la_LDFLAGS = -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +CAIRO_X11_LIBADD = @evas_engine_cairo_x11_libs@ $(top_builddir)/src/modules/engines/cairo_common/libevas_engine_cairo_common.la + +pkgdir = $(libdir)/evas/modules/engines/cairo_x11/$(MODULE_ARCH) include_HEADERS = Evas_Engine_Cairo_X11.h +if !EVAS_STATIC_BUILD_CAIRO_X11 + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(CAIRO_X11_SOURCES) + +module_la_LIBADD = @EINA_LIBS@ $(CAIRO_X11_SOURCES) $(top_builddir)/src/lib/libevas.la +module_la_LDFLAGS = -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_cairo_x11.la + +libevas_engine_cairo_x11_la_SOURCES = $(CAIRO_X11_SOURCES) +libevas_engine_cairo_x11_la_LIBADD = $(CAIRO_X11_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/cairo_x11/evas_engine.c b/legacy/evas/src/modules/engines/cairo_x11/evas_engine.c index 57c3b9ff42..768cffb9e8 100644 --- a/legacy/evas/src/modules/engines/cairo_x11/evas_engine.c +++ b/legacy/evas/src/modules/engines/cairo_x11/evas_engine.c @@ -1478,7 +1478,7 @@ eng_font_hinting_can_hint(void *data, int hinting) re = (Render_Engine *)data; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -1486,16 +1486,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "cairo_x11", - "none" + "cairo_x11", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, cairo_x11); + +#ifndef EVAS_STATIC_BUILD_CAIRO_X11 +EVAS_EINA_MODULE_DEFINE(engine, cairo_x11); +#endif diff --git a/legacy/evas/src/modules/engines/direct3d/Makefile.am b/legacy/evas/src/modules/engines/direct3d/Makefile.am index fda6fac1b9..26ec71f8e3 100644 --- a/legacy/evas/src/modules/engines/direct3d/Makefile.am +++ b/legacy/evas/src/modules/engines/direct3d/Makefile.am @@ -12,10 +12,7 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_DIRECT3D -pkgdir = $(libdir)/evas/modules/engines/direct3d/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la -module_la_SOURCES = \ +DIRECT3D_SOURCES = \ evas_engine.c \ evas_direct3d_context.cpp \ evas_direct3d_device.cpp \ @@ -30,13 +27,29 @@ evas_direct3d_scene.cpp \ evas_direct3d_shader_pack.cpp \ evas_direct3d_vertex_buffer_cache.cpp -module_la_CXXFLAGS = -fno-exceptions -module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_direct3d_libs@ -module_la_LDFLAGS = -no-undefined -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +DIRECT3D_LIBADD = @evas_engine_direct3d_libs@ + +pkgdir = $(libdir)/evas/modules/engines/direct3d/$(MODULE_ARCH) include_HEADERS = Evas_Engine_Direct3D.h +if !EVAS_STATIC_BUILD_DIRECT3D + +pkg_LTLIBRARIES = module.la +module_la_SOURCES = $(DIRECT3D_SOURCES) +module_la_CXXFLAGS = -fno-exceptions +module_la_LIBADD = $(top_builddir)/src/lib/libevas.la $(DIRECT3D_LIBADD) @EINA_LIBS@ +module_la_LDFLAGS = -no-undefined -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_direct3d.la + +libevas_engine_direct3d_la_SOURCES = $(DIRECT3D_SOURCES) +libevas_engine_direct3d_la_LIBADD = $(DIRECT3D_LIBADD) + +endif endif EXTRA_DIST = \ diff --git a/legacy/evas/src/modules/engines/direct3d/evas_engine.c b/legacy/evas/src/modules/engines/direct3d/evas_engine.c index 6ff9021582..736d3b7e96 100644 --- a/legacy/evas/src/modules/engines/direct3d/evas_engine.c +++ b/legacy/evas/src/modules/engines/direct3d/evas_engine.c @@ -527,7 +527,7 @@ eng_gradient2_radial_draw(void *data, void *context, void *surface, void *radial /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -600,15 +600,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { - EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "direct3d", - "none" + EVAS_MODULE_API_VERSION, + "direct3d", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, direct3d); + +#ifndef EVAS_STATIC_BUILD_DIRECT3D +EVAS_EINA_MODULE_DEFINE(engine, direct3d); +#endif diff --git a/legacy/evas/src/modules/engines/directfb/Makefile.am b/legacy/evas/src/modules/engines/directfb/Makefile.am index a6bee077cb..c4b7a5e0c2 100644 --- a/legacy/evas/src/modules/engines/directfb/Makefile.am +++ b/legacy/evas/src/modules/engines/directfb/Makefile.am @@ -14,18 +14,31 @@ AM_CFLAGS = @WIN32_CFLAGS@ if BUILD_ENGINE_DIRECTFB +DIRECTFB_SOURCES = evas_engine.c polygon.c +DIRECTFB_LIBADD = @evas_engine_directfb_libs@ + pkgdir = $(libdir)/evas/modules/engines/directfb/$(MODULE_ARCH) -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = evas_engine.c polygon.c - -module_la_LIBADD = @EINA_LIBS@ @evas_engine_directfb_libs@ $(top_builddir)/src/lib/libevas.la -module_la_LDFLAGS = -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static - include_HEADERS = Evas_Engine_DirectFB.h +if !EVAS_STATIC_BUILD_DIRECTFB + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(DIRECTFB_SOURCES) + +module_la_LIBADD = @EINA_LIBS@ $(DIRECTFB_LIBADD) $(top_builddir)/src/lib/libevas.la +module_la_LDFLAGS = -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_directfb.la + +libevas_engine_directfb_la_SOURCES = $(DIRECTFB_SOURCES) +libevas_engine_directfb_la_LIBADD = $(DIRECTFB_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/directfb/evas_engine.c b/legacy/evas/src/modules/engines/directfb/evas_engine.c index aff909bd10..6a41d78947 100644 --- a/legacy/evas/src/modules/engines/directfb/evas_engine.c +++ b/legacy/evas/src/modules/engines/directfb/evas_engine.c @@ -1611,7 +1611,7 @@ evas_engine_dfb_image_scale_hint_get(void *data __UNUSED__, void *image) return EVAS_IMAGE_SCALE_HINT_NONE; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -1666,15 +1666,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { - EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "directfb", - "ProFUSION embedded systems" + EVAS_MODULE_API_VERSION, + "directfb", + "ProFUSION embedded systems", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, directfb); + +#ifndef EVAS_STATIC_BUILD_DIRECTFB +EVAS_EINA_MODULE_DEFINE(engine, directfb); +#endif diff --git a/legacy/evas/src/modules/engines/fb/Makefile.am b/legacy/evas/src/modules/engines/fb/Makefile.am index 327e96faaa..677977387d 100644 --- a/legacy/evas/src/modules/engines/fb/Makefile.am +++ b/legacy/evas/src/modules/engines/fb/Makefile.am @@ -12,20 +12,33 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_FB -pkgdir = $(libdir)/evas/modules/engines/fb/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la -module_la_SOURCES = \ +FB_SOURCES = \ evas_engine.c \ evas_fb_main.c \ evas_outbuf.c -module_la_LIBADD = @EINA_LIBS@ @evas_engine_fb_libs@ $(top_builddir)/src/lib/libevas.la -module_la_LDFLAGS = -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +FB_LIBADD = @evas_engine_fb_libs@ + +pkgdir = $(libdir)/evas/modules/engines/fb/$(MODULE_ARCH) include_HEADERS = Evas_Engine_FB.h +if !EVAS_STATIC_BUILD_FB + +pkg_LTLIBRARIES = module.la +module_la_SOURCES = $(FB_SOURCES) +module_la_LIBADD = @EINA_LIBS@ $(FB_LIBADD) $(top_builddir)/src/lib/libevas.la +module_la_LDFLAGS = -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_fb.la + +libevas_engine_fb_la_SOURCES = $(FB_SOURCES) +libevas_engine_fb_la_LIBADD = $(FB_LIBADD) + +endif endif EXTRA_DIST = \ diff --git a/legacy/evas/src/modules/engines/fb/evas_engine.c b/legacy/evas/src/modules/engines/fb/evas_engine.c index 3307611be5..58d684b4c2 100644 --- a/legacy/evas/src/modules/engines/fb/evas_engine.c +++ b/legacy/evas/src/modules/engines/fb/evas_engine.c @@ -248,7 +248,7 @@ eng_output_idle_flush(void *data) } /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -276,15 +276,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { - EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "fb", - "none" + EVAS_MODULE_API_VERSION, + "fb", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, fb); + +#ifndef EVAS_STATIC_BUILD_FB +EVAS_EINA_MODULE_DEFINE(engine, fb); +#endif diff --git a/legacy/evas/src/modules/engines/gl_glew/Makefile.am b/legacy/evas/src/modules/engines/gl_glew/Makefile.am index 1cf4585b6b..47461a4fc4 100644 --- a/legacy/evas/src/modules/engines/gl_glew/Makefile.am +++ b/legacy/evas/src/modules/engines/gl_glew/Makefile.am @@ -12,20 +12,33 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_GL_GLEW -pkgdir = $(libdir)/evas/modules/engines/gl_glew/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = \ +GL_GLEW_SOURCES = \ evas_engine.c \ evas_glew_main.c -module_la_LIBADD = $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la $(top_builddir)/src/lib/libevas.la @evas_engine_gl_glew_libs@ -module_la_LDFLAGS = -no-undefined -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +GL_GLEW_LIBADD = @evas_engine_gl_glew_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la + +pkgdir = $(libdir)/evas/modules/engines/gl_glew/$(MODULE_ARCH) include_HEADERS = Evas_Engine_GL_Glew.h +if !EVAS_STATIC_BUILD_GL_GLEW + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(GL_GLEW_SOURCES) +module_la_LIBADD = $(GL_GLEW_LIBADD) $(top_builddir)/src/lib/libevas.la +module_la_LDFLAGS = -no-undefined -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_gl_glew.la + +libevas_engine_gl_glew_la_SOURCES = $(GL_GLEW_SOURCES) +libevas_engine_gl_glew_la_LIBADD = $(GL_GLEW_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/gl_glew/evas_engine.c b/legacy/evas/src/modules/engines/gl_glew/evas_engine.c index c2425766e9..6386e365a6 100644 --- a/legacy/evas/src/modules/engines/gl_glew/evas_engine.c +++ b/legacy/evas/src/modules/engines/gl_glew/evas_engine.c @@ -922,8 +922,7 @@ eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y } } - -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -1004,16 +1003,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, "gl_glew", - "none" + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, gl_glew); + +#ifndef EVAS_STATIC_BUILD_GL_GLEW +EVAS_EINA_MODULE_DEFINE(engine, gl_glew); +#endif diff --git a/legacy/evas/src/modules/engines/gl_x11/Makefile.am b/legacy/evas/src/modules/engines/gl_x11/Makefile.am index d69f6bf183..01bf394284 100644 --- a/legacy/evas/src/modules/engines/gl_x11/Makefile.am +++ b/legacy/evas/src/modules/engines/gl_x11/Makefile.am @@ -12,20 +12,33 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_GL_X11 -pkgdir = $(libdir)/evas/modules/engines/gl_x11/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = \ +GL_X11_SOURCES = \ evas_engine.c \ evas_x_main.c -module_la_LIBADD = @EINA_LIBS@ @evas_engine_gl_x11_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la $(top_builddir)/src/lib/libevas.la -module_la_LDFLAGS = -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +GL_X11_LIBADD = @evas_engine_gl_x11_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la + +pkgdir = $(libdir)/evas/modules/engines/gl_x11/$(MODULE_ARCH) include_HEADERS = Evas_Engine_GL_X11.h +if !EVAS_STATIC_BUILD_GL_X11 + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(GL_X11_SOURCES) +module_la_LIBADD = @EINA_LIBS@ $(GL_X11_LIBADD) $(top_builddir)/src/lib/libevas.la +module_la_LDFLAGS = -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_gl_x11.la + +libevas_engine_gl_x11_la_SOURCES = $(GL_X11_SOURCES) +libevas_engine_gl_x11_la_LIBADD = $(GL_X11_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/gl_x11/evas_engine.c b/legacy/evas/src/modules/engines/gl_x11/evas_engine.c index 8934e2d01e..8eb5576966 100644 --- a/legacy/evas/src/modules/engines/gl_x11/evas_engine.c +++ b/legacy/evas/src/modules/engines/gl_x11/evas_engine.c @@ -1086,7 +1086,7 @@ eng_best_depth_get(Display *disp, int screen) return _evas_gl_x11_vi->depth; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -1189,16 +1189,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "gl_x11", - "none" + "gl_x11", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, gl_x11); + +#ifndef EVAS_STATIC_BUILD_GL_X11 +EVAS_EINA_MODULE_DEFINE(engine, gl_x11); +#endif diff --git a/legacy/evas/src/modules/engines/quartz/Makefile.am b/legacy/evas/src/modules/engines/quartz/Makefile.am index fd5926039d..597e45498a 100644 --- a/legacy/evas/src/modules/engines/quartz/Makefile.am +++ b/legacy/evas/src/modules/engines/quartz/Makefile.am @@ -11,18 +11,30 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_QUARTZ +QUARTZ_SOURCES = evas_engine.c +QUARTZ_LIBADD = @evas_engine_quartz_libs@ + pkgdir = $(libdir)/evas/modules/engines/quartz/$(MODULE_ARCH) -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = evas_engine.c - -module_la_LIBADD = @EINA_LIBS@ @evas_engine_quartz_libs@ $(top_builddir)/src/lib/libevas.la -module_la_LDFLAGS = -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static - include_HEADERS = Evas_Engine_Quartz.h +if !EVAS_STATIC_BUILD_QUARTZ + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(QUARTZ_SOURCES) +module_la_LIBADD = @EINA_LIBS@ $(QUARTZ_LIBADD) $(top_builddir)/src/lib/libevas.la +module_la_LDFLAGS = -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_quartz.la + +libevas_engine_quartz_la_SOURCES = $(QUARTZ_SOURCES) +libevas_engine_quartz_la_LIBADD = $(QUARTZ_LIBADD) + +endif endif EXTRA_DIST = \ diff --git a/legacy/evas/src/modules/engines/quartz/evas_engine.c b/legacy/evas/src/modules/engines/quartz/evas_engine.c index 4dc9d80d21..56377027f8 100644 --- a/legacy/evas/src/modules/engines/quartz/evas_engine.c +++ b/legacy/evas/src/modules/engines/quartz/evas_engine.c @@ -1412,7 +1412,7 @@ eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y #pragma mark Module Function Export -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -1511,16 +1511,25 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "quartz", - "none" + "quartz", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, quartz); + +#ifndef EVAS_STATIC_BUILD_QUARTZ +EVAS_EINA_MODULE_DEFINE(engine, quartz); +#endif diff --git a/legacy/evas/src/modules/engines/software_16/Makefile.am b/legacy/evas/src/modules/engines/software_16/Makefile.am index 61dd4b6f8e..47eaf100ce 100644 --- a/legacy/evas/src/modules/engines/software_16/Makefile.am +++ b/legacy/evas/src/modules/engines/software_16/Makefile.am @@ -13,14 +13,26 @@ AM_CFLAGS = @WIN32_CFLAGS@ if BUILD_ENGINE_SOFTWARE_16 +SOFTWARE_16_SOURCES = evas_engine.c + pkgdir = $(libdir)/evas/modules/engines/software_16/$(MODULE_ARCH) -pkg_LTLIBRARIES = module.la -module_la_SOURCES = \ -evas_engine.c +if !EVAS_STATIC_BUILD_SOFTWARE_16 +pkg_LTLIBRARIES = module.la +module_la_SOURCES = $(SOFTWARE_16_SOURCES) module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static +else + +noinst_LTLIBRARIES = libevas_engine_software_16.la + +libevas_engine_software_16_la_SOURCES = $(SOFTWARE_16_SOURCES) + endif +endif + +EXTRA_DIST = \ +evas_engine.c diff --git a/legacy/evas/src/modules/engines/software_16/evas_engine.c b/legacy/evas/src/modules/engines/software_16/evas_engine.c index 30e6758e26..19f1dd3b62 100644 --- a/legacy/evas/src/modules/engines/software_16/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_16/evas_engine.c @@ -984,7 +984,7 @@ static Evas_Func func = ***** */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -992,15 +992,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, "software_16", - "none" + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_16 +EVAS_EINA_MODULE_DEFINE(engine, software_16); +#endif diff --git a/legacy/evas/src/modules/engines/software_16_ddraw/Makefile.am b/legacy/evas/src/modules/engines/software_16_ddraw/Makefile.am index fa1f766917..f752ab7ea1 100644 --- a/legacy/evas/src/modules/engines/software_16_ddraw/Makefile.am +++ b/legacy/evas/src/modules/engines/software_16_ddraw/Makefile.am @@ -13,22 +13,35 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_SOFTWARE_16_DDRAW -pkgdir = $(libdir)/evas/modules/engines/software_16_ddraw/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = \ +SOFTWARE_16_DDRAW_SOURCES = \ evas_engine.c \ evas_ddraw_buffer.cpp \ evas_ddraw_main.cpp -module_la_CXXFLAGS = -fno-rtti -fno-exceptions -module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_software_16_ddraw_libs@ -module_la_LDFLAGS = -no-undefined -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +SOFTWARE_16_DDRAW_LIBADD = @evas_engine_software_16_ddraw_libs@ + +pkgdir = $(libdir)/evas/modules/engines/software_16_ddraw/$(MODULE_ARCH) include_HEADERS = Evas_Engine_Software_16_DDraw.h +if !EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(SOFTWARE_16_DDRAW_SOURCES) +module_la_CXXFLAGS = -fno-rtti -fno-exceptions +module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_16_DDRAW_LIBADD) +module_la_LDFLAGS = -no-undefined -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_software_16_ddraw.la + +libevas_engine_software_16_ddraw_la_SOURCES = $(SOFTWARE_16_DDRAW_SOURCES) +libevas_engine_software_16_ddraw_la_LIBADD = $(SOFTWARE_16_DDRAW_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/software_16_ddraw/evas_engine.c b/legacy/evas/src/modules/engines/software_16_ddraw/evas_engine.c index 048f46bc71..61776d13b1 100644 --- a/legacy/evas/src/modules/engines/software_16_ddraw/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_16_ddraw/evas_engine.c @@ -564,7 +564,7 @@ eng_output_idle_flush(void *data) /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -592,15 +592,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "software_16_ddraw", - "none" + "software_16_ddraw", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_ddraw); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW +EVAS_EINA_MODULE_DEFINE(engine, software_16_ddraw); +#endif diff --git a/legacy/evas/src/modules/engines/software_16_sdl/Makefile.am b/legacy/evas/src/modules/engines/software_16_sdl/Makefile.am index a00ce3c7cd..75ee7091f5 100644 --- a/legacy/evas/src/modules/engines/software_16_sdl/Makefile.am +++ b/legacy/evas/src/modules/engines/software_16_sdl/Makefile.am @@ -6,19 +6,31 @@ INCLUDES = -I. -I$(top_srcdir)/src/lib -I$(top_srcdir)/src/lib/include @FREETYPE if BUILD_ENGINE_SOFTWARE_SDL +SOFTWARE_SDL_SOURCES = \ +evas_engine.c \ +evas_engine.h + pkgdir = $(libdir)/evas/modules/engines/software_16_sdl/$(MODULE_ARCH) +include_HEADERS = Evas_Engine_SDL_16.h + +if !EVAS_STATIC_BUILD_SOFTWARE_SDL + pkg_LTLIBRARIES = module.la -module_la_SOURCES = \ -evas_engine.c \ -evas_engine.h +module_la_SOURCES = $(SOFTWARE_SDL_SOURCES) module_la_LIBADD = @EINA_LIBS@ @SDL_LIBS@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined -module -avoid-version -L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs -include_HEADERS = Evas_Engine_SDL_16.h +else +noinst_LTLIBRARIES = libevas_engine_software_16_sdl.la + +libevas_engine_software_16_sdl_la_SOURCES = $(SOFTWARE_SDL_SOURCES) +libevas_engine_software_16_sdl_la_LIBADD = @SDL_LIBS@ + +endif endif EXTRA_DIST = \ diff --git a/legacy/evas/src/modules/engines/software_16_sdl/evas_engine.c b/legacy/evas/src/modules/engines/software_16_sdl/evas_engine.c index 334172005b..1f57ce5808 100644 --- a/legacy/evas/src/modules/engines/software_16_sdl/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_16_sdl/evas_engine.c @@ -1019,7 +1019,7 @@ evas_engine_sdl16_image_stride_get(void *data __UNUSED__, void *image, int *stri } /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -1079,19 +1079,28 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { - EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "software_16_sdl", - "none" + EVAS_MODULE_API_VERSION, + "software_16_sdl", + "none", + { + module_open, + module_close + } }; +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_sdl); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_SDL +EVAS_EINA_MODULE_DEFINE(engine, software_16_sdl); +#endif + static Engine_Image_Entry* _sdl16_image_alloc(void) { diff --git a/legacy/evas/src/modules/engines/software_16_wince/Makefile.am b/legacy/evas/src/modules/engines/software_16_wince/Makefile.am index 69de313b3e..4557d734ec 100644 --- a/legacy/evas/src/modules/engines/software_16_wince/Makefile.am +++ b/legacy/evas/src/modules/engines/software_16_wince/Makefile.am @@ -16,11 +16,7 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_SOFTWARE_16_WINCE -pkgdir = $(libdir)/evas/modules/engines/software_16_wince/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = \ +SOFTWARE_16_WINCE_SOURCE = \ evas_engine.c \ evas_wince_ddraw_buffer.cpp \ evas_wince_fb_buffer.c \ @@ -28,14 +24,31 @@ evas_wince_gapi_buffer.c \ evas_wince_gdi_buffer.c \ evas_wince_gapi.rc -module_la_CFLAGS = @WIN32_CFLAGS@ -module_la_CXXFLAGS = -fno-rtti -fno-exceptions -module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la @evas_engine_software_16_wince_libs@ -module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +SOFTWARE_16_WINCE_LIBADD = @evas_engine_software_16_wince_libs@ + +pkgdir = $(libdir)/evas/modules/engines/software_16_wince/$(MODULE_ARCH) include_HEADERS = Evas_Engine_Software_16_WinCE.h +if !EVAS_STATIC_BUILD_SOFTWARE_16_WINCE + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(SOFTWARE_16_WINCE_SOURCE) +module_la_CFLAGS = @WIN32_CFLAGS@ +module_la_CXXFLAGS = -fno-rtti -fno-exceptions +module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la $(SOFTWARE_16_WINCE_LIBADD) +module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_software_16_wince.la + +libevas_engine_software_16_wince_la_SOURCES = $(SOFTWARE_16_WINCE_SOURCE) +libevas_engine_software_16_wince_la_LIBADD = $(SOFTWARE_16_WINCE_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/software_16_wince/evas_engine.c b/legacy/evas/src/modules/engines/software_16_wince/evas_engine.c index c8412b293a..1bfc4d6f1e 100644 --- a/legacy/evas/src/modules/engines/software_16_wince/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_16_wince/evas_engine.c @@ -705,7 +705,7 @@ eng_output_idle_flush(void *data) /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -733,15 +733,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, "software_16_wince_fb", - "none" + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_wince_fb); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FB +EVAS_EINA_MODULE_DEFINE(engine, software_16_wince_fb); +#endif diff --git a/legacy/evas/src/modules/engines/software_16_x11/Makefile.am b/legacy/evas/src/modules/engines/software_16_x11/Makefile.am index 8a44b65766..45106ed34b 100644 --- a/legacy/evas/src/modules/engines/software_16_x11/Makefile.am +++ b/legacy/evas/src/modules/engines/software_16_x11/Makefile.am @@ -13,20 +13,33 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_SOFTWARE_16_X11 -pkgdir = $(libdir)/evas/modules/engines/software_16_x11/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = \ +SOFTWARE_16_X11_SOURCES = \ evas_engine.c \ evas_x_buffer.c -module_la_LIBADD = @EINA_LIBS@ @evas_engine_software_16_x11_libs@ $(top_builddir)/src/lib/libevas.la -module_la_LDFLAGS = -no-undefined -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +SOFTWARE_16_X11_LIBADD = @evas_engine_software_16_x11_libs@ + +pkgdir = $(libdir)/evas/modules/engines/software_16_x11/$(MODULE_ARCH) include_HEADERS = Evas_Engine_Software_16_X11.h +if !EVAS_STATIC_BUILD_SOFTWARE_16_X11 + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(SOFTWARE_16_X11_SOURCES) +module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_16_X11_LIBADD) $(top_builddir)/src/lib/libevas.la +module_la_LDFLAGS = -no-undefined -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_software_16_x11.la + +libevas_engine_software_16_x11_la_SOURCES = $(SOFTWARE_16_X11_SOURCES) +libevas_engine_software_16_x11_la_LIBADD = $(SOFTWARE_16_X11_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/software_16_x11/evas_engine.c b/legacy/evas/src/modules/engines/software_16_x11/evas_engine.c index 720e948b65..d4906e97ad 100644 --- a/legacy/evas/src/modules/engines/software_16_x11/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_16_x11/evas_engine.c @@ -544,7 +544,7 @@ eng_output_idle_flush(void *data) /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -572,15 +572,25 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { - EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "software_16_x11", - "none" + EVAS_MODULE_API_VERSION, + "software_16_x11", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_x11); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_16_X11 +EVAS_EINA_MODULE_DEFINE(engine, software_16_x11); +#endif + diff --git a/legacy/evas/src/modules/engines/software_ddraw/Makefile.am b/legacy/evas/src/modules/engines/software_ddraw/Makefile.am index 72cbe7ae82..751f50aa55 100644 --- a/legacy/evas/src/modules/engines/software_ddraw/Makefile.am +++ b/legacy/evas/src/modules/engines/software_ddraw/Makefile.am @@ -12,22 +12,35 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_SOFTWARE_DDRAW -pkgdir = $(libdir)/evas/modules/engines/software_ddraw/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la -module_la_SOURCES = \ +SOFTWARE_DDRAW_SOURCES = \ evas_engine.c \ evas_outbuf.c \ evas_ddraw_buffer.c \ evas_ddraw_main.cpp -module_la_CXXFLAGS = -fno-rtti -fno-exceptions -module_la_LIBADD = @EINA_LIBS@ @evas_engine_software_ddraw_libs@ $(top_builddir)/src/lib/libevas.la -module_la_LDFLAGS = -no-undefined -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +SOFTWARE_DDRAW_LIBADD = @evas_engine_software_ddraw_libs@ + +pkgdir = $(libdir)/evas/modules/engines/software_ddraw/$(MODULE_ARCH) include_HEADERS = Evas_Engine_Software_DDraw.h +if !EVAS_STATIC_BUILD_SOFTWARE_DDRAW + +pkg_LTLIBRARIES = module.la +module_la_SOURCES = $(SOFTWARE_DDRAW_SOURCES) +module_la_CXXFLAGS = -fno-rtti -fno-exceptions +module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_DDRAW_LIBADD) $(top_builddir)/src/lib/libevas.la +module_la_LDFLAGS = -no-undefined -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_software_ddraw.la + +libevas_engine_software_ddraw_la_SOURCES = $(SOFTWARE_DDRAW_SOURCES) +libevas_engine_software_ddraw_la_LIBADD = $(SOFTWARE_DDRAW_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/software_ddraw/evas_engine.c b/legacy/evas/src/modules/engines/software_ddraw/evas_engine.c index 61abfb1ee7..0cf7a2f4b8 100644 --- a/legacy/evas/src/modules/engines/software_ddraw/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_ddraw/evas_engine.c @@ -311,7 +311,7 @@ eng_output_idle_flush(void *data) /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -339,15 +339,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, "software_ddraw", - "none" + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_ddraw); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_DDRAW +EVAS_EINA_MODULE_DEFINE(engine, software_ddraw); +#endif diff --git a/legacy/evas/src/modules/engines/software_gdi/Makefile.am b/legacy/evas/src/modules/engines/software_gdi/Makefile.am index daf5f85ff6..943d4184b1 100644 --- a/legacy/evas/src/modules/engines/software_gdi/Makefile.am +++ b/legacy/evas/src/modules/engines/software_gdi/Makefile.am @@ -12,21 +12,34 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_SOFTWARE_GDI -pkgdir = $(libdir)/evas/modules/engines/software_gdi/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la -module_la_SOURCES = \ +SOFTWARE_GDI_SOURCES = \ evas_engine.c \ evas_outbuf.c \ evas_gdi_buffer.c \ evas_gdi_main.c -module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_software_gdi_libs@ -module_la_LDFLAGS = -no-undefined -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +SOFTWARE_GDI_LIBADD = @evas_engine_software_gdi_libs@ + +pkgdir = $(libdir)/evas/modules/engines/software_gdi/$(MODULE_ARCH) include_HEADERS = Evas_Engine_Software_Gdi.h +if !EVAS_STATIC_BUILD_SOFTWARE_GDI + +pkg_LTLIBRARIES = module.la +module_la_SOURCES = $(SOFTWARE_GDI_SOURCES) +module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_GDI_LIBADD) +module_la_LDFLAGS = -no-undefined -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_software_gdi.la + +libevas_engine_software_gdi_la_SOURCES = $(SOFTWARE_GDI_SOURCES) +libevas_engine_software_gdi_la_LIBADD = $(SOFTWARE_GDI_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/software_gdi/evas_engine.c b/legacy/evas/src/modules/engines/software_gdi/evas_engine.c index 5b73cadc26..4c9eb2d9a1 100644 --- a/legacy/evas/src/modules/engines/software_gdi/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_gdi/evas_engine.c @@ -321,7 +321,7 @@ eng_output_idle_flush(void *data) /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -349,15 +349,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, "software_gdi", - "none" + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_gdi); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_GDI +EVAS_EINA_MODULE_DEFINE(engine, software_gdi); +#endif diff --git a/legacy/evas/src/modules/engines/software_generic/Makefile.am b/legacy/evas/src/modules/engines/software_generic/Makefile.am index 3c4a5e547e..de7f9826d5 100644 --- a/legacy/evas/src/modules/engines/software_generic/Makefile.am +++ b/legacy/evas/src/modules/engines/software_generic/Makefile.am @@ -11,12 +11,24 @@ AM_CPPFLAGS = \ AM_CFLAGS = @WIN32_CFLAGS@ +SOFTWARE_GENERIC_SOURCES = evas_engine.c + pkgdir = $(libdir)/evas/modules/engines/software_generic/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_SOFTWARE_GENERIC + pkg_LTLIBRARIES = module.la -module_la_SOURCES = evas_engine.c +module_la_SOURCES = $(SOFTWARE_GENERIC_SOURCES) module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_software_generic.la + +libevas_engine_software_generic_la_SOURCES = $(SOFTWARE_GENERIC_SOURCES) + +endif diff --git a/legacy/evas/src/modules/engines/software_generic/evas_engine.c b/legacy/evas/src/modules/engines/software_generic/evas_engine.c index 566dddaba0..5dc7a0302b 100644 --- a/legacy/evas/src/modules/engines/software_generic/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_generic/evas_engine.c @@ -1121,7 +1121,7 @@ static Evas_Func func = ***** */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -1130,15 +1130,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { - EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "software_generic", - "none" + EVAS_MODULE_API_VERSION, + "software_generic", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_generic); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_GENERIC +EVAS_EINA_MODULE_DEFINE(engine, software_generic); +#endif diff --git a/legacy/evas/src/modules/engines/software_qtopia/Makefile.am b/legacy/evas/src/modules/engines/software_qtopia/Makefile.am index 8998b12fac..a8ac9000d4 100644 --- a/legacy/evas/src/modules/engines/software_qtopia/Makefile.am +++ b/legacy/evas/src/modules/engines/software_qtopia/Makefile.am @@ -14,20 +14,33 @@ AM_CXXFLAGS = $(CFLAGS) -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -DNO_DEBUG if BUILD_ENGINE_SOFTWARE_QTOPIA -pkgdir = $(libdir)/evas/modules/engines/software_qtopia/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la -module_la_SOURCES = \ +SOFTWARE_QTOPIA_SOURCES = \ evas_engine.c \ evas_outbuf.c \ evas_qt_main.cpp -module_la_LIBADD = @EINA_LIBS@ @evas_engine_software_qtopia_libs@ $(top_builddir)/src/lib/libevas.la -module_la_LDFLAGS = -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +SOFTWARE_QTOPIA_LIBADD = @evas_engine_software_qtopia_libs@ + +pkgdir = $(libdir)/evas/modules/engines/software_qtopia/$(MODULE_ARCH) include_HEADERS = Evas_Engine_Software_Qtopia.h +if !EVAS_STATIC_BUILD_SOFTWARE_QTOPIA + +pkg_LTLIBRARIES = module.la +module_la_SOURCES = $(SOFTWARE_QTOPIA_SOURCES) +module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_QTOPIA_LIBADD) $(top_builddir)/src/lib/libevas.la +module_la_LDFLAGS = -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_software_qtopia.la + +libevas_engine_software_qtopia_la_SOURCES = $(SOFTWARE_QTOPIA_SOURCES) +libevas_engine_software_qtopia_la_LIBADD = $(SOFTWARE_QTOPIA_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/software_qtopia/evas_engine.c b/legacy/evas/src/modules/engines/software_qtopia/evas_engine.c index be3259081f..83eadfbeba 100644 --- a/legacy/evas/src/modules/engines/software_qtopia/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_qtopia/evas_engine.c @@ -263,7 +263,7 @@ eng_output_idle_flush(void *data) } /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -291,15 +291,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "software_qtopia", - "none" + "software_qtopia", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_qtopia); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_QTOPIA +EVAS_EINA_MODULE_DEFINE(engine, software_qtopia); +#endif diff --git a/legacy/evas/src/modules/engines/software_sdl/Makefile.am b/legacy/evas/src/modules/engines/software_sdl/Makefile.am index 1962683a44..19814727b0 100644 --- a/legacy/evas/src/modules/engines/software_sdl/Makefile.am +++ b/legacy/evas/src/modules/engines/software_sdl/Makefile.am @@ -14,18 +14,30 @@ AM_CFLAGS = @WIN32_CFLAGS@ if BUILD_ENGINE_SOFTWARE_SDL +SOFTWARE_SDL_SOURCES = evas_engine.c +SOFTWARE_SDL_LIBADD = @evas_engine_software_sdl_libs@ + pkgdir = $(libdir)/evas/modules/engines/software_sdl/$(MODULE_ARCH) -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = evas_engine.c - -module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_software_sdl_libs@ -module_la_LDFLAGS = -no-undefined -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static - include_HEADERS = Evas_Engine_SDL.h +if !EVAS_STATIC_BUILD_SOFTWARE_SDL + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(SOFTWARE_SDL_SOURCES) +module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_SDL_LIBADD) +module_la_LDFLAGS = -no-undefined -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_software_sdl.la + +libevas_engine_software_sdl_la_SOURCES = $(SOFTWARE_SDL_SOURCES) +libevas_engine_software_sdl_la_LIBADD = $(SOFTWARE_SDL_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/software_sdl/evas_engine.c b/legacy/evas/src/modules/engines/software_sdl/evas_engine.c index 13c7f5dcea..5d542ba40c 100644 --- a/legacy/evas/src/modules/engines/software_sdl/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_sdl/evas_engine.c @@ -817,7 +817,7 @@ evas_engine_sdl_gradient_draw(void *data __UNUSED__, void *context, void *surfac SDL_UnlockSurface(eim->surface); } -EAPI int module_open(Evas_Module *em) +static int module_open(Evas_Module *em) { if (!em) return 0; /* get whatever engine module we inherit from */ @@ -876,19 +876,28 @@ EAPI int module_open(Evas_Module *em) return 1; } -EAPI void module_close(void) +static void module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { - EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "software_sdl", - "none" + EVAS_MODULE_API_VERSION, + "software_sdl", + "none", + { + module_open, + module_close + } }; +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_sdl); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_SDL +EVAS_EINA_MODULE_DEFINE(engine, software_sdl); +#endif + /* Private routines. */ static void* diff --git a/legacy/evas/src/modules/engines/software_x11/Makefile.am b/legacy/evas/src/modules/engines/software_x11/Makefile.am index 76a93c4d22..3730b4286b 100644 --- a/legacy/evas/src/modules/engines/software_x11/Makefile.am +++ b/legacy/evas/src/modules/engines/software_x11/Makefile.am @@ -13,20 +13,18 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_SOFTWARE_X11 -pkgdir = $(libdir)/evas/modules/engines/software_x11/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = \ +SOFTWARE_X11_SOURCES = \ evas_engine.c \ 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@ + if BUILD_ENGINE_SOFTWARE_XCB -module_la_SOURCES += \ +SOFTWARE_X11_SOURCES +=\ evas_xcb_outbuf.c \ evas_xcb_buffer.c \ evas_xcb_color.c \ @@ -34,12 +32,27 @@ evas_xcb_main.c endif -module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_software_x11_libs@ @evas_engine_software_xcb_libs@ -module_la_LDFLAGS = -no-undefined -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +pkgdir = $(libdir)/evas/modules/engines/software_x11/$(MODULE_ARCH) include_HEADERS = Evas_Engine_Software_X11.h +if !EVAS_STATIC_BUILD_SOFTWARE_X11 + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(SOFTWARE_X11_SOURCES) +module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_X11_LIBADD) +module_la_LDFLAGS = -no-undefined -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_software_x11.la + +libevas_engine_software_x11_la_SOURCES = $(SOFTWARE_X11_SOURCES) +libevas_engine_software_x11_la_LIBADD = $(SOFTWARE_X11_LIBADD) + +endif endif EXTRA_DIST = \ diff --git a/legacy/evas/src/modules/engines/software_x11/evas_engine.c b/legacy/evas/src/modules/engines/software_x11/evas_engine.c index f480b68ffc..03d5d66934 100644 --- a/legacy/evas/src/modules/engines/software_x11/evas_engine.c +++ b/legacy/evas/src/modules/engines/software_x11/evas_engine.c @@ -613,7 +613,7 @@ eng_output_idle_flush(void *data) /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -641,15 +641,25 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "software_x11", - "none" + "software_x11", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_x11); + +#ifndef EVAS_STATIC_BUILD_SOFTWARE_X11 +EVAS_EINA_MODULE_DEFINE(engine, software_x11); +#endif + diff --git a/legacy/evas/src/modules/engines/xrender_x11/Makefile.am b/legacy/evas/src/modules/engines/xrender_x11/Makefile.am index 907401858a..83d1a7739e 100644 --- a/legacy/evas/src/modules/engines/xrender_x11/Makefile.am +++ b/legacy/evas/src/modules/engines/xrender_x11/Makefile.am @@ -13,11 +13,7 @@ AM_CPPFLAGS = \ if BUILD_ENGINE_XRENDER_X11 -pkgdir = $(libdir)/evas/modules/engines/xrender_x11/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = \ +XRENDER_X11_SOURCES = \ evas_engine_xlib_font.c \ evas_engine_xlib_gradient.c \ evas_engine_xlib_image.c \ @@ -26,20 +22,39 @@ evas_engine_xlib_ximage.c \ evas_engine.c if BUILD_ENGINE_XRENDER_XCB -module_la_SOURCES += \ + +XRENDER_X11_SOURCES += \ evas_engine_xcb_font.c \ evas_engine_xcb_gradient.c \ evas_engine_xcb_image.c \ evas_engine_xcb_render.c \ evas_engine_xcb_ximage.c + endif -module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_xrender_xcb_libs@ @evas_engine_xrender_x11_libs@ -module_la_LDFLAGS = -no-undefined -module -avoid-version -module_la_LIBTOOLFLAGS = --tag=disable-static +XRENDER_X11_LIBADD = @evas_engine_xrender_xcb_libs@ @evas_engine_xrender_x11_libs@ + +pkgdir = $(libdir)/evas/modules/engines/xrender_x11/$(MODULE_ARCH) include_HEADERS = Evas_Engine_XRender_X11.h +if !EVAS_STATIC_BUILD_XRENDER_X11 + +pkg_LTLIBRARIES = module.la + +module_la_SOURCES = $(XRENDER_X11_SOURCES) +module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(XRENDER_X11_LIBADD) +module_la_LDFLAGS = -no-undefined -module -avoid-version +module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_engine_xrender_x11.la + +libevas_engine_xrender_x11_la_SOURCES = $(XRENDER_X11_SOURCES) +libevas_engine_xrender_x11_la_LIBADD = $(XRENDER_X11_LIBADD) + +endif endif EXTRA_DIST = evas_engine.h diff --git a/legacy/evas/src/modules/engines/xrender_x11/evas_engine.c b/legacy/evas/src/modules/engines/xrender_x11/evas_engine.c index 167368581a..2d17ff3ac0 100644 --- a/legacy/evas/src/modules/engines/xrender_x11/evas_engine.c +++ b/legacy/evas/src/modules/engines/xrender_x11/evas_engine.c @@ -1398,12 +1398,13 @@ eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y } /* module advertising code */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; /* get whatever engine module we inherit from */ if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0; + /* store it for later use */ func = pfunc; /* now to override methods */ @@ -1500,15 +1501,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_ENGINE, - "xrender_x11", - "none" + "xrender_x11", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, xrender_x11); + +#ifndef EVAS_STATIC_BUILD_XRENDER_X11 +EVAS_EINA_MODULE_DEFINE(engine, xrender_x11); +#endif diff --git a/legacy/evas/src/modules/loaders/Makefile.am b/legacy/evas/src/modules/loaders/Makefile.am index e505efdcac..028d8d41ce 100644 --- a/legacy/evas/src/modules/loaders/Makefile.am +++ b/legacy/evas/src/modules/loaders/Makefile.am @@ -1,40 +1,58 @@ MAINTAINERCLEANFILES = Makefile.in if BUILD_LOADER_EDB +if !EVAS_STATIC_BUILD_EDB edb_subdir = edb endif +endif if BUILD_LOADER_EET +if !EVAS_STATIC_BUILD_EET eet_subdir = eet endif +endif if BUILD_LOADER_GIF +if !EVAS_STATIC_BUILD_GIF gif_subdir = gif endif +endif if BUILD_LOADER_JPEG +if !EVAS_STATIC_BUILD_JPEG jpeg_subdir = jpeg endif +endif if BUILD_LOADER_PMAPS +if !EVAS_STATIC_BUILD_PMAPS pmaps_subdir = pmaps endif +endif if BUILD_LOADER_PNG +if !EVAS_STATIC_BUILD_PNG png_subdir = png endif +endif if BUILD_LOADER_SVG +if !EVAS_STATIC_BUILD_SVG svg_subdir = svg endif +endif if BUILD_LOADER_TIFF +if !EVAS_STATIC_BUILD_TIFF tiff_subdir = tiff endif +endif if BUILD_LOADER_XPM +if !EVAS_STATIC_BUILD_XPM xpm_subdir = xpm endif +endif SUBDIRS = $(edb_subdir) $(eet_subdir) $(gif_subdir) $(jpeg_subdir) $(pmaps_subdir) $(png_subdir) $(svg_subdir) $(tiff_subdir) $(xpm_subdir) diff --git a/legacy/evas/src/modules/loaders/edb/Makefile.am b/legacy/evas/src/modules/loaders/edb/Makefile.am index 44c9e7f183..85597585e8 100644 --- a/legacy/evas/src/modules/loaders/edb/Makefile.am +++ b/legacy/evas/src/modules/loaders/edb/Makefile.am @@ -11,6 +11,8 @@ AM_CPPFLAGS = \ pkgdir = $(libdir)/evas/modules/loaders/edb/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_EDB + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_load_edb.c @@ -18,3 +20,12 @@ module_la_SOURCES = evas_image_load_edb.c module_la_LIBADD = @evas_image_loader_edb_libs@ @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_loader_edb.la + +libevas_loader_edb_la_SOURCES = evas_image_load_edb.c +libevas_loader_edb_la_LIBADD = @evas_image_loader_edb_libs@ + +endif \ No newline at end of file diff --git a/legacy/evas/src/modules/loaders/edb/evas_image_load_edb.c b/legacy/evas/src/modules/loaders/edb/evas_image_load_edb.c index 2b3ba05283..c1c1f88c6f 100644 --- a/legacy/evas/src/modules/loaders/edb/evas_image_load_edb.c +++ b/legacy/evas/src/modules/loaders/edb/evas_image_load_edb.c @@ -8,17 +8,16 @@ #define SWAP32(x) (x) = ((((x) & 0x000000ff ) << 24) | (((x) & 0x0000ff00 ) << 8) | (((x) & 0x00ff0000 ) >> 8) | (((x) & 0xff000000 ) >> 24)) -int evas_image_load_file_head_edb(Image_Entry *ie, const char *file, const char *key); -int evas_image_load_file_data_edb(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_head_edb(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_data_edb(Image_Entry *ie, const char *file, const char *key); -Evas_Image_Load_Func evas_image_load_edb_func = +static Evas_Image_Load_Func evas_image_load_edb_func = { evas_image_load_file_head_edb, evas_image_load_file_data_edb }; - -int +static int evas_image_load_file_head_edb(Image_Entry *ie, const char *file, const char *key) { int w, h, alpha, compression, size; @@ -80,7 +79,7 @@ evas_image_load_file_head_edb(Image_Entry *ie, const char *file, const char *key return 1; } -int +static int evas_image_load_file_data_edb(Image_Entry *ie, const char *file, const char *key) { int w, h, alpha, compression, size; @@ -181,7 +180,7 @@ evas_image_load_file_data_edb(Image_Entry *ie, const char *file, const char *key return 1; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -189,16 +188,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_LOADER, - "edb", - "none" + "edb", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_saver, edb); + +#ifndef EVAS_STATIC_BUILD_EDB +EVAS_EINA_MODULE_DEFINE(image_saver, edb); +#endif diff --git a/legacy/evas/src/modules/loaders/eet/Makefile.am b/legacy/evas/src/modules/loaders/eet/Makefile.am index 4204e80885..a796cc6a39 100644 --- a/legacy/evas/src/modules/loaders/eet/Makefile.am +++ b/legacy/evas/src/modules/loaders/eet/Makefile.am @@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/loaders/eet/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_EET + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_load_eet.c @@ -20,3 +22,12 @@ module_la_SOURCES = evas_image_load_eet.c module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_eet_libs@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_loader_eet.la + +libevas_loader_eet_la_SOURCES = evas_image_load_eet.c +libevas_loader_eet_la_LIBADD = @evas_image_loader_eet_libs@ + +endif \ No newline at end of file diff --git a/legacy/evas/src/modules/loaders/eet/evas_image_load_eet.c b/legacy/evas/src/modules/loaders/eet/evas_image_load_eet.c index 0247bf704c..9e7f84a176 100644 --- a/legacy/evas/src/modules/loaders/eet/evas_image_load_eet.c +++ b/legacy/evas/src/modules/loaders/eet/evas_image_load_eet.c @@ -98,7 +98,7 @@ evas_image_load_file_data_eet(Image_Entry *ie, const char *file, const char *key return res; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -106,16 +106,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_LOADER, - "eet", - "none" + "eet", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, eet); + +#ifndef EVAS_STATIC_BUILD_EET +EVAS_EINA_MODULE_DEFINE(image_loader, eet); +#endif diff --git a/legacy/evas/src/modules/loaders/gif/Makefile.am b/legacy/evas/src/modules/loaders/gif/Makefile.am index 858ac3f5ab..372096d472 100644 --- a/legacy/evas/src/modules/loaders/gif/Makefile.am +++ b/legacy/evas/src/modules/loaders/gif/Makefile.am @@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/loaders/gif/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_GIF + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_load_gif.c @@ -20,3 +22,12 @@ module_la_SOURCES = evas_image_load_gif.c module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_gif_libs@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_loader_gif.la + +libevas_loader_gif_la_SOURCES = evas_image_load_gif.c +libevas_loader_gif_la_LIBADD = @evas_image_loader_gif_libs@ + +endif \ No newline at end of file diff --git a/legacy/evas/src/modules/loaders/gif/evas_image_load_gif.c b/legacy/evas/src/modules/loaders/gif/evas_image_load_gif.c index 20cc43d54b..b5f347c35e 100644 --- a/legacy/evas/src/modules/loaders/gif/evas_image_load_gif.c +++ b/legacy/evas/src/modules/loaders/gif/evas_image_load_gif.c @@ -7,18 +7,16 @@ #include +static int evas_image_load_file_head_gif(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_data_gif(Image_Entry *ie, const char *file, const char *key); -int evas_image_load_file_head_gif(Image_Entry *ie, const char *file, const char *key); -int evas_image_load_file_data_gif(Image_Entry *ie, const char *file, const char *key); - -Evas_Image_Load_Func evas_image_load_gif_func = +static Evas_Image_Load_Func evas_image_load_gif_func = { evas_image_load_file_head_gif, evas_image_load_file_data_gif }; - -int +static int evas_image_load_file_head_gif(Image_Entry *ie, const char *file, const char *key __UNUSED__) { int fd; @@ -101,7 +99,7 @@ evas_image_load_file_head_gif(Image_Entry *ie, const char *file, const char *key return 1; } -int +static int evas_image_load_file_data_gif(Image_Entry *ie, const char *file, const char *key __UNUSED__) { int intoffset[] = { 0, 4, 2, 1 }; @@ -284,7 +282,7 @@ evas_image_load_file_data_gif(Image_Entry *ie, const char *file, const char *key return 1; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -292,16 +290,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { - EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_LOADER, - "gif", - "none" + EVAS_MODULE_API_VERSION, + "gif", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, gif); + +#ifndef EVAS_STATIC_BUILD_GIF +EVAS_EINA_MODULE_DEFINE(image_loader, gif); +#endif diff --git a/legacy/evas/src/modules/loaders/jpeg/Makefile.am b/legacy/evas/src/modules/loaders/jpeg/Makefile.am index 4e7f71bd4c..bea81f6490 100644 --- a/legacy/evas/src/modules/loaders/jpeg/Makefile.am +++ b/legacy/evas/src/modules/loaders/jpeg/Makefile.am @@ -15,6 +15,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/loaders/jpeg/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_JPEG + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_load_jpeg.c @@ -22,3 +24,11 @@ module_la_SOURCES = evas_image_load_jpeg.c module_la_LIBADD = @EINA_LIBS@ @EVIL_LIBS@ @evas_image_loader_jpeg_libs@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_loader_jpeg.la +libevas_loader_jpeg_la_SOURCES = evas_image_load_jpeg.c +libevas_loader_jpeg_la_LIBADD = @evas_image_loader_jpeg_libs@ + +endif \ No newline at end of file diff --git a/legacy/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c b/legacy/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c index 450d0faf0c..dc0c53683c 100644 --- a/legacy/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c +++ b/legacy/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c @@ -31,10 +31,10 @@ static int evas_image_load_file_data_jpeg_internal(Image_Entry *ie, FILE *f); static int evas_image_load_file_data_jpeg_alpha_internal(Image_Entry *ie, FILE *f); #endif -int evas_image_load_file_head_jpeg(Image_Entry *ie, const char *file, const char *key); -int evas_image_load_file_data_jpeg(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_head_jpeg(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_data_jpeg(Image_Entry *ie, const char *file, const char *key); -Evas_Image_Load_Func evas_image_load_jpeg_func = +static Evas_Image_Load_Func evas_image_load_jpeg_func = { evas_image_load_file_head_jpeg, evas_image_load_file_data_jpeg @@ -251,7 +251,7 @@ evas_image_load_file_data_jpeg_internal(Image_Entry *ie, FILE *f) if (!(((cinfo.out_color_space == JCS_RGB) && ((cinfo.output_components == 3) || (cinfo.output_components == 1))) || - (cinfo.out_color_space == JCS_CMYK) && (cinfo.output_components == 4))) + ((cinfo.out_color_space == JCS_CMYK) && (cinfo.output_components == 4)))) { jpeg_destroy_decompress(&cinfo); return 0; @@ -473,7 +473,7 @@ evas_image_load_file_data_jpeg_alpha_internal(Image_Entry *ie, FILE *f) } #endif -int +static int evas_image_load_file_head_jpeg(Image_Entry *ie, const char *file, const char *key) { int val; @@ -488,7 +488,7 @@ evas_image_load_file_head_jpeg(Image_Entry *ie, const char *file, const char *ke key = 0; } -int +static int evas_image_load_file_data_jpeg(Image_Entry *ie, const char *file, const char *key) { int val; @@ -503,7 +503,7 @@ evas_image_load_file_data_jpeg(Image_Entry *ie, const char *file, const char *ke key = 0; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -511,16 +511,25 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_LOADER, - "jpeg", - "none" + "jpeg", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, jpeg); + +#ifndef EVAS_STATIC_BUILD_JPEG +EVAS_EINA_MODULE_DEFINE(image_loader, jpeg); +#endif + diff --git a/legacy/evas/src/modules/loaders/pmaps/Makefile.am b/legacy/evas/src/modules/loaders/pmaps/Makefile.am index 794ec9ec9b..a7e4d2a1ea 100644 --- a/legacy/evas/src/modules/loaders/pmaps/Makefile.am +++ b/legacy/evas/src/modules/loaders/pmaps/Makefile.am @@ -15,6 +15,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/loaders/pmaps/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_PMAPS + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_load_pmaps.c @@ -22,3 +24,11 @@ module_la_SOURCES = evas_image_load_pmaps.c module_la_LIBADD = @evas_image_loader_pmaps_libs@ @EINA_LIBS@ @EVIL_LIBS@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_loader_pmaps.la +libevas_loader_pmaps_la_SOURCES = evas_image_load_pmaps.c +libevas_loader_pmaps_la_LIBADD = @evas_image_loader_pmaps_libs@ + +endif diff --git a/legacy/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c b/legacy/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c index 92acce7361..20f6f31fc1 100644 --- a/legacy/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c +++ b/legacy/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c @@ -539,7 +539,7 @@ pmaps_buffer_plain_bw_get(Pmaps_Buffer *b, DATA32 *val) } /* external functions */ -EAPI int +static int module_open(Evas_Module *em) { if (!em) @@ -548,16 +548,23 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = { +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_LOADER, "pmaps", - "none" + "none", + { + module_open, + module_close + } }; +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, pmaps); + +#ifndef EVAS_STATIC_BUILD_PMAPS +EVAS_EINA_MODULE_DEFINE(image_loader, pmaps); +#endif diff --git a/legacy/evas/src/modules/loaders/png/Makefile.am b/legacy/evas/src/modules/loaders/png/Makefile.am index ccf52e3426..68630ca77f 100644 --- a/legacy/evas/src/modules/loaders/png/Makefile.am +++ b/legacy/evas/src/modules/loaders/png/Makefile.am @@ -13,6 +13,8 @@ AM_CPPFLAGS = \ pkgdir = $(libdir)/evas/modules/loaders/png/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_PNG + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_load_png.c @@ -20,3 +22,11 @@ module_la_SOURCES = evas_image_load_png.c module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_png_libs@ @EVIL_LIBS@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_loader_png.la +libevas_loader_png_la_SOURCES = evas_image_load_png.c +libevas_loader_png_la_LIBADD = @evas_image_loader_png_libs@ + +endif diff --git a/legacy/evas/src/modules/loaders/png/evas_image_load_png.c b/legacy/evas/src/modules/loaders/png/evas_image_load_png.c index 1289e56f33..c05a728937 100644 --- a/legacy/evas/src/modules/loaders/png/evas_image_load_png.c +++ b/legacy/evas/src/modules/loaders/png/evas_image_load_png.c @@ -32,17 +32,16 @@ #define PNG_BYTES_TO_CHECK 4 -int evas_image_load_file_head_png(Image_Entry *ie, const char *file, const char *key); -int evas_image_load_file_data_png(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_head_png(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_data_png(Image_Entry *ie, const char *file, const char *key); -Evas_Image_Load_Func evas_image_load_png_func = +static Evas_Image_Load_Func evas_image_load_png_func = { evas_image_load_file_head_png, evas_image_load_file_data_png }; - -int +static int evas_image_load_file_head_png(Image_Entry *ie, const char *file, const char *key) { png_uint_32 w32, h32; @@ -108,7 +107,7 @@ evas_image_load_file_head_png(Image_Entry *ie, const char *file, const char *key key = 0; } -int +static int evas_image_load_file_data_png(Image_Entry *ie, const char *file, const char *key) { unsigned char *surface; @@ -217,7 +216,7 @@ evas_image_load_file_data_png(Image_Entry *ie, const char *file, const char *key key = 0; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -225,16 +224,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_LOADER, - "png", - "none" + "png", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, png); + +#ifndef EVAS_STATIC_BUILD_PNG +EVAS_EINA_MODULE_DEFINE(image_loader, png); +#endif diff --git a/legacy/evas/src/modules/loaders/svg/Makefile.am b/legacy/evas/src/modules/loaders/svg/Makefile.am index 38c0273b04..5921e10312 100644 --- a/legacy/evas/src/modules/loaders/svg/Makefile.am +++ b/legacy/evas/src/modules/loaders/svg/Makefile.am @@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/loaders/svg/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_SVG + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_load_svg.c @@ -20,3 +22,11 @@ module_la_SOURCES = evas_image_load_svg.c module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_svg_libs@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_loader_svg.la +libevas_loader_svg_la_SOURCES = evas_image_load_svg.c +libevas_loader_svg_la_LIBADD = @evas_image_loader_svg_libs@ + +endif diff --git a/legacy/evas/src/modules/loaders/svg/evas_image_load_svg.c b/legacy/evas/src/modules/loaders/svg/evas_image_load_svg.c index 2431e10b3f..c439f2c358 100644 --- a/legacy/evas/src/modules/loaders/svg/evas_image_load_svg.c +++ b/legacy/evas/src/modules/loaders/svg/evas_image_load_svg.c @@ -4,8 +4,8 @@ #include #include -int evas_image_load_file_head_svg(Image_Entry *ie, const char *file, const char *key); -int evas_image_load_file_data_svg(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_head_svg(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_data_svg(Image_Entry *ie, const char *file, const char *key); Evas_Image_Load_Func evas_image_load_svg_func = { @@ -35,7 +35,7 @@ svg_loader_unpremul_data(DATA32 *data, unsigned int len) } } -int +static int evas_image_load_file_head_svg(Image_Entry *ie, const char *file, const char *key __UNUSED__) { char cwd[PATH_MAX], pcwd[PATH_MAX], *p; @@ -131,7 +131,7 @@ evas_image_load_file_head_svg(Image_Entry *ie, const char *file, const char *key } /** FIXME: All evas loaders need to be tightened up **/ -int +static int evas_image_load_file_data_svg(Image_Entry *ie, const char *file, const char *key __UNUSED__) { DATA32 *pixels; @@ -268,7 +268,7 @@ evas_image_load_file_data_svg(Image_Entry *ie, const char *file, const char *key return 1; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -278,19 +278,27 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { if (!rsvg_initialized) return; rsvg_term(); rsvg_initialized = 0; } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_LOADER, - "svg", - "none" + "svg", + "none", + { + module_open, + module_close + } }; +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, svg); + +#ifndef EVAS_STATIC_BUILD_SVG +EVAS_EINA_MODULE_DEFINE(image_loader, svg); +#endif diff --git a/legacy/evas/src/modules/loaders/tiff/Makefile.am b/legacy/evas/src/modules/loaders/tiff/Makefile.am index bab7f817ee..3b8e1693fd 100644 --- a/legacy/evas/src/modules/loaders/tiff/Makefile.am +++ b/legacy/evas/src/modules/loaders/tiff/Makefile.am @@ -15,6 +15,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/loaders/tiff/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_TIFF + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_load_tiff.c @@ -22,3 +24,12 @@ module_la_SOURCES = evas_image_load_tiff.c module_la_LIBADD = @EINA_LIBS@ @EVIL_LIBS@ @evas_image_loader_tiff_libs@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_loader_tiff.la + +libevas_loader_tiff_la_SOURCES = evas_image_load_tiff.c +libevas_loader_tiff_la_LIBADD = @evas_image_loader_tiff_libs@ + +endif \ No newline at end of file diff --git a/legacy/evas/src/modules/loaders/tiff/evas_image_load_tiff.c b/legacy/evas/src/modules/loaders/tiff/evas_image_load_tiff.c index e213704c92..703ed93b50 100644 --- a/legacy/evas/src/modules/loaders/tiff/evas_image_load_tiff.c +++ b/legacy/evas/src/modules/loaders/tiff/evas_image_load_tiff.c @@ -13,11 +13,10 @@ #include "evas_common.h" #include "evas_private.h" +static int evas_image_load_file_head_tiff(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_data_tiff(Image_Entry *ie, const char *file, const char *key); -int evas_image_load_file_head_tiff(Image_Entry *ie, const char *file, const char *key); -int evas_image_load_file_data_tiff(Image_Entry *ie, const char *file, const char *key); - -Evas_Image_Load_Func evas_image_load_tiff_func = +static Evas_Image_Load_Func evas_image_load_tiff_func = { evas_image_load_file_head_tiff, evas_image_load_file_data_tiff @@ -118,7 +117,7 @@ raster(TIFFRGBAImage_Extra * img, uint32 * rast, } } -int +static int evas_image_load_file_head_tiff(Image_Entry *ie, const char *file, const char *key __UNUSED__) { char txt[1024]; @@ -188,7 +187,7 @@ evas_image_load_file_head_tiff(Image_Entry *ie, const char *file, const char *ke return 1; } -int +static int evas_image_load_file_data_tiff(Image_Entry *ie, const char *file, const char *key __UNUSED__) { char txt[1024]; @@ -325,7 +324,7 @@ evas_image_load_file_data_tiff(Image_Entry *ie, const char *file, const char *ke return 1; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -333,16 +332,25 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_LOADER, - "tiff", - "none" + "tiff", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, tiff); + +#ifndef EVAS_STATIC_BUILD_TIFF +EVAS_EINA_MODULE_DEFINE(image_loader, tiff); +#endif diff --git a/legacy/evas/src/modules/loaders/xpm/Makefile.am b/legacy/evas/src/modules/loaders/xpm/Makefile.am index 93505a076a..cfd475a124 100644 --- a/legacy/evas/src/modules/loaders/xpm/Makefile.am +++ b/legacy/evas/src/modules/loaders/xpm/Makefile.am @@ -15,6 +15,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/loaders/xpm/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_XPM + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_load_xpm.c @@ -22,3 +24,13 @@ module_la_SOURCES = evas_image_load_xpm.c module_la_LIBADD = @EINA_LIBS@ @EVIL_LIBS@ @evas_image_loader_xpm_libs@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_loader_xpm.la + +libevas_loader_xpm_la_SOURCES = evas_image_load_xpm.c +libevas_loader_xpm_la_LIBADD = @evas_image_loader_xpm_libs@ + +endif + diff --git a/legacy/evas/src/modules/loaders/xpm/evas_image_load_xpm.c b/legacy/evas/src/modules/loaders/xpm/evas_image_load_xpm.c index 15ac54338e..095fe1b813 100644 --- a/legacy/evas/src/modules/loaders/xpm/evas_image_load_xpm.c +++ b/legacy/evas/src/modules/loaders/xpm/evas_image_load_xpm.c @@ -10,16 +10,15 @@ #include "evas_common.h" #include "evas_private.h" -int evas_image_load_file_head_xpm(Image_Entry *ie, const char *file, const char *key); -int evas_image_load_file_data_xpm(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_head_xpm(Image_Entry *ie, const char *file, const char *key); +static int evas_image_load_file_data_xpm(Image_Entry *ie, const char *file, const char *key); -Evas_Image_Load_Func evas_image_load_xpm_func = +static Evas_Image_Load_Func evas_image_load_xpm_func = { evas_image_load_file_head_xpm, evas_image_load_file_data_xpm }; - static FILE *rgb_txt = NULL; static void @@ -617,22 +616,19 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN return 1; } - -int +static int evas_image_load_file_head_xpm(Image_Entry *ie, const char *file, const char *key) { return evas_image_load_file_xpm(ie, file, key, 0); } -int +static int evas_image_load_file_data_xpm(Image_Entry *ie, const char *file, const char *key) { return evas_image_load_file_xpm(ie, file, key, 1); } - - -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -640,16 +636,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_LOADER, - "xpm", - "none" + "xpm", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, xpm); + +#ifndef EVAS_STATIC_BUILD_XPM +EVAS_EINA_MODULE_DEFINE(image_loader, xpm); +#endif diff --git a/legacy/evas/src/modules/savers/Makefile.am b/legacy/evas/src/modules/savers/Makefile.am index f1fdb88499..f6da612677 100644 --- a/legacy/evas/src/modules/savers/Makefile.am +++ b/legacy/evas/src/modules/savers/Makefile.am @@ -1,23 +1,33 @@ MAINTAINERCLEANFILES = Makefile.in if BUILD_LOADER_EDB +if !EVAS_STATIC_BUILD_EDB edb_subdir = edb endif +endif if BUILD_LOADER_EET +if !EVAS_STATIC_BUILD_EET eet_subdir = eet endif +endif if BUILD_SAVER_JPEG +if !EVAS_STATIC_BUILD_JPEG jpeg_subdir = jpeg endif +endif if BUILD_LOADER_PNG +if !EVAS_STATIC_BUILD_PNG png_subdir = png endif +endif if BUILD_LOADER_TIFF +if !EVAS_STATIC_BUILD_TIFF tiff_subdir = tiff endif +endif SUBDIRS = $(edb_subdir) $(eet_subdir) $(jpeg_subdir) $(png_subdir) $(tiff_subdir) diff --git a/legacy/evas/src/modules/savers/edb/Makefile.am b/legacy/evas/src/modules/savers/edb/Makefile.am index ffe1ffbf08..8ada6b1fbb 100644 --- a/legacy/evas/src/modules/savers/edb/Makefile.am +++ b/legacy/evas/src/modules/savers/edb/Makefile.am @@ -9,6 +9,8 @@ AM_CPPFLAGS = -I. \ pkgdir = $(libdir)/evas/modules/savers/edb/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_EDB + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_save_edb.c @@ -17,4 +19,13 @@ module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_edb_libs@ $(top_builddir module_la_LDFLAGS = -no-undefined -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static +else + +noinst_LTLIBRARIES = libevas_saver_edb.la + +libevas_saver_edb_la_SOURCES = evas_image_save_edb.c +libevas_saver_edb_la_LIBADD = @evas_image_loader_edb_libs@ + +endif + EXTRA_DIST = evas_image_save_edb.c diff --git a/legacy/evas/src/modules/savers/edb/evas_image_save_edb.c b/legacy/evas/src/modules/savers/edb/evas_image_save_edb.c index d2e8c9a132..8279226a55 100644 --- a/legacy/evas/src/modules/savers/edb/evas_image_save_edb.c +++ b/legacy/evas/src/modules/savers/edb/evas_image_save_edb.c @@ -4,20 +4,20 @@ #include #include -int evas_image_save_file_edb(RGBA_Image *im, const char *file, const char *key, int quality, int compress); +static int evas_image_save_file_edb(RGBA_Image *im, const char *file, const char *key, int quality, int compress); -Evas_Image_Save_Func evas_image_save_edb_func = +static Evas_Image_Save_Func evas_image_save_edb_func = { evas_image_save_file_edb }; -int +static int evas_image_save_file_edb(RGBA_Image *im, const char *file, const char *key, int quality, int compress) { return 0; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -25,16 +25,24 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_SAVER, - "edb", - "none" + "edb", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_SAVER, image_saver, edb); + +#ifndef EVAS_STATIC_BUILD_EDB +EVAS_EINA_MODULE_DEFINE(image_saver, edb); +#endif diff --git a/legacy/evas/src/modules/savers/eet/Makefile.am b/legacy/evas/src/modules/savers/eet/Makefile.am index 3f6ee4a1df..7f47bb1102 100644 --- a/legacy/evas/src/modules/savers/eet/Makefile.am +++ b/legacy/evas/src/modules/savers/eet/Makefile.am @@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/savers/eet/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_EET + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_save_eet.c @@ -20,3 +22,12 @@ module_la_SOURCES = evas_image_save_eet.c module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_eet_libs@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_saver_eet.la + +libevas_saver_eet_la_SOURCES = evas_image_save_eet.c +libevas_saver_eet_la_LIBADD = @evas_image_loader_eet_libs@ + +endif \ No newline at end of file diff --git a/legacy/evas/src/modules/savers/eet/evas_image_save_eet.c b/legacy/evas/src/modules/savers/eet/evas_image_save_eet.c index 5c672b19d0..cbb346e033 100644 --- a/legacy/evas/src/modules/savers/eet/evas_image_save_eet.c +++ b/legacy/evas/src/modules/savers/eet/evas_image_save_eet.c @@ -7,14 +7,14 @@ #include "evas_common.h" #include "evas_private.h" -int evas_image_save_file_eet(RGBA_Image *im, const char *file, const char *key, int quality, int compress); +static int evas_image_save_file_eet(RGBA_Image *im, const char *file, const char *key, int quality, int compress); -Evas_Image_Save_Func evas_image_save_eet_func = +static Evas_Image_Save_Func evas_image_save_eet_func = { evas_image_save_file_eet }; -int +static int evas_image_save_file_eet(RGBA_Image *im, const char *file, const char *key, int quality, int compress) { Eet_File *ef; @@ -51,7 +51,7 @@ evas_image_save_file_eet(RGBA_Image *im, const char *file, const char *key, int return ok; } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -59,16 +59,25 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_SAVER, - "eet", - "none" + "eet", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_SAVER, image_saver, eet); + +#ifndef EVAS_STATIC_BUILD_EET +EVAS_EINA_MODULE_DEFINE(image_saver, eet); +#endif + diff --git a/legacy/evas/src/modules/savers/jpeg/Makefile.am b/legacy/evas/src/modules/savers/jpeg/Makefile.am index 5900f1dc3d..062fe8482f 100644 --- a/legacy/evas/src/modules/savers/jpeg/Makefile.am +++ b/legacy/evas/src/modules/savers/jpeg/Makefile.am @@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/savers/jpeg/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_JPEG + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_save_jpeg.c @@ -20,3 +22,11 @@ module_la_SOURCES = evas_image_save_jpeg.c module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_jpeg_libs@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_saver_jpeg.la +libevas_saver_jpeg_la_SOURCES = evas_image_save_jpeg.c +libevas_saver_jpeg_la_LIBADD = @evas_image_loader_jpeg_libs@ + +endif diff --git a/legacy/evas/src/modules/savers/jpeg/evas_image_save_jpeg.c b/legacy/evas/src/modules/savers/jpeg/evas_image_save_jpeg.c index 209a6aaa7f..fc11cccbd1 100644 --- a/legacy/evas/src/modules/savers/jpeg/evas_image_save_jpeg.c +++ b/legacy/evas/src/modules/savers/jpeg/evas_image_save_jpeg.c @@ -5,9 +5,9 @@ #include #include -int evas_image_save_file_jpeg(RGBA_Image *im, const char *file, const char *key, int quality, int compress); +static int evas_image_save_file_jpeg(RGBA_Image *im, const char *file, const char *key, int quality, int compress); -Evas_Image_Save_Func evas_image_save_jpeg_func = +static Evas_Image_Save_Func evas_image_save_jpeg_func = { evas_image_save_file_jpeg }; @@ -111,12 +111,12 @@ save_image_jpeg(RGBA_Image *im, const char *file, int quality) return 1; } -int evas_image_save_file_jpeg(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality, int compress __UNUSED__) +static int evas_image_save_file_jpeg(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality, int compress __UNUSED__) { return save_image_jpeg(im, file, quality); } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -124,16 +124,25 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_SAVER, - "jpeg", - "none" + "jpeg", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_SAVER, image_saver, jpeg); + +#ifndef EVAS_STATIC_BUILD_JPEG +EVAS_EINA_MODULE_DEFINE(image_saver, jpeg); +#endif + diff --git a/legacy/evas/src/modules/savers/png/Makefile.am b/legacy/evas/src/modules/savers/png/Makefile.am index b8c14c7eaa..9e3338cc4c 100644 --- a/legacy/evas/src/modules/savers/png/Makefile.am +++ b/legacy/evas/src/modules/savers/png/Makefile.am @@ -15,6 +15,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/savers/png/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_PNG + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_save_png.c @@ -22,3 +24,12 @@ module_la_SOURCES = evas_image_save_png.c module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_png_libs@ @EVIL_LIBS@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_saver_png.la + +libevas_saver_png_la_SOURCES = evas_image_save_png.c +libevas_saver_png_la_LIBADD = @evas_image_loader_png_libs@ + +endif diff --git a/legacy/evas/src/modules/savers/png/evas_image_save_png.c b/legacy/evas/src/modules/savers/png/evas_image_save_png.c index 0278f32ca4..40b6cd6bda 100644 --- a/legacy/evas/src/modules/savers/png/evas_image_save_png.c +++ b/legacy/evas/src/modules/savers/png/evas_image_save_png.c @@ -26,9 +26,9 @@ #include "evas_common.h" #include "evas_private.h" -int evas_image_save_file_png(RGBA_Image *im, const char *file, const char *key, int quality, int compress); +static int evas_image_save_file_png(RGBA_Image *im, const char *file, const char *key, int quality, int compress); -Evas_Image_Save_Func evas_image_save_png_func = +static Evas_Image_Save_Func evas_image_save_png_func = { evas_image_save_file_png }; @@ -153,12 +153,12 @@ save_image_png(RGBA_Image *im, const char *file, int compress, int interlace) return 0; } -int evas_image_save_file_png(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality __UNUSED__, int compress) +static int evas_image_save_file_png(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality __UNUSED__, int compress) { return save_image_png(im, file, compress, 0); } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -166,16 +166,25 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_SAVER, - "png", - "none" + "png", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_SAVER, image_saver, png); + +#ifndef EVAS_STATIC_BUILD_PNG +EVAS_EINA_MODULE_DEFINE(image_saver, png); +#endif + diff --git a/legacy/evas/src/modules/savers/tiff/Makefile.am b/legacy/evas/src/modules/savers/tiff/Makefile.am index 3a871e9610..5580c33049 100644 --- a/legacy/evas/src/modules/savers/tiff/Makefile.am +++ b/legacy/evas/src/modules/savers/tiff/Makefile.am @@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@ pkgdir = $(libdir)/evas/modules/savers/tiff/$(MODULE_ARCH) +if !EVAS_STATIC_BUILD_TIFF + pkg_LTLIBRARIES = module.la module_la_SOURCES = evas_image_save_tiff.c @@ -20,3 +22,12 @@ module_la_SOURCES = evas_image_save_tiff.c module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_tiff_libs@ $(top_builddir)/src/lib/libevas.la module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static + +else + +noinst_LTLIBRARIES = libevas_saver_tiff.la + +libevas_saver_tiff_la_SOURCES = evas_image_save_tiff.c +libevas_saver_tiff_la_LIBADD = @evas_image_loader_tiff_libs@ + +endif diff --git a/legacy/evas/src/modules/savers/tiff/evas_image_save_tiff.c b/legacy/evas/src/modules/savers/tiff/evas_image_save_tiff.c index 8560001a05..8e6f4b3355 100644 --- a/legacy/evas/src/modules/savers/tiff/evas_image_save_tiff.c +++ b/legacy/evas/src/modules/savers/tiff/evas_image_save_tiff.c @@ -3,9 +3,9 @@ #include -int evas_image_save_file_tiff(RGBA_Image *im, const char *file, const char *key, int quality, int compress); +static int evas_image_save_file_tiff(RGBA_Image *im, const char *file, const char *key, int quality, int compress); -Evas_Image_Save_Func evas_image_save_tiff_func = +static Evas_Image_Save_Func evas_image_save_tiff_func = { evas_image_save_file_tiff }; @@ -102,12 +102,12 @@ save_image_tiff(RGBA_Image *im, const char *file, int compress __UNUSED__, int i return 1; } -int evas_image_save_file_tiff(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality __UNUSED__, int compress) +static int evas_image_save_file_tiff(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality __UNUSED__, int compress) { return save_image_tiff(im, file, compress, 0); } -EAPI int +static int module_open(Evas_Module *em) { if (!em) return 0; @@ -115,16 +115,25 @@ module_open(Evas_Module *em) return 1; } -EAPI void -module_close(void) +static void +module_close(Evas_Module *em) { - } -EAPI Evas_Module_Api evas_modapi = +static Evas_Module_Api evas_modapi = { EVAS_MODULE_API_VERSION, - EVAS_MODULE_TYPE_IMAGE_SAVER, - "tiff", - "none" + "tiff", + "none", + { + module_open, + module_close + } }; + +EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_SAVER, image_saver, tiff); + +#ifndef EVAS_STATIC_BUILD_TIFF +EVAS_EINA_MODULE_DEFINE(image_saver, tiff); +#endif +