diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2013-10-18 22:15:14 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2013-10-19 07:37:21 +0000 |
commit | 392726f04252fa3802ade7c31ca65fac57896861 (patch) | |
tree | a8e920693569866d0fd318c0b375de57b1dbdbce /external | |
parent | 9b4b718b5b049aff0077202c26d057b14bc29511 (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')
-rw-r--r-- | external/Module_external.mk | 1 | ||||
-rw-r--r-- | external/liborcus/ExternalProject_liborcus.mk | 100 | ||||
-rw-r--r-- | external/liborcus/Makefile | 7 | ||||
-rw-r--r-- | external/liborcus/Module_liborcus.mk | 17 | ||||
-rw-r--r-- | external/liborcus/UnpackedTarball_liborcus.mk | 41 | ||||
-rw-r--r-- | external/liborcus/liborcus_0.1.0-configure.patch | 20 | ||||
-rw-r--r-- | external/liborcus/liborcus_0.1.0-dllimport.patch | 18 | ||||
-rw-r--r-- | external/liborcus/liborcus_0.1.0-tac.patch | 20 | ||||
-rw-r--r-- | external/liborcus/visibility.patch | 11 |
9 files changed, 235 insertions, 0 deletions
diff --git a/external/Module_external.mk b/external/Module_external.mk index 5e60a64c6974..13846f4d7734 100644 --- a/external/Module_external.mk +++ b/external/Module_external.mk @@ -49,6 +49,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\ $(call gb_Helper_optional,MSPUB,libmspub) \ $(call gb_Helper_optional,MWAW,libmwaw) \ $(call gb_Helper_optional,ODFGEN,libodfgen) \ + $(call gb_Helper_optional,ORCUS,liborcus) \ )) # vim: set noet sw=4 ts=4: 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 |