below are some comments.

On Mon, Oct 29, 2012 at 1:11 PM, LM <[email protected]> wrote:
> Below are my notes on what I needed to do to get the Enlightenment
> libraries (version 1.7.1 and evil 1.7.0) to build on Windows with
> MinGW (www.mingw.org version) and msys.  Am not sure how much can be
> incorporated as patches back into the originals, but at least there's
> some information for other MinGW users on what they may have to do to
> get the latest versions to build on their systems.  Hope some of this
> will be useful.

as i said, i do not support anymore MinGW. They  FAR less features
than MinGW-w64

> I reset my environment for each build and use automated scripts
> (similar to Slackware Slackbuild scripts).  I also have a program to
> install tarballs to /usr/local (PREFIX) within msys.  Am just going to
> post the highlights not entire scripts.  First thing I had to do after
> setting basic environment variables in the scripts was to set
> environment variables so it could find pkg-config (
> https://github.com/pkgconf/pkgconf ).
>
> export PKG_CONFIG="/usr/local/bin/pkg-config"
> export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
>
> Evil compiled fine with standard options:
> ./configure --prefix=$PREFIX
> make
> make install DESTDIR=$DESTDIR
>
> Eina:
> patch -p2 < patch.diff
> ./configure --prefix=$PREFIX
> make
> make install DESTDIR=$DESTDIR
>
> patch.diff for Eina:
> diff -Naurp src/eina-1.7.1/src/lib/eina_file_win32.c
> tmp/eina-1.7.1/src/lib/eina_file_win32.c
> --- src/eina-1.7.1/src/lib/eina_file_win32.c    2012-09-07 22:33:29 -0400
> +++ tmp/eina-1.7.1/src/lib/eina_file_win32.c
> @@ -38,7 +38,14 @@ void *alloca (size_t);
>  #endif
>
>  #include <sys/types.h>
> +#ifdef __MINGW32__
> +#define __MSVCRT_VERSION__ 0x0601

it's not that macro that should be defined. See for example :

http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745%28v=vs.85%29.aspx#setting_winver_or__win32_winnt

> +#endif
>  #include <sys/stat.h>
> +#ifdef __MINGW32__
> +#define stat64 _stat64

this should not needed.

> +#include <stdint.h>
> +#endif
>
>  #define WIN32_LEAN_AND_MEAN
>  #include <windows.h>
> diff -Naurp src/eina-1.7.1/src/lib/eina_inarray.c
> tmp/eina-1.7.1/src/lib/eina_inarray.c
> --- src/eina-1.7.1/src/lib/eina_inarray.c       2012-09-07 22:33:29 -0400
> +++ tmp/eina-1.7.1/src/lib/eina_inarray.c
> @@ -22,6 +22,7 @@
>
>  #include <stdlib.h>
>  #include <string.h>
> +#include <malloc.h>

since a lot of time, malloc.h is included by stdlib.h

>  #include "eina_config.h"
>  #include "eina_private.h"
> diff -Naurp src/eina-1.7.1/src/lib/eina_log.c 
> tmp/eina-1.7.1/src/lib/eina_log.c
> --- src/eina-1.7.1/src/lib/eina_log.c   2012-09-07 22:33:29 -0400
> +++ tmp/eina-1.7.1/src/lib/eina_log.c
> @@ -28,6 +28,11 @@
>  #include <assert.h>
>  #include <errno.h>
>
> +#ifndef COMMON_LVB_REVERSE_VIDEO
> +#define COMMON_LVB_REVERSE_VIDEO   0x4000
> +#define COMMON_LVB_UNDERSCORE      0x8000
> +#endif

I'm wondering why those macros need to be defined.

>  #if defined HAVE_EXECINFO_H && defined HAVE_BACKTRACE && defined
> HAVE_BACKTRACE_SYMBOLS
>  # include <execinfo.h>
>  # define EINA_LOG_BACKTRACE
>
> Evas:
> There was an option in the configure to use liblinebreak, but when I
> went to download,

it's statically linked and the code is provided inside the Evas tree
(see in evas/src/static_deps).

> it looked like the library was being replaced by
> libunibreak ( http://vimgadgets.sourceforge.net/libunibreak/ ).  So, I
> built and installed libunibreak and passed the library through the
> LIBS environment variable.  Also, pthread doesn't seem to work and I
> didn't see a working option to turn threading off, so I did it through
> sed.  It couldn't find the evas_engine_common_op_blend_master_sse3
> library at one point as well.
>
> export CFLAGS="$CFLAGS -I/usr/local/include/evil-1"
> export LIBS="-lpthread -lunibreak $LIBS"
> sed -i.bk0 -e "s|-pthread||" configure
> ./configure --prefix=$PREFIX --disable-pthreads
> sed -i.bk1 -e "s|^LDFLAGS = \(.*\)$|LDFLAGS = \1
> -Lengines/common/evas_op_blend|" src/lib/Makefile
> sed -i.bk2 -e "s|^LIBS =|LIBS =
> -levas_engine_common_op_blend_master_sse3|" src/lib/Makefile
> make
> make install DESTDIR=$DESTDIR
>
> Eet:
> Built fine with standard options.
> ./configure --prefix=$PREFIX
> make
> make install DESTDIR=$DESTDIR
>
> Embryo:
> export CFLAGS="$CFLAGS -I/usr/local/include/evil-1"
> ./configure --prefix=$PREFIX
> make
> make install DESTDIR=$DESTDIR
>
> Ecore:
> Kept getting errors about it trying to use winsock.h and that it
> should be using winsock2.h instead.  Also, _argc and _argv are already
> declared in the MinGW headers

problem with MinGW headers. But that's fixable in our tree of course.

> and the definitions weren't compatible
> with those in ecore_getopt.  There's a define for HAVE_WINSOCK2_H in
> the code in one location, but no place to turn it on.  (It wasn't an
> option in config.h or elsewhere.)
>
> export LIBS="-lgdi32 $LIBS"
> patch -p2 < patch.diff
> ./configure --prefix=$PREFIX
> sed -i.bk0 -e "s|_argv|_ecoreargv|" src/lib/ecore/ecore_getopt.c
> sed -i.bk1 -e "s|_argc|_ecoreargc|" src/lib/ecore/ecore_getopt.c
> sed -i.bk2 -e "s|\/\* #undef const \*\/|\/\* #undef const
> \*\/\n#define HAVE_WINSOCK2_H 1|" config.h
>
> patch.diff for ecore:
> diff -Naurp src/ecore-1.7.1/src/lib/ecore_con/ecore_con_ssl.c
> tmp/ecore-1.7.1/src/lib/ecore_con/ecore_con_ssl.c
> --- src/ecore-1.7.1/src/lib/ecore_con/ecore_con_ssl.c   2012-09-07 22:34:01 
> -0400
> +++ tmp/ecore-1.7.1/src/lib/ecore_con/ecore_con_ssl.c
> @@ -2,6 +2,11 @@
>  # include <config.h>
>  #endif
>
> +#ifdef HAVE_WS2TCPIP_H
> +#include <winsock2.h>
> +# include <ws2tcpip.h>
> +#endif
>
>  #if USE_GNUTLS
>  # include <gnutls/gnutls.h>
>  # include <gnutls/x509.h>
> @@ -12,10 +17,6 @@
>  # include <openssl/dh.h>
>  #endif
>
> -#ifdef HAVE_WS2TCPIP_H
> -# include <ws2tcpip.h>
> -#endif

I'll check that.

> -
>  #include <sys/stat.h>
>  #include "Ecore.h"
>  #include "ecore_con_private.h"
>
> Edje:
> Still do not have edje building and haven't really had time to debug
> it further.  I did get as far as the following patch for using lua
> 5.2.1.  Haven't been able to test the patch.  I used some examples of
> replacement code for upgrading lua libraries, so not sure how well it
> works.

about lua stuff, i don't know, it's not my part. And i just saw that
David answered

thanks

Vincent

> diff -Naurp src/edje-1.7.1/src/lib/edje_lua2.c
> tmp/edje-1.7.1/src/lib/edje_lua2.c
> --- src/edje-1.7.1/src/lib/edje_lua2.c  2012-09-07 22:33:23 -0400
> +++ tmp/edje-1.7.1/src/lib/edje_lua2.c
> @@ -985,7 +985,11 @@ _elua_messagesend(lua_State *L)  // Stac
>          int i, n;
>          const char *str;
>          luaL_checktype(L, 3, LUA_TTABLE);                    // Stack
> usage [-0, +0, v]
> +#if LUA_VERSION_NUM > 501
> +        n = lua_rawlen(L, 3);
> +#else
>          n = lua_objlen(L, 3);                                // Stack
> usage [-0, +0, -]
> +#endif
>          emsg = alloca(sizeof(Edje_Message_String_Set) + ((n - 1) *
> sizeof(char *)));
>          emsg->count = n;
>          for (i = 1; i <= n; i ++)
> @@ -1003,7 +1007,11 @@ _elua_messagesend(lua_State *L)  // Stac
>          Edje_Message_Int_Set *emsg;
>          int i, n;
>          luaL_checktype(L, 3, LUA_TTABLE);                    // Stack
> usage [-0, +0, v]
> +#if LUA_VERSION_NUM > 501
> +        n = lua_rawlen(L, 3);
> +#else
>          n = lua_objlen(L, 3);                                // Stack
> usage [-0, +0, -]
> +#endif
>          emsg = alloca(sizeof(Edje_Message_Int_Set) + ((n - 1) * 
> sizeof(int)));
>          emsg->count = n;
>          for (i = 1; i <= n; i ++)
> @@ -1020,7 +1028,11 @@ _elua_messagesend(lua_State *L)  // Stac
>          Edje_Message_Float_Set *emsg;
>          int i, n;
>          luaL_checktype(L, 3, LUA_TTABLE);                    // Stack
> usage [-0, +0, v]
> +#if LUA_VERSION_NUM > 501
> +        n = lua_rawlen(L, 3);
> +#else
>          n = lua_objlen(L, 3);                                // Stack
> usage [-0, +0, -]
> +#endif
>          emsg = alloca(sizeof(Edje_Message_Float_Set) + ((n - 1) *
> sizeof(double)));
>          emsg->count = n;
>          for (i = 1; i <= n; i ++)
> @@ -1057,7 +1069,11 @@ _elua_messagesend(lua_State *L)  // Stac
>          const char *str = luaL_checkstring(L, 3);            // Stack
> usage [-0, +0, v]
>          if (!str) return 0;
>          luaL_checktype(L, 4, LUA_TTABLE);                    // Stack
> usage [-0, +0, v]
> +#if LUA_VERSION_NUM > 501
> +        n = lua_rawlen(L, 4);
> +#else
>          n = lua_objlen(L, 4);                                // Stack
> usage [-0, +0, -]
> +#endif
>          emsg = alloca(sizeof(Edje_Message_String_Int_Set) + ((n - 1)
> * sizeof(int)));
>          emsg->str = (char *)str;
>          emsg->count = n;
> @@ -1077,7 +1093,11 @@ _elua_messagesend(lua_State *L)  // Stac
>          const char *str = luaL_checkstring(L, 3);            // Stack
> usage [-0, +0, v]
>          if (!str) return 0;
>          luaL_checktype(L, 4, LUA_TTABLE);                    // Stack
> usage [-0, +0, v]
> +#if LUA_VERSION_NUM > 501
> +        n = lua_rawlen(L, 4);
> +#else
>          n = lua_objlen(L, 4);
> +#endif
>          emsg = alloca(sizeof(Edje_Message_String_Float_Set) + ((n -
> 1) * sizeof(double)));
>          emsg->str = (char *)str;
>          emsg->count = n;
> @@ -3734,7 +3754,11 @@ _elua_bogan_protect(lua_State *L)
>  {
>     lua_pushnil(L);                                   // Stack usage [-0, +1, 
> -]
>     luaL_newmetatable(L, "bogan");                    // Stack usage [-0, +1, 
> m]
> +#if LUA_VERSION_NUM > 501
> +   luaL_setfuncs(L, _elua_bogan_funcs, 0);           // Stack usage [-1, +1, 
> m]
> +#else
>     luaL_register(L, 0, _elua_bogan_funcs);           // Stack usage [-1, +1, 
> m]
> +#endif
>     lua_setmetatable(L, -2);                          // Stack usage [-1, +0, 
> -]
>     lua_pop(L, 1);                                    // Stack usage [-1, +0, 
> -]
>  }
> @@ -3746,14 +3770,25 @@ static void
>  _elua_add_functions(lua_State *L, const char *api, const luaL_Reg
> *funcs, const char *meta, const char *parent, const char *base)  //
> Stack usage [-3, +5, m]  if inheriting [-6, +11, em]
>  {
>     // Create an api table, fill it full of the methods.
> +#if LUA_VERSION_NUM > 501
> +   lua_newtable(L);
> +   luaL_setfuncs (L,funcs,0);
> +   lua_pushvalue(L,-1);
> +   lua_setglobal(L,api);
> +#else
>     luaL_register(L, api, funcs);              // Stack usage [-0, +1, m]
> +#endif
>     // Set the api metatable to the bogan metatable.
>     luaL_getmetatable(L, "bogan");             // Stack usage [-0, +1, -]
>     lua_setmetatable(L, -2);                   // Stack usage [-1, +0, -]
>     // Creat a meta metatable.
>     luaL_newmetatable(L, meta);                // Stack usage [-0, +1, m]
>     // Put the gc functions in the metatable.
> +#if LUA_VERSION_NUM > 501
> +   luaL_setfuncs(L, _elua_edje_gc_funcs, 0);           // Stack usage
> [-1, +1, m]
> +#else
>     luaL_register(L, 0, _elua_edje_gc_funcs);  // Stack usage [-1, +1, m]
> +#endif
>     // Create an __index entry in the metatable, make it point to the api 
> table.
>     lua_pushliteral(L, "__index");             // Stack usage [-0, +1, m]
>     lua_pushvalue(L, -3);                      // Stack usage [-0, +1, -]
> @@ -3826,10 +3861,20 @@ _elua_init(void)
>          lua_call(L, 1, 0);
>                      // Stack usage [-2, +0, e]
>       }
>
> +#if LUA_VERSION_NUM > 501
> +   lua_newtable(L);
> +   luaL_setfuncs (L,_elua_edje_funcs,0);
> +   lua_pushvalue(L,-1);
> +   lua_setglobal(L,_elua_edje_api);
> +#else
>     luaL_register(L, _elua_edje_api, _elua_edje_funcs);
>                      // Stack usage [-0, +1, m]
> +#endif
>     luaL_newmetatable(L, _elua_edje_meta);
>                      // Stack usage [-0, +1, m]
> +#if LUA_VERSION_NUM > 501
> +   luaL_setfuncs(L, _elua_edje_gc_funcs, 0);
> +#else
>     luaL_register(L, 0, _elua_edje_gc_funcs);
>                      // Stack usage [-1, +1, m]
> -
> +#endif
>     _elua_add_functions(L, _elua_evas_api, _elua_evas_funcs,
> _elua_evas_meta, NULL, NULL);  // Stack usage [-3, +5, m]
>
>     // weak table for our objects
> @@ -3880,11 +3925,22 @@ _edje_lua2_script_init(Edje *ed)
>
>     _elua_bogan_protect(L);                                        //
> Stack usage [+3, -3, m]
>
> +#if LUA_VERSION_NUM > 501
> +   lua_newtable(L);
> +   luaL_setfuncs (L,_elua_edje_funcs,0);
> +   lua_pushvalue(L,-1);
> +   lua_setglobal(L,_elua_edje_api);
> +#else
>     luaL_register(L, _elua_edje_api, _elua_edje_funcs);            //
> Stack usage [-0, +1, m]
> +#endif
>     luaL_getmetatable(L, "bogan");                                 //
> Stack usage [-0, +1, -]
>     lua_setmetatable(L, -2);                                       //
> Stack usage [-1, +0, -]
>     luaL_newmetatable(L, _elua_edje_meta);                         //
> Stack usage [-0, +1, m]
> +#if LUA_VERSION_NUM > 501
> +   luaL_setfuncs(L, _elua_edje_gc_funcs, 0);
> +#else
>     luaL_register(L, 0, _elua_edje_gc_funcs);                      //
> Stack usage [-1, +1, m]
> +#endif
>
>     lua_pop(L, 2);                                                 //
> Stack usage [-n, +0, -]
>
> ------------------------------------------------------------------------------
> The Windows 8 Center - In partnership with Sourceforge
> Your idea - your app - 30 days.
> Get started!
> http://windows8center.sourceforge.net/
> what-html-developers-need-to-know-about-coding-windows-8-metro-style-apps/
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

------------------------------------------------------------------------------
The Windows 8 Center - In partnership with Sourceforge
Your idea - your app - 30 days.
Get started!
http://windows8center.sourceforge.net/
what-html-developers-need-to-know-about-coding-windows-8-metro-style-apps/
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to