build system: Fixed CCACHE/DISTCC/SYSROOT space issues
[sdk] / include.mk
index 4cd63d7..2744141 100644 (file)
-
-# DETECTION
-ifeq "$(OS)" "Windows_NT"
-   WINDOWS = defined
-else
-ifeq "$(OSTYPE)" "FreeBSD"
-   BSD = defined
-else
-ifeq "$(shell uname)" "Darwin"
-   OSX = defined
-else
-   LINUX = defined
-endif
-endif
-endif
-
-# PLATFORM
-ifndef PLATFORM
-ifdef WINDOWS
-   PLATFORM := win32
-else
-ifdef OSX
-   PLATFORM := apple
-else
-   PLATFORM := linux
-endif
-endif
-endif
-
-# TOOLS
-empty :=
-space := $(empty) $(empty)
-fixspace = $(subst $(space),\$(space),$1)
-hidspace = $(subst $(space),^,$1)
-shwspace = $(subst ^,$(space),$1)
-ifdef WINDOWS
-ifndef MSYSCON
-   fixps = $(subst \,/,$(1))
-   psep = $(subst \\,/,$(subst /,\,$(1)))
-   PS := $(strip \)
-   SODESTDIR := obj/$(PLATFORM)/bin/
-else
-   fixps = $(1)
-   PS := $(strip /)
-   psep = $(1)
-   SODESTDIR := obj/$(PLATFORM)/bin/
-endif
-else
-   fixps = $(1)
-   PS := $(strip /)
-   psep = $(1)
-   SODESTDIR := obj/$(PLATFORM)/lib/
-endif
-
-# EXTENSIONS
-.SUFFIXES: .c .ec .sym .imp .o
-S := .sym
-I := .imp
-O := .o
-A := .a
-
-# PREFIXES AND POSTFIXES
-ifeq "$(PLATFORM)" "win32"
-   E := .exe
-ifeq "$(TARGET_TYPE)" "staticlib"
-   LP := lib
-else
-   LP :=
-endif
-   SO := .dll
-else
-ifeq "$(PLATFORM)" "apple"
-   E :=
-   LP := lib
-   SO := .dylib
-else
-   E :=
-   LP := lib
-   SO := .so
-endif
-endif
-
-# SUPER TOOLS
-ifdef CCACHE
-   CCACHE_COMPILE := ccache
-ifdef DISTCC
-   DISTCC_COMPILE := distcc
-endif
-else
-ifdef DISTCC
-   DISTCC_COMPILE := distcc
-endif
-endif
-
 # TOOLCHAIN
-export CC      = $(CCACHE_COMPILE) $(DISTCC_COMPILE) gcc
-export CPP     = $(CCACHE_COMPILE) $(DISTCC_COMPILE) cpp
+export CC      = $(CCACHE_COMPILE)$(DISTCC_COMPILE)$(GCC_PREFIX)gcc$(_SYSROOT)
+export CPP     = $(CCACHE_COMPILE)$(DISTCC_COMPILE)$(GCC_PREFIX)cpp$(_SYSROOT)
 export ECP     = ecp
 export ECC     = ecc
-export ECS     = ecs
+export ECS     = %s$(if $(CROSS_TARGET), -t $(TARGET_PLATFORM),)
 export EAR     = ear
-export AS      = as
-export LD      = ld
-export AR      = ar
-export STRIP   = strip
+export AS      = $(GCC_PREFIX)as
+export LD      = $(GCC_PREFIX)ld
+export AR      = $(GCC_PREFIX)ar
+export STRIP   = $(GCC_PREFIX)strip
 UPX := upx
 
