From 0f16fa0fa58180a79aa5d27b44dbab4f9b6374b4 Mon Sep 17 00:00:00 2001 From: "Andrzej J.R. Hunt" Date: Fri, 14 Jun 2013 14:55:22 +0100 Subject: Build firebird 2.5 internally. Also adds libatomic_ops. Change-Id: I44a45e781dfb3624cdebf4530ae44870bf39a82a --- Library_merged.mk | 2 + Makefile.fetch | 5 +- RepositoryExternal.mk | 77 ++++++++++++++++++-------- RepositoryModule_build.mk | 1 + RepositoryModule_host.mk | 1 + config_host.mk.in | 3 + configure.ac | 13 ++++- connectivity/Library_firebird-sdbc.mk | 2 +- download.lst | 2 + firebird/ExternalPackage_firebird.mk | 15 ++--- firebird/ExternalProject_firebird.mk | 16 +----- firebird/Module_firebird.mk | 4 +- libatomic_ops/ExternalPackage_libatomic_ops.mk | 20 +++++++ libatomic_ops/ExternalProject_libatomic_ops.mk | 26 +++++++++ libatomic_ops/Makefile | 7 +++ libatomic_ops/Module_libatomic_ops.mk | 22 ++++++++ libatomic_ops/README | 4 ++ libatomic_ops/UnpackedTarball_libatomic_ops.mk | 14 +++++ 18 files changed, 182 insertions(+), 52 deletions(-) create mode 100644 libatomic_ops/ExternalPackage_libatomic_ops.mk create mode 100644 libatomic_ops/ExternalProject_libatomic_ops.mk create mode 100644 libatomic_ops/Makefile create mode 100644 libatomic_ops/Module_libatomic_ops.mk create mode 100644 libatomic_ops/README create mode 100644 libatomic_ops/UnpackedTarball_libatomic_ops.mk diff --git a/Library_merged.mk b/Library_merged.mk index 932d18b428b3..439f437c6904 100644 --- a/Library_merged.mk +++ b/Library_merged.mk @@ -47,6 +47,8 @@ $(eval $(call gb_Library_use_externals,merged,\ icuuc \ jpeg \ lcms2 \ + libatomic_ops \ + libfbembed \ liblangtag \ libxml2 \ libxslt \ diff --git a/Makefile.fetch b/Makefile.fetch index 226244202354..815ac23afec8 100644 --- a/Makefile.fetch +++ b/Makefile.fetch @@ -74,10 +74,9 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR) @mkdir -p $(TARFILE_LOCATION)/tmp @date >> $(fetch_LOGFILE) $(foreach item, \ - $(call fetch_Optional,FIREBIRD,FIREBIRD_TARBALL) \ - ,$(call fetch_Download_item_special,http://people.igalia.com/agomez/files,$(item))) - $(foreach item, \ + $(call fetch_Optional,LIBATOMIC_OPS,LIBATOMIC_OPS_TARBALL) \ $(call fetch_Optional,CDR,CDR_TARBALL) \ + $(call fetch_Optional,FIREBIRD,FIREBIRD_TARBALL) \ $(call fetch_Optional,MSPUB,MSPUB_TARBALL) \ $(call fetch_Optional,MWAW,MWAW_TARBALL) \ $(call fetch_Optional,VISIO,VISIO_TARBALL) \ diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 6b11281aef82..1a0a157d4629 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -653,6 +653,48 @@ gb_LinkTarget__use_jawt := endif # $(OS)$(COM) = WNTGCC +ifeq ($(SYSTEM_LIBATOMIC_OPS),YES) + +define gb_LinkTarget__use_libatomic_ops +$(call gb_LinkTarget_set_include,$(1),\ + $$(INCLUDE) \ + $(LIBATOMIC_OPS_CFLAGS) \ +) +$(call gb_LinkTarget_add_libs,$(1), $(LIBATOMIC_OPS_LIBS)) + +endef +gb_ExternalProject__use_libatomic_ops := + +else # !SYSTEM_LIBATOMIC_OPS + +$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \ + libatomic-ops-7.2d \ +)) + + +define gb_LinkTarget__use_libatomic_ops +$(call gb_LinkTarget_set_include,$(1),\ +$(LIBATOMIC_OPS_CFLAGS) \ + $$(INCLUDE) \ + $(LIBATOMIC_OPS_CFLAGS) \ +) +$(call gb_LinkTarget_use_package,$(1),\ + libatomic_ops \ +) +$(call gb_LinkTarget_use_static_libraries,$(1),\ + libatomic_ops \ +) + +endef + +define gb_ExternalProject__use_libatomic_ops +$(call gb_ExternalProject_use_package,$(1),libatomic_ops) + +endef + +endif # SYSTEM_LIBATOMIC_OPS + + ifeq ($(SYSTEM_LIBEXTTEXTCAT),YES) define gb_LinkTarget__use_libexttextcat @@ -2052,6 +2094,8 @@ ifeq ($(ENABLE_FIREBIRD_SDBC),TRUE) ifeq ($(SYSTEM_FIREBIRD),YES) +$(call gb_LinkTarget__use_libatomic_ops,$(1)) + define gb_LinkTarget__use_firebird $(call gb_LinkTarget_set_include,$(1),\ $(FIREBIRD_CFLAGS) \ @@ -2066,37 +2110,26 @@ endef else # !SYSTEM_FIREBIRD -$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \ - firebird \ +#$(call gb_LinkTarget__use_libatomic_ops,$(1)) + +$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \ + fbembed \ )) -define gb_LinkTarget__use_firebird -$(call gb_LinkTarget_use_unpacked,$(1),firebird) + +define gb_LinkTarget__use_libfbembed +$(call gb_LinkTarget_use_package,$(1),firebird) $(call gb_LinkTarget_set_include,$(1),\ - -I$(OUTDIR)/inc/external/firebird \ $$(INCLUDE) \ + -I$(call gb_UnpackedTarball_get_dir,firebird)/src/include \ + -I$(call gb_UnpackedTarball_get_dir,firebird)/src/include/gen \ + -I$(call gb_UnpackedTarball_get_dir,firebird)/src/jrd \ ) $(call gb_LinkTarget_use_libraries,$(1),\ - firebird \ + fbembed \ ) endef -# $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \ -# atomic_ops \ -# )) - -# define gb_LinkTarget__use_atomic_ops -# $(call gb_LinkTarget_use_static_libraries,$(1),\ -# atomic_ops \ -# ) - -# endef -# define gb_ExternalProject__use_atomic_ops -# $(call gb_ExternalProject_use_package,$(1),atomic_ops) -# $(call gb_ExternalProject_use_static_libraries,$(1),atomic_ops) - -# endef - # define gb_LinkTarget__use_tommath # $(call gb_LinkTarget_set_include,$(1),\ # $(TOMMATH_CFLAGS) \ diff --git a/RepositoryModule_build.mk b/RepositoryModule_build.mk index 65cbd6994d56..7af89f9e2566 100644 --- a/RepositoryModule_build.mk +++ b/RepositoryModule_build.mk @@ -73,6 +73,7 @@ $(eval $(call gb_Module_add_moduledirs,cross_toolset,\ framework \ harfbuzz \ lcms2 \ + libfbembed \ linguistic \ nss \ package \ diff --git a/RepositoryModule_host.mk b/RepositoryModule_host.mk index 3d12e56941a9..c57773477cf3 100644 --- a/RepositoryModule_host.mk +++ b/RepositoryModule_host.mk @@ -62,6 +62,7 @@ $(eval $(call gb_Module_add_moduledirs,libreoffice,\ extras \ fileaccess \ filter \ + $(call gb_Helper_optional,LIBATOMIC_OPS,libatomic_ops) \ $(call gb_Helper_optional,FIREBIRD,firebird) \ $(call gb_Helper_optional,FONTCONFIG,fontconfig) \ $(call gb_Helper_optional,DBCONNECTIVITY,forms) \ diff --git a/config_host.mk.in b/config_host.mk.in index 9fbc6e2312d7..3b9e1a2d3e9e 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -25,6 +25,8 @@ export AR=@AR@ export ASSERT_ALWAYS_ABORT=@ASSERT_ALWAYS_ABORT@ export ATL_INCLUDE=@ATL_INCLUDE@ export ATL_LIB=@ATL_LIB@ +export LIBATOMIC_OPS_CFLAGS=$(gb_SPACE)@LIBATOMIC_OPS_CFLAGS@ +export LIBATOMIC_OPS_LIBS=$(gb_SPACE)@LIBATOMIC_OPS_LIBS@ export AWTLIB=@AWTLIB@ export BARCODE_EXTENSION_PACK=@BARCODE_EXTENSION_PACK@ export BOOST_CPPFLAGS=@BOOST_CPPFLAGS@ @@ -481,6 +483,7 @@ export SYSTEM_LCMS2=@SYSTEM_LCMS2@ export SYSTEM_LIBC=@SYSTEM_LIBC@ export SYSTEM_CDR=@SYSTEM_CDR@ export SYSTEM_CMIS=@SYSTEM_CMIS@ +export SYSTEM_LIBATOMIC_OPS=@SYSTEM_LIBATOMIC_OPS@ export SYSTEM_LIBEXTTEXTCAT=@SYSTEM_LIBEXTTEXTCAT@ export SYSTEM_LIBEXTTEXTCAT_DATA=@SYSTEM_LIBEXTTEXTCAT_DATA@ export SYSTEM_LIBLANGTAG=@SYSTEM_LIBLANGTAG@ diff --git a/configure.ac b/configure.ac index dfe5b9c636b0..d15172f00ab7 100644 --- a/configure.ac +++ b/configure.ac @@ -7400,6 +7400,11 @@ dnl Check for system libcmis dnl =================================================================== libo_CHECK_SYSTEM_MODULE([libcmis],[CMIS],[libcmis-0.3 >= 0.3.1]) +dnl =================================================================== +dnl Check for system libatomic-ops +dnl =================================================================== +libo_CHECK_SYSTEM_MODULE([libatomic_ops],[ATOMIC_OPS],[libatomic_ops >= 0.7.2]) + dnl =================================================================== dnl Check for system libwpd dnl =================================================================== @@ -8129,11 +8134,13 @@ if test "x$enable_firebird_sdbc" != "xno"; then AC_MSG_RESULT([internal]) SYSTEM_FIREBIRD=NO FIREBIRD_CFLAGS="-I${WORKDIR}/UnpackedTarball/firebird/include" - FIREBIRD_LIBS="-L${OUTDIR}/lib -lfbembed" + FIREBIRD_LIBS="-lfbembed" dnl FIREBIRD_LIBS="-L${OUTDIR}/lib -lfbclient" - AC_CHECK_HEADERS(atomic_ops.h, [], - [AC_MSG_ERROR(atomic_ops.h not found. install Libatomic-ops)], []) + if test "$SYSTEM_LIBATOMIC_OPS" = "YES"; then + AC_CHECK_HEADERS(atomic_ops.h, [], + [AC_MSG_ERROR(atomic_ops.h not found. install libatomic-ops)], []) + fi dnl TODO: Checking to build IBPP in case we want to use it for the SDBC driver diff --git a/connectivity/Library_firebird-sdbc.mk b/connectivity/Library_firebird-sdbc.mk index 2f94c323c538..d69bdb0fb729 100644 --- a/connectivity/Library_firebird-sdbc.mk +++ b/connectivity/Library_firebird-sdbc.mk @@ -12,7 +12,7 @@ $(eval $(call gb_Library_Library,firebird-sdbc)) $(eval $(call gb_Library_use_sdk_api,firebird-sdbc)) $(eval $(call gb_Library_use_externals,firebird-sdbc,\ - firebird \ + libfbembed \ )) $(eval $(call gb_Library_set_include,firebird-sdbc,\ diff --git a/download.lst b/download.lst index a3ce8b5545e3..8bf3694d5020 100644 --- a/download.lst +++ b/download.lst @@ -10,6 +10,8 @@ FIREBIRD_MD5SUM := 21154d2004e025c8a3666625b0357bb5 export FIREBIRD_TARBALL := Firebird-2.5.2.26540-0.tar.bz2 # FIREBIRD_MD5SUM := b259c2d1c60a03bd104108405ae990a7 # export FIREBIRD_TARBALL := Firebird-3.0-alpha1-20130302.tar.gz +LIBATOMIC_OPS_MD5SUM := c0b86562d5aa40761a87134f83e6adcf +export LIBATOMIC_OPS_TARBALL := libatomic_ops-7_2d.zip export AFMS_TARBALL := 1756c4fa6c616ae15973c104cd8cb256-Adobe-Core35_AFMs-314.tar.gz export APACHE_COMMONS_CODEC_TARBALL := 2e482c7567908d334785ce7d69ddfff7-commons-codec-1.6-src.tar.gz diff --git a/firebird/ExternalPackage_firebird.mk b/firebird/ExternalPackage_firebird.mk index d02037d46183..c385b59c15d9 100644 --- a/firebird/ExternalPackage_firebird.mk +++ b/firebird/ExternalPackage_firebird.mk @@ -11,12 +11,12 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,firebird,firebird)) $(eval $(call gb_ExternalPackage_use_external_project,firebird,firebird)) -$(eval $(call gb_ExternalPackage_add_unpacked_files,firebird,inc/external/firebird,\ - gen/firebird/include/ib_util.h \ - gen/firebird/include/ibase.h \ - gen/firebird/include/iberror.h \ - gen/firebird/include/perf.h \ -)) +#$(eval $(call gb_ExternalPackage_add_unpacked_files,firebird,inc/external/firebird,\ +# gen/firebird/include/ib_util.h \ +# gen/firebird/include/ibase.h \ +# gen/firebird/include/iberror.h \ +# gen/firebird/include/perf.h \ +#)) # Need to be added? # $(eval $(call gb_ExternalPackage_add_unpacked_files,firebird,share/firebird,\ @@ -39,8 +39,9 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,firebird,inc/external/firebi # gen/firebird/security2.fdb \ # )) -$(eval $(call gb_ExternalPackage_add_library_for_install,firebird,lib/libfbembed.so.2.5.2,gen/firebird/lib/libfbembed.so.2.5.2)) $(eval $(call gb_ExternalPackage_add_file,firebird,lib/libfbembed.so.2.5.2,gen/firebird/lib/libfbembed.so.2.5.2)) +$(eval $(call gb_ExternalPackage_add_library_for_install,firebird,lib/libfbembed.so.2.5.2,gen/firebird/lib/libfbembed.so.2.5.2)) +$(eval $(call gb_ExternalPackage_add_file,firebird,lib/libfbembed.so,gen/firebird/lib/libfbembed.so.2.5.2)) # vim: set noet sw=4 ts=4: diff --git a/firebird/ExternalProject_firebird.mk b/firebird/ExternalProject_firebird.mk index 231759b81dbd..903e5c64999b 100644 --- a/firebird/ExternalProject_firebird.mk +++ b/firebird/ExternalProject_firebird.mk @@ -9,20 +9,14 @@ $(eval $(call gb_ExternalProject_ExternalProject,firebird)) -$(eval $(call gb_ExternalProject_use_unpacked,firebird,firebird)) - $(eval $(call gb_ExternalProject_use_autoconf,firebird,build)) $(eval $(call gb_ExternalProject_use_externals,firebird,\ boost_headers \ icu \ + libatomic_ops \ )) -# Dependency in 2.5 -# $(eval $(call gb_ExternalProject_use_packages,firebird, \ -# atomic_op \ -# )) - # Dependency in 3.0 # $(eval $(call gb_ExternalProject_use_packages,firebird, \ # tommath \ @@ -37,18 +31,14 @@ $(eval $(call gb_ExternalProject_register_targets,firebird,\ $(call gb_ExternalProject_get_state_target,firebird,build): $(call gb_ExternalProject_run,build,\ + unset MAKEFLAGS && \ export CFLAGS="$(if $(filter TRUE,$(DISABLE_DYNLOADING)),-fvisibility=hidden)" \ - && export LDFLAGS="-L$(OUTDIR)/lib \ + && LDFLAGS="-L$(OUTDIR)/lib \ $(if $(filter LINUX FREEBSD,$(OS)),-Wl$(COMMA)-z$(COMMA)origin -Wl$(COMMA)-rpath$(COMMA)\\"\$$\$$ORIGIN:'\'\$$\$$ORIGIN/../ure-link/lib") \ $(if $(SYSBASE),$(if $(filter LINUX SOLARIS,$(OS)),-L$(SYSBASE)/lib -L$(SYSBASE)/usr/lib -lpthread -ldl))" \ && CPPFLAGS="-I$(OUTDIR)/inc/external $(if $(SYSBASE),-I$(SYSBASE)/usr/include)" \ - && export ICU_LIBS=" " \ - && export ICU_CFLAGS="$(if $(filter NO,$(SYSTEM_ICU)),\ - -I$(call gb_UnpackedTarball_get_dir,icu)/source/i18n \ - -I$(call gb_UnpackedTarball_get_dir,icu)/source/common, )" \ && export PKG_CONFIG="" \ && ./configure \ - --with-system-icu \ --without-editline \ --disable-superserver \ $(if $(filter NO,$(SYSTEM_BOOST)),CXXFLAGS=-I$(call gb_UnpackedTarball_get_dir,boost),CXXFLAGS=$(BOOST_CPPFLAGS)) \ diff --git a/firebird/Module_firebird.mk b/firebird/Module_firebird.mk index 7c8fca0b02ee..1e8706770fd5 100644 --- a/firebird/Module_firebird.mk +++ b/firebird/Module_firebird.mk @@ -10,13 +10,11 @@ $(eval $(call gb_Module_Module,firebird)) ifeq ($(SYSTEM_FIREBIRD),NO) -$(eval $(call gb_Module_add_targets,firebird,\ - UnpackedTarball_firebird \ -)) $(eval $(call gb_Module_add_targets,firebird,\ ExternalPackage_firebird \ ExternalProject_firebird \ + UnpackedTarball_firebird \ )) endif diff --git a/libatomic_ops/ExternalPackage_libatomic_ops.mk b/libatomic_ops/ExternalPackage_libatomic_ops.mk new file mode 100644 index 000000000000..a7615f6ca83b --- /dev/null +++ b/libatomic_ops/ExternalPackage_libatomic_ops.mk @@ -0,0 +1,20 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_ExternalPackage_ExternalPackage,libatomic_ops,libatomic_ops)) + +$(eval $(call gb_ExternalPackage_use_external_project,libatomic_ops,libatomic_ops)) + +ifeq ($(OS)$(COM),WNTMSC) +$(eval $(call gb_ExternalPackage_add_file,libatomic_ops,lib/atomic_ops-7.2d.lib,src/lib/.libs/libatomic_ops-7.2d.lib)) +else +$(eval $(call gb_ExternalPackage_add_file,libatomic_ops,lib/libatomic_ops-7.2d.a,src/lib/.libs/libatomic_ops-7.2d.a)) +endif + +# vim: set noet sw=4 ts=4: diff --git a/libatomic_ops/ExternalProject_libatomic_ops.mk b/libatomic_ops/ExternalProject_libatomic_ops.mk new file mode 100644 index 000000000000..06ec521c615d --- /dev/null +++ b/libatomic_ops/ExternalProject_libatomic_ops.mk @@ -0,0 +1,26 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_ExternalProject_ExternalProject,libatomic_ops)) + +$(eval $(call gb_ExternalProject_use_autoconf,libatomic_ops,build)) + +$(eval $(call gb_ExternalProject_register_targets,libatomic_ops,\ + build \ +)) + +$(call gb_ExternalProject_get_state_target,libatomic_ops,build) : + $(call gb_ExternalProject_run,build,\ + $(if $(filter TRUE,$(DISABLE_DYNLOADING)),CFLAGS="$(CFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_COMPILEROPTFLAGS)" CXXFLAGS="$(CXXFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_COMPILEROPTFLAGS)") \ + ./configure \ + $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \ + && $(MAKE) \ + ) + +# vim: set noet sw=4 ts=4: diff --git a/libatomic_ops/Makefile b/libatomic_ops/Makefile new file mode 100644 index 000000000000..ccb1c85a04da --- /dev/null +++ b/libatomic_ops/Makefile @@ -0,0 +1,7 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- + +module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +include $(module_directory)/../solenv/gbuild/partial_build.mk + +# vim: set noet sw=4 ts=4: diff --git a/libatomic_ops/Module_libatomic_ops.mk b/libatomic_ops/Module_libatomic_ops.mk new file mode 100644 index 000000000000..dbbf39bcd2f1 --- /dev/null +++ b/libatomic_ops/Module_libatomic_ops.mk @@ -0,0 +1,22 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Module_Module,libatomic_ops)) + +ifeq ($(SYSTEM_ATOMIC_OPS),NO) + +$(eval $(call gb_Module_add_targets,libatomic_ops,\ + ExternalProject_libatomic_ops \ + ExternalPackage_libatomic_ops \ + UnpackedTarball_libatomic_ops \ +)) + +endif + +# vim: set noet sw=4 ts=4: diff --git a/libatomic_ops/README b/libatomic_ops/README new file mode 100644 index 000000000000..61255d7c8e05 --- /dev/null +++ b/libatomic_ops/README @@ -0,0 +1,4 @@ +From [https://github.com/ivmai/libatomic_ops/]. + +Note that some files (linked into libatomic_ops_gpl) are GPL'd, the portion +needed for Firebird (ibatomic_ops) is however MIT licensed. diff --git a/libatomic_ops/UnpackedTarball_libatomic_ops.mk b/libatomic_ops/UnpackedTarball_libatomic_ops.mk new file mode 100644 index 000000000000..602c483f3efc --- /dev/null +++ b/libatomic_ops/UnpackedTarball_libatomic_ops.mk @@ -0,0 +1,14 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_UnpackedTarball_UnpackedTarball,libatomic_ops)) + +$(eval $(call gb_UnpackedTarball_set_tarball,libatomic_ops,$(LIBATOMIC_OPS_TARBALL))) + +# vim: set noet sw=4 ts=4: -- cgit