From e184f97d824a709d3bc2a0a38b4650fd4cb01e43 Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Tue, 12 Nov 2024 23:43:40 +0100 Subject: [PATCH 01/13] Mac Sequoia build compatibility Updated Mac build for Sequoia compatibility, removed 386 support on Mac --- ChangeLog | 4 ++++ mac/iODBC/iODBC.xcodeproj/project.pbxproj | 16 ++++------------ mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj | 16 ++++------------ .../iODBCadministrator.xcodeproj/project.pbxproj | 14 ++++---------- .../project.pbxproj | 4 ++-- .../DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj | 4 ++++ .../DemoUnicode.xcodeproj/project.pbxproj | 14 ++++---------- .../iODBCdrvproxy.xcodeproj/project.pbxproj | 16 ++++------------ .../iODBCinst.xcodeproj/project.pbxproj | 6 ++++-- .../iODBCtest.xcodeproj/project.pbxproj | 4 ++++ .../iODBCtestw.xcodeproj/project.pbxproj | 4 ++++ 11 files changed, 42 insertions(+), 60 deletions(-) diff --git a/ChangeLog b/ChangeLog index deec4ac8..b8817b62 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2024-11-12 Jörg Rose + + Updated Mac build for Sequoia compatibility, removed 386 support on Mac + 2023-05-02 Patrick van Kleef Updated NEWS diff --git a/mac/iODBC/iODBC.xcodeproj/project.pbxproj b/mac/iODBC/iODBC.xcodeproj/project.pbxproj index c06e49a6..27238a0e 100644 --- a/mac/iODBC/iODBC.xcodeproj/project.pbxproj +++ b/mac/iODBC/iODBC.xcodeproj/project.pbxproj @@ -681,11 +681,7 @@ CDAE3AAE0987CB86003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - $IODBC_32BIT, - arm64, - x86_64, - ); + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -714,7 +710,7 @@ INFOPLIST_FILE = "Info-iODBC.plist"; INSTALL_PATH = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.core; PRODUCT_NAME = iODBC; @@ -733,11 +729,7 @@ CDAE3AAF0987CB86003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - $IODBC_32BIT, - arm64, - x86_64, - ); + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -765,7 +757,7 @@ INFOPLIST_FILE = "Info-iODBC.plist"; INSTALL_PATH = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.core; PRODUCT_NAME = iODBC; diff --git a/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj b/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj index 1512bb92..c4f5bf6f 100644 --- a/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj +++ b/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj @@ -559,11 +559,7 @@ CDAE3C200987D71D003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - arm64, - $IODBC_32BIT, - x86_64, - ); + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -593,7 +589,7 @@ INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = BUNDLE; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", @@ -618,11 +614,7 @@ CDAE3C210987D71D003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - arm64, - $IODBC_32BIT, - x86_64, - ); + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -645,7 +637,7 @@ INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = Bundle; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", diff --git a/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj b/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj index 82507500..1c36126e 100644 --- a/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj +++ b/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj @@ -274,10 +274,7 @@ CDAE3B870987D655003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - arm64, - $IODBC_32BIT, - ); + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = YES; @@ -304,7 +301,7 @@ INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; INSTALL_PATH = /Applications/iODBC; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -331,10 +328,7 @@ CDAE3B880987D655003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - arm64, - $IODBC_32BIT, - ); + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -354,7 +348,7 @@ INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; INSTALL_PATH = /Applications/iODBC; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( diff --git a/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj b/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj index 69296bdf..5015fb74 100644 --- a/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj +++ b/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj @@ -301,7 +301,7 @@ INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; INSTALL_PATH = /Applications/iODBC; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -348,7 +348,7 @@ INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; INSTALL_PATH = /Applications/iODBC; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( diff --git a/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj b/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj index e46b4748..0c2e9434 100644 --- a/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj +++ b/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj @@ -360,6 +360,7 @@ CD7C37B50A063F40001A43B7 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; @@ -375,6 +376,7 @@ HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoAnsi.plist; INSTALL_PATH = /Applications/iODBC; + MACOSX_DEPLOYMENT_TARGET = 10.13; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-ansi"; PRODUCT_NAME = "iODBC Demo Ansi"; WRAPPER_EXTENSION = app; @@ -385,6 +387,7 @@ CD7C37B60A063F40001A43B7 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; FRAMEWORK_SEARCH_PATHS = ( ../../../mac/iODBC/build/Deployment, @@ -397,6 +400,7 @@ HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoAnsi.plist; INSTALL_PATH = /Applications/iODBC; + MACOSX_DEPLOYMENT_TARGET = 10.13; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-ansi"; PRODUCT_NAME = "iODBC Demo Ansi"; WRAPPER_EXTENSION = app; diff --git a/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj b/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj index 1dd1fa1a..e2b38c35 100644 --- a/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj +++ b/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj @@ -281,11 +281,7 @@ C01FCF4B08A954540054247B /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - arm64, - $IODBC_32BIT, - x86_64, - ); + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; @@ -301,6 +297,7 @@ HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoUnicode.plist; INSTALL_PATH = /Applications/iODBC; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-DUNICODE"; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-unicode"; PRODUCT_NAME = "iODBC Demo Unicode"; @@ -312,11 +309,7 @@ C01FCF4C08A954540054247B /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - arm64, - $IODBC_32BIT, - x86_64, - ); + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; FRAMEWORK_SEARCH_PATHS = ( ../../../mac/iODBC/build/Deployment, @@ -329,6 +322,7 @@ HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoUnicode.plist; INSTALL_PATH = /Applications/iODBC; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-DUNICODE"; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-unicode"; PRODUCT_NAME = "iODBC Demo Unicode"; diff --git a/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj b/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj index 543b9618..93572be5 100644 --- a/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj +++ b/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj @@ -368,11 +368,7 @@ CDAE3BC80987D6B4003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - arm64, - $IODBC_32BIT, - x86_64, - ); + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -402,7 +398,7 @@ INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = Bundle; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", @@ -428,11 +424,7 @@ CDAE3BC90987D6B4003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - arm64, - $IODBC_32BIT, - x86_64, - ); + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -453,7 +445,7 @@ INFOPLIST_FILE = "Info-iODBCdrvproxy.plist"; INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", diff --git a/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj b/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj index 4e16d689..591876f2 100644 --- a/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj +++ b/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj @@ -491,6 +491,7 @@ CDAE3B0D0987CDA2003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -518,7 +519,7 @@ INFOPLIST_FILE = "Info-iODBCinst.plist"; INSTALL_PATH = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.inst; PRODUCT_NAME = iODBCinst; @@ -537,6 +538,7 @@ CDAE3B0E0987CDA2003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -563,7 +565,7 @@ INFOPLIST_FILE = "Info-iODBCinst.plist"; INSTALL_PATH = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.inst; PRODUCT_NAME = iODBCinst; diff --git a/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj b/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj index fd26f297..0cbbc137 100644 --- a/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj +++ b/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj @@ -155,6 +155,7 @@ CDAE3B350987CEF4003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; @@ -174,6 +175,7 @@ HEADER_SEARCH_PATHS = ../../include; INSTALL_PATH = "/Library/Application Support/iODBC/bin"; LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = iodbctest; @@ -192,6 +194,7 @@ CDAE3B360987CEF4003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -209,6 +212,7 @@ HEADER_SEARCH_PATHS = ../../include; INSTALL_PATH = "/Library/Application Support/iODBC/bin"; LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = iodbctest; diff --git a/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj b/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj index 329a9d78..2aec174f 100644 --- a/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj +++ b/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj @@ -155,6 +155,7 @@ CDAE3B570987CF60003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; @@ -174,6 +175,7 @@ HEADER_SEARCH_PATHS = ../../include; INSTALL_PATH = "/Library/Application Support/iODBC/bin"; LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = iodbctestw; @@ -192,6 +194,7 @@ CDAE3B580987CF60003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -208,6 +211,7 @@ HEADER_SEARCH_PATHS = ../../include; INSTALL_PATH = "/Library/Application Support/iODBC/bin"; LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = iodbctestw; From 6d35ff629771d6ad8fcfe42c8296bf3ec6c5dbe0 Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Wed, 13 Nov 2024 22:00:51 +0100 Subject: [PATCH 02/13] Revert "Mac Sequoia build compatibility" This reverts commit e184f97d824a709d3bc2a0a38b4650fd4cb01e43. --- ChangeLog | 4 ---- mac/iODBC/iODBC.xcodeproj/project.pbxproj | 16 ++++++++++++---- mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj | 16 ++++++++++++---- .../iODBCadministrator.xcodeproj/project.pbxproj | 14 ++++++++++---- .../project.pbxproj | 4 ++-- .../DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj | 4 ---- .../DemoUnicode.xcodeproj/project.pbxproj | 14 ++++++++++---- .../iODBCdrvproxy.xcodeproj/project.pbxproj | 16 ++++++++++++---- .../iODBCinst.xcodeproj/project.pbxproj | 6 ++---- .../iODBCtest.xcodeproj/project.pbxproj | 4 ---- .../iODBCtestw.xcodeproj/project.pbxproj | 4 ---- 11 files changed, 60 insertions(+), 42 deletions(-) diff --git a/ChangeLog b/ChangeLog index b8817b62..deec4ac8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,3 @@ -2024-11-12 Jörg Rose - - Updated Mac build for Sequoia compatibility, removed 386 support on Mac - 2023-05-02 Patrick van Kleef Updated NEWS diff --git a/mac/iODBC/iODBC.xcodeproj/project.pbxproj b/mac/iODBC/iODBC.xcodeproj/project.pbxproj index 27238a0e..c06e49a6 100644 --- a/mac/iODBC/iODBC.xcodeproj/project.pbxproj +++ b/mac/iODBC/iODBC.xcodeproj/project.pbxproj @@ -681,7 +681,11 @@ CDAE3AAE0987CB86003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = ( + $IODBC_32BIT, + arm64, + x86_64, + ); CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -710,7 +714,7 @@ INFOPLIST_FILE = "Info-iODBC.plist"; INSTALL_PATH = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.core; PRODUCT_NAME = iODBC; @@ -729,7 +733,11 @@ CDAE3AAF0987CB86003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = ( + $IODBC_32BIT, + arm64, + x86_64, + ); CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -757,7 +765,7 @@ INFOPLIST_FILE = "Info-iODBC.plist"; INSTALL_PATH = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.core; PRODUCT_NAME = iODBC; diff --git a/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj b/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj index c4f5bf6f..1512bb92 100644 --- a/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj +++ b/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj @@ -559,7 +559,11 @@ CDAE3C200987D71D003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = ( + arm64, + $IODBC_32BIT, + x86_64, + ); CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -589,7 +593,7 @@ INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = BUNDLE; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", @@ -614,7 +618,11 @@ CDAE3C210987D71D003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = ( + arm64, + $IODBC_32BIT, + x86_64, + ); CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -637,7 +645,7 @@ INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = Bundle; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", diff --git a/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj b/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj index 1c36126e..82507500 100644 --- a/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj +++ b/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj @@ -274,7 +274,10 @@ CDAE3B870987D655003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = ( + arm64, + $IODBC_32BIT, + ); CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = YES; @@ -301,7 +304,7 @@ INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; INSTALL_PATH = /Applications/iODBC; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -328,7 +331,10 @@ CDAE3B880987D655003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = ( + arm64, + $IODBC_32BIT, + ); CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -348,7 +354,7 @@ INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; INSTALL_PATH = /Applications/iODBC; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( diff --git a/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj b/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj index 5015fb74..69296bdf 100644 --- a/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj +++ b/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj @@ -301,7 +301,7 @@ INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; INSTALL_PATH = /Applications/iODBC; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -348,7 +348,7 @@ INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; INSTALL_PATH = /Applications/iODBC; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( diff --git a/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj b/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj index 0c2e9434..e46b4748 100644 --- a/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj +++ b/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj @@ -360,7 +360,6 @@ CD7C37B50A063F40001A43B7 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; @@ -376,7 +375,6 @@ HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoAnsi.plist; INSTALL_PATH = /Applications/iODBC; - MACOSX_DEPLOYMENT_TARGET = 10.13; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-ansi"; PRODUCT_NAME = "iODBC Demo Ansi"; WRAPPER_EXTENSION = app; @@ -387,7 +385,6 @@ CD7C37B60A063F40001A43B7 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; FRAMEWORK_SEARCH_PATHS = ( ../../../mac/iODBC/build/Deployment, @@ -400,7 +397,6 @@ HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoAnsi.plist; INSTALL_PATH = /Applications/iODBC; - MACOSX_DEPLOYMENT_TARGET = 10.13; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-ansi"; PRODUCT_NAME = "iODBC Demo Ansi"; WRAPPER_EXTENSION = app; diff --git a/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj b/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj index e2b38c35..1dd1fa1a 100644 --- a/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj +++ b/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj @@ -281,7 +281,11 @@ C01FCF4B08A954540054247B /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = ( + arm64, + $IODBC_32BIT, + x86_64, + ); CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; @@ -297,7 +301,6 @@ HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoUnicode.plist; INSTALL_PATH = /Applications/iODBC; - MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-DUNICODE"; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-unicode"; PRODUCT_NAME = "iODBC Demo Unicode"; @@ -309,7 +312,11 @@ C01FCF4C08A954540054247B /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = ( + arm64, + $IODBC_32BIT, + x86_64, + ); CLANG_ENABLE_OBJC_WEAK = YES; FRAMEWORK_SEARCH_PATHS = ( ../../../mac/iODBC/build/Deployment, @@ -322,7 +329,6 @@ HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoUnicode.plist; INSTALL_PATH = /Applications/iODBC; - MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-DUNICODE"; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-unicode"; PRODUCT_NAME = "iODBC Demo Unicode"; diff --git a/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj b/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj index 93572be5..543b9618 100644 --- a/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj +++ b/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj @@ -368,7 +368,11 @@ CDAE3BC80987D6B4003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = ( + arm64, + $IODBC_32BIT, + x86_64, + ); CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -398,7 +402,7 @@ INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = Bundle; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", @@ -424,7 +428,11 @@ CDAE3BC90987D6B4003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = ( + arm64, + $IODBC_32BIT, + x86_64, + ); CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -445,7 +453,7 @@ INFOPLIST_FILE = "Info-iODBCdrvproxy.plist"; INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", diff --git a/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj b/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj index 591876f2..4e16d689 100644 --- a/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj +++ b/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj @@ -491,7 +491,6 @@ CDAE3B0D0987CDA2003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -519,7 +518,7 @@ INFOPLIST_FILE = "Info-iODBCinst.plist"; INSTALL_PATH = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.inst; PRODUCT_NAME = iODBCinst; @@ -538,7 +537,6 @@ CDAE3B0E0987CDA2003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -565,7 +563,7 @@ INFOPLIST_FILE = "Info-iODBCinst.plist"; INSTALL_PATH = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.inst; PRODUCT_NAME = iODBCinst; diff --git a/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj b/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj index 0cbbc137..fd26f297 100644 --- a/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj +++ b/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj @@ -155,7 +155,6 @@ CDAE3B350987CEF4003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; @@ -175,7 +174,6 @@ HEADER_SEARCH_PATHS = ../../include; INSTALL_PATH = "/Library/Application Support/iODBC/bin"; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = iodbctest; @@ -194,7 +192,6 @@ CDAE3B360987CEF4003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -212,7 +209,6 @@ HEADER_SEARCH_PATHS = ../../include; INSTALL_PATH = "/Library/Application Support/iODBC/bin"; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = iodbctest; diff --git a/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj b/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj index 2aec174f..329a9d78 100644 --- a/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj +++ b/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj @@ -155,7 +155,6 @@ CDAE3B570987CF60003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; @@ -175,7 +174,6 @@ HEADER_SEARCH_PATHS = ../../include; INSTALL_PATH = "/Library/Application Support/iODBC/bin"; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = iodbctestw; @@ -194,7 +192,6 @@ CDAE3B580987CF60003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; @@ -211,7 +208,6 @@ HEADER_SEARCH_PATHS = ../../include; INSTALL_PATH = "/Library/Application Support/iODBC/bin"; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = iodbctestw; From 243ccb5f8479e6d0306b2d9ec899dfec7ad82f38 Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Mon, 3 Feb 2025 23:34:17 +0100 Subject: [PATCH 03/13] development universal build fixes --- README_MACOSX.md | 86 +++++++++++-------- mac/GNUmakefile | 83 ++++++++++-------- mac/iODBC/iODBC.xcodeproj/project.pbxproj | 8 +- .../iODBCadm.xcodeproj/project.pbxproj | 16 ++-- .../project.pbxproj | 31 +++---- .../project.pbxproj | 23 ++--- .../DemoAnsi.xcodeproj/project.pbxproj | 21 ++--- .../DemoUnicode.xcodeproj/project.pbxproj | 21 ++--- .../iODBCdrvproxy.xcodeproj/project.pbxproj | 10 +-- .../iODBCinst.xcodeproj/project.pbxproj | 22 ++--- .../iODBCtest.xcodeproj/project.pbxproj | 12 +-- .../iODBCtestw.xcodeproj/project.pbxproj | 12 +-- 12 files changed, 190 insertions(+), 155 deletions(-) mode change 100644 => 100755 README_MACOSX.md mode change 100644 => 100755 mac/GNUmakefile mode change 100644 => 100755 mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj mode change 100644 => 100755 mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj mode change 100644 => 100755 mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj mode change 100644 => 100755 mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj mode change 100644 => 100755 mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj mode change 100644 => 100755 mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj mode change 100644 => 100755 mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj mode change 100644 => 100755 mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj mode change 100644 => 100755 mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj diff --git a/README_MACOSX.md b/README_MACOSX.md old mode 100644 new mode 100755 index 6d3a4745..ef93a7e7 --- a/README_MACOSX.md +++ b/README_MACOSX.md @@ -18,14 +18,28 @@ Packages, which you can download from . Then, execute the following commands in a terminal session, to build all the frameworks and demo applications: ```shell -$ cd mac -$ make +cd mac +make +``` + +In case there are errors first try to clean up temporary files: + +```shell +sudo make clean ``` After building the iODBC libraries and applications, you have to install them on your system with the command: ```shell -$ sudo make install +sudo make install +``` + +For generating and installing a development build with debug symbols run: + +```shell +sudo make realclean +make MODEL=Development +sudo make install MODEL=Development ``` This installs the `iODBCinst` and `iODBC` frameworks into — @@ -86,16 +100,16 @@ using the [HomeBrew package manager](http://brew.sh/) to install these tools, ac To build the libraries, open up a terminal session in **`Terminal.app`** or similar, and execute the following commands: ```shell -$ sh autogen.sh -$ ./configure -$ make +sh autogen.sh +./configure +make ``` To install the header files and libraries in `/usr/local`, execute the following command as an administrator, and provide that user's password when prompted: ```shell -$ sudo make install +sudo make install ``` Note that, by default, this will build components that only run on the CPU type you are building on, so `ppc` @@ -112,18 +126,18 @@ The following commands will build a release of iODBC that supports Mac OS X Leop Mac OS X Snow Leopard (10.6), on `ppc` (including as emulated by Rosetta), `x86`, and `x86_64`: ```shell -$ CFLAGS="-O -arch ppc -arch i386 -arch x86_64" -$ CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.5.sdk" -$ CFLAGS="$CFLAGS -mmacosx-version-min=10.5" -$ export CFLAGS +CFLAGS="-O -arch ppc -arch i386 -arch x86_64" +CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.5.sdk" +CFLAGS="$CFLAGS -mmacosx-version-min=10.5" +export CFLAGS -$ sh autogen.sh -$ ./configure \ +sh autogen.sh +./configure \ --disable-dependency-tracking \ --prefix=/usr/local/iODBC.universal -$ make -$ sudo make install +make +sudo make install ``` ### Mac OS X Lion (10.7) and OS X Mountain Lion (10.8) @@ -132,17 +146,17 @@ The following commands will build a release of iODBC that works on Mac OS X Lion and OS X Mountain Lion (10.8): ```shell -$ CFLAGS="-O -arch i386 -arch x86_64" -$ CFLAGS="$CFLAGS -mmacosx-version-min=10.7" -$ export CFLAGS +CFLAGS="-O -arch i386 -arch x86_64" +CFLAGS="$CFLAGS -mmacosx-version-min=10.7" +export CFLAGS -$ sh autogen.sh -$ ./configure \ +sh autogen.sh +./configure \ --disable-dependency-tracking \ --prefix=/usr/local/iODBC.universal -$ make -$ sudo make install +make +sudo make install ``` ### OS X Mavericks (10.9) through macOS Big Sur (11.x) on `x86` or `x86_64` (including Rosetta2 emulation) @@ -152,17 +166,17 @@ supporting other components built for `x86` (through macOS Mojave (10.14), where components) or `x86_64` (including Rosetta2 emulation): ```shell -$ CFLAGS="-O -arch i386 -arch x86_64" -$ CFLAGS="$CFLAGS -mmacosx-version-min=10.9" -$ export CFLAGS +CFLAGS="-O -arch i386 -arch x86_64" +CFLAGS="$CFLAGS -mmacosx-version-min=10.9" +export CFLAGS -$ sh autogen.sh -$ ./configure \ +sh autogen.sh +./configure \ --disable-dependency-tracking \ --prefix=/usr/local/iODBC.universal -$ make -$ sudo make install +$make +sudo make install ``` ### macOS Big Sur (11.x) through macOS Ventura (13.x) on `x86_64` (including Rosetta2 emulation) or `arm64` (Apple Silicon a/k/a M1 or M2) @@ -171,17 +185,17 @@ The following commands will build a release of iODBC that works on macOS Big Sur running on Intel (`x86_64`) or Apple Silicon (`arm64` a/k/a `M1` or `M2`): ```shell -$ CFLAGS="-O -arch arm64 -arch x86_64" -$ CFLAGS="$CFLAGS -mmacosx-version-min=10.9" -$ export CFLAGS +CFLAGS="-O -arch arm64 -arch x86_64" +CFLAGS="$CFLAGS -mmacosx-version-min=10.9" +export CFLAGS -$ sh autogen.sh -$ ./configure \ +sh autogen.sh +./configure \ --disable-dependency-tracking \ --prefix=/usr/local/iODBC.universal -$ make -$ sudo make install +make +sudo make install ``` ### Test DSN connection diff --git a/mac/GNUmakefile b/mac/GNUmakefile old mode 100644 new mode 100755 index 19f09d87..efbf37cd --- a/mac/GNUmakefile +++ b/mac/GNUmakefile @@ -73,7 +73,7 @@ # # iODBC VERSION # -IODBC_VERSION=3.52.16 +IODBC_VERSION=3.52.17 # @@ -101,6 +101,9 @@ xcodebuild_version := $(shell xcodebuild -version | grep -i Xcode | cut -d " " - # Common build settings # PROJBUILD := /usr/bin/xcodebuild -configuration $(MODEL) +DEPLOYMENT_TARGET := "10.13" +IODBC_UNI := "arm64 x86_64" +IODBC_X64 := "x86_64" IODBC_32BIT = "i386" @@ -113,12 +116,19 @@ endif # -# macOS 11.x (BigSur)does not have 32bit support +# macOS 11.x (BigSur) and later do not have 32bit support # -ifeq (11, $(findstring 11, $(macos_major))) +ifeq ($(shell test $(macos_version) -ge 11; echo $$?),0) IODBC_32BIT := "x86_64" endif +# +# Additional build flags for modern macOS +# +XCODE_FLAGS_UNI := MACOSX_DEPLOYMENT_TARGET=$(DEPLOYMENT_TARGET) ARCHS=$(IODBC_UNI) +XCODE_FLAGS_X64 := MACOSX_DEPLOYMENT_TARGET=$(DEPLOYMENT_TARGET) ARCHS=$(IODBC_X64) +PROJBUILD_UNI := $(PROJBUILD) $(XCODE_FLAGS_UNI) +PROJBUILD_X64 := $(PROJBUILD) $(XCODE_FLAGS_X64) # # Pass settings to xcodebuild @@ -131,17 +141,18 @@ export IODBC_VERSION IODBC_32BIT # all: check_supported include @echo "Building on macOS $(macos_version)" - @echo "Projbuild is [$(PROJBUILD)]" - cd iODBCinst; $(PROJBUILD) build - cd iODBC; $(PROJBUILD) build - cd iODBCtest; $(PROJBUILD) build - cd iODBCtestw; $(PROJBUILD) build - cd iODBCdrvproxy; $(PROJBUILD) build - cd iODBCadm; $(PROJBUILD) build - cd iODBCadministrator; $(PROJBUILD) build - cd iODBCadministrator64; $(PROJBUILD) build - cd iODBCdemo/DemoAnsi; $(PROJBUILD) build - cd iODBCdemo/DemoUnicode; $(PROJBUILD) build + @echo "Deployment Target is $(DEPLOYMENT_TARGET)" + @echo "Projbuild is [$(PROJBUILD_UNI)]" + cd iODBCinst; $(PROJBUILD_UNI) build + cd iODBC; $(PROJBUILD_UNI) build + cd iODBCtest; $(PROJBUILD_UNI) build + cd iODBCtestw; $(PROJBUILD_UNI) build + cd iODBCdrvproxy; $(PROJBUILD_UNI) build + cd iODBCadm; $(PROJBUILD_UNI) build + cd iODBCadministrator; $(PROJBUILD_UNI) build + cd iODBCadministrator64; $(PROJBUILD_X64) build + cd iODBCdemo/DemoAnsi; $(PROJBUILD_UNI) build + cd iODBCdemo/DemoUnicode; $(PROJBUILD_UNI) build # @@ -172,8 +183,8 @@ install: # -rm $(DESTDIR)/Library/Frameworks/iODBC.framework/Versions/Current -rm $(DESTDIR)/Library/Frameworks/iODBCinst.framework/Versions/Current - cd iODBCinst; $(PROJBUILD) install DSTROOT=$(DESTDIR)/ - cd iODBC; $(PROJBUILD) install DSTROOT=$(DESTDIR)/ + cd iODBCinst; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Library/Frameworks/ + cd iODBC; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Library/Frameworks/ # # Install /usr/local/iODBC # @@ -181,20 +192,20 @@ install: # # Install iODBC Administrator # - cd iODBCadministrator; $(PROJBUILD) install DSTROOT=$(DESTDIR)/ - cd iODBCadministrator64; $(PROJBUILD) install DSTROOT=$(DESTDIR)/ + cd iODBCadministrator; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Applications/iODBC; + cd iODBCadministrator64; $(PROJBUILD_X64) install DSTROOT=$(DESTDIR)/Applications/iODBC; # Next ones are a bit special as they need to be installed twice - cd iODBCadm; $(PROJBUILD) install DSTROOT=$(DESTDIR)/Library/Frameworks/iODBC.framework/Resources/ - cd iODBCadm; $(PROJBUILD) install DSTROOT=$(DESTDIR)/Library/Frameworks/iODBCinst.framework/Resources/ - cd iODBCdrvproxy; $(PROJBUILD) install DSTROOT=$(DESTDIR)/Library/Frameworks/iODBC.framework/Resources/ - cd iODBCdrvproxy; $(PROJBUILD) install DSTROOT=$(DESTDIR)/Library/Frameworks/iODBCinst.framework/Resources/ + cd iODBCadm; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Library/Frameworks/iODBC.framework/Resources/ + cd iODBCadm; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Library/Frameworks/iODBCinst.framework/Resources/ + cd iODBCdrvproxy; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Library/Frameworks/iODBC.framework/Resources/ + cd iODBCdrvproxy; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Library/Frameworks/iODBCinst.framework/Resources/ # # Install application # - cd iODBCdemo/DemoAnsi; $(PROJBUILD) install DSTROOT=$(DESTDIR)/ - cd iODBCdemo/DemoUnicode; $(PROJBUILD) install DSTROOT=$(DESTDIR)/ - cd iODBCtest; $(PROJBUILD) install DSTROOT=$(DESTDIR)/ - cd iODBCtestw; $(PROJBUILD) install DSTROOT=$(DESTDIR)/ + cd iODBCdemo/DemoAnsi; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Applications/iODBC + cd iODBCdemo/DemoUnicode; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Applications/iODBC + cd iODBCtest; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Library/Application\ Support/iODBC/bin + cd iODBCtestw; $(PROJBUILD_UNI) install DSTROOT=$(DESTDIR)/Library/Application\ Support/iODBC/bin # @@ -202,16 +213,16 @@ install: # clean: rm -rf include - cd iODBC; $(PROJBUILD) clean - cd iODBCinst; $(PROJBUILD) clean - cd iODBCtest; $(PROJBUILD) clean - cd iODBCtestw; $(PROJBUILD) clean - cd iODBCdrvproxy; $(PROJBUILD) clean - cd iODBCadm; $(PROJBUILD) clean - cd iODBCadministrator; $(PROJBUILD) clean - cd iODBCadministrator64; $(PROJBUILD) clean - cd iODBCdemo/DemoAnsi; $(PROJBUILD) clean - cd iODBCdemo/DemoUnicode; $(PROJBUILD) clean + cd iODBC; $(PROJBUILD_UNI) clean + cd iODBCinst; $(PROJBUILD_UNI) clean + cd iODBCtest; $(PROJBUILD_UNI) clean + cd iODBCtestw; $(PROJBUILD_UNI) clean + cd iODBCdrvproxy; $(PROJBUILD_UNI) clean + cd iODBCadm; $(PROJBUILD_UNI) clean + cd iODBCadministrator; $(PROJBUILD_UNI) clean + cd iODBCadministrator64; $(PROJBUILD_X64) clean + cd iODBCdemo/DemoAnsi; $(PROJBUILD_UNI) clean + cd iODBCdemo/DemoUnicode; $(PROJBUILD_UNI) clean realclean: clean diff --git a/mac/iODBC/iODBC.xcodeproj/project.pbxproj b/mac/iODBC/iODBC.xcodeproj/project.pbxproj index c06e49a6..523e7c61 100644 --- a/mac/iODBC/iODBC.xcodeproj/project.pbxproj +++ b/mac/iODBC/iODBC.xcodeproj/project.pbxproj @@ -712,9 +712,10 @@ ../../iodbc, ); INFOPLIST_FILE = "Info-iODBC.plist"; - INSTALL_PATH = /Library/Frameworks; + INSTALL_PATH = "."; /* set /Library/Frameworks makefile to avoid cycle errors */ + DYLIB_INSTALL_NAME_BASE = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.core; PRODUCT_NAME = iODBC; @@ -763,7 +764,8 @@ ../../iodbcinst, ); INFOPLIST_FILE = "Info-iODBC.plist"; - INSTALL_PATH = /Library/Frameworks; + INSTALL_PATH = "."; /* set /Library/Frameworks makefile to avoid cycle errors */ + DYLIB_INSTALL_NAME_BASE = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = "-fno-constant-cfstrings"; diff --git a/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj b/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index 1512bb92..201c91b4 --- a/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj +++ b/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj @@ -590,10 +590,11 @@ ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = "Info-iODBCadm.plist"; - INSTALL_PATH = /; + INSTALL_PATH = "."; /* set /Library/Frameworks makefile to avoid cycle errors */ + DYLIB_INSTALL_NAME_BASE = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = BUNDLE; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", @@ -642,10 +643,11 @@ ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = "Info-iODBCadm.plist"; - INSTALL_PATH = /; + INSTALL_PATH = "."; /* set /Library/Frameworks makefile to avoid cycle errors */ + DYLIB_INSTALL_NAME_BASE = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = Bundle; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", @@ -703,8 +705,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; - ONLY_ACTIVE_ARCH = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + ONLY_ACTIVE_ARCH = NO; STRIP_INSTALLED_PRODUCT = NO; }; name = Development; @@ -746,7 +748,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; STRIP_INSTALLED_PRODUCT = NO; }; name = Deployment; diff --git a/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj b/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index 82507500..572f1780 --- a/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj +++ b/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj @@ -29,7 +29,7 @@ 858A02D21B787ED900C8009C /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 858A02D41B787EE500C8009C /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 858A02D51B787EE500C8009C /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 858A02DB1B7883E300C8009C /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; + 858A02DB1B7883E300C8009C /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; 85D1BBC707E7D7C90070A59E /* iODBC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = iODBC.framework; path = ../../mac/iODBC/build/iODBC.framework; sourceTree = SOURCE_ROOT; }; CDAE3B890987D655003250F8 /* Info-iODBC_Administrator.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-iODBC_Administrator.plist"; sourceTree = ""; }; CDAE3B8A0987D655003250F8 /* iODBC Administrator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iODBC Administrator.app"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -164,7 +164,7 @@ dependencies = ( ); name = "iODBC Administrator"; - productInstallPath = /Applications/iODBC; + productInstallPath = ""; /* set /Applications/iODBC in makefile to avoid cycle error */ productName = "iODBC Administrator"; productReference = CDAE3B8A0987D655003250F8 /* iODBC Administrator.app */; productType = "com.apple.product-type.application"; @@ -282,16 +282,16 @@ CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; - DEPLOYMENT_POSTPROCESSING = YES; - DYLIB_COMPATIBILITY_VERSION = ""; + /* DEPLOYMENT_POSTPROCESSING = YES; */ + /* DYLIB_COMPATIBILITY_VERSION = ""; */ DYLIB_CURRENT_VERSION = $IODBC_VERSION; FRAMEWORK_SEARCH_PATHS = ( - ../../mac/iODBC/build/Deployment, + ../../mac/iODBC/build/Development, ../../mac/iODBC/build, - ../../mac/iODBCinst/build/Deployment, + ../../mac/iODBCinst/build/Development, ../../mac/iODBCinst/build, ); - FRAMEWORK_VERSION = 3.52; + /* FRAMEWORK_VERSION = 3.52; */ GCC_DYNAMIC_NO_PIC = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; @@ -302,9 +302,9 @@ ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; - INSTALL_PATH = /Applications/iODBC; + INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -317,7 +317,7 @@ PRODUCT_NAME = "iODBC Administrator"; RESMERGER_SOURCES_FORK = data; SECTORDER_FLAGS = ""; - SKIP_INSTALL = YES; + SKIP_INSTALL = NO; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", @@ -352,9 +352,9 @@ ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; - INSTALL_PATH = /Applications/iODBC; + INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -366,6 +366,7 @@ PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.iODBCAdministrator; PRODUCT_NAME = "iODBC Administrator"; SECTORDER_FLAGS = ""; + SKIP_INSTALL = NO; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", @@ -411,8 +412,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; - ONLY_ACTIVE_ARCH = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + ONLY_ACTIVE_ARCH = NO; }; name = Development; }; @@ -450,7 +451,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; }; name = Deployment; }; diff --git a/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj b/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index 69296bdf..a2c16043 --- a/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj +++ b/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj @@ -29,7 +29,7 @@ 858A02D21B787ED900C8009C /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 858A02D41B787EE500C8009C /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 858A02D51B787EE500C8009C /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 858A02DB1B7883E300C8009C /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; + 858A02DB1B7883E300C8009C /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; 85D1BBC707E7D7C90070A59E /* iODBC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = iODBC.framework; path = ../../mac/iODBC/build/iODBC.framework; sourceTree = SOURCE_ROOT; }; CD75BBFB2637000B00ED5683 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = ../Base.lproj/MainMenu.xib; sourceTree = ""; }; CD75BBFC2637001000ED5683 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../en.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -164,7 +164,7 @@ dependencies = ( ); name = "iODBC Administrator64"; - productInstallPath = /Applications/iODBC; + productInstallPath = ""; /* set /Applications/iODBC in makefile to avoid cycle errors */ productName = "iODBC Administrator64"; productReference = CDAE3B8A0987D655003250F8 /* iODBC Administrator64.app */; productType = "com.apple.product-type.application"; @@ -283,9 +283,9 @@ DYLIB_COMPATIBILITY_VERSION = ""; DYLIB_CURRENT_VERSION = $IODBC_VERSION; FRAMEWORK_SEARCH_PATHS = ( - ../../mac/iODBC/build/Deployment, + ../../mac/iODBC/build/Development, ../../mac/iODBC/build, - ../../mac/iODBCinst/build/Deployment, + ../../mac/iODBCinst/build/Development, ../../mac/iODBCinst/build, ); FRAMEWORK_VERSION = 3.52; @@ -299,9 +299,9 @@ ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; - INSTALL_PATH = /Applications/iODBC; + INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle errors */ LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -314,7 +314,7 @@ PRODUCT_NAME = "iODBC Administrator64"; RESMERGER_SOURCES_FORK = data; SECTORDER_FLAGS = ""; - SKIP_INSTALL = YES; + SKIP_INSTALL = NO; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", @@ -346,9 +346,9 @@ ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; - INSTALL_PATH = /Applications/iODBC; + INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle errors */ LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -360,6 +360,7 @@ PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.iODBCAdministrator64; PRODUCT_NAME = "iODBC Administrator64"; SECTORDER_FLAGS = ""; + SKIP_INSTALL = NO; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", @@ -402,7 +403,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH = YES; }; name = Development; @@ -438,7 +439,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; }; name = Deployment; }; diff --git a/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj b/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index e46b4748..1cd81048 --- a/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj +++ b/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj @@ -152,7 +152,7 @@ dependencies = ( ); name = "iODBC Demo Ansi"; - productInstallPath = /Applications/iODBC; + productInstallPath = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ productName = "iODBC Demo Ansi"; productReference = CD7C37B70A063F40001A43B7 /* iODBC Demo Ansi.app */; productType = "com.apple.product-type.application"; @@ -293,9 +293,9 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( - ../../mac/iODBC/build/Deployment, + ../../mac/iODBC/build/Development, ../../mac/iODBC/build, - ../../mac/iODBCinst/build/Deployment, + ../../mac/iODBCinst/build/Development, ../../mac/iODBCinst/build, ); GCC_NO_COMMON_BLOCKS = YES; @@ -306,8 +306,8 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ../../include; - MACOSX_DEPLOYMENT_TARGET = 10.9; - ONLY_ACTIVE_ARCH = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + ONLY_ACTIVE_ARCH = NO; }; name = Development; }; @@ -353,7 +353,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ../../include; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; }; name = Deployment; }; @@ -364,9 +364,9 @@ CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = ( - ../../../mac/iODBC/build/Deployment, + ../../../mac/iODBC/build/Development, ../../../mac/iODBC/build, - ../../../mac/iODBCinst/build/Deployment, + ../../../mac/iODBCinst/build/Development, ../../../mac/iODBCinst/build, ); GCC_DYNAMIC_NO_PIC = NO; @@ -374,7 +374,7 @@ GCC_OPTIMIZATION_LEVEL = 0; HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoAnsi.plist; - INSTALL_PATH = /Applications/iODBC; + INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-ansi"; PRODUCT_NAME = "iODBC Demo Ansi"; WRAPPER_EXTENSION = app; @@ -396,9 +396,10 @@ GCC_MODEL_TUNING = G5; HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoAnsi.plist; - INSTALL_PATH = /Applications/iODBC; + INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-ansi"; PRODUCT_NAME = "iODBC Demo Ansi"; + SKIP_INSTALL = NO; WRAPPER_EXTENSION = app; }; name = Deployment; diff --git a/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj b/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index 1dd1fa1a..e7667bc6 --- a/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj +++ b/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj @@ -166,7 +166,7 @@ dependencies = ( ); name = "iODBC Demo Unicode"; - productInstallPath = /Applications/iODBC; + productInstallPath = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ productName = "iODBC Demo Unicode"; productReference = 8D1107320486CEB800E47090 /* iODBC Demo Unicode.app */; productType = "com.apple.product-type.application"; @@ -290,9 +290,9 @@ CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = ( - ../../../mac/iODBC/build/Deployment, + ../../../mac/iODBC/build/Development, ../../../mac/iODBC/build, - ../../../mac/iODBCinst/build/Deployment, + ../../../mac/iODBCinst/build/Development, ../../../mac/iODBCinst/build, ); GCC_DYNAMIC_NO_PIC = NO; @@ -300,7 +300,7 @@ GCC_OPTIMIZATION_LEVEL = 0; HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoUnicode.plist; - INSTALL_PATH = /Applications/iODBC; + INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ OTHER_CFLAGS = "-DUNICODE"; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-unicode"; PRODUCT_NAME = "iODBC Demo Unicode"; @@ -328,10 +328,11 @@ GCC_MODEL_TUNING = G5; HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoUnicode.plist; - INSTALL_PATH = /Applications/iODBC; + INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ OTHER_CFLAGS = "-DUNICODE"; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-unicode"; PRODUCT_NAME = "iODBC Demo Unicode"; + SKIP_INSTALL = NO; WRAPPER_EXTENSION = app; }; name = Deployment; @@ -366,9 +367,9 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( - ../../../mac/iODBC/build/Deployment, + ../../../mac/iODBC/build/Development, ../../../mac/iODBC/build, - ../../../mac/iODBCinst/build/Deployment, + ../../../mac/iODBCinst/build/Development, ../../../mac/iODBCinst/build, ); GCC_NO_COMMON_BLOCKS = YES; @@ -379,8 +380,8 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ../../include; - MACOSX_DEPLOYMENT_TARGET = 10.9; - ONLY_ACTIVE_ARCH = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + ONLY_ACTIVE_ARCH = NO; }; name = Development; }; @@ -426,7 +427,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ../../include; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; }; name = Deployment; }; diff --git a/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj b/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index 543b9618..24af4f41 --- a/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj +++ b/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj @@ -402,7 +402,7 @@ INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = Bundle; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", @@ -453,7 +453,7 @@ INFOPLIST_FILE = "Info-iODBCdrvproxy.plist"; INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( "-multiply_defined", @@ -511,8 +511,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; - ONLY_ACTIVE_ARCH = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ""; STRIP_INSTALLED_PRODUCT = NO; }; @@ -553,7 +553,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = ""; }; name = Deployment; diff --git a/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj b/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index 4e16d689..46092f5f --- a/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj +++ b/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj @@ -66,7 +66,7 @@ 71DF013606A3E372007AF56B /* iodbcunix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = iodbcunix.h; path = ../../include/iodbcunix.h; sourceTree = SOURCE_ROOT; }; 7C530B5E07F075A7000BBF8D /* unicode.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = unicode.c; path = ../../iodbcinst/unicode.c; sourceTree = SOURCE_ROOT; }; 7C530B6007F075D3000BBF8D /* unicode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = unicode.h; path = ../../iodbcinst/unicode.h; sourceTree = SOURCE_ROOT; }; - CD2616E108B138FD00D9BE06 /* iodbcinst.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = iodbcinst.h; path = ../include/iodbcinst.h; sourceTree = SOURCE_ROOT; }; + CD2616E108B138FD00D9BE06 /* iodbcinst.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = iodbcinst.h; path = ../../include/iodbcinst.h; sourceTree = SOURCE_ROOT; }; CD9487182636F68B00DBD85F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../en.lproj/InfoPlist.strings; sourceTree = ""; }; CDAE3B100987CDA2003250F8 /* Info-iODBCinst.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-iODBCinst.plist"; sourceTree = ""; }; CDAE3B110987CDA2003250F8 /* iODBCinst.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = iODBCinst.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -284,8 +284,8 @@ buildConfigurationList = CDAE3B0C0987CDA2003250F8 /* Build configuration list for PBXNativeTarget "iODBCinst" */; buildPhases = ( CDAE3AD20987CDA2003250F8 /* Headers */, - CDAE3AE30987CDA2003250F8 /* Resources */, CDAE3AE50987CDA2003250F8 /* Sources */, + CDAE3AE30987CDA2003250F8 /* Resources */, CDAE3B090987CDA2003250F8 /* Frameworks */, CDAE3B0B0987CDA2003250F8 /* Rez */, ); @@ -294,7 +294,7 @@ dependencies = ( ); name = iODBCinst; - productInstallPath = /Library/Frameworks; + productInstallPath = "."; /* set /Library/Frameworks makefile to avoid cycle errors */ productName = iODBCinst; productReference = CDAE3B110987CDA2003250F8 /* iODBCinst.framework */; productType = "com.apple.product-type.framework"; @@ -444,8 +444,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; - ONLY_ACTIVE_ARCH = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + ONLY_ACTIVE_ARCH = NO; }; name = Development; }; @@ -484,7 +484,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; }; name = Deployment; }; @@ -516,9 +516,10 @@ ../../iodbc, ); INFOPLIST_FILE = "Info-iODBCinst.plist"; - INSTALL_PATH = /Library/Frameworks; + INSTALL_PATH = "."; /* set /Library/Frameworks makefile to avoid cycle errors */ + DYLIB_INSTALL_NAME_BASE = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.inst; PRODUCT_NAME = iODBCinst; @@ -561,9 +562,10 @@ ../../iodbc, ); INFOPLIST_FILE = "Info-iODBCinst.plist"; - INSTALL_PATH = /Library/Frameworks; + INSTALL_PATH = "."; /* set /Library/Frameworks makefile to avoid cycle errors */ + DYLIB_INSTALL_NAME_BASE = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.inst; PRODUCT_NAME = iODBCinst; diff --git a/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj b/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index fd26f297..380e4e30 --- a/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj +++ b/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj @@ -95,7 +95,7 @@ dependencies = ( ); name = iodbctest; - productInstallPath = "/Library/Application Support/iODBC/bin"; + productInstallPath = "."; /* set "/Library/Application Support/iODBC/bin" in makefile to avoid cycle error */ productName = iodbctest; productReference = CDAE3B380987CEF4003250F8 /* iodbctest */; productType = "com.apple.product-type.tool"; @@ -172,7 +172,7 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ""; HEADER_SEARCH_PATHS = ../../include; - INSTALL_PATH = "/Library/Application Support/iODBC/bin"; + INSTALL_PATH = "."; /* set "/Library/Application Support/iODBC/bin" in makefile to avoid cycle error */ LIBRARY_SEARCH_PATHS = ""; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; @@ -207,7 +207,7 @@ GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; HEADER_SEARCH_PATHS = ../../include; - INSTALL_PATH = "/Library/Application Support/iODBC/bin"; + INSTALL_PATH = "."; /* set "/Library/Application Support/iODBC/bin" in makefile to avoid cycle error */ LIBRARY_SEARCH_PATHS = ""; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; @@ -259,8 +259,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; - ONLY_ACTIVE_ARCH = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + ONLY_ACTIVE_ARCH = NO; }; name = Development; }; @@ -298,7 +298,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; }; name = Deployment; }; diff --git a/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj b/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index 329a9d78..debda924 --- a/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj +++ b/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj @@ -95,7 +95,7 @@ dependencies = ( ); name = iodbctestw; - productInstallPath = "/Library/Application Support/iODBC/bin"; + productInstallPath = "."; /* set "/Library/Application Support/iODBC/bin" in makefile to avoid cycle error */ productName = iodbctestw; productReference = CDAE3B5A0987CF60003250F8 /* iodbctestw */; productType = "com.apple.product-type.tool"; @@ -172,7 +172,7 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = UNICODE; HEADER_SEARCH_PATHS = ../../include; - INSTALL_PATH = "/Library/Application Support/iODBC/bin"; + INSTALL_PATH = "."; /* set "/Library/Application Support/iODBC/bin" in makefile to avoid cycle error */ LIBRARY_SEARCH_PATHS = ""; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; @@ -206,7 +206,7 @@ GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; HEADER_SEARCH_PATHS = ../../include; - INSTALL_PATH = "/Library/Application Support/iODBC/bin"; + INSTALL_PATH = "."; /* set "/Library/Application Support/iODBC/bin" in makefile to avoid cycle error */ LIBRARY_SEARCH_PATHS = ""; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; @@ -258,8 +258,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; - ONLY_ACTIVE_ARCH = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + ONLY_ACTIVE_ARCH = NO; }; name = Development; }; @@ -297,7 +297,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.13; }; name = Deployment; }; From d2dbea4c837c767388239b67a77e141141e7092d Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Tue, 4 Feb 2025 23:19:19 +0100 Subject: [PATCH 04/13] Update README_MACOSX.md Co-authored-by: Ted Thibodeau Jr --- README_MACOSX.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_MACOSX.md b/README_MACOSX.md index 456ebd86..7eaf8666 100755 --- a/README_MACOSX.md +++ b/README_MACOSX.md @@ -22,7 +22,7 @@ cd mac make ``` -In case there are errors first try to clean up temporary files: +If there are errors, first try to clean up temporary files: ```shell sudo make clean From 04e6de24f7f0f08e3f05f03aa1aab2bab7cb00fe Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Tue, 4 Feb 2025 23:19:29 +0100 Subject: [PATCH 05/13] Update README_MACOSX.md Co-authored-by: Ted Thibodeau Jr --- README_MACOSX.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_MACOSX.md b/README_MACOSX.md index 7eaf8666..9eab7122 100755 --- a/README_MACOSX.md +++ b/README_MACOSX.md @@ -34,7 +34,7 @@ After building the iODBC libraries and applications, you have to install them on sudo make install ``` -For generating and installing a development build with debug symbols run: +To generate and install a development build with debug symbols, run: ```shell sudo make realclean From a13be0c7aa3f06fbea987aa85c5173af466a4499 Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Wed, 5 Feb 2025 17:07:05 +0100 Subject: [PATCH 06/13] Development build debugging fixes --- .gitignore | 5 +++++ mac/GNUmakefile | 12 ++++++++++++ mac/iODBC/iODBC.xcodeproj/project.pbxproj | 6 +++++- mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj | 14 +++++++++----- .../iODBCadministrator.xcodeproj/project.pbxproj | 10 +++++++--- .../iODBCadministrator64.xcodeproj/project.pbxproj | 10 +++++++--- .../DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj | 9 ++++++++- .../DemoUnicode.xcodeproj/project.pbxproj | 7 +++++++ .../iODBCdrvproxy.xcodeproj/project.pbxproj | 10 +++++++--- mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj | 6 +++++- mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj | 9 +++++++-- .../iODBCtestw.xcodeproj/project.pbxproj | 10 ++++++++-- 12 files changed, 87 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 2534cd21..92bea7ac 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,8 @@ mac/iODBCtest/build/ mac/iODBCtestw/build/ mac/include/ mac/**/xcuserdata/ + +# +# IDE configuration files +# +.idea/ \ No newline at end of file diff --git a/mac/GNUmakefile b/mac/GNUmakefile index d371a289..4eee2ae1 100755 --- a/mac/GNUmakefile +++ b/mac/GNUmakefile @@ -135,6 +135,18 @@ PROJBUILD_X64 := $(PROJBUILD) $(XCODE_FLAGS_X64) # export IODBC_VERSION IODBC_32BIT +# +# Enable debug symbols for Development builds +# +ifeq ($(MODEL), Development) + CFLAGS += -g -O0 + CXXFLAGS += -g -O0 + LDFLAGS += -g +else + CFLAGS += -O2 + CXXFLAGS += -O2 +endif + # # Build the libraries diff --git a/mac/iODBC/iODBC.xcodeproj/project.pbxproj b/mac/iODBC/iODBC.xcodeproj/project.pbxproj index 523e7c61..aacc07d8 100644 --- a/mac/iODBC/iODBC.xcodeproj/project.pbxproj +++ b/mac/iODBC/iODBC.xcodeproj/project.pbxproj @@ -691,6 +691,7 @@ CURRENT_PROJECT_VERSION = $IODBC_VERSION; DYLIB_COMPATIBILITY_VERSION = 1.0.0; DYLIB_CURRENT_VERSION = $IODBC_VERSION; + ENABLE_NS_ASSERTIONS = YES; EXPORTED_SYMBOLS_FILE = ""; FRAMEWORK_SEARCH_PATHS = ( ../../mac/iODBCinst/build/Development, @@ -698,13 +699,15 @@ ); FRAMEWORK_VERSION = 3.52; GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEBUGGING = YES; GCC_PREPROCESSOR_DEFINITIONS = ( _REENTRANT, WITH_PTHREADS, _MACX, IODBC_COCOA, + "DEBUG=1", ); HEADER_SEARCH_PATHS = ( ../../include, @@ -715,6 +718,7 @@ INSTALL_PATH = "."; /* set /Library/Frameworks makefile to avoid cycle errors */ DYLIB_INSTALL_NAME_BASE = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; + LLVM_LTO = NO; MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.core; diff --git a/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj b/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj index 201c91b4..ad2aaa5d 100755 --- a/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj +++ b/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj @@ -565,11 +565,12 @@ x86_64, ); CLANG_ENABLE_OBJC_WEAK = YES; - COPY_PHASE_STRIP = YES; + COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = $IODBC_VERSION; - DEPLOYMENT_POSTPROCESSING = YES; - DYLIB_COMPATIBILITY_VERSION = 1.0.0; + /* DEPLOYMENT_POSTPROCESSING = YES; */ + /DYLIB_COMPATIBILITY_VERSION = 1.0.0; DYLIB_CURRENT_VERSION = $IODBC_VERSION; + ENABLE_NS_ASSERTIONS = YES; EXPORTED_SYMBOLS_FILE = ../../mac/iodbcadm.exp; FRAMEWORK_SEARCH_PATHS = ( ../../mac/iODBCinst/build/Development, @@ -580,13 +581,15 @@ FRAMEWORK_VERSION = 3.52; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_TRIGRAPHS = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_OPTIMIZATION_LEVEL = 2; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEBUGGING = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "ODBCVER=0x351", _MACX, IODBC_COCOA, + "DEBUG=1", ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = "Info-iODBCadm.plist"; @@ -594,6 +597,7 @@ DYLIB_INSTALL_NAME_BASE = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = BUNDLE; + LLVM_LTO = NO; MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( diff --git a/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj b/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj index 572f1780..33db836e 100755 --- a/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj +++ b/mac/iODBCadministrator/iODBCadministrator.xcodeproj/project.pbxproj @@ -280,11 +280,12 @@ ); CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = YES; + COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = $IODBC_VERSION; /* DEPLOYMENT_POSTPROCESSING = YES; */ /* DYLIB_COMPATIBILITY_VERSION = ""; */ DYLIB_CURRENT_VERSION = $IODBC_VERSION; + ENABLE_NS_ASSERTIONS = YES; FRAMEWORK_SEARCH_PATHS = ( ../../mac/iODBC/build/Development, ../../mac/iODBC/build, @@ -293,17 +294,20 @@ ); /* FRAMEWORK_VERSION = 3.52; */ GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_OPTIMIZATION_LEVEL = 2; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEBUGGING = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "DATEBUILD=`date`", "ODBCVER=0x351", _MACX, + "DEBUG=1", ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ LIBRARY_SEARCH_PATHS = ""; + LLVM_LTO = NO; MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; diff --git a/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj b/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj index a2c16043..0743f32a 100755 --- a/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj +++ b/mac/iODBCadministrator64/iODBCadministrator64.xcodeproj/project.pbxproj @@ -277,11 +277,12 @@ ARCHS = x86_64; CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = YES; + COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = $IODBC_VERSION; DEPLOYMENT_POSTPROCESSING = YES; DYLIB_COMPATIBILITY_VERSION = ""; DYLIB_CURRENT_VERSION = $IODBC_VERSION; + ENABLE_NS_ASSERTIONS = YES; FRAMEWORK_SEARCH_PATHS = ( ../../mac/iODBC/build/Development, ../../mac/iODBC/build, @@ -290,17 +291,20 @@ ); FRAMEWORK_VERSION = 3.52; GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_OPTIMIZATION_LEVEL = 2; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEBUGGING = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "DATEBUILD=`date`", "ODBCVER=0x351", _MACX, + "DEBUG=1", ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = "Info-iODBC_Administrator.plist"; INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle errors */ LIBRARY_SEARCH_PATHS = ""; + LLVM_LTO = NO; MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; OTHER_CFLAGS = ""; diff --git a/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj b/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj index 1cd81048..155846cc 100755 --- a/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj +++ b/mac/iODBCdemo/DemoAnsi/DemoAnsi.xcodeproj/project.pbxproj @@ -363,6 +363,7 @@ CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; + ENABLE_NS_ASSERTIONS = YES; FRAMEWORK_SEARCH_PATHS = ( ../../../mac/iODBC/build/Development, ../../../mac/iODBC/build, @@ -370,11 +371,17 @@ ../../../mac/iODBCinst/build, ); GCC_DYNAMIC_NO_PIC = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEBUGGING = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoAnsi.plist; INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ + LLVM_LTO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-ansi"; PRODUCT_NAME = "iODBC Demo Ansi"; WRAPPER_EXTENSION = app; @@ -392,7 +399,7 @@ ../../../mac/iODBCinst/build/Deployment, ../../../mac/iODBCinst/build, ); - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_MODEL_TUNING = G5; HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoAnsi.plist; diff --git a/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj b/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj index e7667bc6..a4a3e934 100755 --- a/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj +++ b/mac/iODBCdemo/DemoUnicode/DemoUnicode.xcodeproj/project.pbxproj @@ -289,6 +289,7 @@ CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; + ENABLE_NS_ASSERTIONS = YES; FRAMEWORK_SEARCH_PATHS = ( ../../../mac/iODBC/build/Development, ../../../mac/iODBC/build, @@ -296,11 +297,17 @@ ../../../mac/iODBCinst/build, ); GCC_DYNAMIC_NO_PIC = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEBUGGING = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + ); HEADER_SEARCH_PATHS = ../../include; INFOPLIST_FILE = InfoUnicode.plist; INSTALL_PATH = "."; /* set /Applications/iODBC in makefile to avoid cycle error */ + LLVM_LTO = NO; OTHER_CFLAGS = "-DUNICODE"; PRODUCT_BUNDLE_IDENTIFIER = "com.openlinksw.iodbcdemo-unicode"; PRODUCT_NAME = "iODBC Demo Unicode"; diff --git a/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj b/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj index 24af4f41..4d37299e 100755 --- a/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj +++ b/mac/iODBCdrvproxy/iODBCdrvproxy.xcodeproj/project.pbxproj @@ -374,12 +374,13 @@ x86_64, ); CLANG_ENABLE_OBJC_WEAK = YES; - COPY_PHASE_STRIP = YES; + COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = $IODBC_VERSION; "Current project version" = $IODBC_VERSION; DEPLOYMENT_POSTPROCESSING = YES; DYLIB_COMPATIBILITY_VERSION = 1.0.0; DYLIB_CURRENT_VERSION = $IODBC_VERSION; + ENABLE_NS_ASSERTIONS = YES; EXPORTED_SYMBOLS_FILE = ../../mac/drvproxy.exp; FRAMEWORK_SEARCH_PATHS = ( ../../mac/iODBCinst/build/Development, @@ -387,12 +388,14 @@ ); FRAMEWORK_VERSION = 3.52; GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_OPTIMIZATION_LEVEL = 2; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEBUGGING = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "ODBCVER=0x351", _MACX, IODBC_COCOA, + "DEBUG=1", ); HEADER_SEARCH_PATHS = ( ../../include, @@ -402,6 +405,7 @@ INSTALL_PATH = /; LIBRARY_SEARCH_PATHS = ""; LIBRARY_STYLE = Bundle; + LLVM_LTO = NO; MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; OTHER_LDFLAGS = ( diff --git a/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj b/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj index 46092f5f..2acd5677 100755 --- a/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj +++ b/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj @@ -496,6 +496,7 @@ CURRENT_PROJECT_VERSION = $IODBC_VERSION; DYLIB_COMPATIBILITY_VERSION = 1.0.0; DYLIB_CURRENT_VERSION = $IODBC_VERSION; + ENABLE_NS_ASSERTIONS = YES; EXPORTED_SYMBOLS_FILE = ../../mac/iodbcinst.exp; FRAMEWORK_SEARCH_PATHS = ( ../../mac/iODBC/build/Deployment, @@ -503,12 +504,14 @@ ); FRAMEWORK_VERSION = 3.52; GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEBUGGING = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "ODBCVER=0x351", _MACX, IODBC_COCOA, + "DEBUG=1", ); HEADER_SEARCH_PATHS = ( ../../include, @@ -519,6 +522,7 @@ INSTALL_PATH = "."; /* set /Library/Frameworks makefile to avoid cycle errors */ DYLIB_INSTALL_NAME_BASE = /Library/Frameworks; LIBRARY_SEARCH_PATHS = ""; + LLVM_LTO = NO; MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-fno-constant-cfstrings"; PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.inst; diff --git a/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj b/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj index 380e4e30..02890b43 100755 --- a/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj +++ b/mac/iODBCtest/iODBCtest.xcodeproj/project.pbxproj @@ -160,6 +160,7 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = $IODBC_VERSION; DYLIB_CURRENT_VERSION = $IODBC_VERSION; + ENABLE_NS_ASSERTIONS = YES; FRAMEWORK_SEARCH_PATHS = ( ../../mac/iODBC/build/Development, ../../mac/iODBC/build, @@ -168,12 +169,16 @@ ); FRAMEWORK_VERSION = 3.52; GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ""; + GCC_PREPROCESSOR_DEBUGGING = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + ); HEADER_SEARCH_PATHS = ../../include; INSTALL_PATH = "."; /* set "/Library/Application Support/iODBC/bin" in makefile to avoid cycle error */ LIBRARY_SEARCH_PATHS = ""; + LLVM_LTO = NO; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = iodbctest; diff --git a/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj b/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj index debda924..4e811c21 100755 --- a/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj +++ b/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj @@ -160,6 +160,7 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = $IODBC_VERSION; DYLIB_CURRENT_VERSION = $IODBC_VERSION; + ENABLE_NS_ASSERTIONS = YES; FRAMEWORK_SEARCH_PATHS = ( ../../mac/iODBC/build/Development, ../../mac/iODBC/build, @@ -168,12 +169,17 @@ ); FRAMEWORK_VERSION = 3.52; GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = UNICODE; + GCC_PREPROCESSOR_DEBUGGING = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + UNICODE, + "DEBUG=1", + ); HEADER_SEARCH_PATHS = ../../include; INSTALL_PATH = "."; /* set "/Library/Application Support/iODBC/bin" in makefile to avoid cycle error */ LIBRARY_SEARCH_PATHS = ""; + LLVM_LTO = NO; OTHER_CFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = iodbctestw; From 69dd5141a4e4fc001dd057d6382096511151e983 Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Fri, 28 Feb 2025 00:00:49 +0100 Subject: [PATCH 07/13] let test DSN also apply odbc.ini parameters --- iodbcadm/mac/Helpers.m | 53 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/iodbcadm/mac/Helpers.m b/iodbcadm/mac/Helpers.m index dfa50bca..10f77571 100644 --- a/iodbcadm/mac/Helpers.m +++ b/iodbcadm/mac/Helpers.m @@ -322,7 +322,7 @@ void addDrivers_to_list(NSArrayController* list) _drv_u8 = (char *) conv_NSString_to_char(a_drv); if (_drv_u8 == NULL) goto skip; - + if ((handle = DLL_OPEN(_drv_u8)) != NULL) { if ((allocHdl = (pSQLAllocHandle)DLL_PROC(handle, "SQLAllocHandle")) != NULL) @@ -718,12 +718,57 @@ void test_dsn(BOOL systemDSN, NSString *dsn, NSString *driver) wchar_t *szDSN = conv_NSString_to_wchar(dsn); wchar_t *szDriver = conv_NSString_to_wchar(driver); wchar_t connstr[4096] = { L'\0' }, outconnstr[4096] = { L'\0' }; + wchar_t tokenstr[4096] = { L'\0' }; HENV henv; HDBC hdbc; SWORD buflen; - + size_t offset = 0; if (szDSN && szDriver){ + /* Start with basic DSN */ + WCSCPY(connstr, L"DSN="); + WCSCAT(connstr, szDSN); + offset = WCSLEN(connstr); + + /* Set configuration mode once before reading parameters */ + SQLSetConfigMode(systemDSN ? ODBC_SYSTEM_DSN : ODBC_USER_DSN); + + /* Explicitly read parameters from odbc.ini */ + if (SQLGetPrivateProfileStringW(szDSN, NULL, L"", + tokenstr, sizeof(tokenstr)/sizeof(wchar_t), L"odbc.ini")) + { + /* Add each parameter to the connection string with semicolons */ + for (wchar_t *paramName = tokenstr; *paramName != L'\0'; paramName += (WCSLEN(paramName) + 1)) { + wchar_t valueBuf[1024] = { L'\0' }; + + /* Skip "Driver" parameter if present in odbc.ini */ + if (WCSCASEEQ(paramName, L"Driver")) + continue; + + /* Get the value for this parameter */ + SQLGetPrivateProfileStringW(szDSN, paramName, L"", + valueBuf, sizeof(valueBuf)/sizeof(wchar_t), + L"odbc.ini"); + + /* Add semicolon before next parameter */ + connstr[offset++] = L';'; + + /* Copy parameter name */ + WCSCPY(connstr + offset, paramName); + offset += WCSLEN(paramName); + + /* Add equals sign */ + connstr[offset++] = L'='; + + /* Copy value */ + WCSCPY(connstr + offset, valueBuf); + offset += WCSLEN(valueBuf); + } + + /* Ensure string is properly terminated */ + connstr[offset] = L'\0'; + } + /* Make the connection */ #if (ODBCVER < 0x300) if (SQLAllocEnv (&henv) != SQL_SUCCESS) @@ -753,10 +798,6 @@ void test_dsn(BOOL systemDSN, NSString *dsn, NSString *driver) goto done; } - WCSCPY(connstr, L"DSN="); - WCSCAT(connstr, szDSN); - - SQLSetConfigMode (systemDSN?ODBC_SYSTEM_DSN: ODBC_USER_DSN); if (SQLDriverConnectW (hdbc, (void*)1L, connstr, SQL_NTS, outconnstr, sizeof (outconnstr) / sizeof(wchar_t), &buflen, SQL_DRIVER_PROMPT) != SQL_SUCCESS) From b1a71d899988bf0f015d02fd190256654a928118 Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Fri, 28 Feb 2025 00:05:50 +0100 Subject: [PATCH 08/13] debugging fixes --- mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj | 6 ++++-- mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj b/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj index ad2aaa5d..fb1642ca 100755 --- a/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj +++ b/mac/iODBCadm/iODBCadm.xcodeproj/project.pbxproj @@ -608,8 +608,10 @@ PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.adm; PRODUCT_NAME = iODBCadm; SECTORDER_FLAGS = ""; - SKIP_INSTALL = YES; - STRIPFLAGS = "-u -r -s ../../mac/iodbcadm.exp"; + SKIP_INSTALL = NO; + /* STRIPFLAGS = "-u -r -s ../../mac/iodbcadm.exp"; */ + STRIP_INSTALLED_PRODUCT = NO; + STRIP_STYLE = none; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", diff --git a/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj b/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj index 2acd5677..3deb3b8c 100755 --- a/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj +++ b/mac/iODBCinst/iODBCinst.xcodeproj/project.pbxproj @@ -524,11 +524,15 @@ LIBRARY_SEARCH_PATHS = ""; LLVM_LTO = NO; MACOSX_DEPLOYMENT_TARGET = 10.13; - OTHER_CFLAGS = "-fno-constant-cfstrings"; + OTHER_CFLAGS = ( + "-fno-constant-cfstrings", + ); PRODUCT_BUNDLE_IDENTIFIER = org.iodbc.inst; PRODUCT_NAME = iODBCinst; RESMERGER_SOURCES_FORK = data; SECTORDER_FLAGS = ""; + STRIP_INSTALLED_PRODUCT = NO; + STRIP_STYLE = none; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", From 75403d185e33e51265e961bbdca0367ded57b55e Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Fri, 21 Mar 2025 00:13:10 +0100 Subject: [PATCH 09/13] memory leak fix, copy DSN parameters on driver complete dialog --- drvproxy/mac/IODBCProxy_LoginController.m | 5 +- iodbcadm/drvconn.c | 58 +++++++++++++++++++++-- iodbcadm/mac/Helpers.m | 5 +- 3 files changed, 61 insertions(+), 7 deletions(-) diff --git a/drvproxy/mac/IODBCProxy_LoginController.m b/drvproxy/mac/IODBCProxy_LoginController.m index e4435bf4..16efed47 100644 --- a/drvproxy/mac/IODBCProxy_LoginController.m +++ b/drvproxy/mac/IODBCProxy_LoginController.m @@ -97,13 +97,16 @@ BOOL showLogin(const char* title, const char *username, const char *password, TL NSInteger rc = [app runModalForWindow:dlg.window]; [dlg.window orderOut:dlg.window]; + + BOOL result = FALSE; if (log_t && rc == 1){ log_t->user = (char*)conv_NSString_to_char(dlg.d_uid); log_t->pwd = (char*)conv_NSString_to_char(dlg.d_pwd); log_t->ok = 1; + result = TRUE; } [dlg release]; - return rc == 1 ? TRUE : FALSE; + return result; } } diff --git a/iodbcadm/drvconn.c b/iodbcadm/drvconn.c index a66b2ccb..032f3534 100644 --- a/iodbcadm/drvconn.c +++ b/iodbcadm/drvconn.c @@ -272,7 +272,7 @@ iodbcdm_drvconn_dialboxw ( TDSNCHOOSER choose_t; wchar_t *string = NULL, *prov, *prov1, *szDSN = NULL, *szDriver = NULL; wchar_t *szFILEDSN = NULL, *szSAVEFILE = NULL; - wchar_t tokenstr[4096]; + wchar_t tokenstr[4096]= { L'\0' }; wchar_t drvbuf[4096] = { L'\0'}; char *_szdriver_u8 = NULL; wchar_t *_szdriver_w = NULL; @@ -280,6 +280,7 @@ iodbcdm_drvconn_dialboxw ( pDriverConnFunc pDrvConn; pDriverConnWFunc pDrvConnW; int i, skip; + size_t offset = 0; #if defined (__APPLE__) && !defined (NO_FRAMEWORKS) CFBundleRef bundle = NULL; CFBundleRef bundle_dll = NULL; @@ -379,8 +380,7 @@ iodbcdm_drvconn_dialboxw ( { WCSCPY (string, L"DSN="); WCSCAT (string, choose_t.dsn); - string[WCSLEN (string) + 1] = L'\0'; - szDSN = string + WCSLEN (L"DSN="); + szDSN = choose_t.dsn + L'\0'; retcode = SQL_SUCCESS; } else @@ -388,6 +388,58 @@ iodbcdm_drvconn_dialboxw ( if (sqlStat) *sqlStat = errSqlStat; } + + /* Try to copy the DSN parameters */ + offset = WCSLEN(string); + size_t remaining_space = cbInOutConnStr - offset; + BOOL buffer_error = FALSE; + + /* Set configuration mode once before reading parameters */ + SQLSetConfigMode(choose_t.type_dsn == SYSTEM_DSN ? ODBC_SYSTEM_DSN : ODBC_USER_DSN); + + /* Explicitly read parameters from odbc.ini */ + if (SQLGetPrivateProfileStringW(szDSN, NULL, L"", + tokenstr, sizeof(tokenstr)/sizeof(wchar_t), L"odbc.ini")) + { + /* Add each parameter to the connection string with semicolons */ + for (wchar_t *paramName = tokenstr; *paramName != L'\0'; paramName += (WCSLEN(paramName) + 1)) + { + wchar_t valueBuf[1024] = { L'\0' }; + + /* Skip "Driver" parameter if present in odbc.ini */ + if (WCSCASEEQ(paramName, L"Driver")) + continue; + + /* Get the value for this parameter */ + SQLGetPrivateProfileStringW(szDSN, paramName, L"", + valueBuf, sizeof(valueBuf)/sizeof(wchar_t), + L"odbc.ini"); + + size_t param_space = 1 + WCSLEN(paramName) + 1 + WCSLEN(valueBuf); + + /* Check if enough space remains */ + if (remaining_space > param_space) { + string[offset++] = L';'; + WCSCPY(string + offset, paramName); + offset += WCSLEN(paramName); + string[offset++] = L'='; + WCSCPY(string + offset, valueBuf); + offset += WCSLEN(valueBuf); + remaining_space -= param_space; + } + else { + if (sqlStat) + *sqlStat = errSqlStat; /* Use the already defined error state */ + retcode = SQL_ERROR; + buffer_error = TRUE; + break; + } + } + if (!buffer_error) + string[offset] = L'\0'; + + } + } else if (choose_t.fdsn && choose_t.type_dsn == FILE_DSN) { diff --git a/iodbcadm/mac/Helpers.m b/iodbcadm/mac/Helpers.m index 10f77571..552c1c29 100644 --- a/iodbcadm/mac/Helpers.m +++ b/iodbcadm/mac/Helpers.m @@ -723,7 +723,7 @@ void test_dsn(BOOL systemDSN, NSString *dsn, NSString *driver) HDBC hdbc; SWORD buflen; size_t offset = 0; - + if (szDSN && szDriver){ /* Start with basic DSN */ WCSCPY(connstr, L"DSN="); @@ -757,7 +757,6 @@ void test_dsn(BOOL systemDSN, NSString *dsn, NSString *driver) WCSCPY(connstr + offset, paramName); offset += WCSLEN(paramName); - /* Add equals sign */ connstr[offset++] = L'='; /* Copy value */ @@ -797,7 +796,7 @@ void test_dsn(BOOL systemDSN, NSString *dsn, NSString *driver) SQLFreeEnv (henv); goto done; } - + if (SQLDriverConnectW (hdbc, (void*)1L, connstr, SQL_NTS, outconnstr, sizeof (outconnstr) / sizeof(wchar_t), &buflen, SQL_DRIVER_PROMPT) != SQL_SUCCESS) From e9d1c2f649f21504f998c3886ded92c1e94091d4 Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Sat, 22 Mar 2025 01:26:12 +0100 Subject: [PATCH 10/13] iodbctest as universal binary, reads DSN params if driver does not support DRIVER_COMPLETE --- .../iODBCtestw.xcodeproj/project.pbxproj | 10 +- samples/iodbctest.c | 139 +++++++++++++++++- 2 files changed, 142 insertions(+), 7 deletions(-) diff --git a/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj b/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj index 4e811c21..f75271f4 100755 --- a/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj +++ b/mac/iODBCtestw/iODBCtestw.xcodeproj/project.pbxproj @@ -155,6 +155,10 @@ CDAE3B570987CF60003250F8 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + arm64, + x86_64, + ); CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; @@ -198,7 +202,11 @@ CDAE3B580987CF60003250F8 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = YES; + ARCHS = ( + arm64, + x86_64, + ); + CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = $IODBC_VERSION; DYLIB_CURRENT_VERSION = $IODBC_VERSION; diff --git a/samples/iodbctest.c b/samples/iodbctest.c index dc222091..64d080f1 100644 --- a/samples/iodbctest.c +++ b/samples/iodbctest.c @@ -84,6 +84,7 @@ #include #include #include +#include "odbcinst.h" /* * Prototypes @@ -91,6 +92,7 @@ int ODBC_Connect (char *connStr); int ODBC_Disconnect (void); int ODBC_Errors (char *where); +int ODBC_Errors_Ex (char *where, int neverExit); int ODBC_Test (void); #define MAXCOLS 32 @@ -190,6 +192,9 @@ ODBC_Connect (char *connStr) SQLTCHAR driverInfo[255]; SQLSMALLINT len1, len2; int status; + SQLTCHAR *szDSN = NULL; + SQLTCHAR tokenstr[4096] = { 0 }; + char *p; #ifdef UNICODE SQLWCHAR wdataSource[1024]; #endif @@ -311,18 +316,128 @@ ODBC_Connect (char *connStr) desc, NUMTCHAR (desc), &len2) == SQL_SUCCESS); } + /* Extract DSN name for potential later use with odbc.ini */ + szDSN = NULL; + if (!strncmp((char *)dataSource, "DSN=", 4)) { + char *dsn_start = (char *)dataSource + 4; + char *dsn_end = strchr(dsn_start, ';'); + + if (dsn_end) { + *dsn_end = '\0'; /* Temporarily terminate the DSN name */ +#ifdef UNICODE + OPL_A2W(dsn_start, tokenstr, sizeof(tokenstr)/sizeof(SQLTCHAR)); +#else + strcpy((char *)tokenstr, dsn_start); +#endif + szDSN = tokenstr; + *dsn_end = ';'; /* Restore the semicolon */ + } else { +#ifdef UNICODE + OPL_A2W(dsn_start, tokenstr, sizeof(tokenstr)/sizeof(SQLTCHAR)); +#else + strcpy((char *)tokenstr, dsn_start); +#endif + szDSN = tokenstr; + } + } else if (strchr((char *)dataSource, '=') == NULL) { + /* If no equals sign is found, use dataSource directly as the DSN name */ +#ifdef UNICODE + OPL_A2W((char *)dataSource, tokenstr, sizeof(tokenstr)/sizeof(SQLTCHAR)); +#else + strcpy((char *)tokenstr, dataSource); +#endif + szDSN = tokenstr; + } + + /* First try SQL_DRIVER_COMPLETE approach */ + /* only print errors, don't exit yet */ #ifdef UNICODE strcpy_A2W (wdataSource, (char *) dataSource); status = SQLDriverConnectW (hdbc, 0, (SQLWCHAR *) wdataSource, SQL_NTS, (SQLWCHAR *) outdsn, NUMTCHAR (outdsn), &buflen, SQL_DRIVER_COMPLETE); - if (status != SQL_SUCCESS) - ODBC_Errors ("SQLDriverConnectW"); + if (status != SQL_SUCCESS) { + ODBC_Errors_Ex ("SQLDriverConnectW", 1); #else status = SQLDriverConnect (hdbc, 0, (SQLCHAR *) dataSource, SQL_NTS, (SQLCHAR *) outdsn, NUMTCHAR (outdsn), &buflen, SQL_DRIVER_COMPLETE); - if (status != SQL_SUCCESS) - ODBC_Errors ("SQLDriverConnect"); + if (status != SQL_SUCCESS) { + ODBC_Errors_Ex("SQLDriverConnect", 1); +#endif + printf ("\nTrying SQL_DRIVER_NOPROMPT using parameters from odbc.ini for DSN %s\n", szDSN); + } + + /* If SQL_DRIVER_COMPLETE fails and we have a DSN, try SQL_DRIVER_NOPROMPT with parameters from odbc.ini */ + if ((status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) && szDSN != NULL) { + /* Create a new connection string with parameters from odbc.ini */ + SQLCHAR newConnStr[4096] = {0}; + SQLTCHAR paramBuf[4096] = {0}; + SQLTCHAR valueBuf[1024] = {0}; + SQLSMALLINT paramLen = 0; + + /* Start with original DSN */ +#ifdef UNICODE + sprintf((char *)newConnStr, "DSN=%S", szDSN); +#else + sprintf((char *) newConnStr, "DSN=%s", szDSN); +#endif + + /* Set configuration mode to search in all DSN locations */ + SQLSetConfigMode(ODBC_BOTH_DSN); + + /* Get all parameter names for this DSN from odbc.ini */ + if (SQLGetPrivateProfileString(szDSN, NULL, TEXT(""), + paramBuf, sizeof(paramBuf) / sizeof(SQLTCHAR), TEXT("odbc.ini"))) { + SQLTCHAR *paramName = paramBuf; + + /* Loop through each parameter */ + while (*paramName) { + /* Skip "Driver" parameter if it exists in odbc.ini */ +#ifdef UNICODE + if (wcscasecmp(paramName, L"Driver") != 0) +#else + if (strcasecmp((char *) paramName, "Driver") != 0) +#endif + { + /* Get value for this parameter */ + SQLGetPrivateProfileString(szDSN, paramName, TEXT(""), + valueBuf, sizeof(valueBuf) / sizeof(SQLTCHAR), TEXT("odbc.ini")); + + /* Add parameter to connection string */ + strcat((char *) newConnStr, ";"); +#ifdef UNICODE + sprintf((char *)newConnStr + strlen((char *)newConnStr), "%S=%S", + paramName, valueBuf); +#else + sprintf((char *) newConnStr + strlen((char *) newConnStr), "%s=%s", + paramName, valueBuf); +#endif + } + + /* Move to next parameter */ +#ifdef UNICODE + paramName += wcslen(paramName) + 1; +#else + paramName += strlen((char *) paramName) + 1; +#endif + } + } + + /* Now try connecting with the expanded parameters and SQL_DRIVER_NOPROMPT */ + /* If still failing, show error and exit */ + printf ("\nConnection string: %s\n", newConnStr); +#ifdef UNICODE + strcpy_A2W (wdataSource, (char *)newConnStr); + status = SQLDriverConnectW (hdbc, 0, (SQLWCHAR *) wdataSource, SQL_NTS, + (SQLWCHAR *) outdsn, NUMTCHAR (outdsn), &buflen, SQL_DRIVER_NOPROMPT); + if (status != SQL_SUCCESS) + ODBC_Errors ("SQLDriverConnectW"); +#else + status = SQLDriverConnect(hdbc, 0, newConnStr, SQL_NTS, + (SQLCHAR *) outdsn, NUMTCHAR (outdsn), &buflen, SQL_DRIVER_NOPROMPT); + if (status != SQL_SUCCESS) + ODBC_Errors ("SQLDriverConnect"); #endif + } if (status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO) return -1; @@ -489,11 +604,23 @@ ODBC_Reconnect (void) } + /* * Show all the error information that is available + * and exits on certain errors + */ +int +ODBC_Errors(char *where) +{ + return ODBC_Errors_Ex(where, 0); +} + +/* + * Show all the error information that is available. + * If neverExit is set, do not exit. */ int -ODBC_Errors (char *where) +ODBC_Errors_Ex (char *where, int neverExit) { SQLTCHAR buf[512]; SQLTCHAR sqlstate[15]; @@ -667,7 +794,7 @@ ODBC_Errors (char *where) /* * Force an exit status */ - if (force_exit) + if (force_exit && !neverExit) exit (-1); return -1; From f7c24619f07eaf37abc5c5d6e045aa994abd1151 Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Sat, 22 Mar 2025 17:32:33 +0100 Subject: [PATCH 11/13] allow debugger attachment during sleep --- samples/iodbctest.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/samples/iodbctest.c b/samples/iodbctest.c index 64d080f1..7e02dc46 100644 --- a/samples/iodbctest.c +++ b/samples/iodbctest.c @@ -357,13 +357,14 @@ ODBC_Connect (char *connStr) (SQLWCHAR *) outdsn, NUMTCHAR (outdsn), &buflen, SQL_DRIVER_COMPLETE); if (status != SQL_SUCCESS) { ODBC_Errors_Ex ("SQLDriverConnectW", 1); + printf ("\nTrying SQL_DRIVER_NOPROMPT using parameters from odbc.ini for DSN %S\n", szDSN); #else status = SQLDriverConnect (hdbc, 0, (SQLCHAR *) dataSource, SQL_NTS, (SQLCHAR *) outdsn, NUMTCHAR (outdsn), &buflen, SQL_DRIVER_COMPLETE); if (status != SQL_SUCCESS) { ODBC_Errors_Ex("SQLDriverConnect", 1); -#endif printf ("\nTrying SQL_DRIVER_NOPROMPT using parameters from odbc.ini for DSN %s\n", szDSN); +#endif } /* If SQL_DRIVER_COMPLETE fails and we have a DSN, try SQL_DRIVER_NOPROMPT with parameters from odbc.ini */ @@ -549,7 +550,7 @@ ODBC_Disconnect (void) * Perform a disconnect/reconnect using the DSN stored from the original * SQLDriverConnect */ -int +int ODBC_Reconnect (void) { SQLRETURN status; @@ -925,6 +926,12 @@ ODBC_Test () else if (!TXTCMP (request, TEXT ("quit")) || !TXTCMP (request, TEXT ("exit"))) break; /* If you want to quit, just say so */ + else if (!TXTCMP (request, TEXT ("sleep"))) + { /* Sleep for a while to allow debugger to connect */ + fprintf(stderr, "back in 30 seconds...\n"); + sleep(30); + continue; + } else { /* From 57ab4e48e9d5064d898de891dda8145924053d7d Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Sun, 23 Mar 2025 01:05:06 +0100 Subject: [PATCH 12/13] accept NO_DATA e.g. with empty strings --- samples/iodbctest.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/iodbctest.c b/samples/iodbctest.c index 7e02dc46..4298b7b4 100644 --- a/samples/iodbctest.c +++ b/samples/iodbctest.c @@ -1136,7 +1136,7 @@ ODBC_Test () sts = SQLGetData (hstmt, colNum, SQL_C_CHAR, fetchBuffer, NUMTCHAR (fetchBuffer), &colIndicator); #endif - if (sts != SQL_SUCCESS_WITH_INFO && sts != SQL_SUCCESS) + if (sts != SQL_SUCCESS_WITH_INFO && sts != SQL_SUCCESS && sts != SQL_NO_DATA) { ODBC_Errors ("SQLGetData"); goto endCursor; From d6f1010991ff635b1bd230f1017d3220dbec15a5 Mon Sep 17 00:00:00 2001 From: 1R053 <1121003+1R053@users.noreply.github.com> Date: Sun, 23 Mar 2025 01:51:25 +0100 Subject: [PATCH 13/13] accept NO_DATA e.g. with empty strings --- samples/iodbctest.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/samples/iodbctest.c b/samples/iodbctest.c index 4298b7b4..8631f839 100644 --- a/samples/iodbctest.c +++ b/samples/iodbctest.c @@ -1142,6 +1142,14 @@ ODBC_Test () goto endCursor; } + /* + * Show empty data as empty string + */ + if (sts == SQL_NO_DATA) + { + fetchBuffer[0] = TEXTC ('\0'); + } + /* * Show NULL fields as **** */