-# SHELL COMMANDS
-ifdef WINDOWS
-ifndef MSYSCON
-   echo = $(if $(1),echo $(1))
-   cpq = $(if $(1),@cmd /c for %%I in ($(call psep,$(1))) do @copy /y %%I $(call psep,$(2)) > nul 2>&1)
-   rmq = $(if $(1),-@del /f /q $(call psep,$(1)) > nul 2>&1)
-   rmrq = $(if $(1),-@rmdir /q /s $(call psep,$(1)) > nul 2>&1)
-   mkdirq = $(if $(1),-@mkdir $(call psep,$(1)) > nul 2>&1)
-   rmdirq = $(if $(1),-@rmdir /q $(call psep,$(1)) > nul 2>&1)
-else
-   echo = $(if $(1),echo "$(1)")
-   cpq = $(if $(1),@cp $(1) $(2))
-   rmq = $(if $(1),-@rm -f $(1))
-   rmrq = $(if $(1),-@rm -f -r $(1))
-   mkdirq = $(if $(1),-@mkdir -p $(1))
-   rmdirq = $(if $(1),-@rmdir $(1))
-endif
-else
-ifdef OSX
-   echo = $(if $(1),echo "$(1)")
-   cpq = $(if $(1),cp $(1) $(2))
-   rmq = $(if $(1),-rm -f $(1))
-   rmrq = $(if $(1),-rm -f -r $(1))
-   mkdirq = $(if $(1),-mkdir -p $(1))
-   rmdirq = $(if $(1),-rmdir $(1))
-else
-   echo = $(if $(1),echo "$(1)")
-   cpq = $(if $(1),@cp $(1) $(2))
-   rmq = $(if $(1),-@rm -f $(1))
-   rmrq = $(if $(1),-@rm -f -r $(1))
-   mkdirq = $(if $(1),-@mkdir -p $(1))
-   rmdirq = $(if $(1),-@rmdir $(1))
-endif
+# DEBIAN
+ifdef DEBIAN_PACKAGE
+CFLAGS += $(CPPFLAGS)
 endif
 
-# COMPILER OPTIONS
-ifeq "$(TARGET_TYPE)" "sharedlib"
-   ECSLIBOPT := -dynamiclib
-else
-ifeq "$(TARGET_TYPE)" "staticlib"
-   ECSLIBOPT := -staticlib
-else
-   ECSLIBOPT :=
-endif
-endif
-ifdef WINDOWS
-   FVISIBILITY :=
-   FPIC :=
-ifeq "$(TARGET_TYPE)" "executable"
-   EXECUTABLE := $(CONSOLE)
-else
-   EXECUTABLE :=
-endif
-else
-   FVISIBILITY := -fvisibility=hidden
-   FPIC := -fPIC
-   EXECUTABLE :=
-endif
-ifdef OSX
-ifeq "$(TARGET_TYPE)" "sharedlib"
-   INSTALLNAME := -install_name $(LP)$(MODULE)$(SO)
+ifeq "$(HOST_ARCH)" "ARM"
+FORCE_64_BIT =
+FORCE_32_BIT =
 else
-   INSTALLNAME :=
-endif
-else
-   INSTALLNAME :=
+FORCE_64_BIT = -m64
+FORCE_32_BIT = -m32
 endif
 
-# LINKER OPTIONS
-ifdef OSX
-ifeq "$(TARGET_TYPE)" "sharedlib"
-   SHAREDLIB := -dynamiclib -single_module -multiply_defined suppress
-   LINKOPT :=
-else
-   SHAREDLIB :=
-   LINKOPT :=
-endif
-ifeq "$(TARGET_TYPE)" "sharedlib"
-   STRIPOPT := -x
-else
-   STRIPOPT := -u -r
-endif
-else
-ifeq "$(TARGET_TYPE)" "sharedlib"
-   SHAREDLIB := -shared
-else
-   SHAREDLIB :=
-endif
-   LINKOPT :=
-   STRIPOPT := -x
-endif
+# HARD CODED PLATFORM-SPECIFIC OPTIONS
+LDFLAGS +=$(if $(LINUX_TARGET), -Wl,--no-undefined,)
+LDFLAGS +=$(if $(OSX_TARGET), -framework cocoa -framework OpenGL,)
+
+# FLAGS
+
+UPXFLAGS = -9 -q
+
+CFLAGS += -fmessage-length=0
+
+EARFLAGS = awq