I describe here the "As it happened" building and installation of softare needed for the GNU portable software system for both SGI IRIX 6.5 and OSF1 Alpha V5.0. I also try to build the cvs version of guile (for Chart on alpha), but that is currently not successful and you can ignore guile things for simply building the autotools. The installed software goes into the "build" directory, so all software is configured with: ./configure --prefix=$HOME/build/IRIX64 So here we start: need automake 1.4-4 (provides aclocal) autoconf needs m4 get m4 from http://www.mirror.ac.uk/sites/ftp.gnu.org/pub/gnu/m4/m4-1.4.tar.gz m4 needs makeinfo for documentation makeinfo is part of texinfo texinfo done with cc building m4 chokes with cc on some /usr/include/sys/ucontext.h stack problem sigh. add freeware/bin to path to get gcc. reconfigure m4 and make and make install fine. now autoconf ./configure; make; make isntall fine now need libtool ./configure it with gcc in the path (gcc version 2.95.2) ./configure; make; make install Libraries have been installed in: /y/people/emsley/build/IRIX64/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARYN32_PATH' environment variable during execution - use the `-Wl,-rpath -Wl,LIBDIR' linker flag See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. OK, so now ./autogen.sh in guile-core works... (in guile-core) run it... ./configure --enable-maintainer-mode --prefix=$HOME/build/IRIX64 My Ghod, this is slow.... (speed (and processing power) of an obselescent PC)) Use LDFLAGS because we have libreadline in freeware - a non-standard place. so. setenv LDFLAGS -L/usr/freeware/lib (but this should only happen for IRIX). ---- Now onto guile: guile-cvs seems to require guile to compile argh! So get guile 1.4 compilation fails with gcc So setenv CC rm config.cache ./configure --prefix=$HOME/build/$OS make ; make install ---- Now onto guile-cvs (on cop01) (but first on batman, do a cvs update) setenv CC cc Libreadline is too old - we need a new one ---- Argh, I can't stand not having proper tar and gzip. So get them downloaded and get them made Done very quick. (notice that we use gcc to compile gzip and tar) ---- now onto readline 4.2 done (with gcc) ---- Now onto guile-cvs (using gcc fails) setenv CC cc ./configure --prefix=$HOME/build/$OS make OK, this fails with a libtool-related strangeness so... get libtool on osf1 (it is not there already) --- An aside: I want wget so download wget 1.5.3 ./configure --prefix=$HOME/build/$OS make Fails with some gettext-related problem So get newer gettext (gettext 0.10.38) ./configure --prefix=$HOME/build/$OS make make install Fine. Back to wget ./configure --prefix=$HOME/build/$OS make && make install Fine. --- get libtool 1.4 setenv CC cc ./configure --prefix=$HOME/build/$OS make && make install. Fine. --- Now back to guile-cvs. setenv CC cc ./configure --prefix=$HOME/build/$OS make Argh. same problem (alist.pp does not exist) ---- OK, so while I think about it, lets get fileutils and findutils. fileutils: setenv CC cc ./configure --prefix=$HOME/build/$OS make && make install findutils: setenv CC cc ./configure --prefix=$HOME/build/$OS make -> fails for some FNM_CASEFOLD reason unsetenv CC ./configure --prefix=$HOME/build/$OS make && make install That fails too. Damn. I need more uptodate source code, I think. Try getting code from alpha.gnu.org mirror. (findutils-4.1.7) ./configure --prefix=$HOME/build/$OS make && make install Fine ---- Now for fun lets do automake (1.4-p4) and autoconf (2.50) and m4 (1.4). Done. ---- Now, fyi, gcc (/usr/local/bin/gcc 2.9-gnupro-98r2) keeps failing like this (for many different packages): In file included from /usr/include/netinet/in.h:290, from /usr/include/sys/table.h:58, from getloadavg.c:180: /usr/include/netinet/in6.h:54: parse error before `uint8_t' /usr/include/netinet/in6.h:54: warning: no semicolon at end of struct or union /usr/include/netinet/in6.h:54: warning: no semicolon at end of struct or union /usr/include/netinet/in6.h:56: warning: data definition has no type or storage c lass /usr/include/netinet/in6.h:58: parse error before `sa6_laddr' /usr/include/netinet/in6.h:58: warning: data definition has no type or storage c lass /usr/include/netinet/in6.h:64: parse error before `}' /usr/include/netinet/in6.h:64: warning: data definition has no type or storage c lass /usr/include/netinet/in6.h:65: parse error before `}' /usr/include/netinet/in6.h:172: parse error before `uint32_t' /usr/include/netinet/in6.h:172: warning: no semicolon at end of struct or union /usr/include/netinet/in6.h:174: parse error before `sin6_scope_id' /usr/include/netinet/in6.h:174: warning: data definition has no type or storage class /usr/include/netinet/in6.h:173: storage size of `sin6_addr' isn't known make[2]: *** [getloadavg.o] Error 1 make[1]: *** [all-recursive] Error 1 --- Lets make a more upto date make. /usr/local/bin/make --version GNU Make version 3.75-gnupro-98r2, by Richard Stallman and Roland McGrath. Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96 So compile and install make-3.79.1 (had to be done with cc (sigh)). Done. ----- So... lets see if we can get a gcc that works (more often) Download 2.95.3 unsetenv CC (try to compile this gcc with the old gcc) To configure GCC: % mkdir _objdir_ % cd _objdir_ % _srcdir_/configure _[target]_ _[options]_ mkdir gcc-obj cd gcc-obj ../gcc-2.95.3/configure --prefix=$HOME/build/$OS --enable-shared problem: ld: Unresolved: ASM_FILE_START make[1]: *** [cc1] Error 1 make[1]: Leaving directory `/y/people/emsley/compile/osf1/gcc-obj-cc/gcc' make: *** [all-gcc] Error 2 The answer is that the configure script which comes with gcc 2.95.2 doesn't recognize this version of the OS, so you have to either fool it into configuring for version 4 ( using the --host switch ) or edit the configure script to include checks for V5.0. I took the latter approach and it all seemed to work ok. Solution: configure --host=alphaev56-dec-osf4.0 so we now have: ../gcc-2.95.3/./configure --prefix=$HOME/build/$OS --enable-shared --host=alphaev56-dec-osf4.0 ---- Wed Aug 15 16:44:26 BST 2001 Kevin installed gcc 3.0. I used that to make make. But the executable fails when it is used to build other software. Sigh. So... setenv CC cc ./configure --prefix=$HOME/build/$OS That works fine.