1 # HOST PLATFORM DETECTION
2 ifeq "$(OS)" "Windows_NT"
5 ifeq "$(OSTYPE)" "FreeBSD"
8 ifeq "$(shell uname)" "Darwin"
31 DEBUG_SUFFIX := .debug
35 ifneq "$(COMPILER)" "default"
36 COMPILER_SUFFIX := .$(COMPILER)
42 space := $(empty) $(empty)
43 escspace = $(subst $(space),\$(space),$(subst \$(space),$(space),$1))
44 hidspace = $(subst $(space),
\7f,$(subst \$(space),
\7f,$1))
45 shwspace = $(subst
\7f,\$(space),$1)
47 # PATH SEPARATOR STRING TOOLS
50 WIN_PS_TOOLS := defined
54 fixps = $(subst \,/,$(1))
55 psep = $(subst \\,/,$(subst /,\,$(1)))
63 # PREFIXES AND EXTENSIONS
64 .SUFFIXES: .c .ec .sym .imp .bowl .o .a
72 ifeq "$(PLATFORM)" "win32"
74 ifeq "$(TARGET_TYPE)" "staticlib"
81 ifeq "$(PLATFORM)" "apple"
94 CCACHE_COMPILE := ccache
96 DISTCC_COMPILE := distcc
100 DISTCC_COMPILE := distcc
107 WIN_SHELL_COMMANDS := defined
110 ifdef WIN_SHELL_COMMANDS
111 echo = $(if $(1),echo $(1))
112 cpq = $(if $(1),@cmd /c for %%I in ($(call psep,$(1))) do @copy /y %%I $(call psep,$(2)) > nul 2>&1)
113 rmq = $(if $(1),-@del /f /q $(call psep,$(1)) > nul 2>&1)
114 rmrq = $(if $(1),-@rmdir /q /s $(call psep,$(1)) > nul 2>&1)
115 mkdirq = $(if $(1),-@mkdir $(call psep,$(1)) > nul 2>&1)
116 rmdirq = $(if $(1),-@rmdir /q $(call psep,$(1)) > nul 2>&1)
118 echo = $(if $(1),echo "$(1)")
119 cpq = $(if $(1),@cp $(1) $(2))
120 rmq = $(if $(1),-@rm -f $(1))
121 rmrq = $(if $(1),-@rm -f -r $(1))
122 mkdirq = $(if $(1),-@mkdir -p $(1))
123 rmdirq = $(if $(1),-@rmdir $(1))
127 ifeq "$(TARGET_TYPE)" "sharedlib"
128 ECSLIBOPT := -dynamiclib
130 ifeq "$(TARGET_TYPE)" "staticlib"
131 ECSLIBOPT := -staticlib
139 ifeq "$(TARGET_TYPE)" "executable"
140 EXECUTABLE := $(CONSOLE)
145 FVISIBILITY := -fvisibility=hidden
150 ifeq "$(TARGET_TYPE)" "sharedlib"
151 INSTALLNAME := -install_name $(LP)$(MODULE)$(SO)
161 ifeq "$(TARGET_TYPE)" "sharedlib"
162 SHAREDLIB := -dynamiclib -single_module -multiply_defined suppress
168 ifeq "$(TARGET_TYPE)" "sharedlib"
174 ifeq "$(TARGET_TYPE)" "sharedlib"
183 SODESTDIR := obj/$(PLATFORM)/bin/
185 SODESTDIR := obj/$(PLATFORM)/lib/
188 _L = $(if $(filter $(1),$(EXCLUDED_LIBS)),,-l$(1))
190 # COMMON LIBRARIES DETECTION
195 _OPENSSL_CONF = $(call hidspace,$(call fixps,$(OPENSSL_CONF)))
196 OPENSSL_INCLUDE_DIR = $(call shwspace,$(subst /bin/openssl.cfg,/include,$(_OPENSSL_CONF)))
197 OPENSSL_LIB_DIR = $(call shwspace,$(subst /bin/openssl.cfg,/lib,$(_OPENSSL_CONF)))
198 OPENSSL_BIN_DIR = $(call shwspace,$(subst /bin/openssl.cfg,/bin,$(_OPENSSL_CONF)))
200 # To avoid confusion with empty -L/-I
201 OPENSSL_INCLUDE_DIR = .