delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/04/17/08:19:40

From: <telford AT xenon DOT triode DOT net DOT au>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: GNU autoconf problems...
Date: 16 Apr 1998 13:08:59 GMT
Organization: Triode Internet
Lines: 54
Message-ID: <6h4vtb$oae$2@hyperion.triode.net.au>
References: <6gmdmq$ue6$1 AT nnrp1 DOT dejanews DOT com>
NNTP-Posting-Host: xenon.triode.net.au
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

In comp.os.msdos.djgpp alexv AT yahoo DOT com wrote:
> How do I make the GNU autoconf-2.0 work?

> I'm trying to compile "rsynth-2.0" and its "configure"
> program works well with CygWin, but not with DJGPP
> (and I need to compile it with DJGPP!).

> Any ideas? Thanx in advance...

I'm writing some software and trying to get configure scripts working
for my program. I got it going OK on Solaris-SPARC and on 386-Linux
but I had lots of trouble writing a working configure script for
DJGPP. For a start, configure has 9 character so it comes out
strange in win95. More seriously, it depends on it's first line
which is #!/bin/sh requiring some sh command in the %djgpp%\bin
directory. I found that copying bash to sh worked OK to get configure
started but things get worse... The autoconf program generates
configure scripts that search for available utilities by scanning
through the PATH environment variable using a shell script for
loop. The DJGPP PATH is DOS-like and uses `;' as a separator --
the for loop can't cope with this so it doesn't scan the PATH.
Can it get worse? yes.
The shell script looks for utilities that have a name matching the
names that it is looking for (seems an obvious method).
This works in unix but oh dear, DOS names have a .EXE on the
end for all utility programs (gcc.exe in particular).

Somewhere around this point I figured it was time to give up
with configure scripts in DJGPP.

My alternative method was not to have configure construct a makefile.
I use an unchanging makefile that includes another file called basemake.
Good old GNU make knows how to cope with this because if basemake
doesn't exist, GNU make looks for a rule to build it.
Sure enough the unchanging makefile has a conditional on the
symbol DJGPP (which must be defined for DJGPP to work) and it
copies a special basemake just for DJGPP and invokes the
configure script to construct basemake in any other case (i.e.
for all the unix cases).

In your case, you are stuck with someone else's configure script
that almost certainly constructs a makefile, all I can suggest
is that you copy the makefile from the Cygwin compile and modify
it by hand. You may need to construct config.h by hand too.

Does anyone have comments on my methods of configuration?
Is it silly to make a special case for DJGPP?
Seems to me that just about all of DJGPP is made from special
cases... Are there many variations in DJGPP environments that
should be handled? Does anyone attempt to handle this sort of
thing automatically?

	- Tel

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019