ftp.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/11/03/03:41:27

Date: Sun, 3 Nov 1996 10:33:41 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Jamie Mazer <mazer AT lgn DOT mit DOT edu>
Cc: djgpp AT delorie DOT com
Subject: Re: ./configure workarounds?
In-Reply-To: <MAZER.96Oct31150035@lgn.mit.edu>
Message-Id: <Pine.SUN.3.91.961103085329.27699D-100000@is>
Mime-Version: 1.0

On 31 Oct 1996, Jamie Mazer wrote:

> In practice, just about everything (non-X) that I use or have written
> for linux compiles successfully under djgpp/dos, but the hardest part
> is always hacking the makefiles.  Usually I can run the configure
> script under linux and then copy the resulting makefiles to DOS
> and tweak them to get things going, but this always seems like a
> kludge.  Has anyone come up with anything better??

There are 2 parts to this puzzle: the config.h header which describes the 
features that are and aren't supported by the compiler/library/OS; and 
the Makefiles which frequently include command lines that only Unix-like 
shell can grok.  (There is also the third part, namely, making the 
program work on MSDOS after it compiles, due to all kinds of assumptions 
about filenames and such in Unix-born programs, but that's another story.)

The first part should be mostly taken care of by the <sys/config.h> 
header which comes with DJGPP.  Usually, creating a local `config.h' 
which only says "#include <sys/config.h>" is all you need.  Sometimes, 
you will need to add a couple of lines specific to that package.

The second part depends on your tools and the degree of hackery that you 
are prepared to bear.  If you only do this for yourself, you can get a 
port of Unix shell and use the Makefile as is (you will have to run a 
simple Sed script on Makefile.in to convert all the @bindir@ and such to 
whatever is appropriate to your system, but that's all).  OTOH, if you 
want to make your port available to others, who might not have a 
Unix-like shell, then you will have to tweak Makefile.in into a Makefile 
which only uses DOS commands and tools that come with DJGPP.  AFAIK, 
there is no automated way to accomplish this, but you might consider 
downloading some of the source distributions from the v2gnu subdirectory 
of the DJGPP archive sites and look there for some examples of innovative 
ways to pretend you are on Unix ;-).  Since FSF Makefiles have fairly 
standard structure, chances are that you can take some of the Sed scripts 
used in already ported packages to create DOS Makefile and use them with 
minimal changes for a package you are trying to port.

Another way is to run the ./configure script with a DOS port of a Unix 
shell, but it won't run unaltered and AFAIK nobody has yet succeeded in 
doing this even semi-automatically.

Bottom line: tough.  But then, again, that's why it is considered to be 
fun (by some).

- Raw text -


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