Autotools Porting

Hi, I help to maintain the ice package for the Gentoo Linux distribution. I was looking over the build system for Ice, and I think that maintability wise it would benefit from using the Autotools build system.

If something was found to be unportable on a certain platform, it would be easy to add in the appropriate configure check through autoconf and passing on via defines through Automake. I'm currently working on checking the source layout. A few things came up installation location wise that I'd like to bring forth:

so first the config directory. This seems to maintain the architecture and dependancy based rules for the entire make process. It also appears to contain a ca directory (for openssl), a few python scripts, and an xml file. My guess is that the ca directory (which would optionally be considered if a person enabled ssl) should go in /usr/share/Ice-version/ca (along with certs?). The template.xml file should go into /usr/share/ice-version, and the .py files (being what appears to be utility scripts) can probably go into /usr/bin.

The source directory seems to be standard libraries. The trick here would be checking each individual source directory for possible external deps (such as openssl and db), as well as deps with other modules (is this existant in the src/ directory or are things fairly independant?). The libraries would go into /usr/lib, making the need for ICE_HOME go away for linking.

The include directories would be a straightforward install, so that wouldn't be all that difficult. Those would simply be directed to /usr/include/Ice. Again, the need for ICE_HOME goes away.

The test directory would be introduced into something of a make check, fairly standard in most autotools build systems that utilize such functionality.

Demos would get installed into /usr/share/ice-version/demo. I'm pondering whether to build these, or make demo have its own autotools build system that the user can simply run in /usr/share/Ice-version/demo and build all the demos themselves. Heck, you might be able to get away with just simple makefiles here if they're just demos.

slices go in /usr/share/Ice-version/slice/. I think that should be it really.

documentation could probably have a conditional option (--enable-doc) that would say whether or not to build the documentation. This is probably the best solution in that users can always download the pdf's online.

Alright, that's it for now, fire away ;)


  • bernardbernard Jupiter, FLBernard NormierOrganization: ZeroC, Inc.Project: IceAdministrators, ZeroC Staff ZeroC Staff
    Hi Chris,

    Ice is using GNU make for its build system on purpose, and we have no intention to switch to another build system such as autoconf/autotools.

    Regarding the installation in "/usr", please have a look at what we do with RPMs on Fedora Core 5. I am sure improvements are possible, but this should be your starting point! You can just download the RPMs and use 'rpm -qlp <file>.rpm' to browse their content.

    Also, could you fill in your signature as described here?

  • For what reason out of curiosity (point to another post, doc, or whatever is fine).

    (filled out my sig as well, oops)
  • bernardbernard Jupiter, FLBernard NormierOrganization: ZeroC, Inc.Project: IceAdministrators, ZeroC Staff ZeroC Staff
    See The benefit is not worth the extra work and added complexity.

Sign In or Register to comment.