icu: fix ccache issue
[feed/packages.git] / libs / icu / Makefile
1 #
2 # Copyright (C) 2006-2016 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=icu4c
11 MAJOR_VERSION:=72
12 MINOR_VERSION:=1
13 PKG_VERSION:=$(MAJOR_VERSION).$(MINOR_VERSION)
14 PKG_RELEASE:=2
15
16 PKG_SOURCE:=$(PKG_NAME)-$(MAJOR_VERSION)_$(MINOR_VERSION)-src.tgz
17 PKG_SOURCE_URL:=https://github.com/unicode-org/icu/releases/download/release-$(MAJOR_VERSION)-$(MINOR_VERSION)
18 PKG_HASH:=a2d2d38217092a7ed56635e34467f92f976b370e20182ad325edea6681a71d68
19
20 PKG_LICENSE:=ICU
21 PKG_LICENSE_FILES:=LICENSE
22 PKG_CPE_ID:=cpe:/a:icu-project:international_components_for_unicode
23
24 PKG_MAINTAINER:=Hirokazu MORIKAWA <morikw2@gmail.com>
25
26 PKG_INSTALL:=1
27 PKG_BUILD_PARALLEL:=1
28
29 PKG_BUILD_DEPENDS:=icu/host
30 HOST_BUILD_DEPENDS:=python3/host
31
32 include $(INCLUDE_DIR)/package.mk
33 include $(INCLUDE_DIR)/host-build.mk
34
35 TAR_OPTIONS+= icu/source --strip-components 2
36 TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
37
38 define Package/icu
39 SECTION:=libs
40 CATEGORY:=Libraries
41 TITLE:=International Components for Unicode
42 URL:=http://icu-project.org
43 DEPENDS:=+libstdcpp +libpthread
44 ABI_VERSION:=$(MAJOR_VERSION)
45 endef
46
47 define Package/icu/description
48 ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications. ICU is widely portable and gives applications the same results on all platforms and between C/C++ and Java software.
49 This package supports C/C++.
50 endef
51
52 define Package/icu-full-data
53 SECTION:=libs
54 CATEGORY:=Libraries
55 TITLE:=Full ICU Data
56 URL:=http://icu-project.org
57 DEPENDS:=+icu
58 ABI_VERSION:=$(MAJOR_VERSION)
59 endef
60
61 define Package/icu-full-data/description
62 ICU makes use of a wide variety of data tables to provide many of its services. Examples include converter mapping tables, collation rules, transliteration rules, break iterator rules and dictionaries, and other locale data.
63 This package contains the complete data library provided by ICU.
64 A custom data library can be generated at http://apps.icu-project.org/datacustom/
65 endef
66
67 define Package/icu-data-tools
68 SECTION:=libs
69 CATEGORY:=Libraries
70 TITLE:=ICU Data manipulation tools
71 URL:=http://icu-project.org
72 DEPENDS:=+icu
73 endef
74
75 define Package/icu-data-tools/description
76 This package provides tools for manipulating ICU data.
77 endef
78
79 CONFIGURE_CMD:= ./runConfigureICU
80 CONFIGURE_ARGS:= \
81 Linux/gcc \
82 CC="$(TARGET_CC_NOCACHE)" \
83 CXX="$(TARGET_CXX_NOCACHE)" \
84 --target=$(GNU_TARGET_NAME) \
85 --host=$(GNU_TARGET_NAME) \
86 --build=$(GNU_HOST_NAME) \
87 --disable-debug \
88 --enable-release \
89 --enable-shared \
90 --enable-static \
91 --enable-draft \
92 --enable-renaming \
93 --disable-tracing \
94 --disable-extras \
95 --enable-dyload \
96 --with-data-packaging=archive \
97 --disable-tests \
98 --disable-samples \
99 --with-cross-build="$(STAGING_DIR_HOSTPKG)/share/icu/$(PKG_VERSION)" \
100 --prefix=/usr
101
102 HOST_CONFIGURE_CMD:= ./runConfigureICU
103 HOST_CONFIGURE_VARS:=
104 ifeq ($(HOST_OS),Darwin)
105 HOST_CONFIGURE_ARGS:= MacOSX
106 else
107 HOST_CONFIGURE_ARGS:= Linux/gcc
108 endif
109 HOST_CONFIGURE_ARGS+= \
110 --disable-debug \
111 --enable-release \
112 --enable-shared \
113 --enable-static \
114 --enable-draft \
115 --enable-renaming \
116 --disable-tracing \
117 --disable-extras \
118 --enable-dyload \
119 --prefix=$(STAGING_DIR_HOSTPKG)
120
121 define Build/Prepare
122 $(call Build/Prepare/Default)
123 mkdir -p $(PKG_BUILD_DIR)/data/out
124 endef
125
126 define Build/InstallDev
127 $(INSTALL_DIR) $(1)/usr/include
128 $(INSTALL_DIR) $(1)/usr/lib
129 $(INSTALL_DIR) $(1)/usr/bin
130 $(INSTALL_DIR) $(2)/bin
131 $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
132 $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
133 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/icu-config $(1)/usr/bin/
134 $(SED) 's,^\(prefix\|execprefix\)=.*,\1=$(STAGING_DIR)/usr,g' $(1)/usr/bin/icu-config
135 $(LN) $(STAGING_DIR)/usr/bin/icu-config $(2)/bin/
136 endef
137
138 define Host/Install
139 $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/share/icu/$(PKG_VERSION)/config
140 $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/share/icu/$(PKG_VERSION)/bin
141 $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/share/icu/$(PKG_VERSION)/lib
142 $(INSTALL_DATA) $(HOST_BUILD_DIR)/config/icucross.* $(STAGING_DIR_HOSTPKG)/share/icu/$(PKG_VERSION)/config/
143 $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/icupkg $(STAGING_DIR_HOSTPKG)/share/icu/$(PKG_VERSION)/bin/
144 $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/pkgdata $(STAGING_DIR_HOSTPKG)/share/icu/$(PKG_VERSION)/bin/
145 ifeq ($(HOST_OS),Darwin)
146 $(CP) $(HOST_BUILD_DIR)/lib/*.dylib* $(STAGING_DIR_HOSTPKG)/share/icu/$(PKG_VERSION)/lib/
147 else
148 $(CP) $(HOST_BUILD_DIR)/lib/*.so* $(STAGING_DIR_HOSTPKG)/share/icu/$(PKG_VERSION)/lib/
149 endif
150 $(RM) $(STAGING_DIR_HOSTPKG)/share/icu/current
151 (cd $(STAGING_DIR_HOSTPKG)/share/icu;$(LN) $(PKG_VERSION) current)
152 endef
153
154 define Package/icu/install
155 $(INSTALL_DIR) $(1)/usr/lib
156 $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
157 endef
158
159 define Package/icu-full-data/install
160 $(INSTALL_DIR) $(1)/usr/share/icu/$(PKG_VERSION)
161 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/icu/$(PKG_VERSION)/icudt*.dat \
162 $(1)/usr/share/icu/$(PKG_VERSION)/
163 endef
164
165 define Package/icu-data-tools/install
166 $(INSTALL_DIR) $(1)/usr/bin
167 $(INSTALL_DIR) $(1)/usr/sbin
168 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
169 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/
170 endef
171
172 $(eval $(call HostBuild))
173 $(eval $(call BuildPackage,icu))
174 $(eval $(call BuildPackage,icu-full-data))
175 $(eval $(call BuildPackage,icu-data-tools))