From f42f17dd65a0a7baab13cf332c7417f99edc29b4 Mon Sep 17 00:00:00 2001 From: Guenter Obiltschnig Date: Tue, 10 Jan 2017 17:08:18 +0100 Subject: [PATCH] fixed GH #1536: Building with OS X 10.12 SDK and 10.7 deployment target without libc++ fails --- Foundation/include/Poco/AtomicCounter.h | 2 +- build/config/AppleTV | 2 +- build/config/Darwin | 9 +-- build/config/Darwin-clang | 23 +++--- build/config/Darwin-clang-libc++ | 81 +++++++++++++++++++-- build/config/Darwin32 | 9 +-- build/config/Darwin32-clang | 3 +- build/config/Darwin32-clang-libc++ | 11 ++- build/config/Darwin64 | 9 +-- build/config/Darwin64-clang | 3 +- build/config/Darwin64-clang-libc++ | 11 ++- build/config/WatchOS | 2 +- build/config/iPhone | 21 +++--- build/config/iPhone-clang | 94 +------------------------ build/config/iPhone-clang-libc++ | 94 +------------------------ 15 files changed, 132 insertions(+), 242 deletions(-) diff --git a/Foundation/include/Poco/AtomicCounter.h b/Foundation/include/Poco/AtomicCounter.h index f8cdb731a..e5d44f0d5 100644 --- a/Foundation/include/Poco/AtomicCounter.h +++ b/Foundation/include/Poco/AtomicCounter.h @@ -24,7 +24,7 @@ #if POCO_OS == POCO_OS_WINDOWS_NT #include "Poco/UnWindows.h" #elif POCO_OS == POCO_OS_MAC_OS_X - #if __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_10_12 || __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 || __TV_OS_VERSION_MAX_ALLOWED >= __TVOS_10_0 || __WATCH_OS_VERSION_MAX_ALLOWED >= __WATCHOS_3_0 + #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 101200 || __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 || __TV_OS_VERSION_MAX_ALLOWED >= 100000 || __WATCH_OS_VERSION_MAX_ALLOWED >= 30000 #ifndef POCO_HAVE_STD_ATOMICS #define POCO_HAVE_STD_ATOMICS #endif diff --git a/build/config/AppleTV b/build/config/AppleTV index 4f68d8bab..b20d1bbf7 100644 --- a/build/config/AppleTV +++ b/build/config/AppleTV @@ -90,7 +90,7 @@ RELEASEOPT_LINK = # # System Specific Flags # -SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS -DPOCO_NO_NET_IFTYPES -DPOCO_NO_FORK_EXEC +SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_SOCKETADDRESS_DONT_PREFER_IPV4 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS -DPOCO_NO_NET_IFTYPES -DPOCO_NO_FORK_EXEC # # System Specific Libraries diff --git a/build/config/Darwin b/build/config/Darwin index 5d025b145..62c26f724 100644 --- a/build/config/Darwin +++ b/build/config/Darwin @@ -1,10 +1,11 @@ # -# $Id +# $Id$ # # Darwin # -# Build settings for Mac OS X 10.8 or later, clang, 64-bits, with C++11 support. -# Build settings are compatible with XCode 7 C++ projects. +# Build settings for Mac OS X 10.9 (clang++, libc++, x86_64) +# The build settings defined in this file are compatible +# with XCode C++ projects. # -include $(POCO_BASE)/build/config/Darwin-clang +include $(POCO_BASE)/build/config/Darwin-clang-libc++ diff --git a/build/config/Darwin-clang b/build/config/Darwin-clang index 87439711a..80df83397 100644 --- a/build/config/Darwin-clang +++ b/build/config/Darwin-clang @@ -3,8 +3,10 @@ # # Darwin-clang # -# Build settings for Mac OS X 10.8 or later, clang, 64-bits, with C++11 support. -# Build settings are compatible with XCode 7 C++ projects. +# Build settings for Mac OS X 10.7 (clang, libstdc++, x86_64) +# +# NOTE: This build configuration will build 64-bit binaries. +# Use the Darwin32-clang build configuration to build 32-bit binaries. # # @@ -14,9 +16,10 @@ LINKMODE ?= SHARED POCO_TARGET_OSARCH ?= x86_64 POCO_HOST_OSARCH := $(POCO_TARGET_OSARCH) -ARCHFLAGS ?= -arch $(POCO_TARGET_OSARCH) +ARCHFLAGS ?= -arch $(POCO_TARGET_OSARCH) +OSFLAGS ?= -mmacosx-version-min=10.7 -OPENSSL_DIR ?= /usr/local/opt/openssl/ +OPENSSL_DIR ?= /usr/local/opt/openssl ifeq ($(POCO_TARGET_OSARCH),i386) RORELOCS = -read_only_relocs suppress @@ -49,11 +52,11 @@ SHAREDLIBLINKEXT = .dylib # # Compiler and Linker Flags # -CFLAGS = $(ARCHFLAGS) -CXXFLAGS = $(ARCHFLAGS) -std=c++11 -stdlib=libc++ -Wall -Wno-sign-compare -Wno-unused-variable -Wno-unused-function -Wno-unneeded-internal-declaration -LINKFLAGS = $(ARCHFLAGS) -stdlib=libc++ -SHLIBFLAGS = $(ARCHFLAGS) -stdlib=libc++ -DYLIBFLAGS = $(ARCHFLAGS) -stdlib=libc++ +CFLAGS = $(ARCHFLAGS) $(OSFLAGS) +CXXFLAGS = $(ARCHFLAGS) $(OSFLAGS) -std=c++03 -stdlib=libstdc++ -Wall -Wno-sign-compare -Wno-unused-variable -Wno-unused-function -Wno-unneeded-internal-declaration +LINKFLAGS = $(ARCHFLAGS) $(OSFLAGS) -stdlib=libstdc++ +SHLIBFLAGS = $(ARCHFLAGS) $(OSFLAGS) -stdlib=libstdc++ +DYLIBFLAGS = $(ARCHFLAGS) $(OSFLAGS) -stdlib=libstdc++ STATICOPT_CC = STATICOPT_CXX = STATICOPT_LINK = @@ -75,4 +78,4 @@ SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_NO_STAT64 -I$(OPENSSL_DIR)/include # # System Specific Libraries # -SYSLIBS = -L$(OPENSSL_DIR)/lib -ldl +SYSLIBS = -L$(OPENSSL_DIR)/lib -ldl diff --git a/build/config/Darwin-clang-libc++ b/build/config/Darwin-clang-libc++ index 8bdee2cab..29015b882 100644 --- a/build/config/Darwin-clang-libc++ +++ b/build/config/Darwin-clang-libc++ @@ -3,10 +3,81 @@ # # Darwin-clang-libc++ # -# Build settings for Mac OS X 10.8 or later, clang, 64-bits, with C++11 support. -# Build settings are compatible with XCode 7 C++ projects. -# -# Note: provided for backwards compatibility. +# Build settings for Mac OS X 10.9 (clang, libc++, x86_64) +# The build settings defined in this file are compatible +# with XCode C++ projects. +# +# NOTE: This build configuration will build 64-bit binaries. +# Use the Darwin32-clang-libc++ build configuration to build 32-bit binaries. # -include $(POCO_BASE)/build/config/Darwin-clang +# +# General Settings +# +LINKMODE ?= SHARED + +POCO_TARGET_OSARCH ?= x86_64 +POCO_HOST_OSARCH := $(POCO_TARGET_OSARCH) +ARCHFLAGS ?= -arch $(POCO_TARGET_OSARCH) +OSFLAGS ?= -mmacosx-version-min=10.9 + +OPENSSL_DIR ?= /usr/local/opt/openssl + +ifeq ($(POCO_TARGET_OSARCH),i386) +RORELOCS = -read_only_relocs suppress +endif + +# +# Tools +# +CC = $(shell xcrun -find clang) +CXX = $(shell xcrun -find clang++) +LINK = $(CXX) -bind_at_load +LIB = libtool -static -o +RANLIB = ranlib +SHLIB = $(CXX) -dynamiclib -Wl,-install_name,$(POCO_LIB_INSTALLDIR)/$(notdir \$@) -o $@ +DYLIB = $(CXX) -dynamic -bundle $(RORELOCS) -Wl,-bind_at_load -o $@ +SHLIBLN = $(POCO_BASE)/build/script/shlibln +STRIP = +DEP = $(POCO_BASE)/build/script/makedepend.clang +SHELL = sh +RM = rm -rf +CP = cp +MKDIR = mkdir -p + +# +# Extension for Shared Libraries +# +SHAREDLIBEXT = .$(target_version).dylib +SHAREDLIBLINKEXT = .dylib + +# +# Compiler and Linker Flags +# +CFLAGS = $(ARCHFLAGS) $(OSFLAGS) +CXXFLAGS = $(ARCHFLAGS) $(OSFLAGS) -std=c++11 -stdlib=libc++ -Wall -Wno-sign-compare -Wno-unused-variable -Wno-unused-function -Wno-unneeded-internal-declaration +LINKFLAGS = $(ARCHFLAGS) $(OSFLAGS) -stdlib=libc++ +SHLIBFLAGS = $(ARCHFLAGS) $(OSFLAGS) -stdlib=libc++ +DYLIBFLAGS = $(ARCHFLAGS) $(OSFLAGS) -stdlib=libc++ +STATICOPT_CC = +STATICOPT_CXX = +STATICOPT_LINK = +SHAREDOPT_CC = -fPIC +SHAREDOPT_CXX = -fPIC +SHAREDOPT_LINK = +DEBUGOPT_CC = -O0 -g -gdwarf-2 -fasm-blocks -D_DEBUG=$(DEBUGLEVEL) +DEBUGOPT_CXX = -O0 -g -gdwarf-2 -fasm-blocks -D_DEBUG=$(DEBUGLEVEL) +DEBUGOPT_LINK = +RELEASEOPT_CC = -DNDEBUG -Os -fasm-blocks +RELEASEOPT_CXX = -DNDEBUG -O2 -fasm-blocks +RELEASEOPT_LINK = + +# +# System Specific Flags +# +SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_NO_STAT64 -I$(OPENSSL_DIR)/include + +# +# System Specific Libraries +# +SYSLIBS = -L$(OPENSSL_DIR)/lib -ldl diff --git a/build/config/Darwin32 b/build/config/Darwin32 index 8fda78525..4e94353d1 100644 --- a/build/config/Darwin32 +++ b/build/config/Darwin32 @@ -1,13 +1,14 @@ # -# $Id +# $Id$ # # Darwin32 # -# Build settings for Mac OS X 10.8 or later, clang, 32-bits, with C++11 support. -# Build settings are compatible with XCode 7 C++ projects. +# Build settings for Mac OS X 10.9 (clang, libc++, i386) +# The build settings defined in this file are compatible +# with XCode C++ projects. # ARCHFLAGS = -arch i386 POCO_TARGET_OSARCH = i386 -include $(POCO_BASE)/build/config/Darwin-clang +include $(POCO_BASE)/build/config/Darwin-clang-libc++ diff --git a/build/config/Darwin32-clang b/build/config/Darwin32-clang index 27936c74e..f624d805e 100644 --- a/build/config/Darwin32-clang +++ b/build/config/Darwin32-clang @@ -3,8 +3,7 @@ # # Darwin32-clang # -# Build settings for Mac OS X 10.8 or later, clang, 32-bits, with C++11 support. -# Build settings are compatible with XCode 7 C++ projects. +# Build settings for Mac OS X 10.7 (clang, libstdc++, i386) # ARCHFLAGS = -arch i386 diff --git a/build/config/Darwin32-clang-libc++ b/build/config/Darwin32-clang-libc++ index 085b722f9..eab0ebefd 100644 --- a/build/config/Darwin32-clang-libc++ +++ b/build/config/Darwin32-clang-libc++ @@ -3,13 +3,12 @@ # # Darwin32-clang-libc++ # -# Build settings for Mac OS X 10.8 or later, clang, 32-bits, with C++11 support. -# Build settings are compatible with XCode 7 C++ projects. -# -# Note: provided for backwards compatibility. -# +# Build settings for Mac OS X 10.9 (clang, libc++, i386) +# The build settings defined in this file are compatible +# with XCode C++ projects. +# ARCHFLAGS = -arch i386 POCO_TARGET_OSARCH = i386 -include $(POCO_BASE)/build/config/Darwin-clang +include $(POCO_BASE)/build/config/Darwin-clang-libc++ diff --git a/build/config/Darwin64 b/build/config/Darwin64 index 6a9e6cf08..92428622c 100644 --- a/build/config/Darwin64 +++ b/build/config/Darwin64 @@ -1,13 +1,14 @@ # -# $Id +# $Id$ # # Darwin64 # -# Build settings for Mac OS X 10.8 or later, clang, 64-bits, with C++11 support. -# Build settings are compatible with XCode 7 C++ projects. +# Build settings for Mac OS X 10.9 (clang, libc++, x86_64) +# The build settings defined in this file are compatible +# with XCode C++ projects. # ARCHFLAGS = -arch x86_64 POCO_TARGET_OSARCH = x86_64 -include $(POCO_BASE)/build/config/Darwin-clang +include $(POCO_BASE)/build/config/Darwin-clang-libc++ diff --git a/build/config/Darwin64-clang b/build/config/Darwin64-clang index 48a33699e..c1a258df1 100644 --- a/build/config/Darwin64-clang +++ b/build/config/Darwin64-clang @@ -3,8 +3,7 @@ # # Darwin64-clang # -# Build settings for Mac OS X 10.8 or later, clang, 64-bits, with C++11 support. -# Build settings are compatible with XCode 7 C++ projects. +# Build settings for Mac OS X 10.7 (clang, libstdc++, x86_64) # ARCHFLAGS = -arch x86_64 diff --git a/build/config/Darwin64-clang-libc++ b/build/config/Darwin64-clang-libc++ index db717f84f..32dacba49 100644 --- a/build/config/Darwin64-clang-libc++ +++ b/build/config/Darwin64-clang-libc++ @@ -3,13 +3,12 @@ # # Darwin64-clang-libc++ # -# Build settings for Mac OS X 10.8 or later, clang, 64-bits, with C++11 support. -# Build settings are compatible with XCode 7 C++ projects. -# -# Note: provided for backwards compatibility. -# +# Build settings for Mac OS X 10.9 (clang, libc++, x86_64) +# The build settings defined in this file are compatible +# with XCode C++ projects. +# ARCHFLAGS = -arch x86_64 POCO_TARGET_OSARCH = x86_64 -include $(POCO_BASE)/build/config/Darwin-clang +include $(POCO_BASE)/build/config/Darwin-clang-libc++ diff --git a/build/config/WatchOS b/build/config/WatchOS index d576e0235..da5e5b4ae 100644 --- a/build/config/WatchOS +++ b/build/config/WatchOS @@ -90,7 +90,7 @@ RELEASEOPT_LINK = # # System Specific Flags # -SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS -DPOCO_NO_NET_IFTYPES -DPOCO_NO_FORK_EXEC +SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_SOCKETADDRESS_DONT_PREFER_IPV4 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS -DPOCO_NO_NET_IFTYPES -DPOCO_NO_FORK_EXEC # # System Specific Libraries diff --git a/build/config/iPhone b/build/config/iPhone index 157da92b7..b04801b85 100644 --- a/build/config/iPhone +++ b/build/config/iPhone @@ -1,5 +1,5 @@ # -# $Id: //poco/1.4/build/config/iPhone#4 $ +# $Id: //poco/1.4/build/config/iPhone#2 $ # # iPhone # @@ -23,22 +23,23 @@ LINKMODE ?= STATIC # Otherwise use the version found. IPHONE_SDK ?= iPhoneOS -IPHONE_SDK_ROOT = $(shell xcode-select -print-path)/Platforms/$(IPHONE_SDK).platform/Developer/SDKs +IPHONE_SDK_ROOT ?= $(shell xcode-select -print-path)/Platforms/$(IPHONE_SDK).platform/Developer/SDKs IPHONE_SDK_ROOT_DIR = $(IPHONE_SDK_ROOT)/$(IPHONE_SDK) IPHONE_SDK_BASE = $(shell ls -d $(IPHONE_SDK_ROOT_DIR)$(IPHONE_SDK_VERSION)*.sdk | tail -1) IPHONE_SDK_VERSION_MIN ?= $(patsubst %.sdk,%,$(patsubst $(IPHONE_SDK_ROOT_DIR)%,%,$(IPHONE_SDK_BASE))) POCO_TARGET_OSNAME ?= $(IPHONE_SDK) -POCO_TARGET_OSARCH ?= armv6 +POCO_TARGET_OSARCH ?= arm64 TOOL_PREFIX ?= $(shell xcode-select -print-path)/Platforms/$(IPHONE_SDK).platform/Developer/usr/bin -OSFLAGS ?= -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -mthumb -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) -fembed-bitcode +ifneq ($(POCO_TARGET_OSARCH),arm64) +THUMB = -mthumb +endif +OSFLAGS ?= -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) $(THUMB) -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) -fembed-bitcode # # Tools # -# If GCC_VER is defined then use it. -# Otherwise select the latest version -# + CC = $(shell xcrun -find clang) CXX = $(shell xcrun -find clang++) @@ -67,10 +68,10 @@ SHAREDLIBLINKEXT = .dylib CFLAGS = $(OSFLAGS) CFLAGS32 = CFLAGS64 = -CXXFLAGS = $(OSFLAGS) -Wall -Wno-sign-compare +CXXFLAGS = $(OSFLAGS) -std=gnu++11 -stdlib=libc++ -Wall -Wno-sign-compare CXXFLAGS32 = CXXFLAGS64 = -LINKFLAGS = $(OSFLAGS) +LINKFLAGS = $(OSFLAGS) -stdlib=libc++ LINKFLAGS32 = LINKFLAGS64 = STATICOPT_CC = @@ -89,7 +90,7 @@ RELEASEOPT_LINK = # # System Specific Flags # -SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS +SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_SOCKETADDRESS_DONT_PREFER_IPV4 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS -DPOCO_NO_NET_IFTYPES # # System Specific Libraries diff --git a/build/config/iPhone-clang b/build/config/iPhone-clang index d40b457a9..76b8f2b55 100644 --- a/build/config/iPhone-clang +++ b/build/config/iPhone-clang @@ -6,96 +6,4 @@ # Build settings for iPhone OS, using Apple's iPhone SDK # -# -# General Settings -# -# iPhone OS does not allow dynamic linking to user libraries -# -LINKMODE ?= STATIC - -# -# If the SDK is defined use it -# Otherwise find the latest version installed -# -# IPHONE_SDK_VERSION = 2.2.1 - -# if IPHONE_SDK_VERSION_MIN is defined use that -# Otherwise use the version found. - -IPHONE_SDK ?= iPhoneOS -IPHONE_SDK_ROOT ?= $(shell xcode-select -print-path)/Platforms/$(IPHONE_SDK).platform/Developer/SDKs -IPHONE_SDK_ROOT_DIR = $(IPHONE_SDK_ROOT)/$(IPHONE_SDK) -IPHONE_SDK_BASE = $(shell ls -d $(IPHONE_SDK_ROOT_DIR)$(IPHONE_SDK_VERSION)*.sdk | tail -1) -IPHONE_SDK_VERSION_MIN ?= $(patsubst %.sdk,%,$(patsubst $(IPHONE_SDK_ROOT_DIR)%,%,$(IPHONE_SDK_BASE))) - -POCO_TARGET_OSNAME ?= $(IPHONE_SDK) -POCO_TARGET_OSARCH ?= armv7 -TOOL_PREFIX ?= $(shell xcode-select -print-path)/Platforms/$(IPHONE_SDK).platform/Developer/usr/bin -ifneq ($(POCO_TARGET_OSARCH),arm64) -THUMB = -mthumb -endif -OSFLAGS ?= -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) $(THUMB) -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) - -# -# Tools -# -# If GCC_VER is defined then use it. -# Otherwise select the latest version -# - -CC = $(shell xcrun -find clang) -CXX = $(shell xcrun -find clang++) - -LINK = $(CXX) -bind_at_load -LIB = libtool -static -o -RANLIB = ranlib -SHLIB = $(CXX) $(OSFLAGS) -dynamiclib -Wl,-install_name,$@ -o $@ -DYLIB = $(CXX) $(OSFLAGS) -dynamic -bundle -read_only_relocs suppress -Wl,-bind_at_load -o $@ -SHLIBLN = $(POCO_BASE)/build/script/shlibln -STRIP = -DEP = $(POCO_BASE)/build/script/makedepend.gcc -SHELL = sh -RM = rm -rf -CP = cp -MKDIR = mkdir -p - -# -# Extension for Shared Libraries -# -SHAREDLIBEXT = .$(target_version).dylib -SHAREDLIBLINKEXT = .dylib - -# -# Compiler and Linker Flags -# -CFLAGS = $(OSFLAGS) -CFLAGS32 = -CFLAGS64 = -CXXFLAGS = $(OSFLAGS) -Wall -Wno-sign-compare -CXXFLAGS32 = -CXXFLAGS64 = -LINKFLAGS = $(OSFLAGS) -LINKFLAGS32 = -LINKFLAGS64 = -STATICOPT_CC = -STATICOPT_CXX = -STATICOPT_LINK = -SHAREDOPT_CC = -fPIC -SHAREDOPT_CXX = -fPIC -SHAREDOPT_LINK = -DEBUGOPT_CC = -g -D_DEBUG=$(DEBUGLEVEL) -DEBUGOPT_CXX = -g -D_DEBUG=$(DEBUGLEVEL) -DEBUGOPT_LINK = -RELEASEOPT_CC = -DNDEBUG -O2 -RELEASEOPT_CXX = -DNDEBUG -O -RELEASEOPT_LINK = - -# -# System Specific Flags -# -SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS -DPOCO_NO_NET_IFTYPES - -# -# System Specific Libraries -# -SYSLIBS = -ldl +include $(POCO_BASE)/build/config/iPhone diff --git a/build/config/iPhone-clang-libc++ b/build/config/iPhone-clang-libc++ index cc39b97b4..c9b47a121 100644 --- a/build/config/iPhone-clang-libc++ +++ b/build/config/iPhone-clang-libc++ @@ -6,96 +6,4 @@ # Build settings for iPhone OS, using Apple's iPhone SDK # -# -# General Settings -# -# iPhone OS does not allow dynamic linking to user libraries -# -LINKMODE ?= STATIC - -# -# If the SDK is defined use it -# Otherwise find the latest version installed -# -# IPHONE_SDK_VERSION = 2.2.1 - -# if IPHONE_SDK_VERSION_MIN is defined use that -# Otherwise use the version found. - -IPHONE_SDK ?= iPhoneOS -IPHONE_SDK_ROOT ?= $(shell xcode-select -print-path)/Platforms/$(IPHONE_SDK).platform/Developer/SDKs -IPHONE_SDK_ROOT_DIR = $(IPHONE_SDK_ROOT)/$(IPHONE_SDK) -IPHONE_SDK_BASE = $(shell ls -d $(IPHONE_SDK_ROOT_DIR)$(IPHONE_SDK_VERSION)*.sdk | tail -1) -IPHONE_SDK_VERSION_MIN ?= $(patsubst %.sdk,%,$(patsubst $(IPHONE_SDK_ROOT_DIR)%,%,$(IPHONE_SDK_BASE))) - -POCO_TARGET_OSNAME ?= $(IPHONE_SDK) -POCO_TARGET_OSARCH ?= armv7 -TOOL_PREFIX ?= $(shell xcode-select -print-path)/Platforms/$(IPHONE_SDK).platform/Developer/usr/bin -ifneq ($(POCO_TARGET_OSARCH),arm64) -THUMB = -mthumb -endif -OSFLAGS ?= -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) $(THUMB) -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) - -# -# Tools -# -# If GCC_VER is defined then use it. -# Otherwise select the latest version -# - -CC = $(shell xcrun -find clang) -CXX = $(shell xcrun -find clang++) - -LINK = $(CXX) -bind_at_load -LIB = libtool -static -o -RANLIB = ranlib -SHLIB = $(CXX) $(OSFLAGS) -dynamiclib -Wl,-install_name,$@ -o $@ -DYLIB = $(CXX) $(OSFLAGS) -dynamic -bundle -read_only_relocs suppress -Wl,-bind_at_load -o $@ -SHLIBLN = $(POCO_BASE)/build/script/shlibln -STRIP = -DEP = $(POCO_BASE)/build/script/makedepend.gcc -SHELL = sh -RM = rm -rf -CP = cp -MKDIR = mkdir -p - -# -# Extension for Shared Libraries -# -SHAREDLIBEXT = .$(target_version).dylib -SHAREDLIBLINKEXT = .dylib - -# -# Compiler and Linker Flags -# -CFLAGS = $(OSFLAGS) -CFLAGS32 = -CFLAGS64 = -CXXFLAGS = $(OSFLAGS) -std=c++11 -stdlib=libc++ -Wall -Wno-sign-compare -CXXFLAGS32 = -CXXFLAGS64 = -LINKFLAGS = $(OSFLAGS) -stdlib=libc++ -LINKFLAGS32 = -LINKFLAGS64 = -STATICOPT_CC = -STATICOPT_CXX = -STATICOPT_LINK = -SHAREDOPT_CC = -fPIC -SHAREDOPT_CXX = -fPIC -SHAREDOPT_LINK = -DEBUGOPT_CC = -g -D_DEBUG=$(DEBUGLEVEL) -DEBUGOPT_CXX = -g -D_DEBUG=$(DEBUGLEVEL) -DEBUGOPT_LINK = -RELEASEOPT_CC = -DNDEBUG -O2 -RELEASEOPT_CXX = -DNDEBUG -O -RELEASEOPT_LINK = - -# -# System Specific Flags -# -SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS -DPOCO_NO_NET_IFTYPES - -# -# System Specific Libraries -# -SYSLIBS = -ldl +include $(POCO_BASE)/build/config/iPhone