WOBBLE
Web Of Binary Building and Linking Engines
What is it?
Latest news
Server setup
Client setup
Example
What is it?
WOBBLE is a software development tool to build binaries remotely.
This is based on one or more HTTP-based Wobble servers running a CGI script,
handling the following simple tasks (and a bit more):
- Take source code, compile it, and return the ".o" object code.
- Link a set of object files into an executable or a shared library.
A local Wobble client script acts as the interface for all remote compiles
and link steps. One of its tasks is to insert project header files before
shipping source code to a server for compilation.
All processing is stateless: the server does not track or store anything -
it takes some input, transforms it, and returns the result. The client also does
not need to track progress, this is handled by a simple makefile.
Wobble is in the early trial phase, both the server (Perl) and the client (Tcl)
are still highly experimental.
Latest news
- September 12, 1998
- Client now catches and reports build errors,
server can guess its configuration
- Download files:
Client script: |
|
wobble |
|
7985 bytes |
|
Sep 12 1998, 19:07:10 GMT |
Server script: |
|
wobbles |
|
29663 bytes |
|
Sep 13 1998, 01:48:45 GMT |
Example files: |
|
wexample.tar.gz |
|
738 bytes |
|
Sep 5 1998, 15:06:50 GMT |
Note: there's a serious url-encoding performance
bottleneck in the client.
It works fine, but I use a small custom C extension to speed things up -- JC
Server setup
To handle remote compilations and links, your system needs to support the following:
- Running the Wobble server script (written in Perl) as a CGI process from HTTP.
- Access to compiler(s) and linker from this CGI script.
- A writable directory to store temporary files in.
- A few other utilities to support more client requests ("uname" and "ldd").
With that out of the way, setting up a server is trivial:
- Download the latest "wobbles" server Perl script.
- Then, store it in your web server's cgi-bin directory as "cgi-bin/wobbles".
- Or store it as wobbles.cgi if your server can run CGI scripts that way.
- Test the script by accessing its URL through a web browser.
- You now have a new Wobble server up and running...
Client setup
The client side is currently a Tcl script. To use it, you must:
- Have Tcl 8.0 installed, with "tclsh8.0" in your path.
- Have GNU make, since the example uses its "vpath" feature.
With that out of the way, setting up a client is also quite simple:
- Download the latest "wobble" client Tcl script.
- Install it in a place where you can launch it from.
- Possible places include /usr/local/bin, /usr/bin, or ~/bin.
- Test the script by typing "wobble" at the command prompt.
- You have just installed a new Wobble client...
Example
For remote compilation and linking to work, you need to deal with several issues:
- Setting up a "wobble" directory to hold a few configuration settings.
- Defining what platforms to build and which servers to use for the builds.
- Preparing a makefile which drives each wobble build.
- Setting up special options, and adjusting for each platform type.
There's an example project with everything in place to do a remote build:
- Download the example named wexample.tar.gz, and unpack it.
- Change to the newly created "wexample" directory.
- Type "wobble make sol26" and stand back while it builds.
- Look at the freshly created ../w_sol26 directory to see the results.
- Then go back to the wexample directory to see how this was done.
If all went well, you will end up with a Solaris executable called myhello,
linked to a shared library called myworld.so, both of which were created
remotely (compiled and linked) during the make process.
Wobble is currently being developed by
Kyler Laird (server) and Coen Siegerink (client)
with the help of Cameron Laird and Mark Roseman.