On Sun, 31 Aug 2003, Norman Gray wrote:
> There is a possibility (v): install the autotools as third-party
> software in the repository. Though this has its attractions, I don't
> think it's necessary, since I think I have a generic solution of type
> (iv).
>
> If you check out, update, or export autoastrom now, the build sequence
> is
>
> # make sure match-0.7.tar{,.gz} is in the directory, either by
> copying it there, or
> # wget http://spiff.rit.edu/match/match-0.7.tar.gz
> ./configure
> RUN_LOCAL_AUTOTOOLS=false make
>
> (or `env RUN_LOCAL_AUTOTOOLS=false make' in csh).
Hi Norman,
OK, that got me further this time. See the attached build log for new
problems. Looks like C++ compiler issues (or may system include files)
now, so to speed this up I'll tell you the versions I'm using.
RH9 standard:
> g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --with-system-zlib --enable-__cxa_atexit
--host=i386-redhat-linux
Thread model: posix
gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
Actually I see the same issues under RH8.
> If you actually do
> have sufficiently new autotools, then just `./configure;make' works.
> This setting changes the behaviour of the `missing' script in
> autoastrom/moggy/missing so that it never attempts to use local
> autotools to regenerate files, and acts as if there were no local
> autotools at all. It produces the warnings that the tools are missing,
> but goes ahead and updates the timestamps. This `missing' script is a
> modified version of the script which `automake --add-missing'
> generates, and is checked in. With this variable set, the make acts as
> a combination of the make plus the update-timestamp script which must
> precede it.
>
> I've tested this in a configuration where the autotools in my path are
> autoconf 2.13 and automake 1.4-p5, which I've verified do break the
> build if they are actually called.
>
> As before, I emphasise that this is necessary _only_ when building a
> CVS checkout or export. Someone building the resulting tarball needs
> only `./configure;make'.
That's reassuring to hear.
> This is also only necessary in directories which are configured using
> automake, since it is only in these directories that there is a
> Makefile in which configure has an expressed dependency on configure.ac
> (etc).
>
> If you forget to include the RUN_LOCAL_AUTOTOOLS setting and you have
> old local autotool versions, the build will possibly fail, and you may
> have garbage in the generated files. In this case, delete the
> wrongly-generated files (which will be everything newer than the CVS/
> directory, I think), do another update, and do the make again, with the
> variable set. You need to give this special make command only once,
> after you've done an update which has resulted in moggy/configure.ac or
> moggy/Makefile.am having the wrong ordering with respect to their
> generated dependencies; thereafter, just `make' will be sufficient,
> since all the timestamps will have the correct ordering.
>
> Note: there is another generated file, moggy/aclocal.m4, which I have
> not checked in to the repository. This is firstly on the general
> grounds that the fewer generated files in the repository the better,
> and secondly because I have persuaded myself (and believe I have
> tested) that, in the case we are discussing here, its contents are
> irrelevant and only its timestamp matters. That timestamp is what the
> `missing' script takes care of. If I have persuaded myself wrongly,
> the symptom will be the build persistently failing even after the
> delete-checkout-make cycle in the previous paragraph -- let me know
> about that.
>
> > (p.s. I'm unclear if this should still be the case or not, but a fresh
> > checkout still breaks the same way as yesterday).
>
> Yes, after some thought, I've decided this is obvious! Contrary to
> what I said on Friday, it's also the case in exported trees. The
> reason this isn't a problem in practice, however -- the reason you
> never have to do more than ./configure;make in unpacked tarballs -- is
> a lot less arcane than timestamp magic. The person making the
> distribution will have run `make dist' successfully in that export
> directory (or else they wouldn't have had a tarball to release), and
> that will have satisfied all of the Makefile.* and config.*
> dependencies one way or another, so the timestamp issues have all
> necessarily been resolved by the time the tarball is made.
>
> So try this, and you don't need me to tell you to tell me if it goes
> wrong.
Indeed.
> All the best,
Yup, had a few nice ones (best that is) at the Durham Beer Festival on
Friday.
Cheers,
Peter.
make[1]: Entering directory `/loc/pwda/pdraper/cvs/autoastrom'
cd moggy && unset INSTALL; make
make[2]: Entering directory `/loc/pwda/pdraper/cvs/autoastrom/moggy'
make all-am
make[3]: Entering directory `/loc/pwda/pdraper/cvs/autoastrom/moggy'
if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/loc/pwda/pdraper/cvs/autoastrom/catlib-install/include -I/star/include -g -O2 -MT moggy.o -MD -MP -MF ".deps/moggy.Tpo" \
-c -o moggy.o `test -f 'moggy.C' || echo './'`moggy.C; \
then mv -f ".deps/moggy.Tpo" ".deps/moggy.Po"; \
else rm -f ".deps/moggy.Tpo"; exit 1; \
fi
In file included from /usr/include/c++/3.2.2/backward/iostream.h:31,
from /loc/pwda/pdraper/cvs/autoastrom/catlib-install/include/cat/CatalogInfo.h:20,
from moggy.C:70:
/usr/include/c++/3.2.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.
In file included from moggy.C:72:
moggy.h:40: 'string' is used as a type, but is not defined as a type.
moggy.h:42: parse error before `s'
moggy.h:43: parse error before `}' token
In file included from moggy.C:73:
CommandParse.h:56: parse error before `)' token
CommandParse.h:67: `string' was not declared in this scope
CommandParse.h:67: ISO C++ forbids declaration of `vector' with no type
CommandParse.h:67: template-id `vector<<expression error> >' used as a
declarator
CommandParse.h:67: parse error before `&' token
CommandParse.h:69: semicolon missing after declaration of `CommandParse'
CommandParse.h: In member function `CommandParse::token_value
CommandParse::type() const':
CommandParse.h:65: `cmdcode_' undeclared (first use this function)
CommandParse.h:65: (Each undeclared identifier is reported only once for each
function it appears in.)
CommandParse.h: At global scope:
CommandParse.h:70: parse error before `s'
CommandParse.h:70: multiple types in one declaration
CommandParse.h:71: parse error before `}' token
CommandParse.h: In function `void verbosity(verbosities)':
CommandParse.h:73: `verbosity_' undeclared (first use this function)
CommandParse.h: At global scope:
CommandParse.h:75: parse error before `private'
CommandParse.h:77: `string' was not declared in this scope
CommandParse.h:77: 'vector' is used as a type, but is not defined as a type.
CommandParse.h:78: `verbosities verbosity_' used prior to declaration
CommandParse.h:80: syntax error before `<' token
CommandParse.h:81: syntax error before `;' token
CommandParse.h:84: parse error before `}' token
In file included from moggy.C:74:
CatalogueHandler.h:59: `string' was not declared in this scope
CatalogueHandler.h:59: parse error before `)' token
CatalogueHandler.h:73: `string' was not declared in this scope
CatalogueHandler.h:73: parse error before `)' token
CatalogueHandler.h:75: `string' was not declared in this scope
CatalogueHandler.h:75: invalid data member initialization
CatalogueHandler.h:75: (use `=' to initialize static data members)
CatalogueHandler.h:83: `string' was not declared in this scope
CatalogueHandler.h:83: parse error before `=' token
CatalogueHandler.h:98: parse error before `)' token
CatalogueHandler.h:114: ISO C++ forbids declaration of `string' with no type
CatalogueHandler.h:114: parse error before `;' token
CatalogueHandler.h:120: `string' was not declared in this scope
CatalogueHandler.h:120: parse error before `)' token
CatalogueHandler.h:170: syntax error before `*' token
CatalogueHandler.h:183: 'string' is used as a type, but is not defined as a
type.
CatalogueHandler.h: In member function `int CatalogueHandler::id_col() const':
CatalogueHandler.h:158: no matching function for call to `MoggyException::
MoggyException(const char[22])'
moggy.h:39: candidates are: MoggyException::MoggyException(const
MoggyException&)
moggy.h:41: MoggyException::MoggyException()
CatalogueHandler.h: In member function `int CatalogueHandler::ra_col() const':
CatalogueHandler.h:162: no matching function for call to `MoggyException::
MoggyException(const char[22])'
moggy.h:39: candidates are: MoggyException::MoggyException(const
MoggyException&)
moggy.h:41: MoggyException::MoggyException()
CatalogueHandler.h: In member function `int CatalogueHandler::dec_col() const':
CatalogueHandler.h:166: no matching function for call to `MoggyException::
MoggyException(const char[23])'
moggy.h:39: candidates are: MoggyException::MoggyException(const
MoggyException&)
moggy.h:41: MoggyException::MoggyException()
In file included from moggy.C:75:
AstHandler.h: At global scope:
AstHandler.h:51: parse error before `<' token
AstHandler.h:57: parse error before `)' token
AstHandler.h:59: semicolon missing after declaration of `AstHandler'
AstHandler.h:59: `bool' is now a keyword
AstHandler.h: In function `void verbosity(verbosities)':
AstHandler.h:83: redefinition of `void verbosity(verbosities)'
CommandParse.h:73: `void verbosity(verbosities)' previously defined here
AstHandler.h:83: redefinition of `void verbosity(verbosities)'
CommandParse.h:73: `void verbosity(verbosities)' previously defined here
AstHandler.h: At global scope:
AstHandler.h:85: parse error before `private'
AstHandler.h:92: parse error before `,' token
AstHandler.h:97: redefinition of `verbosities verbosity_'
CommandParse.h:78: `verbosities verbosity_' previously declared here
AstHandler.h:98: uninitialized const `DegreesPerRadian'
AstHandler.h:99: parse error before `}' token
In file included from stringstream.h:44,
from moggy.C:76:
/usr/include/c++/3.2.2/sstream:50: parse error before `<' token
/usr/include/c++/3.2.2/sstream:55: syntax error before `;' token
/usr/include/c++/3.2.2/sstream:58: syntax error before `;' token
/usr/include/c++/3.2.2/sstream:60: `traits_type' is not a class or namespace
/usr/include/c++/3.2.2/sstream:60: `int_type' is not a class or namespace
/usr/include/c++/3.2.2/sstream:60: using `typename' outside of template
/usr/include/c++/3.2.2/sstream:60: `traits_type' fails to be a typedef or built
in type
/usr/include/c++/3.2.2/sstream:61: `traits_type' is not a class or namespace
/usr/include/c++/3.2.2/sstream:61: `pos_type' is not a class or namespace
/usr/include/c++/3.2.2/sstream:61: using `typename' outside of template
/usr/include/c++/3.2.2/sstream:61: `traits_type' fails to be a typedef or built
in type
/usr/include/c++/3.2.2/sstream:62: `traits_type' is not a class or namespace
/usr/include/c++/3.2.2/sstream:62: `off_type' is not a class or namespace
/usr/include/c++/3.2.2/sstream:62: using `typename' outside of template
/usr/include/c++/3.2.2/sstream:62: `traits_type' fails to be a typedef or built
in type
/usr/include/c++/3.2.2/sstream:65: `char_type' was not declared in this scope
/usr/include/c++/3.2.2/sstream:65: `traits_type' was not declared in this scope
/usr/include/c++/3.2.2/sstream:65: syntax error before `;' token
/usr/include/c++/3.2.2/sstream:66: `char_type' was not declared in this scope
/usr/include/c++/3.2.2/sstream:66: `_Traits' was not declared in this scope
/usr/include/c++/3.2.2/sstream:66: `_Alloc' was not declared in this scope
/usr/include/c++/3.2.2/sstream:66: syntax error before `;' token
/usr/include/c++/3.2.2/sstream:67: `__string_type' is not a class or namespace
/usr/include/c++/3.2.2/sstream:67: `size_type' is not a class or namespace
/usr/include/c++/3.2.2/sstream:67: using `typename' outside of template
/usr/include/c++/3.2.2/sstream:69: parse error before `protected'
/usr/include/c++/3.2.2/sstream:81: parse error before `&' token
/usr/include/c++/3.2.2/sstream:83: only declarations of constructors can be
`explicit'
/usr/include/c++/3.2.2/sstream: In function `int basic_stringbuf(...)':
/usr/include/c++/3.2.2/sstream:83: `__str' undeclared (first use this function)
/usr/include/c++/3.2.2/sstream:84: only constructors take base initializers
/usr/include/c++/3.2.2/sstream:84: confused by earlier errors, bailing out
make[3]: *** [moggy.o] Error 1
make[3]: Leaving directory `/loc/pwda/pdraper/cvs/autoastrom/moggy'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/loc/pwda/pdraper/cvs/autoastrom/moggy'
make[1]: *** [build-subdirs] Error 2
make[1]: Leaving directory `/loc/pwda/pdraper/cvs/autoastrom'
*** "make" failed building the AUTOASTROM package
make: *** [build] Error 1
|