Re: [AD] Issues when building MSVC Allegro using Cygwin |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
Daniel Schlyder wrote:
Andrei Ellman:
Daniel Schlyder wrote:
Your results:
Environment Make version UNIX_TOOLS Result
Cygwin 3.80 0 success
DJGPP 3.79.1 0 success
DJGPP 3.79.1 1 success
Correct? DJGPP's mkdir works with slashes and Cygwin with single backslashes?
The Cygwin line should be
Cygwin 3.80 1 success
All other lines are correct. In Cygwin, it is impossible to access the
DOS tools, so UNIX_TOOLS=1 must always be set in Cygwin.
I think that if DJGPP is installled, DJGPP's mkdir might be called in
favour of DOS's mkdir (but I'm not sure on this), so that will explain
why mkdir works with forward slashes in DJGPP
Ok, that must be it. Does this mean the attached patch fixes the problem?
Unfortunately, it does not :-(
Here are the results of installing Allegro with the patch applied (Under
Cygwin, make is 3.80 and under DJGPP, make is 3.79)
Environment/Build UNIX_TOOLS Result
Cygwin/Cygwin 1 Success
Cygwin/MSVC6 1 Error
DJGPP/DJGPP 0 Success
DJGPP/DJGPP 1 Success
DJGPP/MSVC 0 Error (*)
DJGPP/MSVC 1 Error
Whenever make failed with an error, the message was always something like:
mkdir C:/PROGRA~1/MICROS~4/VC98/lib
mkdir: cannot create directory `C:/PROGRA~1/MICROS~4/VC98/lib': File exists
make: *** [create-install-dirs] Error 1
(with the slashes reversed when UNIX_TOOLS was not set, and DJGPP's make
added " (EEXIST)" to the end of mkdir's error-message)
(*) I have determined that under DJGPP, even when UNIX_TOOLS is not set,
that the UNIX mkdir command of DJGPP is called. I tried removing mkdir
from my DJGPP/bin/ directory, and this time, although the installation
succeeded, I got two "Directory already exists" errors. So DOS's mkdir
does not cause make to stop if the directory already exists, but UNIX's
does.
Is it possible to expand shortened DOS-style paths from within a
makefile? If not, is there a consistent method accross all DOS/Windows
UNIX environments (DJGPP, MinGW, MSYS, Cygwin) for expanding shortened
paths?
Another possibility is to call UNIX's mkdir with the -p flag ("no error
if existing, make parent directories as needed"), but using this could
make certain bugs involving directories harder to spot, and if the path
is not set up properly, then several nested directories could be created
where we don't want them to be. Plus we would have to not call with -p
if we're certain that DOS's mkdir is being called (even having no
UNIX_TOOLS does not guarantee which version of mkdir is called)
AE.