Developers needed to complete the GNUstep port to Darwin
Developers needed to complete the GNUstep port to Darwin
- Subject: Developers needed to complete the GNUstep port to Darwin
- From: Lars Sonchocky-Helldorf <email@hidden>
- Date: Tue, 9 Jul 2002 11:33:25 +0200
The GNUstep Project (
http://www.gnustep.org/) is looking for developers
to complete the GNUstep port to Darwin.
As some of you might already know, GNUstep is - so to say - Cocoa's
stand on various UNIXes and Windows (at least as long as Apple doesn't
ship Cocoa for those platforms). So if someone is going to release an
Cocoa-application cross platform she is very likely to use GNUstep for
that purpose.
Why porting GNUstep to Darwin given the fact we already have the
original?
To make porting apps to GNUstep easier. Although GNUstep is virtually
the same as Cocoa there are minor differences, most notably the layout
of the GUI, that make a GNUstep running alongside Cocoa reasonable. On
the other hand, don't forget about the people and developers that are
restricted to pure Darwin (x86). GNUstep would give them a decent GUI.
What is the current status?
No, you don't start from scratch here. The port is underway for a quite
long period (ca. 1,5 years) now. That means that compiling errors are
completely mangled out by now. Currently run-time bugs are the main
target (the interworking of Apple's (NeXT's) objc-runtime and the
GNUstep libraries is not flawless by now) that needs to be worked out.
Who can participate?
Everybody is welcome. Good knowledge of Cocoa, Apple's objc-runtime
(objc4) or decent debugging skills are a definite "plus".
How to get started?
check out the objc runtime (objc4) project from Darwin cvs
build a debug version of the objc runtime:
sudo make debug OBJROOT=build SYMROOT=/usr/lib DSTROOT=/usr/lib
sudo ln -s /usr/lib/libobjc_debug.A.dylib /usr/lib/libobjc_d.dylib
get a copy of GNUstep's daily snapshot (named core.YYYYMMDD.tar.bz2) at
ftp://ftp.gnustep.org/pub/daily-snapshots/.
unpack it: for the un-bz2-ing, StuffIt Expander is suitable, but for the
untaring please use:
tar -xf core.YYYYMMMDD.tar
since StuffIt cuts long filenames without noticing you.
Now it's time for some brute force action: Search and replace all
occurrences of "-lobjc" with "-lobjc_d" in the "core" folder you even
untared. This is necessary to make the gnustep-base (equivalent of
foundation) link against our debug version of libobjc. (I must admit
that this is not very elegant but my limited understanding of GNUstep's
makefile system gave me no other choice). Now build GNUstep like this:
cd ~/core/make/
./configure --with-library-combo=nx-gnu-gnu --prefix=/opt/GNUstep
make debug=yes
sudo make install debug=yes
make distclean debug=yes
source /opt/GNUstep/System/Makefiles/GNUstep.csh
cd ../base
./configure
make library-combo=nx-gnu-gnu debug=yes
sudo make install debug=yes
make distclean debug=yes
to get into debuging GNUstep use one of it's example programs that come
with it, for instance dictionary:
cd ~/core/base/Examples/
make debug=yes
cd obj/
gdb ./dictionary
it is a good idea to put some printfs into objc4 to see what is going
on. I added for instance the following code to
~/objc4/objc4/runtime/objc-class.m in method
_class_lookupMethodAndLoadCache line 2130:
printf("_class_lookupMethodAndLoadCache() Class: %s Method:
%s\n",cls->name,sel);
next steps:
if you find something that needs to be fixed please mail it to
email@hidden (no subscription required). If you have questions
regarding GNUstep please mail to email@hidden (subscription
required, to un/subscribe send mail to: email@hidden
with the subject line containing "un/subscribe").
greetings, Lars
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.