tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

detect.mk (5270B)


      1 #
      2 # FreeType 2 configuration file to detect a Win32 host platform.
      3 #
      4 
      5 
      6 # Copyright (C) 1996-2025 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  # Detecting Windows NT is easy, as the OS variable must be defined and
     22  # contains `Windows_NT'.  This also works with Windows 2000 and XP.
     23  #
     24  ifeq ($(OS),Windows_NT)
     25 
     26    PLATFORM := windows
     27 
     28  else
     29 
     30    # Detecting Windows 9X
     31 
     32    # We used to run the `ver' command to see if its output contains the
     33    # word `Windows'.  If this is true, we are running Windows 95 or later:
     34    #
     35    #   ifdef COMSPEC
     36    #     # First, check if we have the COMSPEC environment variable, which
     37    #     # indicates we can use COMMAND.COM's internal commands
     38    #     is_windows := $(findstring Windows,$(strip $(shell ver)))
     39    #   endif
     40    #
     41    # Unfortunately, this also detects the case when one is running
     42    # DOS 7.x (the MS-DOS version that lies below Windows) without actually
     43    # launching the GUI.
     44    #
     45    # A better test is to check whether there are both the environment
     46    # variables `winbootdir' and `windir'.  The first indicates an
     47    # underlying DOS 7.x, while the second is set only if windows is
     48    # available.
     49    #
     50    # Note that on Windows NT, such an environment variable will not be seen
     51    # from DOS-based tools like DJGPP's make; this is not actually a problem
     52    # since NT is detected independently above.  But do not try to be clever!
     53    #
     54    ifdef winbootdir
     55      ifdef windir
     56 
     57        PLATFORM := windows
     58 
     59      endif
     60    endif
     61 
     62  endif  # test NT
     63 
     64 endif # test PLATFORM ansi
     65 
     66 ifeq ($(PLATFORM),windows)
     67 
     68  DELETE := del
     69  CAT    := type
     70  SEP    := $(BACKSLASH)
     71 
     72  # Setting COPY is a bit trickier.  Plain COPY on NT will not work
     73  # correctly, because it will uppercase 8.3 filenames, creating a
     74  # `CONFIG.MK' file which isn't found later on by `make'.
     75  # Since we do not want that, we need to force execution of CMD.EXE.
     76  # Unfortunately, CMD.EXE is not available on Windows 9X.
     77  # So we need to hack.
     78  #
     79  # Kudos to Eli Zaretskii (DJGPP guru) that helped debug it.
     80  # Details are available in threads of the FreeType mailing list
     81  # (2004-11-11), and then in the devel mailing list (2004-11-20 to -23).
     82  #
     83  ifeq ($(OS),Windows_NT)
     84    COPY := >nul cmd.exe /c copy
     85  else
     86    COPY := >nul copy
     87  endif  # test NT
     88 
     89 
     90  # gcc Makefile by default
     91  CONFIG_FILE := w32-gcc.mk
     92  ifeq ($(firstword $(CC)),cc)
     93    CC        := gcc
     94  endif
     95 
     96  ifneq ($(findstring list,$(MAKECMDGOALS)),)  # test for the "list" target
     97    dump_target_list:
     98     $(info )
     99     $(info $(PROJECT_TITLE) build system -- supported compilers)
    100     $(info )
    101     $(info Several command-line compilers are supported on Win32:)
    102     $(info )
    103     $(info $(empty)  make setup                     gcc (with Mingw))
    104     $(info $(empty)  make setup visualc             Microsoft Visual C++)
    105     $(info $(empty)  make setup bcc32               Borland C/C++)
    106     $(info $(empty)  make setup lcc                 Win32-LCC)
    107     $(info $(empty)  make setup intelc              Intel C/C++)
    108     $(info )
    109 
    110    setup: dump_target_list
    111    .PHONY: dump_target_list list
    112  else
    113    setup: std_setup
    114  endif
    115 
    116  # additionally, we provide hooks for various other compilers
    117  #
    118  ifneq ($(findstring visualc,$(MAKECMDGOALS)),)     # Visual C/C++
    119    CONFIG_FILE := w32-vcc.mk
    120    CC          := cl
    121 
    122    .PHONY: visualc
    123    visualc: setup
    124     @cd .
    125  endif
    126 
    127  ifneq ($(findstring intelc,$(MAKECMDGOALS)),)      # Intel C/C++
    128    CONFIG_FILE := w32-intl.mk
    129    CC          := cl
    130 
    131    .PHONY: intelc
    132    visualc: setup
    133     @cd .
    134  endif
    135 
    136  ifneq ($(findstring watcom,$(MAKECMDGOALS)),)      # Watcom C/C++
    137    CONFIG_FILE := w32-wat.mk
    138    CC          := wcc386
    139 
    140    .PHONY: watcom
    141    watcom: setup
    142     @cd .
    143  endif
    144 
    145  ifneq ($(findstring visualage,$(MAKECMDGOALS)),)   # Visual Age C++
    146    CONFIG_FILE := w32-icc.mk
    147    CC          := icc
    148 
    149    .PHONY: visualage
    150    visualage: setup
    151     @cd .
    152  endif
    153 
    154  ifneq ($(findstring lcc,$(MAKECMDGOALS)),)         # LCC-Win32
    155    CONFIG_FILE := w32-lcc.mk
    156    CC          := lcc
    157 
    158    .PHONY: lcc
    159    lcc: setup
    160     @cd .
    161  endif
    162 
    163  ifneq ($(findstring mingw32,$(MAKECMDGOALS)),)     # mingw32
    164    CONFIG_FILE := w32-mingw32.mk
    165    CC          := gcc
    166 
    167    .PHONY: mingw32
    168    mingw32: setup
    169     @cd .
    170  endif
    171 
    172  ifneq ($(findstring bcc32,$(MAKECMDGOALS)),)       # Borland C++
    173    CONFIG_FILE := w32-bcc.mk
    174    CC          := bcc32
    175 
    176    .PHONY: bcc32
    177    bcc32: setup
    178     @cd .
    179  endif
    180 
    181  ifneq ($(findstring devel-bcc,$(MAKECMDGOALS)),)   # development target
    182    CONFIG_FILE := w32-bccd.mk
    183    CC          := bcc32
    184 
    185    .PHONY: devel-bcc
    186    devel-bcc: setup
    187     @cd .
    188  endif
    189 
    190  ifneq ($(findstring devel-gcc,$(MAKECMDGOALS)),)   # development target
    191    CONFIG_FILE := w32-dev.mk
    192    CC          := gcc
    193 
    194    .PHONY: devel-gcc
    195    devel-gcc: setup
    196     @cd .
    197  endif
    198 
    199 endif   # test PLATFORM windows
    200 
    201 
    202 # EOF