[gambit-list] Compiling GSI on windows with ___SHARED defined

Marc Feeley feeley at iro.umontreal.ca
Fri Aug 7 14:00:33 EDT 2009


On 7-Aug-09, at 7:51 AM, Ivan Kelly wrote:

> Im compiling gambit on windows with ___SHARED defined, in a symbian OS
> emulator environment. I've managed to get it working without issue
> compiling to one big monolith, taking pointers from the openwatcom
> batch file (also compiled with gcce and running on phone).
>
> However, ___SHARED is proving to be a bit more difficult. The dll
> compiles with very little issue. ___LIBRARY and ___PRIMAL are defined
> for all *.c inputs to that, and it compiles without error apart from
> the unused variables, whose warnings i've hidden.
>
> gsi is proving trickier though. In getting a load of errors for
> ___gstate being defined in many places. Also, ___G__20__gsilib is
> twice defined.

Can you try this recipe:

in lib/:

   for each file <file>.c:
     gcc <many options> -c -o <file>.o -D___PRIMAL -D___SHARED - 
D___LIBRARY <file>.c

   gcc -shared -o libgambc.dll <all .o files> -lws2_32

in gsi/:

   for each file <file>.c in _gsilib.c _gambcgsi.c:
     gcc <many options> -c -o <file>.o -D___SHARED -D___LIBRARY <file>.c

   gcc -shared -o libgambcgsi.dll _gsilib.o _gambcgsi.o ../lib/ 
libgambc.dll -lws2_32

   for each file <file>.c in gsi.c _gsi_.c:
     gcc <many options> -c -o <file>.o -D___SHARED <file>.c

   gcc <many options> -o gsi.exe _gsi.o _gsi_.o ../lib/libgambc.dll - 
lws2_32 libgambcgsi.dll

I've tested it on Windows with MinGW, so I expect it to also work on  
similar OSes.

Note that -D___SHARED is passed to all compilations of .c files.

Marc




More information about the Gambit-list mailing list