8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 16:03:03 +01:00

Frontport changes for MacOS build.

This commit is contained in:
Adriano dos Santos Fernandes 2019-11-28 12:54:50 -03:00
parent 6c1744a55c
commit 2e8060f081
20 changed files with 586 additions and 477 deletions

View File

@ -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/")

View File

@ -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

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<installer-gui-script minSpecVersion="1">
<title>Firebird Database Server</title>
<welcome file="Welcome.txt" mime-type="text/plain"/>
<license file="License.txt" mime-type="text/plain"/>
<readme file="Readme.txt" mime-type="text/plain"/>
<pkg-ref id="com.firebirdsql.Firebird"/>
<options customize="never" require-scripts="false"/>
<choices-outline>
<line choice="default">
<line choice="com.firebirdsql.Firebird"/>
</line>
</choices-outline>
<choice id="default"/>
<choice id="com.firebirdsql.Firebird" visible="false">
<pkg-ref id="com.firebirdsql.Firebird"/>
</choice>
<pkg-ref id="com.firebirdsql.Firebird" version="4.0.0" onConclusion="none">Firebird.pkg</pkg-ref>
</installer-gui-script>

View File

@ -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 /

View File

@ -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)

View File

@ -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.

View File

@ -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 <pbeach@ibphoenix.com>
# Alex Peshkov <peshkov@mail.ru>
# 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 <<EOF
Firebird 4.x can operate in different server modes. By default it is installed in SuperServer mode with full SMP support. However it can also run in Classic mode.
SuperServer offers better performance whilst Classic offers better availability.
This script will allow you to switch between SuperServer and the Classic variant.
Please make sure that you quit and exit all Firebird Applications before continuing
EOF
read -p "Option: (Classic|SuperServer) " multianswer
case $multianswer in
Classic)
# Check mode...
if [ -f "$FB_FW/Resources/Classic" ]; then
echo "Note: you are already in Classic mode"
exit 1
fi
launchctl unload $DAEMONLOC/org.firebird.gds.plist
fbconf=$FB_FW/Resources/firebird.conf
replaceLineInFile $fbconf "ServerMode=Classic" "ServerMode"
if [ -f "$FB_FW/Resources/SuperServer" ]; then
rm $FB_FW/Resources/SuperServer
fi
touch $FB_FW/Resources/Classic
chflags hidden $FB_FW/Resources/Classic
cp $FB_FW/Resources/cs.org.firebird.gds.plist $DAEMONLOC/org.firebird.gds.plist
launchctl load $DAEMONLOC/org.firebird.gds.plist
;;
SuperServer)
# Check mode...
if [ -f "$FB_FW/Resources/SuperServer" ]; then
echo "Note: you are already in SuperServer mode"
exit 1
fi
launchctl unload $DAEMONLOC/org.firebird.gds.plist
fbconf=$FB_FW/Resources/firebird.conf
replaceLineInFile $fbconf "ServerMode=Super" "ServerMode"
if [ -f "$FB_FW/Resources/Classic" ]; then
rm $FB_FW/Resources/Classic
fi
touch $FB_FW/Resources/SuperServer
chflags hidden $FB_FW/Resources/SuperServer
cp $FB_FW/Resources/org.firebird.gds.plist $DAEMONLOC/org.firebird.gds.plist
launchctl load $DAEMONLOC/org.firebird.gds.plist
;;
*)
echo "unknown option chosen"
exit 1
;;
esac

View File

