From a0dc963b1a7bf9097863c42cb3efcc09e32c22d1 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Sun, 1 Nov 2009 21:55:15 +0000 Subject: [PATCH] fix library compilation on Windows (it should be cleaned, though) There is still a problem with the binary, because of ecore_getopt SVN revision: 43402 --- legacy/ethumb/configure.ac | 12 +++++++++++ legacy/ethumb/src/bin/ethumb.c | 6 ++++-- legacy/ethumb/src/lib/Ethumb.c | 35 ++++++++++++++++++++++++------- legacy/ethumb/src/lib/Ethumb.h | 16 ++++++++------ legacy/ethumb/src/lib/Makefile.am | 5 +++-- 5 files changed, 56 insertions(+), 18 deletions(-) diff --git a/legacy/ethumb/configure.ac b/legacy/ethumb/configure.ac index 81d4a7f002..b1f762c033 100644 --- a/legacy/ethumb/configure.ac +++ b/legacy/ethumb/configure.ac @@ -18,6 +18,7 @@ AC_C___ATTRIBUTE__ dnl AC_C_CONST is bogus, its tests fails on -Wall -O1 ( uninitialized values) dnl AC_C_CONST +AC_LIBTOOL_WIN32_DLL define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl AC_PROG_LIBTOOL @@ -58,6 +59,17 @@ AC_ARG_WITH(internal-maximum-log-level, fi ], [:]) +EFL_ETHUMB_BUILD="" +lt_enable_auto_import="" +case "$host_os" in + mingw* | cegcc*) + EFL_ETHUMB_BUILD="-DEFL_ETHUMB_BUILD" + lt_enable_auto_import="-Wl,--enable-auto-import" + ;; +esac +AC_SUBST(EFL_ETHUMB_BUILD) +AC_SUBST(lt_enable_auto_import) + PKG_CHECK_MODULES(EINA, [eina-0]) PKG_CHECK_MODULES(EVAS, [evas]) PKG_CHECK_MODULES(ECORE, [ecore]) diff --git a/legacy/ethumb/src/bin/ethumb.c b/legacy/ethumb/src/bin/ethumb.c index 35f1844efb..dd0a619a61 100644 --- a/legacy/ethumb/src/bin/ethumb.c +++ b/legacy/ethumb/src/bin/ethumb.c @@ -24,14 +24,16 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif + #include #include #include #include -#include + #include -#include #include +#include +#include const char *aspect_opt[] = { "keep", "ignore", "crop", NULL }; const char *format_opt[] = { "png", "jpg", "eet", NULL }; diff --git a/legacy/ethumb/src/lib/Ethumb.c b/legacy/ethumb/src/lib/Ethumb.c index be4d3f61fd..bb93c34ced 100644 --- a/legacy/ethumb/src/lib/Ethumb.c +++ b/legacy/ethumb/src/lib/Ethumb.c @@ -23,11 +23,24 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif -#include -#include -#include "Ethumb.h" -#include "ethumb_private.h" -#include "Ethumb_Plugin.h" + +#ifdef HAVE_ALLOCA_H +# include +#elif defined __GNUC__ +# define alloca __builtin_alloca +#elif defined _AIX +# define alloca __alloca +#elif defined _MSC_VER +# include +# define alloca _alloca +#else +# include +# ifdef __cplusplus +extern "C" +# endif +void *alloca (size_t); +#endif + #include #include #include @@ -38,18 +51,24 @@ #include #include #include -#include "md5.h" #ifndef PATH_MAX -#define PATH_MAX 4096 +# define PATH_MAX 4096 #endif -#include +#include +#include #include +#include #include #include #include +#include "Ethumb.h" +#include "ethumb_private.h" +#include "Ethumb_Plugin.h" +#include "md5.h" + static int _log_dom = -1; #define DBG(...) EINA_LOG_DOM_DBG(_log_dom, __VA_ARGS__) #define INF(...) EINA_LOG_DOM_INFO(_log_dom, __VA_ARGS__) diff --git a/legacy/ethumb/src/lib/Ethumb.h b/legacy/ethumb/src/lib/Ethumb.h index 956e31a108..00055ebbb6 100644 --- a/legacy/ethumb/src/lib/Ethumb.h +++ b/legacy/ethumb/src/lib/Ethumb.h @@ -1,9 +1,18 @@ #ifndef __ETHUMB_H__ #define __ETHUMB_H__ 1 +#include +#include +#include +#include + +#ifdef EAPI +# undef EAPI +#endif + #ifndef EAPI #ifdef _WIN32 -# ifdef EFL_EVAS_BUILD +# ifdef EFL_ETHUMB_BUILD # ifdef DLL_EXPORT # define EAPI __declspec(dllexport) # define GNUC_NULL_TERMINATED @@ -31,11 +40,6 @@ #endif /* ! _WIN32 */ #endif /* EAPI */ -#include -#include -#include -#include - #ifdef __cplusplus extern "C" { #endif diff --git a/legacy/ethumb/src/lib/Makefile.am b/legacy/ethumb/src/lib/Makefile.am index 3508f7e471..949fa040c8 100644 --- a/legacy/ethumb/src/lib/Makefile.am +++ b/legacy/ethumb/src/lib/Makefile.am @@ -5,7 +5,8 @@ SUBDIRS = . AM_CPPFLAGS = \ -I$(top_srcdir) \ -I$(top_builddir) \ - @EVAS_CFLAGS@ @ECORE_EVAS_CFLAGS@ @ECORE_FILE_CFLAGS@ @EDJE_CFLAGS@ + @EVAS_CFLAGS@ @ECORE_EVAS_CFLAGS@ @ECORE_FILE_CFLAGS@ @EDJE_CFLAGS@ \ + @EFL_ETHUMB_BUILD@ include_HEADERS = Ethumb.h Ethumb_Plugin.h noinst_HEADERS = md5.h ethumb_private.h @@ -19,7 +20,7 @@ libethumb_la_SOURCES = \ libethumb_la_DEPENDENCIES = $(top_builddir)/config.h libethumb_la_LIBADD = \ @EVAS_LIBS@ @ECORE_EVAS_LIBS@ @ECORE_FILE_LIBS@ @EDJE_LIBS@ -libethumb_la_LDFLAGS = -version-info @version_info@ +libethumb_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ if USE_MODULE_ETHUMBD