[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. :-)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Some My Personal Notes on Building GNUstep On Windows...,
S.J.Chun <=