Summary: | toplevel configure script does not test for GNU Make | ||
---|---|---|---|
Product: | gcc | Reporter: | Bruce Korb <bkorb> |
Component: | bootstrap | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | bkorb, gcc-bugs |
Priority: | P3 | ||
Version: | 4.2.0 | ||
Target Milestone: | --- | ||
Host: | *-*-solaris* | Target: | *-*-solaris* |
Build: | *-*-solaris* | Known to work: | |
Known to fail: | Last reconfirmed: |
Well the requirement to use GNU make is documented. http://gcc.gnu.org/install/prerequisites.html GNU make version 3.80 (or later) You must have GNU make installed to build GCC. So I am going to close this as invalid. It would seem to me that requiring one to read through installation documentation is unreasonable when a trivial change to the configure script can tell the hapless builder what is wrong. You are correct in that it is documented. But adding a useful error message in configure is still the right thing to do. Something like this: --- configure.ac (revision 140070) +++ configure.ac (working copy) @@ -160,13 +160,24 @@ # host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr ppl cloog" +[MAKE=${MAKE-make} +case "`${MAKE} --version`" in +"GNU Make "* ) : ;; +* ) MAKE=gmake + case "`${MAKE} --version`" in + "GNU Make "* ) : ;; + * ) AC_MSG_ERROR([GNU Make is required to build]) ;; + esac + ;; +esac ] + # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to # know that we are building the simulator. # binutils, gas and ld appear in that order because it makes sense to run # "make check" in that particular order. # If --enable-gold is used, "gold" will replace "ld". -host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools" +host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb ${MAKE} patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools" # libgcj represents the runtime libraries only used by gcj. libgcj="target-libffi \ Subject: Re: toplevel configure script does not test for GNU Make On Sun, Dec 28, 2008 at 6:01 PM, bkorb at gnu dot org <gcc-bugzilla@gcc.gnu.org> wrote: > > > ------- Comment #2 from bkorb at gnu dot org 2008-12-28 23:01 ------- > It would seem to me that requiring one to read through installation > documentation is unreasonable when a trivial change to the configure script can > tell the hapless builder what is wrong. You are correct in that it is > documented. But adding a useful error message in configure is still the right > thing to do. > > Something like this: > > --- configure.ac (revision 140070) > +++ configure.ac (working copy) > @@ -160,13 +160,24 @@ > # > host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib > libcpp libdecnumber gmp mpfr ppl cloog" > > +[MAKE=${MAKE-make} > +case "`${MAKE} --version`" in > +"GNU Make "* ) : ;; > +* ) MAKE=gmake > + case "`${MAKE} --version`" in > + "GNU Make "* ) : ;; > + * ) AC_MSG_ERROR([GNU Make is required to build]) ;; > + esac > + ;; > +esac ] Except this is only true for if the toplevel includes gcc sources since the toplevel configure is used for more than GCC. -- Pinski If GNU Make is only required for the GCC build, then the configure script for the gcc piece is the only place where such code would be needed. Anyway, my basic point is that it would be very helpful to not force folks to find things in various manuals when a line or two of code makes the problem easy to decipher and respond to. |
Typescript from Solaris 9 using SUNWspro/bin and no GNU tools available (i.e., "make" comes from that same directory): echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./alloca.o ./argv.o./choose-temp.o ./concat.o ./cp-demint.o ./dyn-string.o./fdmatch.o ./fibheap.o ./floatformat.o ./fnmatch.o ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o ./hashtab.o ./hex.o./lbasename.o ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o ./objalloc.o ./obstack.o./partition.o ./pexecute.o ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o ./strsignal.o./ternary.o ./unlink-if-ordinary.o ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstrndup.o > required-list make: Fatal error in reader: Makefile, line 51: Unexpected end of line seen Current working directory /usr/share/src/gcc/gcc-4.1.1/_b/fixincludes *** Error code 1 make: Fatal error: Command failed for target `all-fixincludes' Current working directory /usr/share/src/gcc/gcc-4.1.1/_b *** Error code 1 make: Fatal error: Command failed for target `all' The line in question: > target_noncanonical:=sparc-sun-solaris2.9 ``:='' ?? If you are going to require GNU make, you *MUST* cause configure to fail and issue such a message. Thanks - Bruce