* 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.
CACHE
Antoine Leca 20 years ago
parent df0f64db7a
commit 7b22e6d921
  1. 71
      builds/win32/detect.mk

@ -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
PLATFORM := win32
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
# Detecting Windows 9X
PLATFORM := win32
# 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
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)

Loading…
Cancel
Save