Re: [ng-spice-devel] ACS converted to automake, autoconf


To ng-spice-devel@ieee.ing.uniroma1.it
From "Arno W. Peters" <a.w.peters@ieee.org>
Date Tue, 31 Oct 2000 19:50:07 +0100
Delivered-To mailing list ng-spice-devel@ieee.ing.uniroma1.it
In-Reply-To <00103021373100.01439@spiff.al.dynip.com >; from aldavis@ieee.org on Mon, Oct 30, 2000 at 07:45:16PM -0800
Mailing-List contact ng-spice-devel-help@ieee.ing.uniroma1.it; run by ezmlm
References <20001030210607.A24396@cgmd80028.chello.nl > <39FE5936.126E84E2@wanadoo.fr > <00103021373100.01439@spiff.al.dynip.com >
Reply-To ng-spice-devel@ieee.ing.uniroma1.it
User-Agent Mutt/1.2.5i

On Mon, Oct 30, 2000 at 07:45:16PM -0800, Al Davis wrote:

> [Comments on previous difficulties with autoconf and automake removed]
> 
> Can you tell me what the benefits are?  I really want to know.

I noticed you have confined all platform dependent code to md.h and
md.cc.  This is good practice.  But the only switches available to
select platform dependencies were -DUNIX and -DWIN32.

With autoconf can test for specific functions in the compiler and/or
library APIs.  Based on them, you can enable or disable certain
functionality in the sources.  This allows a much finer grained
control over what can be supported on a particular platform.

Autoconf and automake also allow you to build in another directory
than the one holding the sources.  Using autoconf, every directory can
have different configuration switches including cross compilation
options.  You could do for example:
----
  $ cd test-coverage
  $ ../acs/configure --enable-test-coverage
  $ make check

In the directory test-coverage, configure ACS with coverage testing
enabled and run all the tests after compilation.
----
  $ cd trace
  $ ../acs/configure --enable-trace
  $ make

In the directory trace, build ACS with tracing enabled and build the
executable.
----
  cd m68k
  CC=m68k-coff-gcc configure --target=m68k-coff
  make

In the directory m68k, configure ACS to use m68k-coff-gcc as its
default compiler and select m68k-coff as the target platform for which
to build executables.  Build the executable.
----
  cd production
  ../acs/configure --disable-debug --prefix=/usr
  make
  make install

In the directory production, configure ACS without assertion checking.
After building, acs (the executable) is installed in /usr/bin.
----

Automake/autoconf transparently handles dependency generation, packing
up a tarball for distribution, building static and shared libraries.
This allows the developer to put more time into improving the code
instead of taking care of administrative detail.

I hope this clarifies matters a bit.
-- 
Arno

PGP signature


Partial thread listing: