From: Jason Green Newsgroups: comp.os.msdos.djgpp Subject: Re: MESA3D compiling problem Date: Sun, 21 May 2000 11:59:24 +0100 Organization: Customer of Planet Online Lines: 74 Message-ID: References: NNTP-Posting-Host: modem-171.colorado.dialup.pol.co.uk Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: newsg3.svr.pol.co.uk 958906863 15015 62.137.57.171 (21 May 2000 11:01:03 GMT) NNTP-Posting-Date: 21 May 2000 11:01:03 GMT X-Complaints-To: abuse AT theplanet DOT net X-Newsreader: Forte Agent 1.7/32.534 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Eli Zaretskii wrote: > > There was a problem in the way one of the scripts built the directory > > structure. This is an incompatibilty with the DJGPP /dev/env/DJDIR > > feature. > > Please tell more details about this problem. The makefile installs the libraries and headers to the djgpp tree. It knows which directories to install to (presumably from the configure script). It creates the directories if they do not exist. mkdir is no good for this because it requires top level directories to already be in place before creating the subdirectory, and that is not guaranteed, so a script is used to create the hierarchy. For example to create /foo/bar/baz, the script effectively executes: mkdir /foo; mkdir /foo/bar; mkdir /foo/bar/baz. The directory c:/djgpp/include/gl is required. This is actually known to the makefile as /dev/env/DJDIR/include/gl. The directory does not yet exist so the script is called. Because /dev is not found as a directory, the script creates it and from this point on it is doomed. The workaround is to manually create the required directories before the `make' so that the script is never called. You can decide for yourself whether this should be considered a bug in DJGPP. I would say the problem stems from the inconsistent treatment of /dev. Potential fixes could be for DJGPP either to pretend that /dev does exist or to ignore requests to `mkdir /dev'. Pasted below is what I believe to be the culprit script: #! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here