summaryrefslogtreecommitdiff
path: root/config/detect.mk
blob: 6303ee23693358406d9bde81ca0f9f90c8e63330 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#
# FreeType 2 host platform detection rules
#


# Copyright 1996-2000 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.


# This sub-Makefile is in charge of detecting the current platform.  It sets
# the following variables:
#
#   BUILD        The configuration and system-specific directory.  Usually
#                `freetype/config/$(PLATFORM)' but can be different if a
#                specific compiler has been requested on the command line.
#
# The following variables must be defined in system specific `detect.mk'
# files:
#
#   PLATFORM     The detected platform.  This will default to `ansi' if
#                auto-detection fails.
#   CONFIG_FILE  The Makefile to use.  This usually depends on the compiler
#                defined in the `CC' environment variable.
#   DELETE       The shell command used to remove a given file.
#   COPY         The shell command used to copy one file.
#   SEP          The platform-specific directory separator.
#   CC           The compiler to use.
#
# You need to set the following variable(s) before calling it:
#
#   TOP          The top-most directory in the FreeType library source
#                hierarchy.  If not defined, it will default to `.'.

# If TOP is not defined, default it to `.'
#
ifndef TOP
TOP := .
endif

# Set auto-detection default to `ansi'.
# Note that we delay the evaluation of $(CONFIG_), $(BUILD), and
# $(CONFIG_RULES).
#
PLATFORM    := ansi
DELETE      := $(RM)
COPY        := cp
SEP         := /

CONFIG_      = $(TOP)$(SEP)config$(SEP)
BUILD        = $(CONFIG_)$(PLATFORM)
CONFIG_RULES = $(BUILD)$(SEP)$(CONFIG_FILE)

# We define the BACKSLASH variable to hold a single back-slash character.
# This is needed because a line like
#
#   SEP := \
#
# does not work with GNU Make (the backslash is interpreted as a line
# continuation).  While a line like
#
#   SEP := \\
#
# really defines $(SEP) as `\' on Unix, and `\\' on Dos and Windows!
#
BACKSLASH := $(strip \ )

# Now, include all detection rule files found in the `config/<system>'
# directories.  Note that the calling order of the various `detect.mk' files
# isn't predictable.
#
include $(wildcard $(CONFIG_)*/detect.mk)

# In case no detection rule file was successful, use the default.
#
ifndef CONFIG_FILE
  CONFIG_FILE := ansi.mk
  setup: std_setup
endif

# The following targets are equivalent, with the exception that they use
# slightly different syntaxes for the `echo' command.
#
# std_setup: defined for most platforms
# dos_setup: defined for Dos-ish platforms like Dos, Windows & OS/2
#
.PHONY: std_setup dos_setup

std_setup:
	@echo ""
	@echo "FreeType build system -- automatic system detection"
	@echo ""
	@echo "The following settings are used:"
	@echo ""
	@echo "  platform                    $(PLATFORM)"
	@echo "  compiler                    $(CC)"
	@echo "  configuration directory     $(BUILD)"
	@echo "  configuration rules         $(CONFIG_RULES)"
	@echo ""
	@echo "If this does not correspond to your system or settings please remove the file"
	@echo "\`$(CONFIG_MK)' from this directory then read the INSTALL file for help."
	@echo ""
	@echo "Otherwise, simply type \`make' again to build the library."
	@echo ""
	@$(COPY) $(CONFIG_RULES) $(CONFIG_MK)

dos_setup:
	@echo ˙
	@echo FreeType build system -- automatic system detection
	@echo ˙
	@echo The following settings are used:
	@echo ˙
	@echo ˙˙platform˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙$(PLATFORM)
	@echo ˙˙compiler˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙$(CC)
	@echo ˙˙configuration directory˙˙˙˙˙˙$(BUILD)
	@echo ˙˙configuration rules˙˙˙˙˙˙˙˙˙˙$(CONFIG_RULES)
	@echo ˙
	@echo If this does not correspond to your system or settings please remove the file
	@echo '$(CONFIG_MK)' from this directory then read the INSTALL file for help.
	@echo ˙
	@echo Otherwise, simply type 'make' again to build the library.
	@echo ˙
	@$(COPY) $(subst /,\,$(CONFIG_RULES) $(CONFIG_MK)) > nul

# EOF