@ -1,61 +1,71 @@
# Makefile script to generate an embedded Firebird bundle from an existing Framework
# Makefile script to generate an embedded Firebird Framework from a sucessful Firebird build
# To be run from the gen directory of a Firebird Release build
# Your application needs to be placed in the Resources/app directory.
FBE=../gen/firebird/Firebird.app
BINLOC=../gen/firebird/Firebird.app/Contents/MacOS/firebird/bin
LIBLOC=../gen/firebird/Firebird.app/Contents/MacOS/firebird
INTLOC=../gen/firebird/Firebird.app/Contents/MacOS/firebird/intl
FBE=../gen/Release/frameworks/FirebirdEmbedded.framework
BINLOC=../gen/Release/frameworks/FirebirdEmbedded.framework/Versions/A/Resources/bin
LIBLOC=../gen/Release/frameworks/FirebirdEmbedded.framework/Versions/A
INTLOC=../gen/Release/frameworks/FirebirdEmbedded.framework/Versions/A/Resources/intl
PLULOC=../gen/Release/frameworks/FirebirdEmbedded.framework/Versions/A/Resources/plugins
UTILOC=../gen/Release/frameworks/FirebirdEmbedded.framework/Versions/A/Libraries
OLDPATH=/Library/Frameworks/Firebird.framework/Versions/A/Libraries
all:
-$(RM) -rf $(FBE) ../gen/firebird/Firebird.app
mkdir -p $(FBE)/Contents
mkdir -p $(FBE)/Contents/MacOS
mkdir -p $(FBE)/Contents/MacOS/firebird
mkdir -p $(FBE)/Contents/Resources
mkdir -p $(FBE)/Contents/Frameworks
mkdir -p $(FBE)/Contents/Plugins
mkdir -p $(FBE)/Contents/SharedSupport
mkdir -p $(FBE)/Contents/MacOS/firebird/bin
mkdir -p $(FBE)/Contents/MacOS/firebird/intl
cp ../gen/install/misc/firebird.conf $(FBE)/Contents/MacOS/firebird/firebird.edit
cp ../gen/firebird/firebird.msg $(FBE)/Contents/MacOS/firebird/firebird.msg
cp ../gen/firebird/lib/libfbembed.dylib $(FBE)/Contents/MacOS/firebird/libfbembed.dylib
cp ../gen/firebird/lib/libicudata.dylib $(FBE)/Contents/MacOS/firebird/libicudata.dylib
cp ../gen/firebird/lib/libicui18n.dylib $(FBE)/Contents/MacOS/firebird/libicui18n.dylib
cp ../gen/firebird/lib/libicuuc.dylib $(FBE)/Contents/MacOS/firebird/libicuuc.dylib
cp ../gen/firebird/lib/libib_util.dylib $(FBE)/Contents/MacOS/firebird/libib_util.dylib
cp ../gen/firebird/security2.fdb $(FBE)/Contents/MacOS/firebird/security2.fdb
cp ../gen/firebird/bin/gbak $(FBE)/Contents/MacOS/firebird/bin/gbak
cp ../gen/firebird/bin/isql $(FBE)/Contents/MacOS/firebird/bin/isql
cp ../builds/install/misc/fbintl.conf $(FBE)/Contents/MacOS/firebird/intl/fbintl.conf
cp ../gen/firebird/intl/libfbintl.dylib $(FBE)/Contents/MacOS/firebird/intl/fbintl.dylib
cp ../builds/install/arch-specific/darwin/embed.Info.plist $(FBE)/Contents/Info.plist
-$(RM) -rf $(FBE)
mkdir -p $(FBE)/Versions/A/Resources
mkdir -p $(FBE)/Versions/A/Resources/intl
mkdir -p $(FBE)/Versions/A/Resources/plugins
mkdir -p $(FBE)/Versions/A/Resources/bin
mkdir -p $(FBE)/Versions/A/Resources/app
mkdir -p $(FBE)/Versions/A/Headers
mkdir -p $(FBE)/Versions/A/Libraries
ln -s Versions/Current/Headers $(FBE)/Headers
ln -s Versions/Current/Resources $(FBE)/Resources
ln -s Versions/Current/Libraries $(FBE)/Libraries
ln -s A $(FBE)/Versions/Current
cp ../gen/Release/firebird/firebird.conf $(FBE)/Versions/A/Resources/firebird.conf
cp ../gen/Release/firebird/plugins.conf $(FBE)/Versions/A/Resources/plugins.conf
cp ../gen/Release/firebird/firebird.msg $(FBE)/Versions/A/Resources/firebird.msg
cp ../gen/Release/firebird/lib/libfbclient.dylib $(FBE)/Versions/A/libfbclient.dylib
cp ../gen/Release/firebird/plugins/libEngine12.dylib $(FBE)/Versions/A/Resources/plugins/libEngine12.dylib
cp ../gen/Release/firebird/lib/libicudata.dylib $(FBE)/Versions/A/libicudata.dylib
cp ../gen/Release/firebird/lib/libicui18n.dylib $(FBE)/Versions/A/libicui18n.dylib
cp ../gen/Release/firebird/lib/libicuuc.dylib $(FBE)/Versions/A/libicuuc.dylib
cp ../gen/Release/firebird/bin/gbak $(FBE)/Versions/A/Resources/bin/gbak
cp ../gen/Release//firebird/bin/isql $(FBE)/Versions/A/Resources/bin/isql
cp ../gen/Release/firebird/intl/fbintl.conf $(FBE)/Versions/A/Resources/intl/fbintl.conf
cp ../gen/Release/firebird/intl/libfbintl.dylib $(FBE)/Versions/A/Resources/intl/libfbintl.dylib
cp ../gen/Release/firebird/lib/libib_util.dylib $(FBE)/Versions/A/Libraries/libib_util.dylib
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Firebird \
../libfbembed.dylib $(BINLOC)/isql
@loader_path/../../libfbclient.dylib $(BINLOC)/isql
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Firebird \
@loader_path/../../libfbclient.dylib $(PLULOC)/libEngine12.dylib
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicuuc.dylib \
../libicuuc.dylib $(BINLOC)/isql
@loader_path/../../libicuuc.dylib $(BINLOC)/isql
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicudata.dylib \
../libicudata.dylib $(BINLOC)/isql
@loader_path/../../libicudata.dylib $(BINLOC)/isql
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib \
../libicui18n.dylib $(BINLOC)/isql
@loader_path/../../libicui18n.dylib $(BINLOC)/isql
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Firebird \
../libfbembed.dylib $(BINLOC)/gbak
@loader_path/../../libfbclient.dylib $(BINLOC)/gbak
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicuuc.dylib \
../libicuuc.dylib $(BINLOC)/gbak
@loader_path/../../libicuuc.dylib $(BINLOC)/gbak
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicudata.dylib \
../libicudata.dylib $(BINLOC)/gbak
@loader_path/../../libicudata.dylib $(BINLOC)/gbak
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib \
../libicui18n.dylib $(BINLOC)/gbak
@loader_path/../../libicui18n.dylib $(BINLOC)/gbak
install_name_tool -change $(OLDPATH)/libicuuc.dylib @loader_path/libicuuc.dylib \
$(LIBLOC)/libfbembed.dylib
$(LIBLOC)/libfbclient.dylib
install_name_tool -change $(OLDPATH)/libicudata.dylib @loader_path/libicudata.dylib \
$(LIBLOC)/libfbembed.dylib
$(LIBLOC)/libfbclient.dylib
install_name_tool -change $(OLDPATH)/libicui18n.dylib @loader_path/libicui18n.dylib \
$(LIBLOC)/libfbembed.dylib
$(LIBLOC)/libfbclient.dylib
install_name_tool -change $(OLDPATH)/libicudata.dylib @loader_path/libicudata.dylib \
$(LIBLOC)/libicuuc.dylib
install_name_tool -change $(OLDPATH)/libicuuc.dylib @loader_path/libicuuc.dylib \
@ -63,17 +73,22 @@ all:
install_name_tool -change $(OLDPATH)/libicudata.dylib @loader_path/libicudata.dylib \
$(LIBLOC)/libicui18n.dylib
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicuuc.dylib \
../libicuuc.dylib $(INTLOC)/fbintl.dylib
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicudata.dylib \
../libicudata.dylib $(INTLOC)/fbintl.dylib
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib \
../libicui18n.dylib $(INTLOC)/fbintl.dylib
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Firebird \
@loader_path/../../libfbclient.dylib $(INTLOC)/libfbintl.dylib
install_name_tool -id @rpath/libfbembed.dylib $(LIBLOC)/libfbembed.dylib
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicuuc.dylib \
@loader_path/../libicuuc.dylib $(INTLOC)/libfbintl.dylib
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicudata.dylib \
@loader_path/../libicudata.dylib $(INTLOC)/libfbintl.dylib
install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib \
@loader_path/../libicui18n.dylib $(INTLOC)/libfbintl.dylib
install_name_tool -id @rpath/libfbclient.dylib $(LIBLOC)/libfbclient.dylib
install_name_tool -id @rpath/libicudata.dylib $(LIBLOC)/libicudata.dylib
install_name_tool -id @rpath/libicui18n.dylib $(LIBLOC)/libicui18n.dylib
install_name_tool -id @rpath/libicudata.dylib $(LIBLOC)/libicudata.dylib
install_name_tool -id @rpath/libicuuc.dylib $(LIBLOC)/libicuuc.dylib
install_name_tool -id @rpath/libicudata.dylib $(LIBLOC)/libicudata.dylib
install_name_tool -id @rpath/libib_util.dylib $(LIBLOC)/libib_util.dylib
install_name_tool -id @rpath/libib_util.dylib $(UTILOC)/libib_util.dylib
install_name_tool -id @rpath/libfbintl.dylib $(INTLOC)/libfbintl.dylib
install_name_tool -id @rpath/libEngine12.dylib $(PLULOC)/libEngine12.dylib

