JiscMail Logo
Email discussion lists for the UK Education and Research communities

Help for STARDEV Archives


STARDEV Archives

STARDEV Archives


STARDEV@JISCMAIL.AC.UK


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

STARDEV Home

STARDEV Home

STARDEV  September 2004

STARDEV September 2004

Options

Subscribe or Unsubscribe

Subscribe or Unsubscribe

Log In

Log In

Get Password

Get Password

Subject:

Re: are subdir configure.ac files needed?

From:

Norman Gray <[log in to unmask]>

Reply-To:

Starlink development <[log in to unmask]>

Date:

Tue, 14 Sep 2004 12:32:52 +0100

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (155 lines)

Greetings, all.

On 2004 Sep 5 , at 16.09, Norman Gray wrote:

> On 2004 Sep 4 , at 01.13, Tim Jenness wrote:
>
>> Re: are subdir configure.ac files needed?
>
> Funny you should mention that....

This is now, finally, fixed.  Sorry this took so long -- last week
seemed like one solid distraction, and this did end up being a more
intricate change than I expected.

Some of the automake changes are as trailed last week, others are
changes which were to a greater or lesser extent forced by those.  None
should involve much thought on anyone else's part, and all should be
documented adequately in SSN/78 (please do check, and tell me if this
is not the case).

As a reminder, the driver for these changes was my realisation -- later
than I think it should have been -- that the idiom is to have one
configure.ac at the top of a package/component, configuring multiple
Makefile.am files in subdirectories, and that we had violated that
idiom in a surprisingly large number of places.  The immediate result
of this is that substitutions triggered by the configure.ac can end up
being substituted into Makefile.in files where they make no sense.
This is not just a matter of style, but the design of some of the
starconf macros means that when you do have a single configure.ac, you
end up substituting dependencies on documentation or etc files (say)
into Makefiles which have no way of satisfying them.

The (configure.ac) STAR_XXX_FILES macros are now (heavily) deprecated,
in favour of the starxxx_DATA declarations in Makefile.am.

The effect of the STAR_LATEX_DOCUMENTATION macro has changed.  It
expresses dependencies on star2html (and so on) as before, but has its
effect on the Makefile by defining and substituting the variable
@STAR_LATEX_DOCUMENTATION@, so that to install the documentation, you
need to have a

     stardocs_DATA = @STAR_LATEX_DOCUMENTATION@ ...

declaration in the Makefile.am (this is a better design anyway, as it's
less magic, and keeps the collection of installed objects all in the
one place, the Makefile.am, where they belong).  The variable is
substituted with the STAR_LATEX_DOCUMENTATION second argument if it's
present, or the default installation set if it's not.  The
STAR_LATEX_DOCUMENTATION macro therefore hasn't changed its interface,
just its effect.

The same goes for the STAR_MESSGEN macro.  It's argument is now
optional, and has the effect of calling STAR_PREDIST_SOURCES if it's
present (this isn't particularly useful, but is so just so that the
interface doesn't have to change).  To actually generate the
appropriate boilerplate in the makefile, you need one or both of

     include_MESSAGES = foo_err.h FOO_ERR
     noinst_MESSAGES = foo_err.h FOO_ERR

(there's a companion foo_err_h_SOURCES which names the source file, but
the default in both cases is foo_err.msg, and I haven't had to use it
yet).  The first acts like include_HEADERS but generates and
distributes the named files; the second does the same except for
installing the named files.  The fac_xxx_err files are generated and
installed in all cases.

Previously, ATASKs were indicated by having a <monolith>_TASKS variable
defined but blank.  That's redundant, and now a blank _TASKS variable
is an error, and you should indicate an ATASK by simply omitting the
_TASKS variable.

I've made changes, reflecting these, across the whole tree.  Most
notably, I've removed almost all the configure.ac files in component
subdirectories (exceptions below), along with their corresponding
AC_CONFIG_SUBDIRS.  Instead, the Makefiles in those subdirectories are
configured from the AC_CONFIG_FILES in the component's top directory's
configure.ac.  The result of removing these is fairly impressive.
Calling ./bootstrap on the whole tree now takes 21m10s on my desktop
machine (a Pentium or AMD or one of those -- hang on, /proc/cpuinfo
says it's an `AMD Athlon(TM) XP 2200+', 1.8GHz, and 3563 bogomips); and
./configure -C with a pre-existing config.cache takes about 15m.  I'm
not sure what these were before, but they were a good deal slower than
that.

I appear to have removed 123 configure.ac files, modified 30 others,
and modified 121 Makefile.am.



Problematic components
----------------------

applications/convert appears to require hair libtool options in
idl/configure.ac, and have assorted other logic in */configure.ac which
I didn't want to monkey with

applications/autoastrom isn't fully configured yet (and has other
oddnesses).

applications/obsolete/ircamdr appears not to configure its misc/
subdirectory, though it wasn't obvious why not -- perhaps that's an
error?

applications/figaro: there seemed to be AC_DISABLE_SHARED declarations
in deprecated library subdirectories -- I presumed they'd be harmless
to ignore.

datacube and photom both have a AC_CHECK_LIB(cc_dynamic,restFP) check,
which is almost certainly redundant now, since the appropriate check is
done automatically on OSX (and I haven't forgotten about the libs
problem with this, Brad).

cfitsio has _lots_ of warnings ``integer constant is too large for
"long" type'', and cat has numerous ``Integer at (^) too large except
as negative number (preceded by unary minus sign)'' warnings, which
look rather important.



Tests
-----

I've tested this by rebootstrapping and reconfiguring the whole tree.
I've rebuilt most of it, but got stuck in startcl, when it failed to
find jpeglib.h, and so did I.  Where on earth is this file supposed to
come from -- I'm pretty sure I didn't delete it or a reference to it by
mistake.  Anyway, rather than delay further with that, I'm willing to
bet that the large proportion of the tree built before that point is a
decent test of the various features I changed, and of the edits I made
(since many of them were scripted).

Also, these tests were done before the cvs update I had to do before I
could commit my changes, so there's an outside chance that those
updates have changed something.  Any updates that others made to
now-deleted configure.ac files I have, I think, moved elsewhere.  Yes,
I should have done this on a branch; no, I didn't think it was going to
take this long....




It might be worth casting an eye over those components which you have
most recently looked after, just to check that nothing is broken.

SSN/78 is now at version 1.62, and should match these recent changes.

Norman


--
----------------------------------------------------------------------
Norman Gray  :  Physics & Astronomy, Glasgow University, UK
http://www.astro.gla.ac.uk/users/norman/  :  www.starlink.ac.uk

Top of Message | Previous Page | Permalink

JiscMail Tools


RSS Feeds and Sharing


Advanced Options


Archives

December 2023
January 2023
December 2022
July 2022
June 2022
April 2022
March 2022
December 2021
October 2021
July 2021
April 2021
January 2021
October 2020
September 2020
August 2020
May 2020
November 2019
October 2019
July 2019
June 2019
February 2019
January 2019
December 2018
November 2018
August 2018
July 2018
May 2018
April 2018
March 2018
February 2018
December 2017
October 2017
August 2017
July 2017
May 2017
April 2017
February 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
October 2015
September 2015
August 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
2004
April 2003
2003


JiscMail is a Jisc service.

View our service policies at https://www.jiscmail.ac.uk/policyandsecurity/ and Jisc's privacy policy at https://www.jisc.ac.uk/website/privacy-notice

For help and support help@jisc.ac.uk

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager