Quantcast

Firebird 3.x on MacOS

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Firebird 3.x on MacOS

Paul Beach
That took me more than enough time to work out.. ok the following should
work.

You will need to install a copy of ICU, the ICU shipped with MacOS
(assuming they still do) is not good enough. The easiest way to do
this is to download the source code and build it yourself. Currently
I am using 5.4. Unlike other posix platforms we are going to have to
ship the libs with the framework. You will also need to install libtommath
via MacPorts for example. We need a way to link this into the build
statically, because we can't ask everyone to install it.

To get round the build shell issue DYLD_LIBRARY_PATH failure (SIP)
see here: http://paulbeachsblog.blogspot.fr/2016/03/dyldlibrarypath-and-el-capitan.html

Reboot command-r
Terminal csrutil disable
Restart

or we borrow libreoffices workaround.

Within ICU

Amend config/mh-darwin
Note install-path LD_SONAME

## Compiler switches to embed a library name and version informationifeq ($(ENABLE_RPATH),YES)
LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-curre
nt_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO
_TARGET))
else
LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-curre
nt_version -Wl,$(SO_TARGET_VERSION) -install_name /Library/Frameworks/Firebird.f
ramework/Versions/A/Libraries/$(notdir $(MIDDLE_SO_TARGET))
endif

Build ICU
        ICU ./configure --enable-renaming=no

Firebird

./autogen.sh
./configure

Needs these flags setting for example

CFLAGS
(ucnv.h) -I/Users/pbeach/icu54/icu/source/common
(libtommath.h) -I/opt/local/include/libtommath

LDFLAGS
(-licuuc) -L/Users/pbeach/icu54/icu/source/lib
(-ltommath) -L/opt/local/lib

Make needs these for example

CXXFLAGS
(ucnv.h) -I/Users/pbeach/icu54/icu/source/common
(libtommath.h) -I/opt/local/include/libtommath
(utrans.h) -I/Users/pbeach/icu54/icu/source/i18n

Hows that for starters...
Regards
Paul

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Firebird 3.x on MacOS

Mark De Wit
Yes, Mac build of Firebird was the hardest of all our software modules so far (we're planning to use it as embedded database).

My build notes are very similar to yours, a few things that I noted down are:

autogen.sh I had to add --disable-raw-devices, because that module did not compile for me.

Gen\make.platform has a wrong (absolute) path for libtommath.  I had to fix that every time I ran autogen again, or the build would fail.

I'm using ICU 57.1 because later versions removed a (deprecated) module that is required for another 3rd party library.  I used the version of tommath that was included with the firebird source (I just built it manually).

Mark

-----Original Message-----
From: Paul Beach [mailto:[hidden email]]
Sent: 01 March 2017 09:50
To: [hidden email]
Subject: [Firebird-devel] Firebird 3.x on MacOS

That took me more than enough time to work out.. ok the following should work.

You will need to install a copy of ICU, the ICU shipped with MacOS (assuming they still do) is not good enough. The easiest way to do this is to download the source code and build it yourself. Currently I am using 5.4. Unlike other posix platforms we are going to have to ship the libs with the framework. You will also need to install libtommath via MacPorts for example. We need a way to link this into the build statically, because we can't ask everyone to install it.

To get round the build shell issue DYLD_LIBRARY_PATH failure (SIP) see here: http://paulbeachsblog.blogspot.fr/2016/03/dyldlibrarypath-and-el-capitan.html

Reboot command-r
Terminal csrutil disable
Restart

or we borrow libreoffices workaround.

Within ICU

Amend config/mh-darwin
Note install-path LD_SONAME

## Compiler switches to embed a library name and version informationifeq ($(ENABLE_RPATH),YES) LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-curre nt_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO
_TARGET))
else
LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-curre nt_version -Wl,$(SO_TARGET_VERSION) -install_name /Library/Frameworks/Firebird.f ramework/Versions/A/Libraries/$(notdir $(MIDDLE_SO_TARGET)) endif

Build ICU
        ICU ./configure --enable-renaming=no

Firebird

./autogen.sh
./configure

Needs these flags setting for example

CFLAGS
(ucnv.h) -I/Users/pbeach/icu54/icu/source/common
(libtommath.h) -I/opt/local/include/libtommath

LDFLAGS
(-licuuc) -L/Users/pbeach/icu54/icu/source/lib
(-ltommath) -L/opt/local/lib

Make needs these for example

CXXFLAGS
(ucnv.h) -I/Users/pbeach/icu54/icu/source/common
(libtommath.h) -I/opt/local/include/libtommath
(utrans.h) -I/Users/pbeach/icu54/icu/source/i18n

Hows that for starters...
Regards
Paul

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Firebird 3.x on MacOS

Paul Beach
In reply to this post by Paul Beach

I will try and do my best to revisit the MacOS build once 3.0.2 comes out (which is
likely to be very shortly).

Regards
Paul

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Loading...