summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2013-08-29 10:11:50 +0300
committerStephan Bergmann <sbergman@redhat.com>2013-08-29 14:57:14 +0200
commita1d2668c193e99044ac77d171eac651c0ad4c263 (patch)
treef1d27d79fbfc5666f9da76054215b617024b9a56
parentd9b62a48d75e596888fcf10f5f73fed93e7b88a3 (diff)
Simplify and fix the embedded Firebird on OS X
Don't bother constructing a Firebird framework and especially don't pretend we would have it at run-time in /Library/Frameworks/Firebird.framework. We only need the libfbembed.dylib, I hope. We need just libfbembed.dylib, not the version-numbered copies. Use gb_Helper_set_ld_path instead of manipulating LD_LIBRARY_PATH and DYLD_LIBRARY_PATH explicitly. Don't let Firebird's build mechanism totally override DYLD_LIBRARY_PATH. No need to handle "fb" specially in macosx-change-install-name.pl. We need to call macosx-change-install-name.pl on libfbembed.dylib, too. Change-Id: Id7e6c91a6763e1d5ede5c935b4c4fd946ae00f20
-rw-r--r--firebird/ExternalPackage_firebird.mk2
-rw-r--r--firebird/ExternalProject_firebird.mk8
-rw-r--r--firebird/firebird-macosx.patch.178
-rw-r--r--scp2/InstallModule_firebird.mk4
-rw-r--r--scp2/source/firebird/file_firebird.scp28
-rw-r--r--scp2/source/firebird/module_firebird.scp5
-rw-r--r--solenv/bin/macosx-change-install-names.pl4
7 files changed, 87 insertions, 42 deletions
diff --git a/firebird/ExternalPackage_firebird.mk b/firebird/ExternalPackage_firebird.mk
index 43127b5c221d..0571cd49ad31 100644
--- a/firebird/ExternalPackage_firebird.mk
+++ b/firebird/ExternalPackage_firebird.mk
@@ -16,8 +16,6 @@ $(eval $(call gb_ExternalPackage_add_file,firebird,bin/ifbembed.dll,gen/firebird
$(eval $(call gb_ExternalPackage_add_file,firebird,lib/ifbembed.lib,gen/firebird/bin/ifbembed.lib))
else
ifeq ($(OS),MACOSX)
-$(eval $(call gb_ExternalPackage_add_file,firebird,lib/libfbembed.2.5.2.dylib,gen/firebird/lib/libfbembed.dylib.2.5.2))
-$(eval $(call gb_ExternalPackage_add_file,firebird,lib/libfbembed.2.5.dylib,gen/firebird/lib/libfbembed.dylib.2.5))
$(eval $(call gb_ExternalPackage_add_file,firebird,lib/libfbembed.dylib,gen/firebird/lib/libfbembed.dylib))
else
$(eval $(call gb_ExternalPackage_add_file,firebird,lib/libfbembed.so.2.5.2,gen/firebird/lib/libfbembed.so.2.5.2))
diff --git a/firebird/ExternalProject_firebird.mk b/firebird/ExternalProject_firebird.mk
index d52cabcc4571..bcfbe40dfe87 100644
--- a/firebird/ExternalProject_firebird.mk
+++ b/firebird/ExternalProject_firebird.mk
@@ -40,9 +40,6 @@ $(call gb_ExternalProject_get_state_target,firebird,build):
,$(ICU_CPPFLAGS)) \
-L$(OUTDIR)/lib \
" \
- && export LD_LIBRARY_PATH="$(OUTDIR)/lib:$(call gb_UnpackedTarball_get_dir,boost)/source/lib" \
- && export DYLD_LIBRARY_PATH="$(OUTDIR)/lib:$(call gb_UnpackedTarball_get_dir,boost)/source/lib" \
- $(if $(filter WNT-MSC,$(OS)-$(COM)), && export PATH="$(PATH):$(shell cygpath $(OUTDIR)/lib):$(shell cygpath $(call gb_UnpackedTarball_get_dir,icu)/source/lib)") \
&& ./configure \
--without-editline \
--disable-superserver \
@@ -50,7 +47,8 @@ $(call gb_ExternalProject_get_state_target,firebird,build):
$(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
$(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
$(if $(filter IOS ANDROID,$(OS)),--disable-shared,--disable-static) \
- && export CHANGE_INSTALL_NAMES="$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl fb OOO" \
- && $(MAKE) firebird_embedded \
+ && export CHANGE_INSTALL_NAMES_APP="$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl app NONE" \
+ && export CHANGE_INSTALL_NAMES_SHL="$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl shl OOO" \
+ && $(gb_Helper_set_ld_path) $(MAKE) firebird_embedded \
)
# vim: set noet sw=4 ts=4:
diff --git a/firebird/firebird-macosx.patch.1 b/firebird/firebird-macosx.patch.1
index a92b81388a73..2e437ab3dba6 100644
--- a/firebird/firebird-macosx.patch.1
+++ b/firebird/firebird-macosx.patch.1
@@ -7,7 +7,7 @@ diff -ur firebird.org/builds/posix/Makefile.in.codes firebird/builds/posix/Makef
$(BIN)/codes$(EXEC_EXT): $(CODES_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
$(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
-
-+ $(CHANGE_INSTALL_NAMES) $@
++ $(CHANGE_INSTALL_NAMES_APP) $@
# Rebuild ids.h
$(SRC_ROOT)/include/gen/ids.h: $(SRC_ROOT)/misc/ids.m $(SRC_ROOT)/jrd/relations.h
@@ -18,7 +18,7 @@ diff -ur firebird.org/builds/posix/Makefile.in.examples firebird/builds/posix/Ma
$(EXAMPLES_DEST)/empbuild$(EXEC_EXT): $(EMPBLD_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
$(EXE_LINK) $(LINK_OPTS) $(EMPBLD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
-+ $(CHANGE_INSTALL_NAMES) $@
++ $(CHANGE_INSTALL_NAMES_APP) $@
$(EXAMPLES_DEST)/empbuild.c: $(EXAMPLES_DEST)/empbuild.fdb $(EXAMPLES_DEST)/empbuild.e
@@ -26,10 +26,20 @@ diff -ur firebird.org/builds/posix/Makefile.in.examples firebird/builds/posix/Ma
$(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
$(EXE_LINK) $(LINK_OPTS) $(INTLBLD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
-+ $(CHANGE_INSTALL_NAMES) $@
++ $(CHANGE_INSTALL_NAMES_APP) $@
$(EXAMPLES_DEST)/intlbld.c: $(EXAMPLES_DEST)/intlbuild.fdb $(EXAMPLES_DEST)/intlbld.e
+--- firebird.org/builds/posix/Makefile.in.libfbembed
++++ firebird/builds/posix/Makefile.in.libfbembed
+@@ -63,6 +63,7 @@
+
+ $(LIBFBEMBED_SO): $(LIBFBEMBED_Objects) $(SERVER_Objects) $(COMMON_Objects)
+ $(LINK_EMBED) -o $@ $^ $(LINK_EMBED_LIBS)
++ $(CHANGE_INSTALL_NAMES_SHL) $@
+
+ $(LIBFBEMBED_SOBASENAME): $(LIBFBEMBED_SO)
+ (cd $(LIB) && $(LN) -f $(SharedLibraryName) $(SharedLibrarySoName) )
diff -ur firebird.org/builds/posix/Makefile.in.msgs firebird/builds/posix/Makefile.in.msgs
--- firebird.org/builds/posix/Makefile.in.msgs 2013-07-12 20:55:46.000000000 +0200
+++ firebird/builds/posix/Makefile.in.msgs 2013-07-15 11:37:17.000000000 +0200
@@ -37,7 +47,7 @@ diff -ur firebird.org/builds/posix/Makefile.in.msgs firebird/builds/posix/Makefi
$(BUILD_FILE): $(BUILD_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
$(STATICEXE_LINK) $(LINK_OPTS) $(BUILD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
$(CHMOD_7) $@
-+ $(CHANGE_INSTALL_NAMES) $@
++ $(CHANGE_INSTALL_NAMES_APP) $@
enter_messages : $(ENTER_MESSAGES)
@@ -45,7 +55,7 @@ diff -ur firebird.org/builds/posix/Makefile.in.msgs firebird/builds/posix/Makefi
$(ENTER_MESSAGES): $(ENTER_Objects) $(LIBFBSTATIC_A)
$(STATICEXE_LINK) $(LINK_OPTS) $(ENTER_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
$(CHMOD_7) $@
-+ $(CHANGE_INSTALL_NAMES) $@
++ $(CHANGE_INSTALL_NAMES_APP) $@
modify_messages: $(MODIFY_MESSAGES)
@@ -53,7 +63,7 @@ diff -ur firebird.org/builds/posix/Makefile.in.msgs firebird/builds/posix/Makefi
$(MODIFY_MESSAGES): $(MODIFY_Objects) $(LIBFBSTATIC_A)
$(STATICEXE_LINK) $(LINK_OPTS) $(MODIFY_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
$(CHMOD_7) $@
-+ $(CHANGE_INSTALL_NAMES) $@
++ $(CHANGE_INSTALL_NAMES_APP) $@
change_messages: $(CHANGE_MESSAGES)
@@ -61,7 +71,7 @@ diff -ur firebird.org/builds/posix/Makefile.in.msgs firebird/builds/posix/Makefi
$(CHANGE_MESSAGES): $(CHANGE_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
$(STATICEXE_LINK) $(LINK_OPTS) $(CHANGE_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
$(CHMOD_7) $@
-+ $(CHANGE_INSTALL_NAMES) $@
++ $(CHANGE_INSTALL_NAMES_APP) $@
@@ -72,7 +82,7 @@ diff -ur firebird.org/builds/posix/Makefile.in.static.createdb firebird/builds/p
$(CREATE_DB): $(CREATEDB_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
$(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
-+ $(CHANGE_INSTALL_NAMES) $(CREATE_DB)
++ $(CHANGE_INSTALL_NAMES_APP) $(CREATE_DB)
include $(ROOT)/gen/make.shared.targets
@@ -84,7 +94,7 @@ diff -ur firebird.org/builds/posix/Makefile.in.static.gbak firebird/builds/posix
$(GBAK_STATIC) : $(AllObjects) $(LIBFBSTATIC_A)
$(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
-
-+ $(CHANGE_INSTALL_NAMES) $@
++ $(CHANGE_INSTALL_NAMES_APP) $@
include $(ROOT)/gen/make.shared.targets
@@ -95,7 +105,7 @@ diff -ur firebird.org/builds/posix/Makefile.in.static.gpre firebird/builds/posix
$(GPRE_STATIC): $(GPRESTATIC_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
$(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
-$(RM) $(GPRE_CURRENT)
-+ $(CHANGE_INSTALL_NAMES) $(GPRE_STATIC)
++ $(CHANGE_INSTALL_NAMES_APP) $(GPRE_STATIC)
(cd $(@D); $(LN) $(@F) $(notdir $(GPRE_CURRENT)))
@@ -107,10 +117,38 @@ diff -ur firebird.org/builds/posix/Makefile.in.static.isql firebird/builds/posix
$(ISQL_STATIC): $(ISQL_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
$(STATICEXE_LINK) $(LINK_OPTS) $(ISQL_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LIBEDITLINE) $(LINK_LIBS) $(ICU_LIBS)
-
-+ $(CHANGE_INSTALL_NAMES) $@
++ $(CHANGE_INSTALL_NAMES_APP) $@
include $(ROOT)/gen/make.shared.targets
+--- firebird.org/builds/posix/darwin.defaults
++++ firebird/builds/posix/darwin.defaults
+@@ -32,17 +32,17 @@
+ LINK_EMPTY_SYMBOLS=$(LIB_LINK_MAPFILE)$(ROOT)/builds/posix/empty.darwin.vers
+ LINK_FIREBIRD_SYMBOLS=$(LIB_LINK_MAPFILE)$(ROOT)/builds/posix/firebird.darwin.vers
+
+-LIB_LINK_RPATH:=-install_name /Library/Frameworks/Firebird.framework/Versions/A/Libraries/
+-LIB_EMBED_LINK_OPTIONS:=-install_name /Library/Frameworks/Firebird.framework/Versions/A/Firebird
+-LIB_CLIENT_LINK_OPTIONS:=-install_name /Library/Frameworks/Firebird.framework/Versions/A/Firebird
+-FBEMBED_LINK:=-F../gen/firebird -framework Firebird -L$(LIB) -lfbembed $(ICU_LIBS)
++LIB_LINK_RPATH:=
++LIB_EMBED_LINK_OPTIONS:=-install_name @loader_path/libfbembed.dylib
++LIB_CLIENT_LINK_OPTIONS:=
++FBEMBED_LINK:=-L$(LIB) -lfbembed $(ICU_LIBS)
+ PLATFORM_FALLBACK=os/posix
+
+-PLAT_CLASSIC_PRE_TARGET=darwin_setup_framework
+-PLAT_CLASSIC_POST_TARGET=darwin_finish_cs_framework
++PLAT_CLASSIC_PRE_TARGET=
++PLAT_CLASSIC_POST_TARGET=
+
+-PLAT_SUPER_PRE_TARGET=darwin_setup_framework
+-PLAT_SUPER_POST_TRAGET=darwin_finish_ss_framework
++PLAT_SUPER_PRE_TARGET=
++PLAT_SUPER_POST_TRAGET=
+
+ PLATFORM_POSTBUILD_TARGET=darwin_postbuild_target
+
diff -ur firebird.org/builds/posix/postfix.darwin firebird/builds/posix/postfix.darwin
--- firebird.org/builds/posix/postfix.darwin 2013-07-12 20:55:46.000000000 +0200
+++ firebird/builds/posix/postfix.darwin 2013-07-15 12:07:36.000000000 +0200
@@ -140,6 +178,15 @@ diff -ur firebird.org/builds/posix/postfix.darwin firebird/builds/posix/postfix.
mkdir -p $(FB_FW)/Resources/doc
--- firebird.org/builds/posix/prefix.darwin_i386
+++ firebird/builds/posix/prefix.darwin_i386
+@@ -19,7 +19,7 @@
+ # 4. for CFLAGS, CXXFLAGS, LDFLAGS export '-m32 -arch i386'
+ # 5. export MACOSX_DEPLOYMENT_TARGET=10.6
+
+-DYLD_LIBRARY_PATH=$(FIREBIRD)/lib
++DYLD_LIBRARY_PATH:=$(FIREBIRD)/lib:$(DYLD_LIBRARY_PATH)
+ export DYLD_LIBRARY_PATH
+
+ MACOSX_DEPLOYMENT_TARGET=10.6
@@ -32,8 +32,8 @@
OS_ServerFiles=inet_server.cpp
@@ -153,6 +200,15 @@ diff -ur firebird.org/builds/posix/postfix.darwin firebird/builds/posix/postfix.
CLIENT_UTIL_TARGETS=gds_relay gstat gsec fbguard fbmgr_bin nbackup fb_lock_print fbsvcmgr \
--- firebird.org/builds/posix/prefix.darwin_x86_64
+++ firebird/builds/posix/prefix.darwin_x86_64
+@@ -19,7 +19,7 @@
+ #
+ # Default build from 10.6
+
+-DYLD_LIBRARY_PATH=$(FIREBIRD)/lib
++DYLD_LIBRARY_PATH:=$(FIREBIRD)/lib:$(DYLD_LIBRARY_PATH)
+ export DYLD_LIBRARY_PATH
+
+ MACOSX_DEPLOYMENT_TARGET=10.6
@@ -27,8 +27,8 @@
OS_ServerFiles=inet_server.cpp
diff --git a/scp2/InstallModule_firebird.mk b/scp2/InstallModule_firebird.mk
index 4ee945d16be8..e27503a54c35 100644
--- a/scp2/InstallModule_firebird.mk
+++ b/scp2/InstallModule_firebird.mk
@@ -15,7 +15,9 @@ $(eval $(call gb_InstallModule_add_scpfiles,scp2/firebird,\
))
$(eval $(call gb_InstallModule_define_if_set,scp2/firebird,\
- SYSTEM_FIREBIRD \
+ ENABLE_MACOSX_MACLIKE_APP_STRUCTURE \
+ ENABLE_MACOSX_SANDBOX \
+ SYSTEM_FIREBIRD \
))
# vim: set shiftwidth=4 tabstop=4 noexpandtab:
diff --git a/scp2/source/firebird/file_firebird.scp b/scp2/source/firebird/file_firebird.scp
index 9391a47175db..a5784a3b1fb1 100644
--- a/scp2/source/firebird/file_firebird.scp
+++ b/scp2/source/firebird/file_firebird.scp
@@ -27,42 +27,34 @@
Styles = (FILELIST,USE_INTERNAL_RIGHTS);
End*/
+#if !defined MACOSX
+
File gid_File_Firebird_Lib_252
LIB_FILE_BODY;
Styles = (PACKED);
- Dir = SCP2_OOO_BIN_DIR;
+ Dir = SCP2_OOO_LIB_DIR;
#ifdef UNX
- #ifdef MACOSX
- Name = STRING(CONCAT4(libfbembed,.,2.5.2,UNXSUFFIX));
- #else
- Name = STRING(CONCAT4(libfbembed,UNXSUFFIX,.,2.5.2));
- #endif
+ Name = STRING(CONCAT4(libfbembed,UNXSUFFIX,.,2.5.2));
#endif
End
File gid_File_Firebird_Lib_25
LIB_FILE_BODY;
Styles = (PACKED);
- Dir = SCP2_OOO_BIN_DIR;
+ Dir = SCP2_OOO_LIB_DIR;
#ifdef UNX
- #ifdef MACOSX
- Name = STRING(CONCAT4(libfbembed,.,2.5,UNXSUFFIX));
- #else
- Name = STRING(CONCAT4(libfbembed,UNXSUFFIX,.,2.5));
- #endif
+ Name = STRING(CONCAT4(libfbembed,UNXSUFFIX,.,2.5));
#endif
End
+#endif
+
File gid_File_Firebird_Lib
LIB_FILE_BODY;
Styles = (PACKED);
- Dir = SCP2_OOO_BIN_DIR;
+ Dir = SCP2_OOO_LIB_DIR;
#ifdef UNX
- #ifdef MACOSX
- Name = STRING(CONCAT2(libfbembed,UNXSUFFIX));
- #else
- Name = STRING(CONCAT2(libfbembed,UNXSUFFIX));
- #endif
+ Name = STRING(CONCAT2(libfbembed,UNXSUFFIX));
#else
Name = "ifbembed.dll";
#endif
diff --git a/scp2/source/firebird/module_firebird.scp b/scp2/source/firebird/module_firebird.scp
index 7a37a16cb13a..de1b41dbe4e3 100644
--- a/scp2/source/firebird/module_firebird.scp
+++ b/scp2/source/firebird/module_firebird.scp
@@ -25,7 +25,7 @@ Module gid_Module_Firebird
ParentID = gid_Module_Root_Brand;
Dirs = ();
Files = (
-#ifdef UNX
+#if defined UNX && !defined MACOSX
File gid_File_Firebird_Lib_252,
File gid_File_Firebird_Lib_25,
#endif
@@ -34,4 +34,5 @@ Module gid_Module_Firebird
Unixlinks = ();
Styles = (HIDDEN_ROOT);
End
-#endif \ No newline at end of file
+
+#endif
diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl
index 111f5cf0198c..7e5645c92f01 100644
--- a/solenv/bin/macosx-change-install-names.pl
+++ b/solenv/bin/macosx-change-install-names.pl
@@ -58,8 +58,6 @@ sub action($$$)
'shl/URELIB/URELIB' => '@loader_path',
'shl/OOO/URELIB' => ($OLD ? '@loader_path/../ure-link/lib' : '@loader_path'),
'shl/OOO/OOO' => '@loader_path',
- 'fb/OOO/URELIB' => ($OLD ? '@rpath/../ure-link/lib' : '@executable_path/../Frameworks'),
- 'fb/OOO/OOO' => '@rpath',
'shl/OXT/URELIB' => ($OLD ? '@executable_path/urelibs' : '@executable_path/../Frameworks'),
'shl/NONE/URELIB' => '@__VIA_LIBRARY_PATH__',
'shl/NONE/OOO' => '@__VIA_LIBRARY_PATH__',
@@ -70,7 +68,7 @@ sub action($$$)
return $act;
}
-@ARGV >= 2 or die 'Usage: app|shl|fb UREBIN|URELIB|OOO|SDKBIN|OXT|NONE <filepath>*';
+@ARGV >= 2 or die 'Usage: app|shl UREBIN|URELIB|OOO|SDKBIN|OXT|NONE <filepath>*';
$type = shift @ARGV;
$loc = shift @ARGV;
foreach $file (@ARGV)