summaryrefslogtreecommitdiff
path: root/external/liborcus
diff options
context:
space:
mode:
authorKhaled Hosny <khaledhosny@eglug.org>2013-10-18 22:15:14 +0200
committerDavid Tardon <dtardon@redhat.com>2013-10-19 07:37:21 +0000
commit392726f04252fa3802ade7c31ca65fac57896861 (patch)
treea8e920693569866d0fd318c0b375de57b1dbdbce /external/liborcus
parent9b4b718b5b049aff0077202c26d057b14bc29511 (diff)
fdo#70393: move liborcus to a subdir of external
Change-Id: Ibdf8c9fc9d7d2639ebd440ff2d833ab37ae76d98 Reviewed-on: https://gerrit.libreoffice.org/6334 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'external/liborcus')
-rw-r--r--external/liborcus/ExternalProject_liborcus.mk100
-rw-r--r--external/liborcus/Makefile7
-rw-r--r--external/liborcus/Module_liborcus.mk17
-rw-r--r--external/liborcus/UnpackedTarball_liborcus.mk41
-rw-r--r--external/liborcus/liborcus_0.1.0-configure.patch20
-rw-r--r--external/liborcus/liborcus_0.1.0-dllimport.patch18
-rw-r--r--external/liborcus/liborcus_0.1.0-tac.patch20
-rw-r--r--external/liborcus/visibility.patch11
8 files changed, 234 insertions, 0 deletions
diff --git a/external/liborcus/ExternalProject_liborcus.mk b/external/liborcus/ExternalProject_liborcus.mk
new file mode 100644
index 000000000000..649742011223
--- /dev/null
+++ b/external/liborcus/ExternalProject_liborcus.mk
@@ -0,0 +1,100 @@
+# -*- 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,liborcus))
+
+$(eval $(call gb_ExternalProject_use_autoconf,liborcus,build))
+
+$(eval $(call gb_ExternalProject_use_externals,liborcus, \
+ boost_headers \
+ boostsystem \
+ zlib \
+))
+
+$(eval $(call gb_ExternalProject_register_targets,liborcus,\
+ build \
+))
+
+# Must be built with debug GNU C++ library if --enable-dbgutil has
+# caused the LO code to be built thusly.
+
+# The LIBS setting for Android is needed to get the orcus-xml-dump
+# executable to build successfully. We obviously don't actually need
+# that executable on Android, but we don't want to bother with
+# patching out building it for Android.
+
+#$(if $(filter MSC,$(COM)),CPPFLAGS+="-DBOOST_ALL_NO_LIB") CXXFLAGS+="$(BOOST_CXXFLAGS))
+
+liborcus_LIBS=
+ifeq ($(SYSTEM_ZLIB),YES)
+liborcus_LIBS+=-lz
+endif
+ifeq ($(SYSTEM_BOOST),YES)
+liborcus_LIBS+=$(BOOST_SYSTEM_LIB)
+else
+liborcus_LIBS+=-L$(gb_StaticLibrary_WORKDIR) -lboostsystem
+endif
+ifeq ($(OS),ANDROID)
+liborcus_LIBS+=-lgnustl_shared -lm
+endif
+
+liborcus_CPPCLAGS=$(CPPFLAGS)
+ifeq ($(COM),MSC)
+liborcus_CPPFLAGS+=-DBOOST_ALL_NO_LIB
+endif
+ifeq ($(SYSTEM_ZLIB),NO)
+liborcus_CPPFLAGS+=$(ZLIB_CFLAGS)
+endif
+#
+# OSes that use the GNU C++ library need to use -D_GLIBCXX_DEBUG in
+# sync with the rest of LibreOffice, i.e. depending on
+# --enable-dbgutil. Note that although Android doesn't use the GNU C
+# library (glibc), the NDK does offer the GNU C++ library as one of
+# the C++ libraries available, and we use it.
+#
+ifneq (,$(filter ANDROID DRAGONFLY FREEBSD LINUX NETBSD OPENBSD,$(OS)))
+ifneq (,$(gb_ENABLE_DBGUTIL))
+liborcus_CPPFLAGS+=-D_GLIBCXX_DEBUG
+endif
+endif
+
+liborcus_CXXFLAGS=$(CXXFLAGS)
+liborcus_LDFLAGS=$(LDFLAGS)
+ifeq ($(COM),MSC)
+liborcus_CXXFLAGS+=$(BOOST_CXXFLAGS)
+endif
+ifeq ($(SYSTEM_BOOST),NO)
+liborcus_CXXFLAGS+=-I$(WORKDIR)/UnpackedTarball/boost
+else
+liborcus_LDFLAGS+=$(BOOST_LDFLAGS)
+endif
+ifneq (,$(PTHREAD_LIBS))
+liborcus_LDFLAGS+=$(PTHREAD_LIBS)
+endif
+
+$(call gb_ExternalProject_get_state_target,liborcus,build) :
+ $(call gb_ExternalProject_run,build,\
+ $(if $(liborcus_LIBS),LIBS='$(liborcus_LIBS)') \
+ $(if $(liborcus_CXXFLAGS),CXXFLAGS='$(liborcus_CXXFLAGS)') \
+ $(if $(liborcus_CPPFLAGS),CPPFLAGS='$(liborcus_CPPFLAGS)') \
+ $(if $(liborcus_LDFLAGS),LDFLAGS='$(liborcus_LDFLAGS)') \
+ ./configure \
+ --with-pic \
+ --enable-static \
+ --disable-shared \
+ $(if $(filter TRUE,$(ENABLE_DEBUG)),--enable-debug,--disable-debug) \
+ --disable-spreadsheet-model \
+ --disable-werror \
+ $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
+ $(if $(filter NO,$(SYSTEM_BOOST)),--with-boost-system=boostsystem) \
+ && $(if $(VERBOSE)$(verbose),V=1) \
+ $(MAKE) \
+ )
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/liborcus/Makefile b/external/liborcus/Makefile
new file mode 100644
index 000000000000..e4968cf85fb6
--- /dev/null
+++ b/external/liborcus/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/external/liborcus/Module_liborcus.mk b/external/liborcus/Module_liborcus.mk
new file mode 100644
index 000000000000..42f17159faec
--- /dev/null
+++ b/external/liborcus/Module_liborcus.mk
@@ -0,0 +1,17 @@
+# -*- 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,liborcus))
+
+$(eval $(call gb_Module_add_targets,liborcus,\
+ ExternalProject_liborcus \
+ UnpackedTarball_liborcus \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk
new file mode 100644
index 000000000000..9e2df47937c6
--- /dev/null
+++ b/external/liborcus/UnpackedTarball_liborcus.mk
@@ -0,0 +1,41 @@
+# -*- 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,liborcus))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,liborcus,$(ORCUS_TARBALL)))
+
+$(eval $(call gb_UnpackedTarball_set_patchlevel,liborcus,0))
+
+liborcus_patches :=
+
+# make config.sub recognize arm-linux-androideabi
+liborcus_patches += liborcus_0.1.0-configure.patch
+
+# don't use dllimport
+liborcus_patches += liborcus_0.1.0-dllimport.patch
+
+ifeq ($(OS),MACOSX)
+# no "tac" command on OS X, but "tail -r"
+liborcus_patches += liborcus_0.1.0-tac.patch
+endif
+
+ifneq ($(HAVE_GCC_VISIBILITY_FEATURE),TRUE)
+liborcus_patches += visibility.patch
+endif
+
+# <https://gitorious.org/orcus/orcus/merge_requests/2#
+# f60d6eecee72349993a392a9a63ddf3383d3b8c8-
+# f60d6eecee72349993a392a9a63ddf3383d3b8c8@2>:
+
+$(eval $(call gb_UnpackedTarball_add_patches,liborcus,\
+ $(foreach patch,$(liborcus_patches),external/liborcus/$(patch)) \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/liborcus/liborcus_0.1.0-configure.patch b/external/liborcus/liborcus_0.1.0-configure.patch
new file mode 100644
index 000000000000..ae8502e417f0
--- /dev/null
+++ b/external/liborcus/liborcus_0.1.0-configure.patch
@@ -0,0 +1,20 @@
+--- config.sub
++++ config.sub
+@@ -120,7 +120,7 @@
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+@@ -1275,7 +1275,7 @@
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
++ | -mingw32* | -linux-gnu* | -linux-androideabi* | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
diff --git a/external/liborcus/liborcus_0.1.0-dllimport.patch b/external/liborcus/liborcus_0.1.0-dllimport.patch
new file mode 100644
index 000000000000..6255d060a492
--- /dev/null
+++ b/external/liborcus/liborcus_0.1.0-dllimport.patch
@@ -0,0 +1,18 @@
+--- include/orcus/env.hpp
++++ include/orcus/env.hpp
+@@ -35,14 +35,8 @@
+ #else
+ #define ORCUS_DLLPUBLIC __declspec(dllexport)
+ #endif
+- #elif defined __ORCUS_STATIC_LIB
++ #else
+ #define ORCUS_DLLPUBLIC
+- #else
+- #ifdef __GNUC__
+- #define ORCUS_DLLPUBLIC __attribute__ ((dllimport))
+- #else
+- #define ORCUS_DLLPUBLIC __declspec(dllimport)
+- #endif
+ #endif
+ #define ORCUS_DLLLOCAL
+ #else
diff --git a/external/liborcus/liborcus_0.1.0-tac.patch b/external/liborcus/liborcus_0.1.0-tac.patch
new file mode 100644
index 000000000000..01c77a9565f2
--- /dev/null
+++ b/external/liborcus/liborcus_0.1.0-tac.patch
@@ -0,0 +1,20 @@
+--- configure
++++ configure
+@@ -15668,7 +15668,7 @@
+
+ LDFLAGS_SAVE=$LDFLAGS
+ if test "x$ax_boost_user_system_lib" = "x"; then
+- for libextension in `ls $BOOSTLIBDIR/libboost_system*.a* $BOOSTLIBDIR/libboost_system*.so* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_system.*\)\.\(so\|a\).*$;\1;' | tac` ; do
++ for libextension in `ls $BOOSTLIBDIR/libboost_system*.a* $BOOSTLIBDIR/libboost_system*.so* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_system.*\)\.\(so\|a\).*$;\1;' | tail -r` ; do
+ ax_lib=${libextension}
+ as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
+@@ -15716,7 +15716,7 @@
+
+ done
+ if test "x$link_system" != "xyes"; then
+- for libextension in `ls $BOOSTLIBDIR/boost_system*.{dll,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_system.*\)\.\(dll\|a\).*$;\1;' | tac` ; do
++ for libextension in `ls $BOOSTLIBDIR/boost_system*.{dll,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_system.*\)\.\(dll\|a\).*$;\1;' | tail -r` ; do
+ ax_lib=${libextension}
+ as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
diff --git a/external/liborcus/visibility.patch b/external/liborcus/visibility.patch
new file mode 100644
index 000000000000..a5af6398b839
--- /dev/null
+++ b/external/liborcus/visibility.patch
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -3211,7 +3211,7 @@
+ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+-CXXFLAGS="$CXXFLAGS -O2 -fvisibility=hidden -Wall"
++CXXFLAGS="$CXXFLAGS -O2 -Wall"
+
+ # ===========================
+ # Find required base packages