Kaydet (Commit) b92a0d92 authored tarafından Peter Foley's avatar Peter Foley Kaydeden (comit) Tor Lillqvist

convert icu to gbuild and add to tail_build

Change-Id: Id7d8bc05b1393cc2bae4a531c8a47f62df24b1d6
Reviewed-on: https://gerrit.libreoffice.org/1488Reviewed-by: 's avatarTor Lillqvist <tml@iki.fi>
Tested-by: 's avatarTor Lillqvist <tml@iki.fi>
üst e7f7053b
......@@ -86,6 +86,7 @@ $(eval $(call gb_Module_add_moduledirs,tail_build,\
$(call gb_Helper_optional,HYPHEN,hyphen) \
i18npool \
i18nutil \
$(call gb_Helper_optional,ICU,icu) \
idl \
$(call gb_Helper_optional,DESKTOP,idlc) \
io \
......
......@@ -873,6 +873,8 @@ endif # SYSTEM_GRAPHITE
ifeq ($(SYSTEM_ICU),YES)
gb_LinkTarget__use_icu_headers:=
define gb_LinkTarget__use_icudata
$(call gb_LinkTarget_add_libs,$(1),-licudata)
......@@ -902,6 +904,17 @@ else
gb_ICU_suffix:=
endif
define gb_LinkTarget__use_icu_headers
$(call gb_LinkTarget_use_unpacked,$(1),icu)
$(call gb_LinkTarget_set_include,$(1),\
-I$(call gb_UnpackedTarball_get_dir,icu)/source \
-I$(call gb_UnpackedTarball_get_dir,icu)/source/common \
-I$(call gb_UnpackedTarball_get_dir,icu)/source/i18n \
$$(INCLUDE) \
)
endef
# icudata and icui18n is called icudt and icuin when built with MSVC :-/
ifeq ($(OS)$(COM),WNTMSC)
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
......
......@@ -94,6 +94,7 @@ $(eval $(call gb_Module_add_moduledirs,ooo,\
$(call gb_Helper_optional,HYPHEN,hyphen) \
i18npool \
i18nutil \
$(call gb_Helper_optional,ICU,icu) \
idl \
$(call gb_Helper_optional,DESKTOP,idlc) \
io \
......
......@@ -144,7 +144,10 @@ $(eval $(call gb_Library_use_libraries,editeng,\
$(gb_UWINAPI) \
))
$(eval $(call gb_Library_use_external,editeng,icuuc))
$(eval $(call gb_Library_use_externals,editeng,\
icuuc \
icu_headers \
))
# Runtime dependency for unit-tests
$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,editeng)) :| \
......
......@@ -63,6 +63,7 @@ $(eval $(call gb_Library_use_libraries,frm,\
$(eval $(call gb_Library_use_externals,frm,\
icui18n \
icuuc \
icu_headers \
libxml2 \
))
......
......@@ -11,6 +11,8 @@ $(eval $(call gb_StaticLibrary_StaticLibrary,hunspell))
$(eval $(call gb_StaticLibrary_use_unpacked,hunspell,hunspell))
$(eval $(call gb_StaticLibrary_use_external,hunspell,icu_headers))
$(eval $(call gb_StaticLibrary_set_warnings_not_errors,hunspell))
$(eval $(call gb_StaticLibrary_add_defs,hunspell,\
......
......@@ -28,6 +28,8 @@
$(eval $(call gb_CppunitTest_CppunitTest,i18npool_test_breakiterator))
$(eval $(call gb_CppunitTest_use_external,i18npool_test_breakiterator,icu_headers))
$(eval $(call gb_CppunitTest_use_api,i18npool_test_breakiterator,\
udkapi \
offapi \
......
......@@ -28,6 +28,7 @@ $(eval $(call gb_CppunitTest_use_components,i18npool_test_textsearch,\
$(eval $(call gb_CppunitTest_use_externals,i18npool_test_textsearch,\
icui18n \
icuuc \
icu_headers \
))
$(eval $(call gb_CppunitTest_use_libraries,i18npool_test_textsearch,\
......
......@@ -42,6 +42,7 @@ $(eval $(call gb_Executable_use_externals,gencoll_rule,\
icudata \
icui18n \
icuuc \
icu_headers \
))
$(eval $(call gb_Executable_add_exception_objects,gencoll_rule,\
......
......@@ -50,6 +50,7 @@ $(eval $(call gb_Library_use_libraries,i18npool,\
$(eval $(call gb_Library_use_externals,i18npool,\
icui18n \
icuuc \
icu_headers \
))
$(eval $(call gb_Library_add_exception_objects,i18npool,\
......
......@@ -41,6 +41,7 @@ $(eval $(call gb_Library_use_sdk_api,i18nsearch))
$(eval $(call gb_Library_use_externals,i18nsearch,\
icui18n \
icuuc \
icu_headers \
))
$(eval $(call gb_Library_use_libraries,i18nsearch,\
......
......@@ -20,6 +20,8 @@ $(eval $(call gb_Library_Library,i18nutil))
$(eval $(call gb_Library_use_package,i18nutil,i18nutil_inc))
$(eval $(call gb_Library_use_external,i18nutil,icu_headers))
$(eval $(call gb_Library_use_sdk_api,i18nutil))
$(eval $(call gb_Library_add_defs,i18nutil,\
......
# -*- 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,icu,icu))
$(eval $(call gb_ExternalPackage_use_external_project,icu,icu))
ifeq ($(OS),WNT)
ifeq ($(COM),GCC)
$(eval $(call gb_ExternalPackage_add_files,icu,bin,\
source/lib/libicudt$(ICU_MAJOR)$(ICU_MINOR).dll \
source/lib/libicuuc$(ICU_MAJOR)$(ICU_MINOR).dll \
source/lib/libicuin$(ICU_MAJOR)$(ICU_MINOR).dll \
source/lib/libicule$(ICU_MAJOR)$(ICU_MINOR).dll \
source/lib/libicutu$(ICU_MAJOR)$(ICU_MINOR).dll \
source/bin/genccode.exe \
source/bin/genbrk.exe \
source/bin/gencmn.exe \
))
else
$(eval $(call gb_ExternalPackage_add_files,icu,lib,\
source/lib/icudt.lib \
source/lib/icuuc.lib \
source/lib/icuin.lib \
source/lib/icule.lib \
source/lib/icutu.lib\
))
$(eval $(call gb_ExternalPackage_add_files,icu,bin,\
source/lib/icudt$(ICU_MAJOR).dll \
source/lib/icuuc$(ICU_MAJOR).dll \
source/lib/icuin$(ICU_MAJOR).dll \
source/lib/icule$(ICU_MAJOR).dll \
source/lib/icutu$(ICU_MAJOR).dll \
source/bin/genccode.exe \
source/bin/genbrk.exe \
source/bin/gencmn.exe \
))
endif
else # $(OS)
ifeq ($(DISABLE_DYNLOADING),TRUE)
$(eval $(call gb_ExternalPackage_add_files,icu,lib,\
source/lib/libicudata.a \
source/lib/libicuuc.a \
source/lib/libicui18n.a \
source/lib/libicule.a \
source/lib/libicutu.a \
))
else ifeq ($(OS),ANDROID)
$(eval $(call gb_ExternalPackage_add_files,icu,lib,\
source/lib/libicudatalo.so \
source/lib/libicuuclo.so \
source/lib/libicui18nlo.so \
source/lib/libiculelo.so \
source/lib/libicutulo.so \
))
else
$(eval $(call gb_ExternalPackage_add_files,icu,lib,\
source/lib/libicudata.$(gb_Library_DLLEXT).$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO) \
source/lib/libicudata.$(gb_Library_DLLEXT).$(ICU_MAJOR) \
source/lib/libicudata.$(gb_Library_DLLEXT) \
source/lib/libicuuc.$(gb_Library_DLLEXT).$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO) \
source/lib/libicuuc.$(gb_Library_DLLEXT).$(ICU_MAJOR) \
source/lib/libicuuc.$(gb_Library_DLLEXT) \
source/lib/libicui18n.$(gb_Library_DLLEXT).$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO) \
source/lib/libicui18n.$(gb_Library_DLLEXT).$(ICU_MAJOR) \
source/lib/libicui18n.$(gb_Library_DLLEXT) \
source/lib/libicule.$(gb_Library_DLLEXT).$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO) \
source/lib/libicule.$(gb_Library_DLLEXT).$(ICU_MAJOR) \
source/lib/libicule.$(gb_Library_DLLEXT) \
source/lib/libicutu.$(gb_Library_DLLEXT).$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO) \
source/lib/libicutu.$(gb_Library_DLLEXT).$(ICU_MAJOR) \
source/lib/libicutu.$(gb_Library_DLLEXT) \
))
$(eval $(call gb_ExternalPackage_add_files,icu,bin,\
source/bin/genccode \
source/bin/genbrk \
source/bin/gencmn \
))
endif
endif
# vim: set noet sw=4 ts=4:
# -*- 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,icu))
$(eval $(call gb_ExternalProject_use_unpacked,icu,icu))
$(eval $(call gb_ExternalProject_use_package,icu,icu_data))
$(eval $(call gb_ExternalProject_register_targets,icu,\
build \
))
icu_CPPFLAGS:="-DHAVE_GCC_ATOMICS=$(if $(filter TRUE,$(GCC_HAVE_BUILTIN_ATOMIC)),1,0)"
ifeq ($(OS),WNT)
ifeq ($(COM),MSC)
$(call gb_ExternalProject_get_state_target,icu,build) :
cd $(EXTERNAL_WORKDIR)/source \
&& export LIB="$(ILIB)" \
&& CFLAGS="$(SOLARINC)" CPPFLAGS="$(SOLARINC)" CXXFLAGS="$(SOLARINC)" ./runConfigureICU Cygwin/MSVC \
&& $(GNUMAKE) \
&& touch $@
else
$(call gb_ExternalProject_get_state_target,icu,build) :
cd $(EXTERNAL_WORKDIR)/source \
&& CPPFLAGS=$(icu_CPPFLAGS) CFLAGS="-O -D_MT" CXXFLAGS="-O -D_MT" \
LIBS="$(if $(filter YES,$(MINGW_SHARED_GXXLIB)),$(MINGW_SHARED_LIBSTDCPP))" \
LDFLAGS="-L$(COMPATH)/lib -Wl,--enable-runtime-pseudo-reloc-v2 \
$(if $(filter YES,$(MINGW_SHARED_GCCLIB)),-shared-libgcc)" \
./configure
$(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) \
--with-cross-build=$(call gb_UnpackedTarball_get_dir,icu)/source) \
--enable-layout --disable-static --enable-shared --disable-samples \
&& $(GNUMAKE) \
&& for lib in icudata icuin icuuc icule icutu; do \
@touch $$lib; \
done \
&& touch $@
endif
else # $(OS)
icu_CFLAGS:="$(if $(filter ANDROID,$(OS)),-fvisibility=hidden -fno-omit-frame-pointer) \
$(if $(filter IOS,$(OS)),-DUCONFIG_NO_FILE_IO) \
$(if $(SYSBASE),-I$(SYSBASE)/usr/include) \
$(if $(debug),-g,\
$(if $(filter GCC,$(COM)),-O2 -fno-strict-aliasing,-O))"
icu_CXXFLAGS:="$(if $(filter ANDROID,$(OS)),-fvisibility=hidden -fno-omit-frame-pointer) \
$(if $(filter IOS,$(OS)),-DUCONFIG_NO_FILE_IO) \
$(if $(debug),-g,\
$(if $(filter GCC,$(COM)),-O2 -fno-strict-aliasing,-O))"
icu_LDFLAGS:="$(if $(filter TRUE,$(HAVE_LD_HASH_STYLE)),-Wl$(COMMA)--hash-style=$(WITH_LINKER_HASH_STYLE)) \
$(if $(SYSBASE),-L../lib -L../../lib -L../stubdata -L../../stubdata -L$(SYSBASE)/usr/lib) \
$(if $(filter TRUE,$(HAVE_LD_BSYMBOLIC_FUNCTIONS)),\
-Wl$(COMMA)-Bsymbolic-functions -Wl$(COMMA)--dynamic-list-cpp-new -Wl$(COMMA)--dynamic-list-cpp-typeinfo) \
$(if $(filter ANDROID,$(OS)),-lgnustl_shared -lm)"
$(call gb_ExternalProject_get_state_target,icu,build) :
cd $(EXTERNAL_WORKDIR)/source \
&& CPPFLAGS=$(icu_CPPFLAGS) CFLAGS=$(icu_CFLAGS) \
CXXFLAGS=$(icu_CXXFLAGS) LDFLAGS=$(icu_LDFLAGS) \
./configure \
--enable-layout --disable-samples \
$(if $(filter IOS ANDROID,$(OS)),--disable-dyload) \
$(if $(filter ANDROID,$(OS)),--disable-strict) \
$(if $(filter SOLARIS AIX,$(OS)),--disable-64bit-libs) \
$(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
$(if $(filter TRUE,$(DISABLE_DYNLOADING)),--enable-static --disable-shared,\
--disable-static --enable-shared $(if $(filter ANDROID,$(OS)),--with-library-suffix=lo)) \
$(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)\
--with-cross-build=$(call gb_UnpackedTarball_get_dir,icu)/source)\
&& $(GNUMAKE) \
&& touch $@
endif
# vim: set noet sw=4 ts=4:
# -*- 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:
# -*- 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,icu))
ifeq ($(SYSTEM_ICU),NO)
$(eval $(call gb_Module_add_targets,icu,\
UnpackedTarball_icu \
UnpackedTarball_icu_data \
ExternalPackage_icu \
ExternalProject_icu \
))
endif
# vim: set noet sw=4 ts=4:
# -*- 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,icu))
$(eval $(call gb_UnpackedTarball_set_tarball,icu,$(ICU_TARBALL)))
# Save space when using a bundled ICU by leaving out unneeded parts of the ICU data. Generated by
# the interactive web tool at http://apps.icu-project.org/datacustom/ICUData49.html by dropping
# the "Charset Mapping Tables". Probably we could carefully cherry-pick other items in the data to
# be dropped, too. A bit tedious using that web tool, though.
# If you do that, upload a new subset data zip file with just the MD5 part of the name changed
# appropriately. Let's not bother trying to list what stuff has been removed in the file name.
# Describe it in the comment above instead.
$(call gb_UnpackedTarball_get_target,icu): $(call gb_UnpackedTarball_get_target,icu_data)
$(eval $(call gb_UnpackedTarball_set_post_action,icu,\
cp $(call gb_UnpackedTarball_get_dir,icu_data)/icudt49l.dat \
$(call gb_UnpackedTarball_get_dir,icu)/source/data/in/ \
))
$(eval $(call gb_UnpackedTarball_add_patches,icu,\
icu/icu4c-bsd.patch \
icu/icu4c-build.patch \
icu/icu4c.8198.revert.icu5431.patch \
icu/icu4c.7601.Indic-ccmp.patch \
icu/icu4c-aix.patch \
icu/icu4c-wchar_t.patch \
icu/icu4c-warnings.patch \
icu/icu4c.9313.cygwin.patch \
icu/icu4c-macosx.patch \
icu/icu4c-solarisgcc.patch \
icu/icu4c-mkdir.patch \
icu/icu4c-buffer-overflow.patch \
icu/icu4c-$(if $(filter ANDROID,$(OS)),android,rpath).patch \
))
# vim: set noet sw=4 ts=4:
# -*- 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,icu_data))
$(eval $(call gb_UnpackedTarball_set_tarball,icu_data,$(ICU_DATA_SUBSET_ZIP)))
# vim: set noet sw=4 ts=4:
......@@ -9,8 +9,8 @@ E: icu bufferoverflowstrncat pkgdata.cpp:299:87
Index: icu/source/tools/pkgdata/pkgdata.cpp
===================================================================
--- misc/build/icu.orig/source/tools/pkgdata/pkgdata.cpp
+++ misc/build/icu/source/tools/pkgdata/pkgdata.cpp
--- build/icu.orig/source/tools/pkgdata/pkgdata.cpp
+++ build/icu/source/tools/pkgdata/pkgdata.cpp
@@ -1914,12 +1914,12 @@ static void loadLists(UPKGOptions *o, UE
const char cmd[] = "icu-config --incpkgdatafile";
......
--- misc/icu/source/dataMakefile.in.sav 2012-04-05 22:49:20.000000000 +0200
+++ misc/build/icu/source/data/Makefile.in 2012-12-04 14:24:40.548026700 +0100
+++ build/icu/source/data/Makefile.in 2012-12-04 14:24:40.548026700 +0100
@@ -346,6 +346,7 @@
ifeq ($(PKGDATA_MODE),dll)
SO_VERSION_DATA = $(OUTTMPDIR)/icudata.res
......
diff -uriwb misc/build/icu.old/source/aclocal.m4 misc/build/icu/source/aclocal.m4
--- misc/build/icu.old/source/aclocal.m4 2012-04-05 21:49:28.000000000 +0100
+++ misc/build/icu/source/aclocal.m4 2012-06-21 15:44:57.299256932 +0100
diff -uriwb build/icu.old/source/aclocal.m4 misc/build/icu/source/aclocal.m4
--- build/icu.old/source/aclocal.m4 2012-04-05 21:49:28.000000000 +0100
+++ build/icu/source/aclocal.m4 2012-06-21 15:44:57.299256932 +0100
@@ -455,7 +455,7 @@
case "${host}" in
*-*-solaris*)
......@@ -21,9 +21,9 @@ diff -uriwb misc/build/icu.old/source/aclocal.m4 misc/build/icu/source/aclocal.m
else
case "${host}" in
*-*-cygwin)
diff -uriwb misc/build/icu.old/source/common/uposixdefs.h misc/build/icu/source/common/uposixdefs.h
--- misc/build/icu.old/source/common/uposixdefs.h 2012-04-05 21:46:18.000000000 +0100
+++ misc/build/icu/source/common/uposixdefs.h 2012-06-21 15:45:17.613369477 +0100
diff -uriwb build/icu.old/source/common/uposixdefs.h misc/build/icu/source/common/uposixdefs.h
--- build/icu.old/source/common/uposixdefs.h 2012-04-05 21:46:18.000000000 +0100
+++ build/icu/source/common/uposixdefs.h 2012-06-21 15:45:17.613369477 +0100
@@ -52,7 +52,7 @@
*
* z/OS needs this definition for timeval and to get usleep.
......@@ -33,9 +33,9 @@ diff -uriwb misc/build/icu.old/source/common/uposixdefs.h misc/build/icu/source/
# define _XOPEN_SOURCE_EXTENDED 1
#endif
diff -uriwb misc/build/icu.old/source/configure misc/build/icu/source/configure
--- misc/build/icu.old/source/configure 2012-04-05 21:49:28.000000000 +0100
+++ misc/build/icu/source/configure 2012-06-21 15:44:42.817030445 +0100
diff -uriwb build/icu.old/source/configure misc/build/icu/source/configure
--- build/icu.old/source/configure 2012-04-05 21:49:28.000000000 +0100
+++ build/icu/source/configure 2012-06-21 15:44:42.817030445 +0100
@@ -4264,7 +4264,7 @@
case "${host}" in
*-*-solaris*)
......
--- misc/icu/source/common/unicode/
--- misc/icu/source/common/unicode/utf16.h
+++ misc/build/icu/source/common/unicode/utf16.h
@@ -316,6 +316,7 @@
(s)[(i)++]=(uint16_t)(((c)&0x3ff)|0xdc00); \
......
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
# This file is part of OpenOffice.org.
#
# OpenOffice.org is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License version 3
# only, as published by the Free Software Foundation.
#
# OpenOffice.org is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License version 3 for more details
# (a copy is included in the LICENSE file that accompanied this code).
#
# You should have received a copy of the GNU Lesser General Public License
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
#*************************************************************************
PRJ=.
PRJNAME=icu
TARGET=so_icu
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
# --- Files --------------------------------------------------------
TARFILE_NAME=icu4c-49_1_1-src
TARFILE_MD5=7c53f83e0327343f4060c0eb83842daf
TARFILE_ROOTDIR=icu
#icu4c.7601.Indic-ccmp.patch
#http://bugs.icu-project.org/trac/ticket/7601 ccmp feature for Indic Languages
#icu4c.8198.revert.icu5431.patch
#http://bugs.icu-project.org/trac/ticket/8198 rendering with 0D30 and 0D31
PATCH_FILES=\
icu4c-bsd.patch \
icu4c-build.patch \
icu4c.8198.revert.icu5431.patch \
icu4c.7601.Indic-ccmp.patch \
icu4c-aix.patch \
icu4c-wchar_t.patch \
icu4c-warnings.patch \
icu4c.9313.cygwin.patch \
icu4c-macosx.patch \
icu4c-solarisgcc.patch \
icu4c-mkdir.patch \
icu4c-buffer-overflow.patch \
.IF "$(OS)"=="ANDROID"
PATCH_FILES+=\
icu4c-android.patch
icu_CFLAGS+=-fvisibility=hidden
icu_CXXFLAGS+=-fvisibility=hidden
.ELSE
PATCH_FILES+=\
icu4c-rpath.patch
.ENDIF
.IF "$(HAVE_GCC_BUILTIN_ATOMIC)"=="TRUE"
EXTRA_CDEFS+=-DU_HAVE_GCC_ATOMICS=1
.ELSE
EXTRA_CDEFS+=-DU_HAVE_GCC_ATOMICS=0
.ENDIF
# Save space when using a bundled ICU by leaving out unneeded parts of the ICU data. Generated by
# the interactive web tool at http://apps.icu-project.org/datacustom/ICUData49.html by dropping
# the "Charset Mapping Tables". Probably we could carefully cherry-pick other items in the data to
# be dropped, too. A bit tedious using that web tool, though.
# If you do that, upload a new subset data zip file with just the MD5 part of the name changed
# appropriately. Let's not bother trying to list what stuff has been removed in the file name.
# Describe it in the comment above instead.
CONFIGURE_ACTION=unzip $(TARFILE_LOCATION)/$(ICU_DATA_SUBSET_ZIP) && mv icudt49l.dat data/in &&
.IF "$(OS)"!="WNT"
.IF "$(SYSBASE)"!=""
icu_CFLAGS+=-I$(SYSBASE)$/usr$/include
.IF "$(COMNAME)"=="sunpro5"
icu_CFLAGS+=$(C_RESTRICTIONFLAGS)
.ENDIF # "$(COMNAME)"=="sunpro5"
# add SYSBASE libraries and make certain that they are found *after* the
# icu build internal libraries - in case that icu is available in SYSBASE
# as well
icu_LDFLAGS+= -L../lib -L../../lib -L../stubdata -L../../stubdata -L$(SYSBASE)$/usr$/lib
.ENDIF # "$(SYSBASE)"!=""
.IF "$(OS)"=="MACOSX"
.IF "$(EXTRA_CFLAGS)"!=""
CPP:=gcc -E $(EXTRA_CFLAGS)
CXX:=g++ $(EXTRA_CFLAGS)
CC:=gcc $(EXTRA_CFLAGS)
.EXPORT : CPP
.ENDIF # "$(EXTRA_CFLAGS)"!=""
.ENDIF # "$(OS)"=="MACOSX"
.IF "$(debug)" != ""
icu_CFLAGS+=-g $(ARCH_FLAGS)
icu_CXXFLAGS+=-g $(ARCH_FLAGS)
.ELIF "$(COM)"=="GCC"
icu_CFLAGS+=-O2 -fno-strict-aliasing $(ARCH_FLAGS)
icu_CXXFLAGS+=-O2 -fno-strict-aliasing $(ARCH_FLAGS)
.ELSE
icu_CFLAGS+=-O $(ARCH_FLAGS)
icu_CXXFLAGS+=-O $(ARCH_FLAGS)
.ENDIF
icu_LDFLAGS+=$(EXTRA_LINKFLAGS)
# until someone introduces SOLARIS 64-bit builds
.IF "$(OS)"=="SOLARIS"
DISABLE_64BIT=--enable-64bit-libs=no
.ENDIF # "$(OS)"=="SOLARIS"
.IF "$(OS)"=="AIX"
DISABLE_64BIT=--enable-64bit-libs=no
LDFLAGSADD+=$(LINKFLAGS) $(LINKFLAGSRUNPATH_OOO)
.ENDIF # "$(OS)"=="AIX"
.IF "$(HAVE_LD_HASH_STYLE)" == "TRUE"
LDFLAGSADD += -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE)
.ENDIF
.IF "$(OS)"=="IOS"
# Let's try this...
icu_CFLAGS+=-DUCONFIG_NO_FILE_IO
icu_CXXFLAGS+=-DUCONFIG_NO_FILE_IO
.ENDIF
.IF "$(OS)"=="ANDROID"
# Problems with uint64_t on Android unless disabling strictness
DISABLE_STRICT=--disable-strict
icu_CFLAGS+=-fno-omit-frame-pointer
icu_CXXFLAGS+=-fno-omit-frame-pointer
.ENDIF
.IF "$(OS)"=="IOS" || "$(OS)"=="ANDROID"
# Problems on Android unless disabling dynamic loading
DISABLE_DYLOAD=--disable-dyload
.ENDIF
.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE"
LDFLAGSADD += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
.ENDIF
CONFIGURE_DIR=source
.IF "$(DISABLE_DYNLOADING)" == "TRUE"
STATIC_OR_SHARED=--enable-static --disable-shared
.ELSE
STATIC_OR_SHARED=--disable-static --enable-shared
.ENDIF
.IF "$(CROSS_COMPILING)"=="YES"
# We require that the cross-build-toolset target from the top Makefile(.in) has bee built
BUILD_AND_HOST=--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --with-cross-build=$(posix_PWD)/$(INPATH_FOR_BUILD)/misc/build/icu/source
.ENDIF
.IF "$(OS)"=="ANDROID"
.IF "$(DISABLE_DYNLOADING)" != "TRUE"
LIBRARY_SUFFIX= --with-library-suffix=lo
.ENDIF
# Just so that some executables that nobody will run anyway get built...
icu_LDFLAGS+=-lgnustl_shared -lm
.ENDIF
CONFIGURE_ACTION+=sh -c 'CPPFLAGS="$(EXTRA_CDEFS)" CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS) $(LDFLAGSADD)" \
./configure --enable-layout --disable-samples $(STATIC_OR_SHARED) $(BUILD_AND_HOST) $(DISABLE_64BIT) $(DISABLE_STRICT) $(DISABLE_DYLOAD) $(LIBRARY_SUFFIX)'
.IF "$(OS)" == "MACOSX"
CONFIGURE_ACTION += \
--prefix=/@.__________________________________________________$(EXTRPATH)
.END
CONFIGURE_FLAGS=
# Use of
# CONFIGURE_ACTION=sh -c 'CFLAGS=-O CXXFLAGS=-O ./configure'
# CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
# doesn't work as it would result in
# sh -c 'CFLAGS=-O CXXFLAGS=-O ./configure' --enable-layout ...
# note the position of the single quotes.
BUILD_DIR=$(CONFIGURE_DIR)
BUILD_ACTION=$(AUGMENT_LIBRARY_PATH) $(GNUMAKE) -j$(EXTMAXPROCESS)
.IF "$(DISABLE_DYNLOADING)" == "TRUE"
OUT2LIB= \
$(BUILD_DIR)$/lib$/libicudata.a \
$(BUILD_DIR)$/lib$/libicuuc.a \
$(BUILD_DIR)$/lib$/libicui18n.a \
$(BUILD_DIR)$/lib$/libicule.a \
$(BUILD_DIR)$/lib$/libicutu.a
.ELIF "$(OS)"=="ANDROID" # The no longer normal, non-DISABLE_DYNLOADING case for Android
BUILD_ACTION+= && cat uconfig.h.prepend common/unicode/uconfig.h >common/unicode/uconfig.h.new && mv common/unicode/uconfig.h.new common/unicode/uconfig.h
OUT2LIB= \
$(BUILD_DIR)$/lib$/libicudatalo.so \
$(BUILD_DIR)$/lib$/libicuuclo.so \
$(BUILD_DIR)$/lib$/libicui18nlo.so \
$(BUILD_DIR)$/lib$/libiculelo.so \
$(BUILD_DIR)$/lib$/libicutulo.so
.ELSE
OUT2LIB= \
$(BUILD_DIR)$/lib$/libicudata$(DLLPOST).$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO) \
$(BUILD_DIR)$/lib$/libicudata$(DLLPOST).$(ICU_MAJOR) \
$(BUILD_DIR)$/lib$/libicudata$(DLLPOST) \
$(BUILD_DIR)$/lib$/libicuuc$(DLLPOST).$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO) \
$(BUILD_DIR)$/lib$/libicuuc$(DLLPOST).$(ICU_MAJOR) \
$(BUILD_DIR)$/lib$/libicuuc$(DLLPOST) \
$(BUILD_DIR)$/lib$/libicui18n$(DLLPOST).$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO) \
$(BUILD_DIR)$/lib$/libicui18n$(DLLPOST).$(ICU_MAJOR) \
$(BUILD_DIR)$/lib$/libicui18n$(DLLPOST) \
$(BUILD_DIR)$/lib$/libicule$(DLLPOST).$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO) \
$(BUILD_DIR)$/lib$/libicule$(DLLPOST).$(ICU_MAJOR) \
$(BUILD_DIR)$/lib$/libicule$(DLLPOST) \
$(BUILD_DIR)$/lib$/libicutu$(DLLPOST).$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO) \
$(BUILD_DIR)$/lib$/libicutu$(DLLPOST).$(ICU_MAJOR) \
$(BUILD_DIR)$/lib$/libicutu$(DLLPOST)
OUT2BIN_NONE= \
$(BUILD_DIR)$/bin$/genccode \
$(BUILD_DIR)$/bin$/genbrk \
$(BUILD_DIR)$/bin$/gencmn
.ENDIF
.ENDIF
.IF "$(OS)"=="WNT"
CONFIGURE_DIR=source
.IF "$(COM)"=="GCC"
.IF "$(MINGW_SHARED_GCCLIB)"=="YES"
icu_LDFLAGS+=-shared-libgcc
.ENDIF
icu_LDFLAGS+=-L$(COMPATH)$/lib
icu_LIBS=
.IF "$(MINGW_SHARED_GXXLIB)"=="YES"
icu_LIBS+=$(MINGW_SHARED_LIBSTDCPP)
.ENDIF
icu_LDFLAGS+=-Wl,--enable-runtime-pseudo-reloc-v2
.IF "$(CROSS_COMPILING)"=="YES"
# We require that the cross-build-toolset target from the top Makefile(.in) has bee built
BUILD_AND_HOST=--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --with-cross-build=$(posix_PWD)/$(INPATH_FOR_BUILD)/misc/build/icu/source
.ELSE
BUILD_AND_HOST=--build=i586-pc-mingw32 --enable-64bit-libs=no
.ENDIF
CONFIGURE_ACTION+=sh -c 'CPPFLAGS="$(EXTRA_CDEFS)" CFLAGS="-O -D_MT" CXXFLAGS="-O -D_MT" LDFLAGS="$(icu_LDFLAGS)" LIBS="$(icu_LIBS)" \
./configure $(BUILD_AND_HOST) --enable-layout --disable-static --enable-shared --disable-samples'
CONFIGURE_FLAGS=
# Use of
# CONFIGURE_ACTION=sh -c 'CFLAGS=-O CXXFLAGS=-O ./configure'
# CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
# doesn't work as it would result in
# sh -c 'CFLAGS=-O CXXFLAGS=-O ./configure' --enable-layout ...
# note the position of the single quotes.
BUILD_DIR=$(CONFIGURE_DIR)
BUILD_ACTION=$(GNUMAKE) -j$(EXTMAXPROCESS)
OUT2LIB=
OUT2BIN= \
$(BUILD_DIR)$/lib$/icudt$(ICU_MAJOR)$(ICU_MINOR)$(DLLPOST) \
$(BUILD_DIR)$/lib$/icuuc$(ICU_MAJOR)$(ICU_MINOR)$(DLLPOST) \
$(BUILD_DIR)$/lib$/icuin$(ICU_MAJOR)$(ICU_MINOR)$(DLLPOST) \
$(BUILD_DIR)$/lib$/icule$(ICU_MAJOR)$(ICU_MINOR)$(DLLPOST) \
$(BUILD_DIR)$/lib$/icutu$(ICU_MAJOR)$(ICU_MINOR)$(DLLPOST) \
$(BUILD_DIR)$/bin$/genccode.exe \
$(BUILD_DIR)$/bin$/genbrk.exe \
$(BUILD_DIR)$/bin$/gencmn.exe
.ELSE
BUILD_DIR=source
CONFIGURE_ACTION+=bash ./runConfigureICU Cygwin/MSVC
BUILD_ACTION=$(GNUMAKE) -j$(EXTMAXPROCESS)
OUT2LIB= \
$(BUILD_DIR)$/lib$/icudt.lib \
$(BUILD_DIR)$/lib$/icuin$(ICU_BUILD_LIBPOST).lib \
$(BUILD_DIR)$/lib$/icuuc$(ICU_BUILD_LIBPOST).lib \
$(BUILD_DIR)$/lib$/icule$(ICU_BUILD_LIBPOST).lib \
$(BUILD_DIR)$/lib$/icutu$(ICU_BUILD_LIBPOST).lib
OUT2BIN= \
$(BUILD_DIR)$/lib$/icudt$(ICU_MAJOR).dll \
$(BUILD_DIR)$/lib$/icuin$(ICU_MAJOR)$(ICU_BUILD_LIBPOST).dll \
$(BUILD_DIR)$/lib$/icuuc$(ICU_MAJOR)$(ICU_BUILD_LIBPOST).dll \
$(BUILD_DIR)$/lib$/icule$(ICU_MAJOR)$(ICU_BUILD_LIBPOST).dll \
$(BUILD_DIR)$/lib$/icutu$(ICU_MAJOR)$(ICU_BUILD_LIBPOST).dll \
$(BUILD_DIR)$/bin$/genccode.exe \
$(BUILD_DIR)$/bin$/genbrk.exe \
$(BUILD_DIR)$/bin$/gencmn.exe
.ENDIF
.ENDIF # "$(OS)"=="WNT"
#make sure that when we deliver the headers of a new icu that the timestamps
#are newer than the last icu to ensure dependencies are correctly rebuilt
INSTALL_ACTION=find . -name "*.h" -print0 | xargs -0 touch
# --- Targets ------------------------------------------------------
.INCLUDE : set_ext.mk
.INCLUDE : target.mk
.INCLUDE : tg_ext.mk
.IF "$(BINARY_PATCH_FILES)"!=""
$(PACKAGE_DIR)$/so_add_binary : $(PACKAGE_DIR)$/$(ADD_FILES_FLAG_FILE)
cd $(PACKAGE_DIR) && gunzip -c $(BACK_PATH)$(BINARY_PATCH_FILES) | tar -xvf -
$(TOUCH) $(PACKAGE_DIR)$/so_add_binary
$(PACKAGE_DIR)$/$(CONFIGURE_FLAG_FILE) : $(PACKAGE_DIR)$/so_add_binary
.ENDIF
.IF "$(OS)$(COM)"=="WNTGCC"
ALLTAR : \
$(LB)$/icudata.lib \
$(LB)$/icuin$(ICU_BUILD_LIBPOST).lib \
$(LB)$/icuuc$(ICU_BUILD_LIBPOST).lib \
$(LB)$/icule$(ICU_BUILD_LIBPOST).lib \
$(LB)$/icutu$(ICU_BUILD_LIBPOST).lib
$(LB)$/icudata.lib : $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
$(TOUCH) $@
$(LB)$/icuin$(ICU_BUILD_LIBPOST).lib : $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
$(TOUCH) $@
$(LB)$/icuuc$(ICU_BUILD_LIBPOST).lib : $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
$(TOUCH) $@
$(LB)$/icule$(ICU_BUILD_LIBPOST).lib : $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
$(TOUCH) $@
$(LB)$/icutu$(ICU_BUILD_LIBPOST).lib : $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
$(TOUCH) $@
.ENDIF
ic icu : solenv external NULL
ic icu usr1 - all ic_mkout NULL
ic icu nmake - u ic_icu NULL
ic icu nmake - w,vc7 ic_icu NULL
mkdir: %_DEST%\inc\icu
mkdir: %_DEST%\inc\external\layout
mkdir: %_DEST%\inc\external\unicode
..\%__SRC%\misc\build\icu\source\layout\*.h %_DEST%\inc\external\layout\*.h
..\%__SRC%\misc\build\icu\source\common\unicode\*.h %_DEST%\inc\external\unicode\*.h
..\%__SRC%\misc\build\icu\source\i18n\unicode\*.h %_DEST%\inc\external\unicode\*.h
..\%__SRC%\lib\*.a %_DEST%\lib\*.a
..\%__SRC%\lib\*.lib %_DEST%\lib\*.lib
..\%__SRC%\lib\*.lib %_DEST%\lib
..\%__SRC%\bin\*.dll %_DEST%\bin\*.dll
..\%__SRC%\bin\genccode %_DEST%\bin\genccode
..\%__SRC%\bin\genccode.exe %_DEST%\bin\genccode.exe
..\%__SRC%\bin\genbrk %_DEST%\bin\genbrk
..\%__SRC%\bin\genbrk.exe %_DEST%\bin\genbrk.exe
..\%__SRC%\bin\gencmn %_DEST%\bin\gencmn
..\%__SRC%\bin\gencmn.exe %_DEST%\bin\gencmn.exe
..\%__SRC%\lib\libicudata.*.*.* %_DEST%\lib\
..\%__SRC%\lib\libicui18n.*.*.* %_DEST%\lib\
..\%__SRC%\lib\libicule.*.*.* %_DEST%\lib\
..\%__SRC%\lib\libicuuc.*.*.* %_DEST%\lib\
..\%__SRC%\lib\libicutu.*.*.* %_DEST%\lib\
..\%__SRC%\lib\libicudata.so %_DEST%\lib\
..\%__SRC%\lib\libicui18n.so %_DEST%\lib\
..\%__SRC%\lib\libicule.so %_DEST%\lib\
..\%__SRC%\lib\libicuuc.so %_DEST%\lib\
..\%__SRC%\lib\libicutu.so %_DEST%\lib\
..\%__SRC%\lib\libicudatalo.so %_DEST%\lib\
..\%__SRC%\lib\libicui18nlo.so %_DEST%\lib\
..\%__SRC%\lib\libiculelo.so %_DEST%\lib\
..\%__SRC%\lib\libicuuclo.so %_DEST%\lib\
..\%__SRC%\lib\libicutulo.so %_DEST%\lib\
..\%__SRC%\lib\libicudata.a %_DEST%\lib\
..\%__SRC%\lib\libicui18n.a %_DEST%\lib\
..\%__SRC%\lib\libicule.a %_DEST%\lib\
..\%__SRC%\lib\libicuuc.a %_DEST%\lib\
..\%__SRC%\lib\libicutu.a %_DEST%\lib\
linklib: libicudata.*.*.*
linklib: libicui18n.*.*.*
linklib: libicule.*.*.*
linklib: libicuuc.*.*.*
linklib: libicutu.*.*.*
......@@ -38,6 +38,7 @@ $(eval $(call gb_Executable_use_libraries,helpex,\
$(eval $(call gb_Executable_use_externals,helpex,\
expat_utf8 \
boost_headers \
icu_headers \
))
$(eval $(call gb_Executable_use_static_libraries,helpex,\
......
......@@ -32,6 +32,7 @@ $(eval $(call gb_Executable_use_externals,stringex,\
libxml2 \
icuuc \
icui18n \
icu_headers \
))
# vim: set noet sw=4 ts=4:
......@@ -52,6 +52,7 @@ $(eval $(call gb_Executable_add_exception_objects,transex3,\
$(eval $(call gb_Executable_use_externals,transex3,\
icuuc \
icui18n \
icu_headers \
libxml2 \
))
......
......@@ -30,8 +30,9 @@ $(eval $(call gb_Executable_add_exception_objects,treex,\
$(eval $(call gb_Executable_use_externals,treex,\
libxml2 \
icuuc \
icuuc \
icui18n \
icu_headers \
))
# vim: set noet sw=4 ts=4:
......@@ -33,6 +33,7 @@ $(eval $(call gb_Executable_use_externals,uiex,\
boost_headers \
icuuc \
icui18n \
icu_headers \
))
# vim: set noet sw=4 ts=4:
......@@ -53,6 +53,7 @@ $(eval $(call gb_Executable_use_externals,xrmex,\
libxml2 \
icuuc \
icui18n \
icu_headers \
))
# vim:set shiftwidth=4 softtabstop=4 expandtab:
......@@ -37,7 +37,10 @@ $(eval $(call gb_StaticLibrary_set_include,transex,\
$$(INCLUDE) \
))
$(eval $(call gb_StaticLibrary_use_external,transex,boost_headers))
$(eval $(call gb_StaticLibrary_use_externals,transex,\
boost_headers \
icu_headers \
))
$(eval $(call gb_StaticLibrary_add_exception_objects,transex,\
l10ntools/source/export2 \
......
......@@ -58,7 +58,10 @@ $(eval $(call gb_Library_use_libraries,lng,\
$(gb_UWINAPI) \
))
$(eval $(call gb_Library_use_external,lng,icuuc))
$(eval $(call gb_Library_use_externals,lng,\
icuuc \
icu_headers \
))
$(eval $(call gb_Library_add_exception_objects,lng,\
linguistic/source/convdic \
......
......@@ -53,6 +53,7 @@ $(eval $(call gb_Library_use_libraries,lwpft,\
$(eval $(call gb_Library_use_externals,lwpft,\
icui18n \
icuuc \
icu_headers \
))
$(eval $(call gb_Library_set_componentfile,lwpft,lotuswordpro/util/lwpfilter))
......
......@@ -21,7 +21,7 @@ gb_UnpackedTarget_STRIP_COMPONENTS_ZIP_DEFAULT := 0
define gb_UnpackedTarget__get_strip_components
$(strip $(if $(2),\
$(2),\
$(if $(filter zip,$(suffix $(1))),\
$(if $(filter .zip,$(suffix $(1))),\
$(gb_UnpackedTarget_STRIP_COMPONENTS_ZIP_DEFAULT),\
$(gb_UnpackedTarget_STRIP_COMPONENTS_TAR_DEFAULT) \
) \
......
......@@ -60,6 +60,7 @@ $(eval $(call gb_Library_use_libraries,svt,\
$(eval $(call gb_Library_use_externals,svt,\
icuuc \
icu_headers \
jpeg \
))
......
......@@ -61,7 +61,10 @@ $(eval $(call gb_Library_use_libraries,svx,\
$(gb_UWINAPI) \
))
$(eval $(call gb_Library_use_external,svx,icuuc))
$(eval $(call gb_Library_use_externals,svx,\
icuuc \
icu_headers \
))
$(eval $(call gb_Library_add_exception_objects,svx,\
svx/source/accessibility/AccessibleControlShape \
......
......@@ -65,6 +65,7 @@ $(eval $(call gb_Library_use_libraries,msword,\
$(eval $(call gb_Library_use_externals,msword,\
icuuc \
icu_headers \
libxml2 \
))
......
......@@ -74,6 +74,7 @@ $(eval $(call gb_Library_use_libraries,sw,\
$(eval $(call gb_Library_use_externals,sw,\
icuuc \
icu_headers \
libxml2 \
))
......
tb tail_build : EXPAT:expat FONTCONFIG:fontconfig ICU:icu LIBXML2:libxml2 LIBXSLT:libxslt MOZ:moz NSS:nss OPENSSL:openssl PYTHON:python3 REDLAND:redland XPDF:xpdf external solenv soltools NULL
tb tail_build : EXPAT:expat FONTCONFIG:fontconfig LIBXML2:libxml2 LIBXSLT:libxslt MOZ:moz NSS:nss OPENSSL:openssl PYTHON:python3 REDLAND:redland XPDF:xpdf external solenv soltools NULL
tb tail_build\prj nmake - all tb_prj NULL
......@@ -98,6 +98,7 @@ endif
$(eval $(call gb_Library_use_externals,vcl,\
icule \
icuuc \
icu_headers \
lcms2 \
))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment