tor-browser

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

detect.mk (4091B)


      1 #
      2 # FreeType 2 host platform detection rules
      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 # This sub-Makefile is in charge of detecting the current platform.  It sets
     17 # the following variables:
     18 #
     19 #   PLATFORM_DIR The configuration and system-specific directory.  Usually
     20 #                `builds/$(PLATFORM)' but can be different for custom builds
     21 #                of the library.
     22 #
     23 # The following variables must be defined in system specific `detect.mk'
     24 # files:
     25 #
     26 #   PLATFORM     The detected platform.  This will default to `ansi' if
     27 #                auto-detection fails.
     28 #   CONFIG_FILE  The configuration sub-makefile to use.  This usually depends
     29 #                on the compiler defined in the `CC' environment variable.
     30 #   DELETE       The shell command used to remove a given file.
     31 #   COPY         The shell command used to copy one file.
     32 #   SEP          The platform-specific directory separator.
     33 #   COMPILER_SEP The separator used in arguments of the compilation tools.
     34 #   CC           The compiler to use.
     35 #
     36 # You need to set the following variable(s) before calling it:
     37 #
     38 #   TOP_DIR      The top-most directory in the FreeType library source
     39 #                hierarchy.  If not defined, it will default to `.'.
     40 
     41 # Set auto-detection default to `ansi' resp. UNIX-like operating systems.
     42 #
     43 PLATFORM     := ansi
     44 DELETE       := $(RM)
     45 COPY         := cp
     46 CAT          := cat
     47 SEP          := /
     48 
     49 BUILD_CONFIG := $(TOP_DIR)/builds
     50 
     51 # These two assignments must be delayed.
     52 PLATFORM_DIR = $(BUILD_CONFIG)/$(PLATFORM)
     53 CONFIG_RULES = $(PLATFORM_DIR)/$(CONFIG_FILE)
     54 
     55 # We define the BACKSLASH variable to hold a single back-slash character.
     56 # This is needed because a line like
     57 #
     58 #   SEP := \
     59 #
     60 # does not work with GNU Make (the backslash is interpreted as a line
     61 # continuation).  While a line like
     62 #
     63 #   SEP := \\
     64 #
     65 # really defines $(SEP) as `\' on Unix, and `\\' on Dos and Windows!
     66 #
     67 BACKSLASH := $(strip \ )
     68 
     69 # Find all auto-detectable platforms.
     70 #
     71 PLATFORMS := $(notdir $(subst /detect.mk,,$(wildcard $(BUILD_CONFIG)/*/detect.mk)))
     72 .PHONY: $(PLATFORMS) ansi
     73 
     74 # Filter out platform specified as setup target.
     75 #
     76 PLATFORM := $(firstword $(filter $(MAKECMDGOALS),$(PLATFORMS)))
     77 
     78 # If no setup target platform was specified, enable auto-detection/
     79 # default platform.
     80 #
     81 ifeq ($(PLATFORM),)
     82  PLATFORM := ansi
     83 endif
     84 
     85 # If the user has explicitly asked for `ansi' on the command line,
     86 # disable auto-detection.
     87 #
     88 ifeq ($(findstring ansi,$(MAKECMDGOALS)),)
     89  # Now, include all detection rule files found in the `builds/<system>'
     90  # directories.  Note that the calling order of the various `detect.mk'
     91  # files isn't predictable.
     92  #
     93  include $(wildcard $(BUILD_CONFIG)/*/detect.mk)
     94 endif
     95 
     96 # In case no detection rule file was successful, use the default.
     97 #
     98 ifndef CONFIG_FILE
     99  CONFIG_FILE := ansi.mk
    100  setup: std_setup
    101  .PHONY: setup
    102 endif
    103 
    104 # Flash out and copy rules.
    105 #
    106 .PHONY: std_setup
    107 
    108 std_setup:
    109 $(info )
    110 $(info $(PROJECT_TITLE) build system -- automatic system detection)
    111 $(info )
    112 $(info The following settings are used:)
    113 $(info )
    114 $(info $(empty)  platform                    $(PLATFORM))
    115 $(info $(empty)  compiler                    $(CC))
    116 $(info $(empty)  configuration directory     $(subst /,$(SEP),$(PLATFORM_DIR)))
    117 $(info $(empty)  configuration rules         $(subst /,$(SEP),$(CONFIG_RULES)))
    118 $(info )
    119 $(info If this does not correspond to your system or settings please remove the file)
    120 $(info `$(CONFIG_MK)' from this directory then read the INSTALL file for help.)
    121 $(info )
    122 $(info Otherwise, simply type `$(MAKE)' again to build the library,)
    123 $(info or `$(MAKE) refdoc' to build the API reference (this needs Python >= 3.5).)
    124 $(info )
    125 @$(COPY) $(subst /,$(SEP),$(CONFIG_RULES) $(CONFIG_MK))
    126 
    127 
    128 # EOF