View File

@ -23,11 +23,11 @@ FB_RES="$FB_FW/Versions/A/Resources"
# Now create the firebird group
echo "Create the Firebird group 10.7+"
if dscl localhost -read /Local/Default/Groups/firebird 2&>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

View File

@ -2,36 +2,15 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>org.firebird.gds</string>
<key>ProgramArguments</key>
<array>
<string>/Library/Frameworks/Firebird.framework/Resources/bin/fb_smp_server</string>
<string>/Library/Frameworks/Firebird.framework/Resources/bin/fbguard</string>
</array>
<key>InetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
<key>InitGroups</key>
<key>RunAtLoad</key>
<true/>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>gds_db</string>
<key>SockType</key>
<string>stream</string>
<key>SockFamily</key>
<string>IPv4</string>
</dict>
</dict>
<key>OnDemand</key>
<key>KeepAlive</key>
<true/>
<key>UserName</key>
<string>firebird</string>
</dict>
</plist>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>org.firebird.gds</string>
<key>ProgramArguments</key>
<array>
<string>/Library/Frameworks/Firebird.framework/Resources/bin/firebird</string>
</array>
<key>InetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
<key>InitGroups</key>
<true/>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>gds_db</string>
<key>SockType</key>
<string>stream</string>
<key>SockFamily</key>
<string>IPv4</string>
</dict>
</dict>
<key>UserName</key>
<string>firebird</string>
</dict>
</plist>

View File

@ -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

View File

@ -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)

View File

@ -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 ""

View File

@ -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

View File

@ -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

View File

@ -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=

View File

@ -35,6 +35,8 @@ ifeq ($(TARGET),release)
CXX_FLAGS += -O3
endif
CXX_FLAGS += -stdlib=libc++
ifeq ($(TARGET),debug)
FPC_FLAGS += -g
endif

View File

@ -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

View File

@ -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