* builds/win32/detect.mk: Corrected logic that detects

Windows NT to use the previous change even when win32 is
forced. Corrected detection of win32 on Win9X.
This commit is contained in:
Antoine Leca 2004-11-23 17:48:52 +00:00
parent 360c271c17
commit b58191ccf2
1 changed files with 54 additions and 23 deletions

View File

@ -19,34 +19,47 @@
ifeq ($(PLATFORM),ansi)
# Detecting Windows NT is easy, as the OS variable must be defined and
# contains `Windows_NT'. This also works with W2K, XP, and Windows 98.
# contains `Windows_NT'. This also works with Windows 2000, XP.
#
ifeq ($(OS),Windows_NT)
is_windows := 1
# We have to use the shell for copying files to preserve the case of
# file names. Without this, we get a `CONFIG.MK' file which isn't
# found later on by `make'.
COPY := cmd.exe /c copy
else
# We test for the COMSPEC environment variable, then run the `ver'
# command-line program to see if its output contains the word `Windows'.
#
# If this is true, we are running a win32 platform (or an emulation).
#
ifdef COMSPEC
is_windows := $(findstring Windows,$(strip $(shell ver)))
COPY := copy
endif
endif # test NT
ifdef is_windows
PLATFORM := win32
endif
else
# Detecting Windows 9X
# We used to run the `ver' command to see if its output contains the
# word `Windows'. If this is true, we are running Windows 95 or later.
###ifdef COMSPEC
### First, check if we have the COMSPEC environment variable, which
### indicates we can use COMMAND.COM's internal commands
### is_windows := $(findstring Windows,$(strip $(shell ver)))
###endif
# Unfortunately, this also detects the case when one is running
# DOS 7.x (MS-DOS version that lies below Windows) without actually
# launching the GUI.
# A better test is to check is there are both %winbootdir% and %windir%
# environment variables. The first indicates underlying DOS 7.x, and
# the second is set only when Win32 is available.
# Note that on Windows NT, such environment variable will not be seen
# from DOS-based tools like DJGPP make; this is not actually a problem
# since NT is detected independantly above. But do not try to be clever!
ifdef winbootdir
ifdef windir
PLATFORM := win32
endif
endif
endif # test NT
endif # test PLATFORM ansi
ifeq ($(PLATFORM),win32)
@ -54,6 +67,24 @@ ifeq ($(PLATFORM),win32)
DELETE := del
SEP := $(BACKSLASH)
# Setting COPY is a bit trickier. Plain COPY on NT will not work
# correctly, because it will uppercase 8.3 filenames, so we will get
# a `CONFIG.MK' file which isn't found later on by `make'.
# And we do not want that. So we need to force execution of CMD.EXE.
# Unfortunately this latter is not available on Windows 9X...
# So we need to hack.
# Kudos to Eli Zaretskii (DJGPP guru) that helped debug it.
# Details available in threads in freetype mailing list (2004-11-11)
# and then devel mailing list (2004-11-20 to -23).
ifeq ($(OS),Windows_NT)
COPY := cmd.exe /c copy
else
COPY := copy
endif # test NT
# gcc Makefile by default
CONFIG_FILE := w32-gcc.mk
ifeq ($(firstword $(CC)),cc)