Edit

kc3-lang/freetype/builds/windows/detect.mk

Branch :

  • Show log

    Commit

  • Author : Werner Lemberg
    Date : 2021-01-17 07:18:48
    Hash : b6e8a712
    Message : Update all copyright notices.

  • builds/windows/detect.mk
  • #
    # FreeType 2 configuration file to detect a Win32 host platform.
    #
    
    
    # Copyright (C) 1996-2021 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)
    
      # Detecting Windows NT is easy, as the OS variable must be defined and
      # contains `Windows_NT'.  This also works with Windows 2000 and XP.
      #
      ifeq ($(OS),Windows_NT)
    
        PLATFORM := windows
    
      else
    
        # Detecting Windows 9X
    
        # We used to run the `ver' command to see if its output contains the
        # word `Windows'.  If this is true, we are running Windows 95 or later:
        #
        #   ifdef COMSPEC
        #     # First, check if we have the COMSPEC environment variable, which
        #     # indicates we can use COMMAND.COM's internal commands
        #     is_windows := $(findstring Windows,$(strip $(shell ver)))
        #   endif
        #
        # Unfortunately, this also detects the case when one is running
        # DOS 7.x (the MS-DOS version that lies below Windows) without actually
        # launching the GUI.
        #
        # A better test is to check whether there are both the environment
        # variables `winbootdir' and `windir'.  The first indicates an
        # underlying DOS 7.x, while the second is set only if windows is
        # available.
        #
        # Note that on Windows NT, such an environment variable will not be seen
        # from DOS-based tools like DJGPP's make; this is not actually a problem
        # since NT is detected independently above.  But do not try to be clever!
        #
        ifdef winbootdir
          ifdef windir
    
            PLATFORM := windows
    
          endif
        endif
    
      endif  # test NT
    
    endif # test PLATFORM ansi
    
    ifeq ($(PLATFORM),windows)
    
      DELETE := del
      CAT    := type
      SEP    := $(BACKSLASH)
    
      # Setting COPY is a bit trickier.  Plain COPY on NT will not work
      # correctly, because it will uppercase 8.3 filenames, creating a
      # `CONFIG.MK' file which isn't found later on by `make'.
      # Since we do not want that, we need to force execution of CMD.EXE.
      # Unfortunately, CMD.EXE is not available on Windows 9X.
      # So we need to hack.
      #
      # Kudos to Eli Zaretskii (DJGPP guru) that helped debug it.
      # Details are available in threads of the FreeType mailing list
      # (2004-11-11), and then in the devel mailing list (2004-11-20 to -23).
      #
      ifeq ($(OS),Windows_NT)
        COPY := >nul cmd.exe /c copy
      else
        COPY := >nul copy
      endif  # test NT
    
    
      # gcc Makefile by default
      CONFIG_FILE := w32-gcc.mk
      ifeq ($(firstword $(CC)),cc)
        CC        := gcc
      endif
    
      ifneq ($(findstring list,$(MAKECMDGOALS)),)  # test for the "list" target
        dump_target_list:
    	    $(info )
    	    $(info $(PROJECT_TITLE) build system -- supported compilers)
    	    $(info )
    	    $(info Several command-line compilers are supported on Win32:)
    	    $(info )
    	    $(info $(empty)  make setup                     gcc (with Mingw))
    	    $(info $(empty)  make setup visualc             Microsoft Visual C++)
    	    $(info $(empty)  make setup bcc32               Borland C/C++)
    	    $(info $(empty)  make setup lcc                 Win32-LCC)
    	    $(info $(empty)  make setup intelc              Intel C/C++)
    	    $(info )
    
        setup: dump_target_list
        .PHONY: dump_target_list list
      else
        setup: std_setup
      endif
    
      # additionally, we provide hooks for various other compilers
      #
      ifneq ($(findstring visualc,$(MAKECMDGOALS)),)     # Visual C/C++
        CONFIG_FILE := w32-vcc.mk
        CC          := cl
    
        .PHONY: visualc
        visualc: setup
    	    @cd .
      endif
    
      ifneq ($(findstring intelc,$(MAKECMDGOALS)),)      # Intel C/C++
        CONFIG_FILE := w32-intl.mk
        CC          := cl
    
        .PHONY: intelc
        visualc: setup
    	    @cd .
      endif
    
      ifneq ($(findstring watcom,$(MAKECMDGOALS)),)      # Watcom C/C++
        CONFIG_FILE := w32-wat.mk
        CC          := wcc386
    
        .PHONY: watcom
        watcom: setup
    	    @cd .
      endif
    
      ifneq ($(findstring visualage,$(MAKECMDGOALS)),)   # Visual Age C++
        CONFIG_FILE := w32-icc.mk
        CC          := icc
    
        .PHONY: visualage
        visualage: setup
    	    @cd .
      endif
    
      ifneq ($(findstring lcc,$(MAKECMDGOALS)),)         # LCC-Win32
        CONFIG_FILE := w32-lcc.mk
        CC          := lcc
    
        .PHONY: lcc
        lcc: setup
    	    @cd .
      endif
    
      ifneq ($(findstring mingw32,$(MAKECMDGOALS)),)     # mingw32
        CONFIG_FILE := w32-mingw32.mk
        CC          := gcc
    
        .PHONY: mingw32
        mingw32: setup
    	    @cd .
      endif
    
      ifneq ($(findstring bcc32,$(MAKECMDGOALS)),)       # Borland C++
        CONFIG_FILE := w32-bcc.mk
        CC          := bcc32
    
        .PHONY: bcc32
        bcc32: setup
    	    @cd .
      endif
    
      ifneq ($(findstring devel-bcc,$(MAKECMDGOALS)),)   # development target
        CONFIG_FILE := w32-bccd.mk
        CC          := bcc32
    
        .PHONY: devel-bcc
        devel-bcc: setup
    	    @cd .
      endif
    
      ifneq ($(findstring devel-gcc,$(MAKECMDGOALS)),)   # development target
        CONFIG_FILE := w32-dev.mk
        CC          := gcc
    
        .PHONY: devel-gcc
        devel-gcc: setup
    	    @cd .
      endif
    
    endif   # test PLATFORM windows
    
    
    # EOF