diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 329fa6bd0a..3d7d1490fe 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -11,11 +11,11 @@ jobs:
matrix:
# Build is segfaulting in Ubuntu.
#os: [macOS-latest, windows-2016, ubuntu-16.04]
- os: [windows-2016]
+ os: [macOS-latest, windows-2016]
platform: [x64, x86]
- #exclude:
- # - os: macOS-latest
- # platform: x86
+ exclude:
+ - os: macOS-latest
+ platform: x86
# - os: ubuntu-16.04
# platform: x86
@@ -47,9 +47,9 @@ jobs:
mkdir extern/icu-macos
pushd extern/icu-macos
- wget https://github.com/unicode-org/icu/releases/download/release-59-2/icu4c-59_2-src.tgz
- wget https://github.com/unicode-org/icu/commit/24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
- tar xzvf icu4c-59_2-src.tgz
+ curl -OL https://github.com/unicode-org/icu/releases/download/release-63-2/icu4c-63_2-src.tgz
+ curl -OL https://github.com/unicode-org/icu/commit/24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
+ tar xzf icu4c-63_2-src.tgz
ICU_INSTALL_PATH=`pwd`/install
cd icu/source
patch -p3 < ../../24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
@@ -59,14 +59,14 @@ jobs:
install_name_tool -id @rpath/lib/libicuuc.dylib $ICU_INSTALL_PATH/lib/libicuuc.dylib
install_name_tool -id @rpath/lib/libicui18n.dylib $ICU_INSTALL_PATH/lib/libicui18n.dylib
install_name_tool -id @rpath/lib/libicudata.dylib $ICU_INSTALL_PATH/lib/libicudata.dylib
- install_name_tool -change libicudata.59.dylib @loader_path/libicudata.59.dylib $ICU_INSTALL_PATH/lib/libicuuc.59.dylib
- install_name_tool -change libicudata.59.dylib @loader_path/libicudata.59.dylib $ICU_INSTALL_PATH/lib/libicui18n.59.dylib
- install_name_tool -change libicuuc.59.dylib @loader_path/libicuuc.59.dylib $ICU_INSTALL_PATH/lib/libicui18n.59.dylib
+ install_name_tool -change libicudata.63.dylib @loader_path/libicudata.63.dylib $ICU_INSTALL_PATH/lib/libicuuc.63.dylib
+ install_name_tool -change libicudata.63.dylib @loader_path/libicudata.63.dylib $ICU_INSTALL_PATH/lib/libicui18n.63.dylib
+ install_name_tool -change libicuuc.63.dylib @loader_path/libicuuc.63.dylib $ICU_INSTALL_PATH/lib/libicui18n.63.dylib
popd
mkdir -p gen/Release/firebird/lib
mkdir -p gen/Debug/firebird/lib
- cp $ICU_INSTALL_PATH/lib/*.dylib gen/Release/firebird/lib/
- cp $ICU_INSTALL_PATH/lib/*.dylib gen/Debug/firebird/lib/
+ cp $ICU_INSTALL_PATH/lib/libicu{data,i18n,uc}.*dylib gen/Release/firebird/lib/
+ cp $ICU_INSTALL_PATH/lib/libicu{data,i18n,uc}.*dylib gen/Debug/firebird/lib/
- name: Build (MacOS)
if: matrix.os == 'macOS-latest'
@@ -79,7 +79,7 @@ jobs:
export C_INCLUDE_PATH="$ICU_INSTALL_PATH/include:$C_INCLUDE_PATH"
export CPLUS_INCLUDE_PATH="$ICU_INSTALL_PATH/include:$CPLUS_INCLUDE_PATH"
- LIBRARY_PATH="$ICU_INSTALL_PATH/lib:$LIBRARY_PATH" ./autogen.sh --with-builtin-tommath
+ LIBRARY_PATH="$ICU_INSTALL_PATH/lib:$LIBRARY_PATH" ./autogen.sh --with-builtin-tommath --with-builtin-tomcrypt
make -j4
(cd gen; make -B -f make.platform.postfix ICU_LOC="$ICU_INSTALL_PATH/lib/")
diff --git a/.travis.yml b/.travis.yml
index d5b8f0a348..43e99f47d2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,11 @@
+matrix:
+ include:
+ - os: osx
+ osx_image: xcode9.2 # macOS 10.12 Sierra
+ - os: osx
+ osx_image: xcode11.2 # macOS 10.14 Mojave
+ - os: linux
+
language: cpp
notifications:
@@ -6,25 +14,65 @@ notifications:
sudo: required
dist: xenial
-branches:
- except:
- - B2_5_Release
- - B2_1_Release
- - B2_0_Release
- - B1_5_Release
-
-addons:
- apt:
- packages:
- - libtool-bin
- - libtommath0
- - libtommath-dev
- - libicu-dev
- - zlib1g-dev
+install:
+ - |
+ if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
+ sudo apt-get update
+ sudo apt-get install -y libtool-bin libtommath0 libtommath-dev libicu-dev zlib1g-dev
+ fi
script:
- - ./autogen.sh --enable-binreloc --with-builtin-tomcrypt --prefix=/opt/firebird
- - make -j4
- - make dist
- - tar xzvf gen/Firebird-[0-9]*.tar.gz
- - (cd Firebird-[0-9]*; sudo ./install.sh -silent)
+ - |
+ if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
+ ./autogen.sh --enable-binreloc --with-builtin-tomcrypt --prefix=/opt/firebird
+ make -j4
+ make dist
+ tar xzvf gen/Firebird-[0-9]*.tar.gz
+ (cd Firebird-[0-9]*; sudo ./install.sh -silent)
+ fi
+
+ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
+ export LIBTOOLIZE=glibtoolize
+ export LIBTOOL=glibtool
+
+ mkdir extern/icu-macos
+ pushd extern/icu-macos
+ curl -OL https://github.com/unicode-org/icu/releases/download/release-63-2/icu4c-63_2-src.tgz
+ curl -OL https://github.com/unicode-org/icu/commit/24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
+ tar xzf icu4c-63_2-src.tgz
+ ICU_INSTALL_PATH=`pwd`/install
+ cd icu/source
+ patch -p3 < ../../24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
+ ./runConfigureICU MacOSX --prefix=$ICU_INSTALL_PATH
+ make -j4
+ make install
+ install_name_tool -id @rpath/lib/libicuuc.dylib $ICU_INSTALL_PATH/lib/libicuuc.dylib
+ install_name_tool -id @rpath/lib/libicui18n.dylib $ICU_INSTALL_PATH/lib/libicui18n.dylib
+ install_name_tool -id @rpath/lib/libicudata.dylib $ICU_INSTALL_PATH/lib/libicudata.dylib
+ install_name_tool -change libicudata.63.dylib @loader_path/libicudata.63.dylib $ICU_INSTALL_PATH/lib/libicuuc.63.dylib
+ install_name_tool -change libicudata.63.dylib @loader_path/libicudata.63.dylib $ICU_INSTALL_PATH/lib/libicui18n.63.dylib
+ install_name_tool -change libicuuc.63.dylib @loader_path/libicuuc.63.dylib $ICU_INSTALL_PATH/lib/libicui18n.63.dylib
+ popd
+ mkdir -p gen/Release/firebird/lib
+ mkdir -p gen/Debug/firebird/lib
+ cp $ICU_INSTALL_PATH/lib/libicu{data,i18n,uc}.*dylib gen/Release/firebird/lib/
+ cp $ICU_INSTALL_PATH/lib/libicu{data,i18n,uc}.*dylib gen/Debug/firebird/lib/
+
+ export C_INCLUDE_PATH="$ICU_INSTALL_PATH/include:$C_INCLUDE_PATH"
+ export CPLUS_INCLUDE_PATH="$ICU_INSTALL_PATH/include:$CPLUS_INCLUDE_PATH"
+
+ LIBRARY_PATH="$ICU_INSTALL_PATH/lib:$LIBRARY_PATH" ./autogen.sh --with-builtin-tommath --with-builtin-tomcrypt
+ make -j4
+
+ (cd gen; make -B -f make.platform.postfix ICU_LOC="$ICU_INSTALL_PATH/lib/")
+ (cd gen; make -B -f Makefile.install)
+
+ # Rename directory to make sure the build is relocatable.
+ mv gen gen2
+ sudo installer -pkg gen2/Release/*.pkg -verbose -target /
+
+ export FIREBIRD_LOCK=`pwd`/temp
+ echo "create database 't.fdb'; select '1' from rdb\$database; select _win1252 '2' from rdb\$database; select _utf8 '3' collate unicode from rdb\$database;" | /Library/Frameworks/Firebird.framework/Resources/bin/isql
+
+ echo "create database 'localhost:/tmp/t.fdb' user sysdba password 'masterkey'; select '11' from rdb\$database; select _win1252 '22' from rdb\$database; select _utf8 '33' collate unicode from rdb\$database;" | /Library/Frameworks/Firebird.framework/Resources/bin/isql
+ fi
diff --git a/builds/install/arch-specific/darwin/Distribution.xml b/builds/install/arch-specific/darwin/Distribution.xml
new file mode 100644
index 0000000000..e5471e3686
--- /dev/null
+++ b/builds/install/arch-specific/darwin/Distribution.xml
@@ -0,0 +1,19 @@
+
+
+ Firebird Database Server
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Firebird.pkg
+
diff --git a/builds/install/arch-specific/darwin/Makefile.in b/builds/install/arch-specific/darwin/Makefile.in
index 342d4da5a7..41cd0c2eda 100644
--- a/builds/install/arch-specific/darwin/Makefile.in
+++ b/builds/install/arch-specific/darwin/Makefile.in
@@ -1,3 +1,5 @@
+TARGET ?= Release
+
# EKU: taken from Makefile.in.firebird
ROOT=..
@@ -18,10 +20,10 @@ FB_REV_NO:=$(shell cpp -DDARWIN -I. ../builds/install/arch-specific/darwin/revno
FB_BUILD_NO:=$(shell cpp -DDARWIN -I. ../builds/install/arch-specific/darwin/buildno.c | tail -2 | sed -e 's/" "//g' -e 's/"//g')
FB_PLATFORM:=$(CpuType)
-package packages dist: package_@FIREBIRD_ARCH_TYPE@
+package: package_firebird
-package_classic package_embedded: INST_NM=FirebirdCS-$(FB_MAJOR_VERS).$(FB_MINOR_VERS).$(FB_REV_NO)-$(FB_BUILD_NO)-$(FB_PLATFORM)
-package_classic package_embedded:
+package_firebird: INST_NM=Firebird-$(FB_MAJOR_VERS).$(FB_MINOR_VERS).$(FB_REV_NO)-$(FB_BUILD_NO)-$(FB_PLATFORM)
+package_firebird:
sed -e 's/_FB_BUILD_SUFFIX_/$(FB_VER_SUFFIX)/g' \
-e 's/_SMFB_BUILD_SUFFIX_/$(FB_VER_SUFFIX_SM)/g' \
-e 's/_MFB_BUILD_SUFFIX_/$(FB_VER_SUFFIX_M)/g' \
@@ -29,7 +31,7 @@ package_classic package_embedded:
-e 's/_MINOR_VERS_/$(FB_MINOR_VERS)/g' \
-e 's/_REV_NO_/$(FB_REV_NO)/g' \
../builds/install/arch-specific/darwin/Info.plist \
- > $(ROOT)/gen/firebird/frameworks/FirebirdCS.framework/Resources/Info.plist
+ > $(ROOT)/gen/$(TARGET)/frameworks/Firebird4.framework/Resources/Info.plist
sed -e 's/_FB_BUILD_SUFFIX_/$(FB_VER_SUFFIX)/g' \
-e 's/_SMFB_BUILD_SUFFIX_/$(FB_VER_SUFFIX_SM)/g' \
-e 's/_MFB_BUILD_SUFFIX_/$(FB_VER_SUFFIX_M)/g' \
@@ -37,99 +39,40 @@ package_classic package_embedded:
-e 's/_MINOR_VERS_/$(FB_MINOR_VERS)/g' \
-e 's/_REV_NO_/$(FB_REV_NO)/g' \
../builds/install/arch-specific/darwin/Description.plist \
- > $(ROOT)/gen/firebird/frameworks/FirebirdCS.framework/Resources/Description.plist
-
- rm -fr $(ROOT)/gen/firebird/scripts
- mkdir $(ROOT)/gen/firebird/scripts
- cp ../builds/install/arch-specific/darwin/install-script \
- $(ROOT)/gen/firebird/scripts/postinstall
- cp ../builds/install/arch-specific/darwin/preupgrade-script \
- $(ROOT)/gen/firebird/scripts/preinstall
- chmod u+x $(ROOT)/gen/firebird/scripts/postinstall
- chmod u+x $(ROOT)/gen/firebird/scripts/preinstall
-
- rm -fr $(ROOT)/gen/firebird/resources
- mkdir $(ROOT)/gen/firebird/resources
- cp ../builds/install/arch-specific/darwin/Welcome.txt \
- $(ROOT)/gen/firebird/resources/Welcome.txt
- cp ../builds/install/arch-specific/darwin/License.txt \
- $(ROOT)/gen/firebird/resources/License.txt
- cp ../builds/install/arch-specific/darwin/DistributionCS.xml \
- $(ROOT)/gen/firebird/DistributionCS.xml
+ > $(ROOT)/gen/$(TARGET)/frameworks/Firebird4.framework/Resources/Description.plist
- rm -fr firebird/packages
- mkdir firebird/packages
- pkgbuild --root $(ROOT)/gen/firebird/frameworks/FirebirdCS.framework \
+ rm -fr $(ROOT)/gen/$(TARGET)/scripts
+ mkdir $(ROOT)/gen/$(TARGET)/scripts
+ cp ../builds/install/arch-specific/darwin/install-script \
+ $(ROOT)/gen/$(TARGET)/scripts/postinstall
+ cp ../builds/install/arch-specific/darwin/preupgrade-script \
+ $(ROOT)/gen/$(TARGET)/scripts/preinstall
+ chmod u+x $(ROOT)/gen/$(TARGET)/scripts/postinstall
+ chmod u+x $(ROOT)/gen/$(TARGET)/scripts/preinstall
+
+ rm -fr $(ROOT)/gen/$(TARGET)/resources
+ mkdir $(ROOT)/gen/$(TARGET)/resources
+ cp ../builds/install/arch-specific/darwin/Welcome.txt \
+ $(ROOT)/gen/$(TARGET)/resources/Welcome.txt
+ cp ../builds/install/arch-specific/darwin/Readme.txt \
+ $(ROOT)/gen/$(TARGET)/resources/Readme.txt
+ cp ../builds/install/arch-specific/darwin/License.txt \
+ $(ROOT)/gen/$(TARGET)/resources/License.txt
+ cp ../builds/install/arch-specific/darwin/Distribution.xml \
+ $(ROOT)/gen/$(TARGET)/Distribution.xml
+
+ rm -fr $(TARGET)/packages
+ mkdir $(TARGET)/packages
+ pkgbuild --root $(ROOT)/gen/$(TARGET)/frameworks/Firebird4.framework \
--identifier com.firebirdsql.Firebird \
--install-location /Library/Frameworks/Firebird.framework \
- --scripts $(ROOT)/gen/firebird/scripts \
- firebird/packages/FirebirdCS.pkg
+ --scripts $(ROOT)/gen/$(TARGET)/scripts \
+ $(TARGET)/packages/Firebird.pkg
- productbuild --distribution firebird/DistributionCS.xml \
- --resources firebird/resources \
- --package-path firebird/packages \
- firebird/$(INST_NM).pkg
+ productbuild --distribution $(TARGET)/Distribution.xml \
+ --resources $(TARGET)/resources \
+ --package-path $(TARGET)/packages \
+ $(TARGET)/$(INST_NM).pkg
-package_super package_server: INST_NM=FirebirdSS-$(FB_MAJOR_VERS).$(FB_MINOR_VERS).$(FB_REV_NO)-$(FB_BUILD_NO)-$(FB_PLATFORM)
-package_super package_server:
- sed -e 's/_FB_BUILD_SUFFIX_/$(FB_VER_SUFFIX)/g' \
- -e 's/_SMFB_BUILD_SUFFIX_/$(FB_VER_SUFFIX_SM)/g' \
- -e 's/_MFB_BUILD_SUFFIX_/$(FB_VER_SUFFIX_M)/g' \
- -e 's/_MAJOR_VERS_/$(FB_MAJOR_VERS)/g' \
- -e 's/_MINOR_VERS_/$(FB_MINOR_VERS)/g' \
- -e 's/_REV_NO_/$(FB_REV_NO)/g' \
- ../builds/install/arch-specific/darwin/Info.plist \
- > $(ROOT)/gen/firebird/frameworks/FirebirdSS.framework/Resources/Info.plist
- sed -e 's/_FB_BUILD_SUFFIX_/$(FB_VER_SUFFIX)/g' \
- -e 's/_SMFB_BUILD_SUFFIX_/$(FB_VER_SUFFIX_SM)/g' \
- -e 's/_MFB_BUILD_SUFFIX_/$(FB_VER_SUFFIX_M)/g' \
- -e 's/_MAJOR_VERS_/$(FB_MAJOR_VERS)/g' \
- -e 's/_MINOR_VERS_/$(FB_MINOR_VERS)/g' \
- -e 's/_REV_NO_/$(FB_REV_NO)/g' \
- ../builds/install/arch-specific/darwin/Description.plist \
- > $(ROOT)/gen/firebird/frameworks/FirebirdSS.framework/Resources/Description.plist
- rm -fr $(ROOT)/gen/firebird/scripts
- mkdir $(ROOT)/gen/firebird/scripts
- cp ../builds/install/arch-specific/darwin/install-script \
- $(ROOT)/gen/firebird/scripts/postinstall
- cp ../builds/install/arch-specific/darwin/preupgrade-script \
- $(ROOT)/gen/firebird/scripts/preinstall
- chmod u+x $(ROOT)/gen/firebird/scripts/postinstall
- chmod u+x $(ROOT)/gen/firebird/scripts/preinstall
-
- rm -fr $(ROOT)/gen/firebird/resources
- mkdir $(ROOT)/gen/firebird/resources
- cp ../builds/install/arch-specific/darwin/Welcome.txt \
- $(ROOT)/gen/firebird/resources/Welcome.txt
- cp ../builds/install/arch-specific/darwin/License.txt \
- $(ROOT)/gen/firebird/resources/License.txt
- cp ../builds/install/arch-specific/darwin/DistributionSS.xml \
- $(ROOT)/gen/firebird/DistributionSS.xml
-
- rm -fr firebird/packages
- mkdir firebird/packages
- pkgbuild --root $(ROOT)/gen/firebird/frameworks/FirebirdSS.framework \
- --identifier com.firebirdsql.Firebird \
- --install-location /Library/Frameworks/Firebird.framework \
- --scripts $(ROOT)/gen/firebird/scripts \
- firebird/packages/FirebirdSS.pkg
-
- productbuild --distribution firebird/DistributionSS.xml \
- --resources firebird/resources \
- --package-path firebird/packages \
- firebird/$(INST_NM).pkg
-
-# rm firebird/firebirdSS.pkg
-
-install: install_@FIREBIRD_ARCH_TYPE@
-
-
-install_super:
- sudo installer -verbose -dumplog -pkg \
- firebird/FirebirdSS-$(FB_MAJOR_VERS).$(FB_MINOR_VERS).$(FB_REV_NO)-$(FB_BUILD_NO)-$(FB_PLATFORM).pkg -target /
-
-install_classic:
- sudo installer -verbose -dumplog -pkg \
- firebird/FirebirdCS-$(FB_MAJOR_VERS).$(FB_MINOR_VERS).$(FB_REV_NO)-$(FB_BUILD_NO)-$(FB_PLATFORM).pkg -target /
diff --git a/builds/install/arch-specific/darwin/Readme.txt b/builds/install/arch-specific/darwin/Readme.txt
index f5b8b019ed..bddb22767c 100644
--- a/builds/install/arch-specific/darwin/Readme.txt
+++ b/builds/install/arch-specific/darwin/Readme.txt
@@ -1,14 +1,15 @@
-The Firebird install process will create a new user: firebird. This is for added security. Please don't delete this user unless you know what you are doing. The installer installs the Firebird framework in /Library/Frameworks. The default installs one super-user database user: "sysdba", password "masterkey". You should change that password using gsec according to the documentation.
+The Firebird install process will create a new user: firebird. This is for added security. Please don't delete this user. The installer creates a Firebird framework in /Library/Frameworks. By default the install creates one super-user database user "SYSDBA" with a password "masterkey". You should change that password using gsec or isql according to the documentation.
-All the standard command line executables are installed in /Library/Frameworks/Firebird.framework/Resources/bin. If you are interested in helping with the Firebird Project please contact us via the Firebird website at www.firebirdsql.org.
+All the standard command line executables are installed in /Library/Frameworks/Firebird.framework/Resources/bin.
-Please note that every MacOS X user you want to have access to your database MUST have read/write permissions on the .fdb file.
+If you are interested in helping with the Firebird Project please contact us via the Firebird website at www.firebirdsql.org.
-The release notes can be found in the doc directory Generic documentation for Firebird can be found on the IBPhoenix web site at www.ibphoenix.com, as well as at the Firebird website. There is also a yahoo group named "ib-support" if you have any problems with Firebird.
+The release notes can be found in the doc directory. More generic documentation for Firebird can be found on www.firebirdsql.org and the IBPhoenix web site at www.ibphoenix.com. There is also a yahoo group that can be subscribed to named "ib-support" if you have any problems.
Thanks to:
John Bellardo (Original MacOSX port for Firebird)
David Pugh (Firebird 1.5.3 Port)
-Paul Beach & Alex Peshkov (Firebird 1.5.x & 2.x Ports)
+Paul Beach & Alex Peshkov (Firebird 1.5.x,2.x & 3.x Ports)
+Paul Beach (Firebird Installer)
Daniel Puckett (Firebird 2.x Launch Daemon for MacOSX 10.5+)
Craig Altenburg (Improvements to the install scripts)
diff --git a/builds/install/arch-specific/darwin/Welcome.txt b/builds/install/arch-specific/darwin/Welcome.txt
index f1c88fccc4..bb52a7e437 100644
--- a/builds/install/arch-specific/darwin/Welcome.txt
+++ b/builds/install/arch-specific/darwin/Welcome.txt
@@ -1,5 +1,5 @@
Thank you for choosing the Firebird relational database engine.
-Firebird is a relational database offering many ANSI SQL-92 features that runs on Linux, Windows, and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names since 1981.
+Firebird is a relational database offering many ANSI SQL-2003 features that runs on Linux, Windows, MacOSX and a variety of other Unix platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names since 1981.
-Firebird is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) under the InterBase Public License v.1.0 on 25 July, 2000.
+Firebird is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Borland under the InterBase Public License on the 25th July, 2000.
diff --git a/builds/install/arch-specific/darwin/changeServerMode b/builds/install/arch-specific/darwin/changeServerMode
new file mode 100755
index 0000000000..321ec92d8c
--- /dev/null
+++ b/builds/install/arch-specific/darwin/changeServerMode
@@ -0,0 +1,134 @@
+#!/bin/sh
+#
+# The contents of this file are subject to the Initial
+# Developer's Public License Version 1.0 (the "License");
+# you may not use this file except in compliance with the
+# License. You may obtain a copy of the License at
+# http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
+#
+# Software distributed under the License is distributed AS IS,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied.
+# See the License for the specific language governing rights
+# and limitations under the License.
+#
+# The Original Code was created by Paul Beach
+# based on the original Posix script created by Alex Peshkov
+# for the Firebird Open Source RDBMS project.
+#
+# Copyright (c) 2017 Paul Beach
+# Alex Peshkov
+# and all contributors signed below.
+#
+# All Rights Reserved.
+# Contributor(s): ______________________________________.
+#
+
+FB_FW=/Library/Frameworks/Firebird.framework
+DAEMONLOC=/Library/LaunchDaemons
+
+#------------------------------------------------------------------------
+# add a line in the (usually) /etc/services or /etc/inetd.conf file
+# Here there are three cases, not found => add
+# found & different => replace
+# found & same => do nothing
+#
+
+replaceLineInFile() {
+ FileName="$1"
+ echo $Filename
+ newLine="$2"
+ oldLine=`grep "$3" $FileName`
+
+ if [ -z "$oldLine" ]
+ then
+ echo "$newLine" >> "$FileName"
+ elif [ "$oldLine" != "$newLine" ]
+ then
+ MakeTemp
+ grep -v "$oldLine" "$FileName" > "$TmpFile"
+ echo "$newLine" >> $TmpFile
+ cp $TmpFile $FileName
+ rm -f $TmpFile
+ echo "Updated $1"
+ fi
+}
+
+MakeTemp() {
+ TmpFile=`mktemp -q /tmp/firebird_tmp.XXXXXX`
+ if [ $? -ne 0 ]
+ then
+ for n in `seq 1000`
+ do
+ TmpFile=/tmp/firebird_tmp.$n
+ if [ ! -e $TmpFile ]
+ then
+ touch $TmpFile
+ return
+ fi
+ done
+ fi
+}
+
+cat <1 /dev/null; then
- echo "Group Found"
+ echo "Group Found"
else
gid=501
-dscl localhost -search /Local/Default/Groups PrimaryGroupID $gid | grep $gid
-while [ "$?" = "0" ]; do
+dscl localhost -search /Local/Default/Groups PrimaryGroupID $gid | grep $gid
+while [ "$?" = "0" ]; do
let "gid =$gid+1"
dscl localhost -search /Local/Default/Groups PrimaryGroupID $gid | grep $gid
done
@@ -44,10 +44,10 @@ if dscl localhost -read /Local/Default/Users/firebird 2&>1 /dev/null; then
echo "User Found"
else
ugid=501
-dscl localhost -search /Local/Default/Users UniqueID $ugid | grep $ugid
-while [ "$?" = "0" ]; do
+dscl localhost -search /Local/Default/Users UniqueID $ugid | grep $ugid
+while [ "$?" = "0" ]; do
let "ugid=$ugid+1"
- dscl localhost -search /Local/Default/Users UniqueID $ugid | grep $ugid
+ dscl localhost -search /Local/Default/Users UniqueID $ugid | grep $ugid
done
echo "create the firebird user 10.7+"
dscl localhost -create /Local/Default/Users/firebird
@@ -55,7 +55,7 @@ echo "create the firebird user 10.7+"
dscl localhost -create /Local/Default/Users/firebird Password "*"
dscl localhost -create /Local/Default/Users/firebird UserShell /bin/tcsh
dscl localhost -create /Local/Default/Users/firebird RecordName firebird
- dscl localhost -create /Local/Default/Users/firebird PrimaryGroupID $gid
+ dscl localhost -create /Local/Default/Users/firebird PrimaryGroupID $gid
dscl localhost -create /Local/Default/Users/firebird UniqueID $ugid
dscl localhost -create /Local/Default/Users/firebird RealName "Firebird Database"
fi
@@ -72,17 +72,9 @@ chown -R firebird:firebird "$FB_FW"
# set the permissions correctly
echo "Set the permissions correctly"
-if [ -f "$FB_FW/Versions/A/Resources/.SuperServer" ]; then
- chmod 777 "$FB_FW/Resources/English.lproj/var"
- chmod 600 "$FB_FW/Resources/English.lproj/var/security2.fdb"
- chmod 444 "$FB_FW/Resources/English.lproj/var/help/help.fdb"
-else
- chmod 777 "$FB_FW/Resources/English.lproj/var"
- chmod 660 "$FB_FW/Resources/English.lproj/var/security2.fdb"
- chmod 444 "$FB_FW/Resources/English.lproj/var/help/help.fdb"
- chmod a+s "$FB_FW/Resources/bin/fb_inet_server"
-fi
-
+ chmod 777 "$FB_FW/Resources/"
+ chmod 660 "$FB_FW/Resources/security4.fdb"
+ chmod 444 "$FB_FW/Resources/help/help.fdb"
# Remove all older traces of Classic first
echo "Remove all older traces of Classic first"
@@ -100,26 +92,16 @@ if [ -f /etc/xinetd.d/firebird ]; then
HUPNEEDED='y'
fi
-# Make sure hosts.equiv files are set correctly
-echo "Make sure hosts.equiv files are set correctly"
-
-cp /etc/hosts.equiv /etc/hosts.equiv.fbsave
-if grep -x "localhost" /etc/hosts.equiv > /dev/null; then
- echo -n
-else
- echo "localhost" >> /etc/hosts.equiv
-fi
-if grep -x "localhost.localdomain" /etc/hosts.equiv > /dev/null; then
- echo -n
-else
- echo "localhost.localdomain" >> /etc/hosts.equiv
-fi
-
+# Install the saved security2 database, if any
+echo "Install the saved security2 database"
+if test -f /tmp/fb-security-database-update2fdb; then
+ mv -f /tmp/fb-security-database-update2.fdb "$FB_RES/security2.fdb"
+fi
# Install the saved security database, if any
echo "Install the saved security database"
-if test -f /tmp/fb-security-database-update2.fdb; then
- mv -f /tmp/fb-security-database-update2.fdb "$FB_RES/English.lproj/var/security2.fdb"
- rm -f /tmp/fb-security-database-update2.fdb
+if test -f /tmp/fb-security-database-update4.fdb; then
+ mv -f /tmp/fb-security-database-update4.fdb "$FB_RES/security4.fdb"
+ rm -f /tmp/fb-security-database-update4.fdb
fi
#Install the saved aliases.conf, if any
@@ -128,21 +110,35 @@ if test -f /tmp/fb-aliases.conf; then
mv -f /tmp/fb-aliases.conf "$FB_RES/English.lproj/var/aliases.conf"
fi
+#Install the saved databases.conf, if any
+echo "Install the saved databases.conf file"
+if test -f /tmp/fb-databases.conf; then
+ mv -f /tmp/fb-databases.conf "$FB_RES/databases.conf"
+fi
+
#Install the saved UDF libraries, if any
echo "Install the saved UDF libraries"
-cp /tmp/UDF_Save/*.* $FB_RES/English.lproj/var/UDF/
+cp /tmp/UDF_Save/*.* $FB_RES/UDF/
rm -fr /tmp/UDF_save
-#If classic, add libfbclient to dynamic loader search path
-echo "Add libfbclient to dynamic loader search path"
-if [ ! -f "$FB_FW/Versions/A/Resources/.SuperServer" ]; then
- ln -s "$FB_FW/Libraries/libfbclient.dylib" /usr/local/lib/libfbclient.dylib
+# Test for saved security database
+if test -f "$FB_FW/Versions/A/Resources/security2.fdb"; then
+echo "Legacy 2.x Security database has been preserved"
fi
-# And last but not least, start the Servers
-echo "Start the Servers via launchctl"
+if test -f "$FB_FW/Versions/A/Resources/security4.fdb"; then
+echo "Security database has been preserved"
+fi
+
+# Initilise the security database with default user
+echo "Add SYSDBA and password"
+$FB_FW/Versions/A/Resources/bin/gsec -add sysdba -pw masterkey -user sysdba
+rm -fr /tmp/firebird
+
+# And last but not least, start the Server
+echo "Start the Server via launchctl"
cp $FB_FW/Resources/org.firebird.gds.plist /Library/LaunchDaemons/org.firebird.gds.plist
-launchctl load /Library/LaunchDaemons/org.firebird.gds.plist
+launchctl load /Library/LaunchDaemons/org.firebird.gds.plist
diff --git a/builds/install/arch-specific/darwin/launchd.org.firebird.gds.plist b/builds/install/arch-specific/darwin/launchd.org.firebird.gds.plist
index cc7df4a211..aa9212a77d 100644
--- a/builds/install/arch-specific/darwin/launchd.org.firebird.gds.plist
+++ b/builds/install/arch-specific/darwin/launchd.org.firebird.gds.plist
@@ -2,36 +2,15 @@
-Disabled
-
Label
org.firebird.gds
ProgramArguments
-/Library/Frameworks/Firebird.framework/Resources/bin/fb_smp_server
+/Library/Frameworks/Firebird.framework/Resources/bin/fbguard
-InetdCompatibility
-
-Wait
-
-
-InitGroups
+RunAtLoad
-Sockets
-
-Listeners
-
-SockServiceName
-gds_db
-SockType
-stream
-SockFamily
-IPv4
-
-
-OnDemand
+KeepAlive
-UserName
-firebird
diff --git a/builds/install/arch-specific/darwin/launchdcs.org.firebird.gds.plist b/builds/install/arch-specific/darwin/launchdcs.org.firebird.gds.plist
new file mode 100644
index 0000000000..8395235ccf
--- /dev/null
+++ b/builds/install/arch-specific/darwin/launchdcs.org.firebird.gds.plist
@@ -0,0 +1,35 @@
+
+
+
+
+Disabled
+
+Label
+org.firebird.gds
+ProgramArguments
+
+/Library/Frameworks/Firebird.framework/Resources/bin/firebird
+
+InetdCompatibility
+
+Wait
+
+
+InitGroups
+
+Sockets
+
+Listeners
+
+SockServiceName
+gds_db
+SockType
+stream
+SockFamily
+IPv4
+
+
+UserName
+firebird
+
+
diff --git a/builds/install/arch-specific/darwin/preupgrade-script b/builds/install/arch-specific/darwin/preupgrade-script
index 556d7e2d58..153b5482f9 100644
--- a/builds/install/arch-specific/darwin/preupgrade-script
+++ b/builds/install/arch-specific/darwin/preupgrade-script
@@ -10,22 +10,18 @@
FB_FW="/Library/Frameworks/Firebird.framework"
FB_UDF="/Library/Frameworks/Firebird.framework/Resources/English.lproj/var/UDF"
-if test -f "$FB_FW/Versions/A/Resources/English.lproj/var/isc4.gdb"; then
- mv -f "$FB_FW/Versions/A/Resources/English.lproj/var/isc4.gdb" /tmp/fb-security-database-update.fdb
-fi
-
-if test -f "$FB_FW/Versions/A/Resources/English.lproj/var/security.fdb"; then
- mv -f "$FB_FW/Versions/A/Resources/English.lproj/var/security.fdb" /tmp/fb-security-database-update.fdb
-fi
-
-if test -f "$FB_FW/Versions/A/Resources/English.lproj/var/security2.fdb"; then
- mv -f "$FB_FW/Versions/A/Resources/English.lproj/var/security2.fdb" /tmp/fb-security-database-update2.fdb
+if test -f "$FB_FW/Versions/A/Resources/English.lproj/var/security3.fdb"; then
+ mv -f "$FB_FW/Versions/A/Resources/English.lproj/var/security3.fdb" /tmp/fb-security-database-update3.fdb
fi
if test -f "$FB_FW/Versions/A/Resources/English.lproj/var/aliases.conf"; then
mv -f "$FB_FW/Versions/A/Resources/English.lproj/var/aliases.conf" /tmp/fb-aliases.conf
fi
+if test -f "$FB_FW/Versions/A/Resources/English.lproj/var/databases.conf"; then
+ mv -f "$FB_FW/Versions/A/Resources/English.lproj/var/databases.conf" /tmp/fb-databases.conf
+fi
+
rm $FB_UDF/fbudf*
rm $FB_UDF/ib_udf*
mkdir /tmp/UDF_save
diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in
index d8ce881eb7..71aea18963 100644
--- a/builds/posix/Makefile.in
+++ b/builds/posix/Makefile.in
@@ -152,15 +152,27 @@ external:
ifeq ($(TOMMATH_BUILD_FLG),Y)
CFLAGS="$(CFLAGS)" $(MAKE) -C $(ROOT)/extern/libtommath -f makefile.shared GCC=$(GCC)
+
+ifeq ($(PLATFORM),DARWIN)
+ install_name_tool -id "@rpath/lib/libtommath.dylib" $(TOMMATH)/.libs/libtommath.0.dylib
+ cp $(TOMMATH)/.libs/libtommath.0.dylib $(LIB)/libtommath.dylib
+else
ln -sf $(TOMMATH_SO).$(TOMMATH_VER) $(LIB)
ln -sf $(TOMMATH_SO) $(LIB)
endif
+endif
ifeq ($(TOMCRYPT_BUILD_FLG),Y)
CFLAGS="$(CFLAGS) $(TOM2TOM_FLAGS)" $(MAKE) -C $(ROOT)/extern/libtomcrypt -f makefile.shared GCC=$(GCC)
+
+ifeq ($(PLATFORM),DARWIN)
+ install_name_tool -id "@rpath/lib/libtomcrypt.dylib" $(TOMCRYPT)/.libs/libtomcrypt.1.dylib
+ cp $(TOMCRYPT)/.libs/libtomcrypt.1.dylib $(LIB)/libtomcrypt.dylib
+else
ln -sf $(TOMCRYPT_SO).$(TOMCRYPT_VER) $(LIB)
ln -sf $(TOMCRYPT_SO) $(LIB)
endif
+endif
ifeq ($(STD_EDITLINE),false)
ifeq ($(EDITLINE_FLG),Y)
@@ -352,7 +364,7 @@ endif
# remote redirector is statically linked in main FB library
$(LIBFIREBIRD_FULLNAME): $(YValve_Objects) $(Remote_Client_Objects) $(COMMON_LIB)
- $(LINK_FIREBIRD) -o $@ $^ $(LINK_FIREBIRD_LIBS)
+ $(LINK_FIREBIRD) -o $@ $^ $(LINK_FIREBIRD_LIBS) $(call LIB_LINK_DARWIN_INSTALL_NAME,lib/libfbclient.$(SHRLIB_EXT))
#___________________________________________________________________________
@@ -362,7 +374,7 @@ $(LIBFIREBIRD_FULLNAME): $(YValve_Objects) $(Remote_Client_Objects) $(COMMON_LIB
engine: $(ENGINE_SONAME)
$(ENGINE_SONAME): $(Engine_Objects) $(SVC_Objects) $(COMMON_LIB)
- $(LINK_ENGINE) -o $@ $^ $(LINK_ENGINE_LIBS)
+ $(LINK_ENGINE) -o $@ $^ $(LINK_ENGINE_LIBS) $(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/$(EngineSoName))
#___________________________________________________________________________
@@ -372,7 +384,7 @@ $(ENGINE_SONAME): $(Engine_Objects) $(SVC_Objects) $(COMMON_LIB)
fbintl: $(LIBFBINTL_SO)
$(LIBFBINTL_SO): $(INTL_Objects) $(COMMON_LIB)
- $(LINK_INTL) -o $@ $^ $(LINK_INTL_LIBS)
+ $(LINK_INTL) -o $@ $^ $(LINK_INTL_LIBS) $(call LIB_LINK_DARWIN_INSTALL_NAME,intl/libfbintl.$(SHRLIB_EXT))
#___________________________________________________________________________
@@ -385,7 +397,7 @@ $(LIBFBINTL_SO): $(INTL_Objects) $(COMMON_LIB)
gpre: $(GPRE) databases
$(GPRE): $(GPRE_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
HELP_FDB = $(FIREBIRD)/help/help.fdb
SECURITY_FDB = $(FIREBIRD)/security4.fdb
@@ -444,7 +456,7 @@ udfsupport:
ibutil: $(LIBIBUTIL_SO)
$(LIBIBUTIL_SO): $(UTIL_Objects)
- $(LINK_IB_UTIL) -o $@ $^ $(LINK_IB_UTIL_LIBS)
+ $(LINK_IB_UTIL) -o $@ $^ $(LINK_IB_UTIL_LIBS) $(call LIB_LINK_DARWIN_INSTALL_NAME,lib/libib_util.$(SHRLIB_EXT))
#___________________________________________________________________________
@@ -459,62 +471,62 @@ utilities: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix g
firebird_server: $(FB_DAEMON)
$(FB_DAEMON): $(Remote_Server_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
fb_lock_print: $(LOCKPRINT)
$(LOCKPRINT): $(LOCKPRINT_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
fbguard: $(FBGUARD)
$(FBGUARD): $(FBGUARD_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
fbsvcmgr: $(FBSVCMGR)
$(FBSVCMGR): $(FBSVCMGR_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
fbtracemgr: $(FBTRACEMGR)
$(FBTRACEMGR): $(FBTRACEMGR_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
gbak: $(GBAK)
$(GBAK): $(GBAK_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
gsplit: $(GSPLIT)
$(GSPLIT): $(GSPLIT_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
gfix: $(GFIX)
$(GFIX): $(GFIX_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
gsec: $(GSEC)
$(GSEC): $(GSEC_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
gstat: $(GSTAT)
$(GSTAT): $(GSTAT_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
isql: $(ISQL)
$(ISQL): $(ISQL_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIBEDITLINE) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIBEDITLINE) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
nbackup: $(NBACKUP)
$(NBACKUP): $(NBACKUP_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
#___________________________________________________________________________
@@ -544,32 +556,37 @@ $(PLUGINS)/udr_engine.conf: $(ROOT)/src/plugins/udr_engine/udr_engine.conf
cp $^ $@
$(UDR_PLUGIN): $(UDRENG_Objects) $(COMMON_LIB)
- $(LINK_UDRENG) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_UDRENG_LIBS) $(FIREBIRD_LIBRARY_LINK)
+ $(LINK_UDRENG) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_UDRENG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
+ $(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libudr_engine.$(SHRLIB_EXT))
legacy_user_management: $(LEGACY_USER_MANAGER)
$(LEGACY_USER_MANAGER): $(LEGACY_USERS_MANAGE_Objects) $(COMMON_LIB)
- $(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)
+ $(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
+ $(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libLegacy_UserManager.$(SHRLIB_EXT))
legacy_auth_server: $(LEGACY_AUTH_SERVER)
$(LEGACY_AUTH_SERVER): $(LEGACY_AUTH_SERVER_Objects) $(COMMON_LIB)
- $(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)
+ $(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
+ $(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libLegacy_Auth.$(SHRLIB_EXT))
trace: $(FBTRACE)
$(FBTRACE): $(FBTRACE_UTIL_Objects) $(COMMON_LIB)
- $(LINK_TRACE) -o $@ $^ $(FIREBIRD_LIBRARY_LINK) $(LINK_TRACE_LIBS)
+ $(LINK_TRACE) -o $@ $^ $(FIREBIRD_LIBRARY_LINK) $(LINK_TRACE_LIBS) $(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libfbtrace.$(SHRLIB_EXT))
auth_debug: $(AUTH_DEBUGGER)
$(AUTH_DEBUGGER): $(AUTH_DEBUGGER_Objects) $(COMMON_LIB)
- $(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)
+ $(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
+ $(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libAuth_Debug.$(SHRLIB_EXT))
srp_user_management: $(SRP_USER_MANAGER)
$(SRP_USER_MANAGER): $(SRP_USERS_MANAGE_Objects) $(COMMON_LIB)
- $(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)
+ $(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)\
+ $(call LIB_LINK_DARWIN_INSTALL_NAME,plugins/libSrp.$(SHRLIB_EXT))
udf_compat: $(UDF_BACKWARD_COMPATIBILITY) $(COMPAT_SQL)
@@ -596,7 +613,7 @@ gen_codes: $(CODES) msg.timestamp
$(CODES) $(SRC_ROOT)/include/gen $(LNG_ROOT)
$(CODES): $(CODES_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
$(IDS): $(SRC_ROOT)/misc/ids.m $(SRC_ROOT)/jrd/relations.h
m4 $< > $@
@@ -620,7 +637,7 @@ cross_rest: qli gbak_files
qli: $(QLI)
$(QLI): $(QLI_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
examples: include_generic
$(MAKE) -f Makefile.examples -C $(GEN_ROOT)/examples/
@@ -633,7 +650,7 @@ $(FIREBIRD_MSG): $(BUILD_FILE) msg.timestamp
$(CHMOD_6) $@
$(BUILD_FILE): $(BUILD_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $(LSB_UNDEF) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $(LSB_UNDEF) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
gbak_files: $(GBAK_FILES)
diff --git a/builds/posix/darwin.defaults b/builds/posix/darwin.defaults
index 3406cc66a9..9a99f04cae 100644
--- a/builds/posix/darwin.defaults
+++ b/builds/posix/darwin.defaults
@@ -17,7 +17,7 @@
# 2 Oct 2002, Nickolay Samofatov - Major Cleanup
# Wed Jan 28 2009 Alex Peshkov - moved common part of prefix.darwin* to separate file
-# Options
+# Options
#FirebirdInstallPrefix=
LIB_BUNDLE_OPTIONS=$(LD_FLAGS) -bundle -flat_namespace -undefined suppress
LIB_LINK_OPTIONS=$(LD_FLAGS) -dynamiclib -flat_namespace
@@ -30,19 +30,6 @@ LIB_LINK_MAPFILE=-Wl,-exported_symbols_list,$(1)
PLATFORM_PATH=os/darwin
PLATFORM_FALLBACK=os/posix
-# Per-library link rules
-LINK_UDF = $(LIB_LINK) $(LIB_BUNDLE_OPTIONS) -L$(LIB)
-LINK_UDF_LIBS = -lm $(THR_FLAGS) $(THR_LIBS)
-
-LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_LINK_RPATH) $(LINK_LIB_SONAME)
-
-LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME)
-
-LINK_TRACE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME)
-
-LINK_CLIENT = $(LIB_LINK) $(LINK_FIREBIRD_CLIENT_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_LINK_IMPLIB)\
- $(LIB_CLIENT_LINK_OPTIONS) $(LIB_LINK_SONAME)
-
STATIC_CXX_SUPPORT = -lsupc++ $(GCCS) -lgcc_eh -lSystem
INLINE_EDIT_SED:= -i ""
diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults
index b0ff592706..e884b7aced 100755
--- a/builds/posix/make.defaults
+++ b/builds/posix/make.defaults
@@ -178,9 +178,16 @@ AC_CXXFLAGS = @CXXFLAGS@
# LINKER COMMANDS
+# FIXME: -static-libstdc++ in MacOS
+ifeq ($(PLATFORM),DARWIN)
+LIB_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS)
+EXE_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS)
+else
LIB_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS) -static-libstdc++
-STATICLIB_LINK = $(AR) crus
EXE_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS) -static-libstdc++
+endif
+
+STATICLIB_LINK = $(AR) crus
STATICEXE_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS) -static-libstdc++
LINK_LIBS = @LIBS@ $(DECLIB) $(RE2LIB)
@@ -258,8 +265,12 @@ LIBIBUTIL_SO = $(LIB)/$(IbUtilLibraryName)
# Own tommath support
TOMMATH=$(ROOT)/extern/libtommath
TOMMATH_INC=$(TOMMATH)
-TOMMATH_SO=$(TOMMATH)/.libs/libtommath.so
TOMMATH_VER=0
+ifeq ($(PLATFORM),DARWIN)
+TOMMATH_SO=$(TOMMATH)/.libs/libtommath.dylib
+else
+TOMMATH_SO=$(TOMMATH)/.libs/libtommath.so
+endif
# Own tomcrypt support
TOMCRYPT=$(ROOT)/extern/libtomcrypt
@@ -294,7 +305,10 @@ LINK_PLUGIN_SYMBOLS = $(call LIB_LINK_MAPFILE,$(PLUGIN_VERS))
LINK_EXEC_EXPORT=-rdynamic
UDR_SUPPORT_LIBS=
-LIB_PLATFORM_RPATH = -Wl,-rpath,$(1)
+ifeq ($(PLATFORM),DARWIN)
+ LIB_LINK_RPATH =
+else
+ LIB_PLATFORM_RPATH = -Wl,-rpath,$(1)
ifeq (@USE_RPATH@,1)
ifeq ($(strip @BINRELOC_CFLAGS@),)
@@ -305,6 +319,16 @@ ifeq (@USE_RPATH@,1)
else
LIB_LINK_RPATH =
endif
+endif
+
+ifeq ($(PLATFORM),DARWIN)
+ LINK_DARWIN_RPATH = -Wl,-rpath,@loader_path/$(1)
+ LIB_LINK_DARWIN_INSTALL_NAME = -install_name @rpath/$(1)
+else
+ LINK_DARWIN_RPATH =
+ LIB_LINK_DARWIN_INSTALL_NAME =
+endif
+
LIB_PATH_OPTS = $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_RPATH,intl)
LIB_LINK_SONAME= -Wl,-soname,$(1)
LIB_LINK_MAPFILE= -Wl,--version-script,$(1)
@@ -317,33 +341,35 @@ FB_DAEMON = $(BIN)/firebird$(EXEC_EXT)
# Per-library link rules
LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_EXT)) $(UNDEF_FLAGS)\
- $(call LIB_LINK_RPATH,lib)
+ $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..)
LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util $(SO_LINK_LIBS)
LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\
- $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib)
+ $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..)
LINK_IB_UTIL_LIBS = $(THR_LIBS)
LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\
- $(call LIB_LINK_SONAME,libfbintl.$(SHRLIB_EXT).1) $(call LIB_LINK_RPATH,lib)
+ $(call LIB_LINK_SONAME,libfbintl.$(SHRLIB_EXT).1) $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..)
LINK_INTL_LIBS = -L$(LIB) $(SO_LINK_LIBS) $(FIREBIRD_LIBRARY_LINK)
LINK_TRACE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\
- $(call LIB_LINK_SONAME,$(LIB_PREFIX)fbtrace.$(SHRLIB_EXT).0) $(call LIB_LINK_RPATH,lib)
+ $(call LIB_LINK_SONAME,$(LIB_PREFIX)fbtrace.$(SHRLIB_EXT).0) $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..)
LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS)
LINK_FIREBIRD = $(LIB_LINK) $(LINK_FIREBIRD_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\
- $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib)
+ $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..)
LINK_FIREBIRD_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(MATHLIB) $(CRYPTLIB)
LINK_ENGINE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\
- $(call LIB_LINK_SONAME,$(EngineSoName)) $(call LIB_LINK_RPATH,lib)
+ $(call LIB_LINK_SONAME,$(EngineSoName)) $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..)
LINK_ENGINE_LIBS = $(LINK_FIREBIRD_LIBS) $(FIREBIRD_LIBRARY_LINK)
-LINK_UDRENG = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(call LIB_LINK_RPATH,lib) $(UNDEF_FLAGS)
+LINK_UDRENG = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(call LIB_LINK_RPATH,lib) $(UNDEF_FLAGS)\
+ $(call LINK_DARWIN_RPATH,..)
LINK_UDRENG_LIBS = -L$(LIB) $(SO_LINK_LIBS)
-LINK_PLUGIN = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(call LIB_LINK_RPATH,lib) $(UNDEF_FLAGS)
+LINK_PLUGIN = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(call LIB_LINK_RPATH,lib) $(UNDEF_FLAGS)\
+ $(call LINK_DARWIN_RPATH,..)
LINK_PLUG_LIBS = -L$(LIB) $(SO_LINK_LIBS)
# Pay attention - we place common library into obj, not lib dir
diff --git a/builds/posix/postfix.darwin b/builds/posix/postfix.darwin
index 35afe239dc..98149f755e 100644
--- a/builds/posix/postfix.darwin
+++ b/builds/posix/postfix.darwin
@@ -1,4 +1,5 @@
# The contents of this file are subject to the Interbase Public
+
# License Version 1.0 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy
# of the License at http://www.Inprise.com/IPL.html
@@ -17,166 +18,76 @@
# Start of file prefix.darwin: $(VERSION) DARWIN
# 2 Oct 2002, Nickolay Samofatov - Major Cleanup
+TARGET ?= Release
+ICU_VERS = icu54
+ICU_LOC ?= $(HOME)/$(ICU_VERS)/icu/source/lib/
+FB_FW = ../gen/$(TARGET)/frameworks/Firebird4.framework
-darwin_setup_framework: FB_FW = ../gen/firebird/Firebird.framework
-darwin_setup_framework:
- -$(RM) -rf $(FB_FW) ../gen/firebird/Firebird.framework
- mkdir -p $(FB_FW)/Versions/A/Resources/English.lproj/var
- mkdir -p $(FB_FW)/Versions/A/Libraries
- ln -s Versions/Current/Firebird $(FB_FW)/Firebird
- ln -s Versions/Current/Headers $(FB_FW)/Headers
- ln -s Versions/Current/Resources $(FB_FW)/Resources
- ln -s Versions/Current/Libraries $(FB_FW)/Libraries
- ln -s A $(FB_FW)/Versions/Current
- ln -s ../../../include $(FB_FW)/Versions/A/Headers
- ln -s ../../../lib/libfbembed.dylib $(FB_FW)/Versions/A/Firebird
- ln -s ../../../lib $(FB_FW)/Versions/A/Libraries
- ln -s ../../../../../../firebird.msg \
- $(FB_FW)/Resources/English.lproj/var/firebird.msg
- ln -s ../../../../../../bin $(FB_FW)/Resources/English.lproj/var/bin
- ln -s ../../../../../../UDF $(FB_FW)/Resources/English.lproj/var/UDF
- ln -s ../../../../../../intl $(FB_FW)/Resources/English.lproj/var/intl
- ln -s ../../../../../../plugins $(FB_FW)/Resources/English.lproj/var/plugins
- ln -s ../../../../../../security2.fdb \
- $(FB_FW)/Resources/English.lproj/var/security2.fdb
- ln -s ../../../../../../help $(FB_FW)/Resources/English.lproj/var/help
+all: framework
-darwin_finish_cs_framework: FB_FW = ../gen/firebird/frameworks/FirebirdCS.framework
-darwin_finish_cs_framework:
+framework:
-$(RM) -rf $(FB_FW)
- mkdir -p $(FB_FW)/Versions/A/Resources/English.lproj/var
mkdir -p $(FB_FW)/Versions/A/Libraries
+
+ cp $(ICU_LOC)*.dylib ../gen/$(TARGET)/firebird/lib/
+
ln -s Versions/Current/Firebird $(FB_FW)/Firebird
ln -s Versions/Current/Headers $(FB_FW)/Headers
ln -s Versions/Current/Resources $(FB_FW)/Resources
ln -s Versions/Current/Libraries $(FB_FW)/Libraries
ln -s A $(FB_FW)/Versions/Current
- cp -r ../gen/firebird/include $(FB_FW)/Versions/A/Headers
- cp ../gen/firebird/lib/libfbembed.dylib $(FB_FW)/Versions/A/Firebird
- cp ../gen/firebird/lib/libfbclient.dylib $(FB_FW)/Versions/A/Libraries/libfbclient.dylib
- cp ../gen/firebird/lib/libicudata.dylib $(FB_FW)/Versions/A/Libraries/libicudata.dylib
- cp ../gen/firebird/lib/libicui18n.dylib $(FB_FW)/Versions/A/Libraries/libicui18n.dylib
- cp ../gen/firebird/lib/libicuuc.dylib $(FB_FW)/Versions/A/Libraries/libicuuc.dylib
- cp ../gen/firebird/lib/libib_util.dylib $(FB_FW)/Versions/A/Libraries/libib_util.dylib
- cp ../gen/firebird/firebird.msg \
- $(FB_FW)/Resources/English.lproj/var/firebird.msg
- cp -r ../gen/firebird/UDF $(FB_FW)/Resources/English.lproj/var/UDF
- mkdir -p $(FB_FW)/Resources/English.lproj/var/intl
- cp -r ../gen/firebird/intl/libfbintl.dylib \
- $(FB_FW)/Resources/English.lproj/var/intl/fbintl
- cp ../builds/install/misc/fbintl.conf \
- $(FB_FW)/Resources/English.lproj/var/intl/fbintl.conf
- chmod a+rx $(FB_FW)/Resources/English.lproj/var/intl/fbintl
- mkdir -p $(FB_FW)/Resources/English.lproj/var/plugins
- cp ../gen/firebird/plugins/libfbtrace.dylib \
- $(FB_FW)/Resources/English.lproj/var/plugins/libfbtrace.dylib
- cp -r ../gen/firebird/help $(FB_FW)/Resources/English.lproj/var/help
- cp ../gen/firebird/security2.fdb $(FB_FW)/Resources/English.lproj/var
+ cp -r ../gen/$(TARGET)/firebird/include $(FB_FW)/Versions/A/Headers
+
+ mkdir -p $(FB_FW)/Versions/A/Resources/lib
+ cp ../gen/$(TARGET)/firebird/lib/libtommath.dylib $(FB_FW)/Versions/A/Resources/lib/
+ cp ../gen/$(TARGET)/firebird/lib/libtomcrypt.dylib $(FB_FW)/Versions/A/Resources/lib/
+ cp ../gen/$(TARGET)/firebird/lib/libfbclient.dylib $(FB_FW)/Versions/A/Resources/lib/
+ cp ../gen/$(TARGET)/firebird/lib/libicu{data,i18n,uc}.*dylib $(FB_FW)/Versions/A/Resources/lib/
+ cp ../gen/$(TARGET)/firebird/lib/libib_util.dylib $(FB_FW)/Versions/A/Resources/lib/
+ ln -s ../Resources/lib/libfbclient.dylib $(FB_FW)/Versions/A/Libraries/libfbclient.dylib
+ ln -s ../Resources/lib/libib_util.dylib $(FB_FW)/Versions/A/Libraries/libib_util.dylib
+
+ mkdir -p $(FB_FW)/Versions/A/Resources/English.lproj
+ mkdir -p $(FB_FW)/Versions/A/Resources/intl
+ cp -r ../gen/$(TARGET)/firebird/intl/libfbintl.dylib $(FB_FW)/Versions/A/Resources/intl/libfbintl.dylib
+ cp ../gen/$(TARGET)/firebird/intl/fbintl.conf $(FB_FW)/Versions/A/Resources/intl/fbintl.conf
+ #chmod a+rx $(FB_FW)/Versions/A/Resources/intl/fbintl
+ cp -r ../gen/$(TARGET)/firebird/plugins $(FB_FW)/Versions/A/Resources/plugins
+ cp ../gen/$(TARGET)/firebird/security4.fdb $(FB_FW)/Versions/A/Resources/security4.fdb
+ cp ../gen/$(TARGET)/firebird/firebird.msg $(FB_FW)/Versions/A/Resources/firebird.msg
+ cp -r ../gen/$(TARGET)/firebird/help $(FB_FW)/Versions/A/Resources/help
mkdir -p $(FB_FW)/Resources/doc
cp -r ../doc $(FB_FW)/Resources
mkdir -p $(FB_FW)/Resources/examples
- cp -r ../gen/firebird/examples $(FB_FW)/Resources
+ cp -r ../gen/$(TARGET)/firebird/examples $(FB_FW)/Resources
mkdir -p $(FB_FW)/Resources/bin
- ln -s ../../bin $(FB_FW)/Resources/English.lproj/var/bin
- cp ../gen/firebird/bin/fb_inet_server $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gfix $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gbak $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/isql $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gpre $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gdef $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/qli $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/fb_lock_print $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gsec $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gstat $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/nbackup $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/fbsvcmgr $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/fbtracemgr $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/fbguard $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/fb_smp_server $(FB_FW)/Resources/bin
- chmod +x ../builds/install/arch-specific/darwin/changeMultiConnectMode
- cp ../builds/install/arch-specific/darwin/changeMultiConnectMode \
- $(FB_FW)/Resources/bin/changeMultiConnectMode.sh
- cp ../builds/install/arch-specific/darwin/FrameworkInfo.plist \
- $(FB_FW)/Resources/Info.plist
- cp ../builds/install/arch-specific/darwin/launchd.org.firebird.gds.plist \
- $(FB_FW)/Resources/org.firebird.gds.plist
- cp ../builds/install/arch-specific/darwin/Readme.txt \
- $(FB_FW)/Resources/Readme.txt
- cp ../builds/install/arch-specific/darwin/License.txt \
- $(FB_FW)/Resources/License.txt
- cp ../gen/install/misc/firebird.conf $(FB_FW)/Resources/English.lproj/var
- cp ../builds/install/arch-specific/darwin/aliases.conf.in \
- $(FB_FW)/Resources/English.lproj/var/aliases.conf
- cp ../src/utilities/ntrace/fbtrace.conf \
- $(FB_FW)/Resources/English.lproj/var/fbtrace.conf
+ touch $(FB_FW)/Resources/SuperServer
+ chflags hidden $(FB_FW)/Resources/SuperServer
+ cp ../gen/$(TARGET)/firebird/bin/gfix $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/gbak $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/isql $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/gpre $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/qli $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/fb_lock_print $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/gsec $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/gstat $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/nbackup $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/fbguard $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/fbtracemgr $(FB_FW)/Versions/A/Resources/bin
+ cp ../gen/$(TARGET)/firebird/bin/firebird $(FB_FW)/Versions/A/Resources/bin
+ chmod +x ../builds/install/arch-specific/darwin/changeServerMode
+ cp ../builds/install/arch-specific/darwin/changeServerMode $(FB_FW)/Versions/A/Resources/bin/changeServerMode.sh
+ cp ../builds/install/arch-specific/darwin/FrameworkInfo.plist $(FB_FW)/Versions/A/Resources/Info.plist
+ cp ../builds/install/arch-specific/darwin/launchd.org.firebird.gds.plist $(FB_FW)/Versions/A/Resources/org.firebird.gds.plist
+ cp ../builds/install/arch-specific/darwin/launchdcs.org.firebird.gds.plist $(FB_FW)/Versions/A/Resources/cs.org.firebird.gds.plist
+ cp ../builds/install/arch-specific/darwin/Readme.txt $(FB_FW)/Versions/A/Resources/Readme.txt
+ cp ../builds/install/arch-specific/darwin/License.txt $(FB_FW)/Versions/A/Resources/License.txt
+ cp ../gen/$(TARGET)/firebird/firebird.conf $(FB_FW)/Versions/A/Resources//firebird.conf
+ cp ../gen/$(TARGET)/firebird/databases.conf $(FB_FW)/Versions/A/Resources/databases.conf
+ cp ../gen/$(TARGET)/firebird/fbtrace.conf $(FB_FW)/Versions/A/Resources/fbtrace.conf
+ cp ../gen/$(TARGET)/firebird/plugins.conf $(FB_FW)/Versions/A/Resources/plugins.conf
+ mkdir $(FB_FW)/Versions/A/Resources/misc
+ mkdir $(FB_FW)/Versions/A/Resources/misc/upgrade
+ cp -r ../src/misc/upgrade/v3.0 $(FB_FW)/Versions/A/Resources/misc/upgrade
-darwin_finish_ss_framework: FB_FW = ../gen/firebird/frameworks/FirebirdSS.framework
-darwin_finish_ss_framework:
- -$(RM) -rf $(FB_FW)
- mkdir -p $(FB_FW)/Versions/A/Resources/English.lproj/var
- mkdir -p $(FB_FW)/Versions/A/Libraries
- ln -s Versions/Current/Firebird $(FB_FW)/Firebird
- ln -s Versions/Current/Headers $(FB_FW)/Headers
- ln -s Versions/Current/Resources $(FB_FW)/Resources
- ln -s Versions/Current/Libraries $(FB_FW)/Libraries
- ln -s A $(FB_FW)/Versions/Current
- cp -r ../gen/firebird/include $(FB_FW)/Versions/A/Headers
- cp ../gen/firebird/lib/libfbclient.dylib $(FB_FW)/Versions/A/Firebird
- cp ../gen/firebird/lib/libfbclient.dylib $(FB_FW)/Versions/A/Libraries/libfbclient.dylib
- cp ../gen/firebird/lib/libicudata.dylib $(FB_FW)/Versions/A/Libraries/libicudata.dylib
- cp ../gen/firebird/lib/libicui18n.dylib $(FB_FW)/Versions/A/Libraries/libicui18n.dylib
- cp ../gen/firebird/lib/libicuuc.dylib $(FB_FW)/Versions/A/Libraries/libicuuc.dylib
- cp ../gen/firebird/lib/libib_util.dylib $(FB_FW)/Versions/A/Libraries/libib_util.dylib
- cp ../gen/firebird/firebird.msg \
- $(FB_FW)/Resources/English.lproj/var/firebird.msg
- cp -r ../gen/firebird/UDF $(FB_FW)/Resources/English.lproj/var/UDF
- mkdir -p $(FB_FW)/Resources/English.lproj/var/intl
- cp -r ../gen/firebird/intl/libfbintl.dylib \
- $(FB_FW)/Resources/English.lproj/var/intl/fbintl
- cp ../builds/install/misc/fbintl.conf \
- $(FB_FW)/Resources/English.lproj/var/intl/fbintl.conf
- chmod a+rx $(FB_FW)/Resources/English.lproj/var/intl/fbintl
- mkdir -p $(FB_FW)/Resources/English.lproj/var/plugins
- cp ../gen/firebird/plugins/libfbtrace.dylib \
- $(FB_FW)/Resources/English.lproj/var/plugins/libfbtrace.dylib
- cp -r ../gen/firebird/help $(FB_FW)/Resources/English.lproj/var/help
- cp ../gen/firebird/security2.fdb $(FB_FW)/Resources/English.lproj/var
- mkdir -p $(FB_FW)/Resources/doc
- ln -s ../../doc $(FB_FW)/Resources/doc
- cp -r ../doc $(FB_FW)/Resources
- mkdir -p $(FB_FW)/Resources/examples
- cp -r ../gen/firebird/examples $(FB_FW)/Resources
- mkdir -p $(FB_FW)/Resources/bin
- touch $(FB_FW)/Resources/.SuperServer
- ln -s ../../bin $(FB_FW)/Resources/English.lproj/var/bin
- cp ../gen/firebird/bin/fbserver $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/fbguard $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gfix $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gbak $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/isql $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gpre $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/fb_lock_print $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gsec $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gstat $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/nbackup $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/qli $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/gdef $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/fbsvcmgr $(FB_FW)/Resources/bin
- cp ../gen/firebird/bin/fbtracemgr $(FB_FW)/Resources/bin
- cp ../builds/install/arch-specific/darwin/FrameworkInfo.plist \
- $(FB_FW)/Resources/Info.plist
- cp ../builds/install/arch-specific/darwin/launchdss.org.firebird.gds.plist \
- $(FB_FW)/Resources/org.firebird.gds.plist
- cp ../builds/install/arch-specific/darwin/Readme.txt \
- $(FB_FW)/Resources/Readme.txt
- cp ../gen/install/misc/firebird.conf $(FB_FW)/Resources/English.lproj/var
- cp ../builds/install/arch-specific/darwin/aliases.conf.in \
- $(FB_FW)/Resources/English.lproj/var/aliases.conf
- cp ../src/utilities/ntrace/fbtrace.conf \
- $(FB_FW)/Resources/English.lproj/var/fbtrace.conf
-darwin_postbuild_target: package
- @echo
- @echo Build Successful!!
- @echo
- @echo You can find the installer packages in gen/firebird, and the raw
- @echo frameworks in gen/firebird/frameworks
+ install_name_tool -id /Library/Frameworks/Firebird.framework/Libraries/libfbclient.dylib $(FB_FW)/Versions/A/Resources/lib/libfbclient.dylib
diff --git a/builds/posix/prefix.darwin_x86_64 b/builds/posix/prefix.darwin_x86_64
index 04d832733f..afd6a86b58 100644
--- a/builds/posix/prefix.darwin_x86_64
+++ b/builds/posix/prefix.darwin_x86_64
@@ -18,7 +18,7 @@
# 2 Oct 2002, Nickolay Samofatov - Major Cleanup
#
# Default build from 10.7 using Clang
-# The following exports assume you are using MacPorts ICU, libtommath
+# The following exports assume you are using MacPorts ICU, libtommath
# export CFLAGS='-I/opt/local/include -I/opt/local/include/libtommath'
# export CXXFLAGS='-I/opt/local/include -I/opt/local/include/libtommath -L/opt/local/lib'
# export LDFLAGS='-L/opt/local/lib'
@@ -33,9 +33,9 @@ export MACOSX_DEPLOYMENT_TARGET
PROD_FLAGS=-O1 -DDARWIN -pipe -MMD -fPIC -fno-common -mmacosx-version-min=10.7
DEV_FLAGS=-ggdb -DDARWIN -pipe -MMD -fPIC -fno-omit-frame-pointer -fno-common -Wall -fno-optimize-sibling-calls -mmacosx-version-min=10.7 -Wno-non-virtual-dtor
-CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden
+CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden -stdlib=libc++ -msse4
-EXE_LINK_OPTIONS:=
+EXE_LINK_OPTIONS:=
LD_FLAGS+=-liconv
FIREBIRD_LIBRARY_LINK+=-liconv
UNDEF_PLATFORM=
diff --git a/extern/cloop/Makefile b/extern/cloop/Makefile
index 6bc6af41a1..350127efa6 100644
--- a/extern/cloop/Makefile
+++ b/extern/cloop/Makefile
@@ -35,6 +35,8 @@ ifeq ($(TARGET),release)
CXX_FLAGS += -O3
endif
+CXX_FLAGS += -stdlib=libc++
+
ifeq ($(TARGET),debug)
FPC_FLAGS += -g
endif
diff --git a/extern/libtommath/makefile.shared b/extern/libtommath/makefile.shared
index 562bb1c7e7..fdc478c362 100644
--- a/extern/libtommath/makefile.shared
+++ b/extern/libtommath/makefile.shared
@@ -10,16 +10,20 @@ ifndef GCC
GCC=gcc
endif
-CC = libtool --mode=compile --tag=CC $(GCC)
+ifndef LIBTOOL
+LIBTOOL=libtool
+endif
+
+CC = $(LIBTOOL) --mode=compile --tag=CC $(GCC)
CFLAGS += -I./ -Wall -W -Wshadow -Wsign-compare
ifndef IGNORE_SPEED
-#for speed
+#for speed
CFLAGS += -O3 -funroll-loops
-#for size
+#for size
#CFLAGS += -Os
#x86 optimizations [should be valid for any GCC install though]
@@ -90,22 +94,20 @@ bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin_n.o
objs: $(OBJECTS)
$(LIBNAME): $(OBJECTS)
- $(GCC) -shared -fPIC -DPIC $(CFLAGS) $(addprefix .libs/, $(OBJECTS)) -Wl,-soname -Wl,$(LIBNAME_SO_0) -o .libs/$(LIBNAME_SO_0).$(VERSION_SO)
- ln -sf $(LIBNAME_SO_0).$(VERSION_SO) .libs/$(LIBNAME_SO_0)
- ln -sf $(LIBNAME_SO_0).$(VERSION_SO) .libs/$(LIBNAME_SO)
+ $(LIBTOOL) --mode=link --tag=CC gcc *.lo -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION)
install: $(LIBNAME)
install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(LIBPATH)
- libtool --mode=install install -c $(LIBNAME) $(DESTDIR)$(LIBPATH)/$(LIBNAME)
+ $(LIBTOOL) --mode=install install -c $(LIBNAME) $(DESTDIR)$(LIBPATH)/$(LIBNAME)
install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(INCPATH)
install -g $(GROUP) -o $(USER) $(HEADERS) $(DESTDIR)$(INCPATH)
test: $(LIBNAME) demo/demo.o
$(GCC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
- libtool --mode=link $(GCC) -o test demo/demo.o $(LIBNAME_S)
-
-mtest: test
+ $(LIBTOOL) --mode=link $(GCC) -o test demo/demo.o $(LIBNAME_S)
+
+mtest: test
cd mtest ; $(GCC) $(CFLAGS) mtest.c -o mtest
-
+
timing: $(LIBNAME)
$(GCC) $(CFLAGS) -DTIMER demo/timing.c $(LIBNAME_S) -o ltmtest
diff --git a/src/common/unicode_util.cpp b/src/common/unicode_util.cpp
index d35082f781..faacf19c78 100644
--- a/src/common/unicode_util.cpp
+++ b/src/common/unicode_util.cpp
@@ -58,10 +58,8 @@ namespace {
const char* const inTemplate = "icuin%s.dll";
const char* const ucTemplate = "icuuc%s.dll";
#elif defined(DARWIN)
-//const char* const inTemplate = "/Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib";
-//const char* const ucTemplate = "/Library/Frameworks/Firebird.framework/versions/A/Libraries/libicuuc.dylib";
-const char* const inTemplate = "libicui18n.dylib";
-const char* const ucTemplate = "libicuuc.dylib";
+const char* const inTemplate = "lib/libicui18n.%s.dylib";
+const char* const ucTemplate = "lib/libicuuc.%s.dylib";
#elif defined(HPUX)
const char* const inTemplate = "libicui18n.sl.%s";
const char* const ucTemplate = "libicuuc.sl.%s";
@@ -133,7 +131,7 @@ void BaseICU::initialize(ModuleLoader::Module* module)
getEntryPoint("u_init", module, uInit, true);
getEntryPoint("u_setDataDirectory", module, uSetDataDirectory, true);
-#ifdef WIN_NT
+#if defined(WIN_NT) || defined(DARWIN)
if (uSetDataDirectory)
{
// call uSetDataDirectory only if .dat file is exists at same folder