• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# FreeType 2 configuration file to detect a DOS host platform.
3#
4
5
6# Copyright 1996-2018 by
7# David Turner, Robert Wilhelm, and Werner Lemberg.
8#
9# This file is part of the FreeType project, and may only be used, modified,
10# and distributed under the terms of the FreeType project license,
11# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
12# indicate that you have read the license and understand and accept it
13# fully.
14
15
16.PHONY: setup
17
18
19ifeq ($(PLATFORM),ansi)
20
21  # Test for DJGPP by checking the DJGPP environment variable, which must be
22  # set in order to use the system (ie. it will always be present when the
23  # `make' utility is run).
24  #
25  # We test for the COMSPEC environment variable, then run the `ver'
26  # command-line program to see if its output contains the word `Dos' or
27  # `DOS'.
28  #
29  # If this is true, we are running a Dos-ish platform (or an emulation).
30  #
31  ifdef DJGPP
32    PLATFORM := dos
33  else
34    ifdef COMSPEC
35      is_dos := $(findstring DOS,$(subst Dos,DOS,$(shell ver)))
36
37      # We try to recognize a Dos session under OS/2.  The `ver' command
38      # returns `Operating System/2 ...' there, so `is_dos' should be empty.
39      #
40      # To recognize a Dos session under OS/2, we check COMSPEC for the
41      # substring `MDOS\COMMAND'
42      #
43      ifeq ($(is_dos),)
44        is_dos := $(findstring MDOS\COMMAND,$(COMSPEC))
45      endif
46
47      # We also try to recognize Dos 7.x without Windows 9X launched.
48      # See builds/windows/detect.mk for explanations about the logic.
49      #
50      ifeq ($(is_dos),)
51        ifdef winbootdir
52#ifneq ($(OS),Windows_NT)
53          # If windows is available, do not trigger this test.
54          ifndef windir
55            is_dos := $(findstring Windows,$(strip $(shell ver)))
56          endif
57#endif
58        endif
59      endif
60
61    endif # test COMSPEC
62
63    ifneq ($(is_dos),)
64
65      PLATFORM := dos
66
67    endif # test Dos
68  endif # test DJGPP
69endif # test PLATFORM ansi
70
71ifeq ($(PLATFORM),dos)
72
73  # Use DJGPP (i.e. gcc) by default.
74  #
75  CONFIG_FILE := dos-gcc.mk
76  CC          ?= gcc
77
78  # additionally, we provide hooks for various other compilers
79  #
80  ifneq ($(findstring emx,$(MAKECMDGOALS)),)        # EMX gcc
81    CONFIG_FILE := dos-emx.mk
82    CC          := gcc
83    emx: setup
84    .PHONY: emx
85  endif
86
87  ifneq ($(findstring turboc,$(MAKECMDGOALS)),)     # Turbo C
88    CONFIG_FILE := dos-tcc.mk
89    CC          := tcc
90    turboc: setup
91    .PHONY: turboc
92  endif
93
94  ifneq ($(findstring watcom,$(MAKECMDGOALS)),)     # Watcom C/C++
95    CONFIG_FILE := dos-wat.mk
96    CC          := wcc386
97    watcom: setup
98    .PHONY: watcom
99  endif
100
101  ifneq ($(findstring borlandc,$(MAKECMDGOALS)),)   # Borland C/C++ 32-bit
102    CONFIG_FILE := dos-bcc.mk
103    CC          := bcc32
104    borlandc: setup
105    .PHONY: borlandc
106  endif
107
108  ifneq ($(findstring borlandc16,$(MAKECMDGOALS)),) # Borland C/C++ 16-bit
109    CONFIG_FILE := dos-bcc.mk
110    CC          := bcc
111    borlandc16: setup
112    .PHONY: borlandc16
113  endif
114
115  ifneq ($(findstring bash,$(SHELL)),)              # check for bash
116    SEP    := /
117    DELETE := rm
118    COPY   := cp
119    CAT    := cat
120    setup: std_setup
121  else
122    SEP    := $(BACKSLASH)
123    DELETE := del
124    CAT    := type
125
126    # Setting COPY is a bit trickier.  We can be running DJGPP on some
127    # Windows NT derivatives, like XP.  See builds/windows/detect.mk for
128    # explanations why we need hacking here.
129    #
130    ifeq ($(OS),Windows_NT)
131      COPY := cmd.exe /c copy
132    else
133      COPY := copy
134    endif  # test NT
135
136    setup: dos_setup
137  endif
138
139endif     # test PLATFORM dos
140
141
142# EOF
143