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:pbe...@ibphoenix.com] 
Sent: 01 March 2017 09:50
To: firebird-devel@lists.sourceforge.net
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 via email to