Automake and libtool for Samba

John E. Malmberg wb8tyw at qsl.net
Tue Nov 21 05:49:31 GMT 2000


"Matt Peterson" <mpeterson at calderasystems.company> wrote:

> ... A rather harsh judgment of tools that have made their way in to
> thousands of projects from KDE to Apache.  Autoconf, automake and
> libtool present concepts that are new and sometimes confusing to
> developers but are they are still good tools.  My experience is that
> ones that dislike libtool, autoconf and automake are usually those that
> do not understand them.

I do not know about libtool and automake.

autoconf may be cross-UNIX but is definitely not cross platform.  It is
dependent on a UNIX like shell and usually a whole suite of UNIX specific
tools.

These tools are either not available on all platforms, or are of too ancient
of a revision to be of use on some platforms.

Many of these utilities are not used on OpenVMS as it has functionally
equivalent tools built in.

I have looked at the configure script for SAMBA, and can not find anyway to
make it run on OpenVMS, or even interpret it manually.

I had to go through the config.in file and create a config.h based on trying
to make educated guesses as to what the option enabled or disabled.

In some cases I initially guessed wrong, and had to do a lot of work to find
out why things did not work.  #define HAVE_MMAP is one example.

OpenVMS has a mmap() function.  Unfortunately the way it was used in SAMBA
was to open a file for transfer.  If the file was in the standard OpenVMS
text format, [A count of bytes in the record, followed by the record], it
was read in "raw" with mmap() and transfered to the client that way.  A PC
client would see this text file as garbage.

Normally when you open a standard OpenVMS text file though either the
Standard I/O or the UNIX I/O routines, when records are read in, the I/O
system presents them as if they were stream of bytes from the record and
adds a terminating line feed, in most cases insulating the UNIX program from
the OpenVMS file system.


What is needed for a cross platform autoconf would be something that is more
table driven and not script driven, so that platform specific configure
scripts could be written to execute the tests indicated on the tables and
compare the results.

I do not know enough about how the configure script is generated to know how
to get one generated for building SAMBA on OpenVMS based on rules.

>
> Would you rather try to complicate the single samba makefile further by
> adding special sections for each OS that differs in the way it links
> shared libraries?

The SAMBA makefile for OpenVMS only slightly resembles the one for the UNIX
implementations.  The major differences are in the linking instructions.
The sections that generate the documentation and installation scripts are
commented out.

It looks like it would take a lot of work to generate a MAKEFILE for OpenVMS
from the makefile.in.

Having a makefile generate installation scripts for OpenVMS is probably a
waste of time.

I do not have the specific UNIX documentation tools installed on my system
to even look at getting the makefile to generate it.  Fortunately the
documentation is provided prebuilt.

> Finally, take a look at
> http://www.apache.org/docs/new_features_2_0.html  The use of Libtool is
> listed as a Core enhancement of the new Apache 2.0 build system.  Apache
> probably attracts more users, developers, and diverse systems than even
> Samba -- yet they feel comfortable about using libtool...

Since Apache is being built for OpenVMS, when I get time I will have to see
if they have ported libtool.

-John
wb8tyw at qsl.network
malmberg at eisner.decus.organization






More information about the samba-technical mailing list