help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Infinite dependency loop for build software


From: Richard Haney
Subject: Infinite dependency loop for build software
Date: Mon, 16 Sep 2002 00:04:45 -0700 (PDT)

I am afraid I am falling into an infinitely regressing dependency chain
with no end in sight.

I wanted to build GiNaC, a symbolic computing package, but to do that I
need to build and install CLN, a numerical package for arbitrarily high
precision.

But to do that I need a make that can be used for the build.

CLN documentation says that gnu make 3.77 does not do the job required,
but that "any other" make is fine.

So I looked for another make binary for win32 besides the 3.77 binary I
already have, and I found none.

So I downloaded "source tarball" make-3.79.1.tar.gz from the gnu site
for make.

I tried following the directions in the "Install" and other files in
the main directory "make-3.79.1".

Using my installed cygwin and bash, I set up various environment
variables such as "export CC= etc." and then proceded to execute
"./configure --prefix=$INSTALLDIR".

The supposed configure script proceeded to execute and then stopped
when it was trying to find out if make "defines ${MAKE}".

That's similar to a problem I ran into trying to build the CLN package
using a configure script for CLN.  I traced the problem to the fact
that make insists on defining MAKE as its win32 pathname, but also the
left " was replaced by a backslash and eval was complaining about an
unbalance ".

There were two apparent problems there: one was the fact that make
insisted on using a win32 pathname and the other was that the left "
was strangely replaced by a backslash.

Well, when I read the CLN saying that make 3.77 doesn't do what's
required, I figured I could simply forget about trying to use make 3.77
and that I should look for another binary, or failing that, download
the source for another gnu make and try to build a binary.

OK, so I did that.  And as a result I executed the ./configure command
as noted above.

But it seemed very strange that that configure would again be testing
make to see what is does with ${MAKE}.  After all, the install
directions said an existing make is not necessary to build make.

So I took a look at the configure script, and found, to my puzzlement,
that the script is essentially empty.  I tried to figure out where bash
was getting the ./configure command, and I am extremely puzzled!

I looked at the bash PATH with "echo $PATH" and could find no
"configure" in the path.  That's one problem.  But I apparently need
autoconf to create configure.  When I looked for an autoconf binary, I
found none.  And the source would require the use of make.  So
apparently we have an infinite dependency loop here.

But, one further note.  I figured I should try to comment out the make
(3.77) that's in the path and try the ./configure command again.

So here are some snapshots from the bash screen --

(There are end-of-line continuation backslashes here that yahoo might
"mangle" somewhat.)

The lines get folded on the screen as well.

(The make 3.77 in the command path has been commented out before this. 
But there are other makes in the path, e.g., borland's [for MS-DOS
execution].)

Besides the ominous execution of some sort of "ghost" configure script,
the "ghost" script also seems to decide that the parameters I supplied
cannot be used to create an executable.  So that is a another potential
problem as well.

Please advise me as to how I can get out of this infinite dependency
loop and get make, CLN, and GiNaC all built.

Richard Haney



sample output:

address@hidden ~
$ export CC=/cygdrive/c/gcc/bin/g++

address@hidden ~
$ export CFLAGS="-g -O2 -ggdb -Wall -pendantic"

address@hidden ~
$ export CPPFLAGS="-I$HOME/include \
>
-I/cygdrive/c/gnu/gcc_downloads--2002-08-18/mingw32-980701-4_zip/include
\
> -I/cygdrive/c/gnu/gcc-2.95.2-20001116_zip/mingw32/include"

address@hidden ~
$ export LDFLAGS="-s -L$HOME/lib \
> -I/cygdrive/c/gnu/gcc_downloads--2002-08-18/mingw32-980701-4_zip/lib
\
> -I/cygdrive/c/gnu/gcc_downloads--2002-08-18/win32api-980701-4_zip/lib
\
>
-I/cygdrive/c/gnu/gcc_downloads--2002-08-18/egcs-1.1.1_zip/lib/gcc-lib/i386-m
ingw32/egcs-2.91.60 \
> -nostartfiles  \
>
/cygdrive/c/gnu/gcc_downloads--2002-08-18/mingw32-980701-4_zip/lib/crt2.o"

address@hidden ~
$ export
INSTALLDIR="/cygdrive/c/gnu/source_pkgs_only/make-3_79_1_tar_gz/make-3
.79.1"

address@hidden ~
$ cdmake

address@hidden
/cygdrive/c/gnu/source_pkgs_only/make-3_79_1_tar_gz/make-3.79.1
$ ./configure --prefix=${INSTALLDIR}
loading cache ./config.cache
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... ac_maketemp="MAKE}": not found
no
checking for working aclocal... missing
checking for working autoconf... missing
checking for working automake... missing
checking for working autoheader... missing
checking for working makeinfo... found
checking host system type... i586-pc-cygwin
checking whether make sets ${MAKE}... (cached) no
checking for gcc... /cygdrive/c/gcc/bin/g++
checking whether the C compiler (/cygdrive/c/gcc/bin/g++ -g -O2 -ggdb
-Wall -pen
dantic -s -L/home/Default/lib
-I/cygdrive/c/gnu/gcc_downloads--2002-08-18/mingw3
2-980701-4_zip/lib
-I/cygdrive/c/gnu/gcc_downloads--2002-08-18/win32api-980701-4
_zip/lib
-I/cygdrive/c/gnu/gcc_downloads--2002-08-18/egcs-1.1.1_zip/lib/gcc-lib/
i386-mingw32/egcs-2.91.60 -nostartfiles 
/cygdrive/c/gnu/gcc_downloads--2002-08-
18/mingw32-980701-4_zip/lib/crt2.o) works... no
configure: error: installation or configuration problem: C compiler
cannot creat
e executables.

address@hidden
/cygdrive/c/gnu/source_pkgs_only/make-3_79_1_tar_gz/make-3.79.1
$ mount -m
mount -f -u -t "C:/cygwin/bin" "/usr/bin"
mount -f -u -t "C:/cygwin/lib" "/usr/lib"
mount -f -u -t -x "C:/cygwin" "/"
mount    -t --change-cygdrive-prefix "/cygdrive"

address@hidden
/cygdrive/c/gnu/source_pkgs_only/make-3_79_1_tar_gz/make-3.79.1
$




__________________________________________________
Do you Yahoo!?
Yahoo! News - Today's headlines
http://news.yahoo.com




reply via email to

[Prev in Thread] Current Thread [Next in Thread]