discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Some My Personal Notes on Building GNUstep On Windows...


From: S.J.Chun
Subject: Some My Personal Notes on Building GNUstep On Windows...
Date: Thu, 31 Jul 2003 01:00:27 +0900 (KST)

Hi, I've write my experience on building GNUstep Base and Make on Windows. If 
there's any useful information I
will be happy :-) If not, please correct me. Following is copy of my wiki 
server(private, private :-) Most biggest
difference from README.MinGW is that I managed to build XML part of 
GNUstep.(Which is very important to me,
for I am very much interested in SOAP and XMLRPC.)

* Base 
 - Library Requirements: ZLib, IConv, LibXML, LibFFCall, Crypt. LibXML is 
optional but recommended, Crypt is not 
                                       needed actually but some other libraries 
require this(eg. GNUstepWeb). 
 - Source Code Patching: As many GNUstep developer just wants CompanyNeXT's 
style of path manipulation but I t
    hink general manipulation of path regardless of whether the path contains 
spaces or not, is more preferable 
    and Linux also can do this. 
   1. First part is just commenting out user home directory path checking part, 
which does check whether the path 
       has spaces or not. It's on GNUstep Make package and GNUstep Base 
library; user_home.c and NSUser.m. 
       Grep USERPROFILE and search aound it. You can find where you just #if 0 
#end. 
   2. Second is NSProxy.m, which you should add limits.h as include file. 
   3. Third is GSXML.m, Here you can find extern int xmlXXX things which is not 
needed at least on Windows version
      (which I built) of LibXML. Just #if !defined ... #endif with __WIN32__ 
preprocessor macro. 
   4. Fourth is gdomap.c, here you should #if 0 ... #endif out the getopt part 
which now MinGW system has. And 
      around line 4662, here you can find getuid which is not protected with 
__MINGW__. Use #ifndef __MINGW__ ... 
     #endif around the part of it. 

 - DLL Creation: I am not sure whether this process is needed or not. But some 
other library which depends on 
                          GNUstep Base needs behavior_class_xxx like functions 
which is not export by default. So I just 
                          created dll again with pexport.exe and a2dll tool. 
                          The process is; 
   1. First copy subproject.o in the Source/Additions/shared_obj to the 
Source/shared_obj. 
   2. Second, ar ruv archive *.o, 
   3. Third, a2dll archive -o gnustep-base.dll 
-L$GNUSTEP_SYSTEM_ROOT/Library/Libraries -lobjc -lxml2 -liconv 
        -lz -lcallback -lavcall -lws2_32 -lm. 
   4. Fourth, pexports gnustep-base.dll > libgnustep-base.def and dlltool -d 
libgnustep-base.def -l libgnustep-base.a.
   5. Last, edit Make.postamble, comment header-link out and make install. :-) 
And additionally, if you want smaller 
       binaries, strip all dll files and exe files.(I'm not sure this is good 
thing, but I do this for distributed packages to 
       reduce package size, This package is currently for internal development 
and testing)

If anyone who is interested in running GNUstep (at least, make and base), I can 
help as much as I can; sending my
compiled code or libraries. And they can help me a lot(I think more than I can 
help :-).
My current interest in GDL2(which I also can build with much dirty code 
editing, but not tested) and GSWeb(another
thinkg I managed to build but this does not work well, actually I just run and 
telnet to its port, but it does nothing
and take just much CPU time forever, I suspect busy loop...T_T)
I know most of GNUstepper's are in POSIX system, and I also use Linux for 
deployment. But running GNUstep on
Windows is just interesting. :-)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]