Web Of Binary Building and Linking Engines
What is it?
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):
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.
- Take source code, compile it, and return the ".o" object code.
- Link a set of object files into an executable or a shared library.
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.
Note: there's a serious url-encoding performance
bottleneck in the client.
- September 12, 1998
- Client now catches and reports build errors,
server can guess its configuration
- Download files:
||Sep 12 1998, 19:07:10 GMT
||Sep 13 1998, 01:48:45 GMT
||Sep 5 1998, 15:06:50 GMT
It works fine, but I use a small custom C extension to speed things up -- JC
To handle remote compilations and links, your system needs to support the following:
With that out of the way, setting up a server is trivial:
- 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").
- 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...
The client side is currently a Tcl script. To use it, you must:
With that out of the way, setting up a client is also quite simple:
- Have Tcl 8.0 installed, with "tclsh8.0" in your path.
- Have GNU make, since the example uses its "vpath" feature.
- 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...
For remote compilation and linking to work, you need to deal with several issues:
There's an example project with everything in place to do a remote build:
- 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.
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.
- 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.
Wobble is currently being developed by
Kyler Laird (server) and Jean-Claude Wippler (client)
with the help of Cameron Laird and Mark Roseman.