Date: Sun, 16 Jan 2000 10:33:54 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is To: Jeff Williams cc: djgpp AT delorie DOT com Subject: Re: building GNU time-1.7 under djgpp In-Reply-To: <200001151715.LAA12151@darwin.sfbr.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp AT delorie DOT com Errors-To: dj-admin AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Sat, 15 Jan 2000, Jeff Williams wrote: > >From the makefile: > > ./mkinstalldirs /temp/info > for file in time.info; do \ > for ifile in `cd . && echo $file*`; do \ > c:/djgpp/bin/ginstall -c -m 644 ./$ifile /temp/info/$ifile; \ > done; \ > done > > and the result on my system when I run `make install': > > c:/djgpp/bin/ginstall: ./time.info*: No such file or directory (ENOENT) > make.exe: *** [install-info] Error 1 > > Is there a simple, or canonical, way to deal with this situation? Replace the the first `for' line with this: for file in time.i; do \ > % ls time.inf > time.inf > % ls time.info > time.info > % ls time.infinity > time.infinity > > What is going on here? The only file truly present is `time.inf'. What's going on is this: - When `ls' starts up, its startup code tries to expand "time.info" as a wildcard. This fails, so "time.info" is left intact (see section 16.1 of the FAQ). - `ls' then tries to stat `time.info', which succeeds due to transparent truncation of all file names to DOS 8+3 limits. This truncation is done by DOS itself. This is a feature (not only in `ls'). If it were not for this, lots of Unix Makefile would be instantly broken.