Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-swt-dev] the build

Hi,

The good news is, I finally got the GTK examples to compile. Bad news
is it took me a long time. ;-)

As someone trying to contribute to Eclipse in spare time, I wanted to
emphasize the importance of making the build system work easily
out-of-box. This is really important to succeed as an open source
project.

For example, for most stuff in GNOME CVS, the following is how I'd go
from no files on my local disk to having a working executable built
from source code:

 CVSROOT=whatever cvs co modulename
 cd modulename
 ./autogen.sh --prefix=/wherever  ## (runs automake, autoconf)
 make 

That's it - the whole deal.

Mozilla is even easier, and it's an even more enormous codebase:

   CVSROOT=whatever cvs co -f mozilla/client.mk
   cd mozilla
   gmake -f client.mk

They even have the cvs checkout automated by the makefile. And I end
up with a working executable. If I change code, I just re-run make.
See the simple and prominently-displayed build instructions: 
http://www.mozilla.org/build/unix.html


I'll describe what I had to do for SWT, both to help other people
figure it out, and to show how much harder it is than your average
project:

 - open Eclipse IDE, after figuring out the need for "-vm" command 
   line argument

 - figure out the whole switch to repository view, right click,  
   add to workspace thing   

 - Result is something Eclipse doesn't know how to compile, like this: 
     http://pobox.com/~hp/packages-view.png

 - figure out to right-click on org.eclipse.swt, choose Properties,
   choose Java Build Path, figure out that Motif is broken so you have
   to resize the window to see anything, choose Source tab, switch to
   "Use source folders contained in project", fill in the necessary
   source folders based on information in the hidden file
   .classpath_gtk which you didn't know existed. 

   Now switch to Libraries tab and add JRE_LIB variable.

 - Open a terminal window and copy .classpath_gtk to .classpath

 - Try to run build.csh, it has no execute bit, so know to do "tcsh
   build.csh", then get a bunch of gcc warnings causing gcc error to
   scroll offscreen, diagnose error as missing -I flag to gcc, decide
   warnings look bad but might be ignorable, sort out via grep and
   stuff that you need to change IVE_HOME and JAVA_JNI variables in
   make_gtk.mak

 - su to root and copy the resulting binary libs into the system
   location /opt/IBM-Java-whatever, or to plugins dir

 - now figure out how to build the examples ;-)

I don't even want to think about building the entire IDE!

Havoc



Back to the top