Mail Archives: djgpp/2000/01/16/07:48:05
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.
- Raw text -