-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathgettext-gnu.mk
116 lines (99 loc) · 3.98 KB
/
gettext-gnu.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
################################################################################
#
# gettext-gnu
#
################################################################################
# Please keep in sync with package/libtextstyle/libtextstyle.mk and
# GETTEXT_TINY_ARCHIVE_VERSION in gettext-tiny/gettext-tiny.mk
GETTEXT_GNU_VERSION = 0.22
GETTEXT_GNU_SITE = $(BR2_GNU_MIRROR)/gettext
GETTEXT_GNU_SOURCE = gettext-$(GETTEXT_GNU_VERSION).tar.xz
GETTEXT_GNU_INSTALL_STAGING = YES
GETTEXT_GNU_LICENSE = LGPL-2.1+ (libintl), GPL-3.0+ (the rest)
GETTEXT_GNU_LICENSE_FILES = COPYING gettext-runtime/intl/COPYING.LIB
GETTEXT_GNU_CPE_ID_VENDOR = gnu
GETTEXT_GNU_CPE_ID_PRODUCT = gettext
GETTEXT_GNU_PROVIDES = gettext
GETTEXT_GNU_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv)
# Avoid using the bundled subset of libxml2
HOST_GETTEXT_GNU_DEPENDENCIES = host-libxml2 host-libtextstyle
GETTEXT_GNU_CONF_OPTS += \
--disable-libasprintf \
--disable-acl \
--disable-openmp \
--disable-rpath \
--disable-java \
--disable-native-java \
--disable-csharp \
--disable-relocatable \
--without-emacs
HOST_GETTEXT_GNU_CONF_OPTS = \
--disable-libasprintf \
--disable-acl \
--disable-openmp \
--disable-rpath \
--disable-java \
--disable-native-java \
--disable-csharp \
--disable-relocatable \
--without-emacs \
--with-installed-libtextstyle
# Force the build of libintl, even if the C library provides a stub
# gettext implementation
ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y)
GETTEXT_GNU_CONF_OPTS += --with-included-gettext
else
GETTEXT_GNU_CONF_OPTS += --without-included-gettext
endif
# For the target version, we only need the runtime, and for the host
# version, we only need the tools.
GETTEXT_GNU_SUBDIR = gettext-runtime
HOST_GETTEXT_GNU_SUBDIR = gettext-tools
# Disable the build of documentation and examples of gettext-tools,
# and the build of documentation and tests of gettext-runtime.
define HOST_GETTEXT_GNU_DISABLE_UNNEEDED
$(SED) '/^SUBDIRS/s/ doc //;/^SUBDIRS/s/examples$$//' $(@D)/gettext-tools/Makefile.in
$(SED) '/^SUBDIRS/s/ doc //;/^SUBDIRS/s/tests$$//' $(@D)/gettext-runtime/Makefile.in
endef
GETTEXT_GNU_POST_PATCH_HOOKS += HOST_GETTEXT_GNU_DISABLE_UNNEEDED
HOST_GETTEXT_GNU_POST_PATCH_HOOKS += HOST_GETTEXT_GNU_DISABLE_UNNEEDED
# gettext-tools depends on gettext-runtime
define HOST_GETTEXT_GNU_CONFIGURE_RUNTIME
cd $(@D)/$(GETTEXT_GNU_SUBDIR); \
$(HOST_CONFIGURE_OPTS) \
./configure --prefix=$(HOST_DIR) \
$(HOST_GETTEXT_GNU_CONF_OPTS)
endef
HOST_GETTEXT_GNU_PRE_CONFIGURE_HOOKS += HOST_GETTEXT_GNU_CONFIGURE_RUNTIME
define HOST_GETTEXT_GNU_BUILD_RUNTIME
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/$(GETTEXT_GNU_SUBDIR) install
endef
HOST_GETTEXT_GNU_PRE_BUILD_HOOKS += HOST_GETTEXT_GNU_BUILD_RUNTIME
define GETTEXT_GNU_REMOVE_UNNEEDED
$(RM) -rf $(TARGET_DIR)/usr/share/gettext/ABOUT-NLS
rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/usr/share/gettext
endef
GETTEXT_GNU_POST_INSTALL_TARGET_HOOKS += GETTEXT_GNU_REMOVE_UNNEEDED
# Force build with NLS support, otherwise libintl is not built
# This is needed because some packages (eg. libglib2) requires
# locales, but do not properly depend on BR2_ENABLE_LOCALE, and
# instead select BR2_PACKAGE_GETTEXT_GNU. Those packages need to be
# fixed before we can remove the following 3 lines... :-(
ifeq ($(BR2_ENABLE_LOCALE),)
GETTEXT_GNU_CONF_OPTS += --enable-nls
endif
# Disable interactive confirmation in host gettextize for package fixups
define HOST_GETTEXT_GNU_GETTEXTIZE_CONFIRMATION
$(SED) '/read dummy/d' $(HOST_DIR)/bin/gettextize
endef
HOST_GETTEXT_GNU_POST_INSTALL_HOOKS += HOST_GETTEXT_GNU_GETTEXTIZE_CONFIRMATION
# autoreconf expects gettextize to install ABOUT-NLS, but it only gets
# installed by gettext-runtime which we don't build/install for the
# host, so do it manually
define HOST_GETTEXT_GNU_ADD_ABOUT_NLS
$(INSTALL) -m 0644 $(@D)/$(HOST_GETTEXT_GNU_SUBDIR)/ABOUT-NLS \
$(HOST_DIR)/share/gettext/ABOUT-NLS
endef
HOST_GETTEXT_GNU_POST_INSTALL_HOOKS += HOST_GETTEXT_GNU_ADD_ABOUT_NLS
$(eval $(autotools-package))
$(eval $(host-autotools-package))