| # |
| # FreeType 2 configuration file to detect a DOS host platform. |
| # |
| |
| |
| # Copyright (C) 1996-2019 by |
| # David Turner, Robert Wilhelm, and Werner Lemberg. |
| # |
| # This file is part of the FreeType project, and may only be used, modified, |
| # and distributed under the terms of the FreeType project license, |
| # LICENSE.TXT. By continuing to use, modify, or distribute this file you |
| # indicate that you have read the license and understand and accept it |
| # fully. |
| |
| |
| .PHONY: setup |
| |
| |
| ifeq ($(PLATFORM),ansi) |
| |
| # Test for DJGPP by checking the DJGPP environment variable, which must be |
| # set in order to use the system (ie. it will always be present when the |
| # `make' utility is run). |
| # |
| # We test for the COMSPEC environment variable, then run the `ver' |
| # command-line program to see if its output contains the word `Dos' or |
| # `DOS'. |
| # |
| # If this is true, we are running a Dos-ish platform (or an emulation). |
| # |
| ifdef DJGPP |
| PLATFORM := dos |
| else |
| ifdef COMSPEC |
| is_dos := $(findstring DOS,$(subst Dos,DOS,$(shell ver))) |
| |
| # We try to recognize a Dos session under OS/2. The `ver' command |
| # returns `Operating System/2 ...' there, so `is_dos' should be empty. |
| # |
| # To recognize a Dos session under OS/2, we check COMSPEC for the |
| # substring `MDOS\COMMAND' |
| # |
| ifeq ($(is_dos),) |
| is_dos := $(findstring MDOS\COMMAND,$(COMSPEC)) |
| endif |
| |
| # We also try to recognize Dos 7.x without Windows 9X launched. |
| # See builds/windows/detect.mk for explanations about the logic. |
| # |
| ifeq ($(is_dos),) |
| ifdef winbootdir |
| #ifneq ($(OS),Windows_NT) |
| # If windows is available, do not trigger this test. |
| ifndef windir |
| is_dos := $(findstring Windows,$(strip $(shell ver))) |
| endif |
| #endif |
| endif |
| endif |
| |
| endif # test COMSPEC |
| |
| ifneq ($(is_dos),) |
| |
| PLATFORM := dos |
| |
| endif # test Dos |
| endif # test DJGPP |
| endif # test PLATFORM ansi |
| |
| ifeq ($(PLATFORM),dos) |
| |
| # Use DJGPP (i.e. gcc) by default. |
| # |
| CONFIG_FILE := dos-gcc.mk |
| CC ?= gcc |
| |
| # additionally, we provide hooks for various other compilers |
| # |
| ifneq ($(findstring emx,$(MAKECMDGOALS)),) # EMX gcc |
| CONFIG_FILE := dos-emx.mk |
| CC := gcc |
| |
| .PHONY: emx |
| emx: setup |
| @cd . |
| endif |
| |
| ifneq ($(findstring turboc,$(MAKECMDGOALS)),) # Turbo C |
| CONFIG_FILE := dos-tcc.mk |
| CC := tcc |
| |
| .PHONY: turboc |
| turboc: setup |
| @cd . |
| endif |
| |
| ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++ |
| CONFIG_FILE := dos-wat.mk |
| CC := wcc386 |
| |
| .PHONY: watcom |
| watcom: setup |
| @cd . |
| endif |
| |
| ifneq ($(findstring borlandc,$(MAKECMDGOALS)),) # Borland C/C++ 32-bit |
| CONFIG_FILE := dos-bcc.mk |
| CC := bcc32 |
| |
| .PHONY: borlandc |
| borlandc: setup |
| @cd . |
| endif |
| |
| ifneq ($(findstring borlandc16,$(MAKECMDGOALS)),) # Borland C/C++ 16-bit |
| CONFIG_FILE := dos-bcc.mk |
| CC := bcc |
| |
| .PHONY: borlandc16 |
| borlandc16: setup |
| @cd . |
| endif |
| |
| ifneq ($(findstring bash,$(SHELL)),) # check for bash |
| SEP := / |
| DELETE := rm |
| COPY := cp |
| CAT := cat |
| setup: std_setup |
| else |
| SEP := $(BACKSLASH) |
| DELETE := del |
| CAT := type |
| |
| # Setting COPY is a bit trickier. We can be running DJGPP on some |
| # Windows NT derivatives, like XP. See builds/windows/detect.mk for |
| # explanations why we need hacking here. |
| # |
| ifeq ($(OS),Windows_NT) |
| COPY := cmd.exe /c copy |
| else |
| COPY := copy |
| endif # test NT |
| |
| setup: std_setup |
| endif |
| |
| endif # test PLATFORM dos |
| |
| |
| # EOF |