Home | History | Annotate | Download | only in dos
      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 
     19 ifeq ($(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
     69 endif # test PLATFORM ansi
     70 
     71 ifeq ($(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 
    139 endif     # test PLATFORM dos
    140 
    141 
    142 # EOF
    143