Makefile 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. #
  2. # Copyright (C) 2006-2015 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. PKG_NAME:=gettext-full
  9. PKG_VERSION:=0.24.1
  10. PKG_RELEASE:=1
  11. PKG_SOURCE:=gettext-$(PKG_VERSION).tar.xz
  12. PKG_SOURCE_URL:=@GNU/gettext
  13. PKG_HASH:=6164ec7aa61653ac9cdfb41d5c2344563b21f707da1562712e48715f1d2052a6
  14. PKG_BUILD_DIR:=$(BUILD_DIR)/gettext-$(PKG_VERSION)
  15. HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/gettext-$(PKG_VERSION)
  16. PKG_MAINTAINER:=Jo-Philipp Wich <[email protected]>
  17. PKG_LICENSE:=LGPL-2.1-or-later
  18. PKG_LICENSE_FILES:=gettext-runtime/intl/COPYING.LIB
  19. PKG_CPE_ID:=cpe:/a:gnu:gettext
  20. PKG_INSTALL:=1
  21. PKG_BUILD_DEPENDS:=gettext-full/host libunistring libxml2
  22. PKG_BUILD_PARALLEL:=0
  23. HOST_BUILD_DEPENDS:=gnulib-l10n/host gperf/host libiconv-full/host libunistring/host libxml2/host
  24. HOST_BUILD_PARALLEL:=0
  25. PKG_SUBDIRS:= \
  26. $$$$(foreach dir, \
  27. intl \
  28. intl-csharp \
  29. intl-java \
  30. its \
  31. gnulib-lib \
  32. gnulib-local \
  33. lib \
  34. $$$$(SUBDIR_libasprintf) \
  35. libgettextpo \
  36. libgrep \
  37. libtextstyle \
  38. m4 \
  39. misc \
  40. po \
  41. projects \
  42. src \
  43. styles \
  44. gettext-runtime \
  45. gettext-tools \
  46. ,$$$$(wildcard $$$$(dir)) )
  47. PKG_MAKEFILES_FAKE:= \
  48. gnulib-local/m4/Makefile \
  49. libtextstyle/gnulib-local/Makefile \
  50. libtextstyle/m4/Makefile \
  51. m4/Makefile
  52. include $(INCLUDE_DIR)/package.mk
  53. include $(INCLUDE_DIR)/host-build.mk
  54. define Package/libintl-full
  55. SECTION:=libs
  56. CATEGORY:=Libraries
  57. TITLE:=GNU Internationalization library
  58. URL:=http://www.gnu.org/software/gettext/
  59. ABI_VERSION:=8
  60. endef
  61. export GNULIB_SRCDIR:=$(HOST_GNULIB_SRCDIR)
  62. TARGET_CFLAGS += $(FPIC)
  63. TARGET_CFLAGS += -std=gnu23
  64. ifneq ($(HOST_OS),Linux)
  65. TARGET_CFLAGS += -I$(STAGING_DIR_HOSTPKG)/include
  66. endif
  67. CONFIGURE_ARGS += \
  68. --enable-shared \
  69. --enable-static \
  70. --disable-libasprintf \
  71. --disable-rpath \
  72. --enable-nls \
  73. --disable-java \
  74. --disable-openmp \
  75. --disable-curses \
  76. --with-included-gettext \
  77. --without-libintl-prefix \
  78. --without-libexpat-prefix \
  79. --with-libunistring-prefix=$(STAGING_DIR)/usr \
  80. --with-libxml2-prefix=$(STAGING_DIR) \
  81. --without-emacs
  82. HOST_CONFIGURE_ARGS += \
  83. --disable-shared \
  84. --enable-static \
  85. --disable-libasprintf \
  86. --disable-rpath \
  87. --disable-java \
  88. --disable-openmp \
  89. --without-emacs \
  90. --with-libiconv-prefix=$(STAGING_DIR_HOSTPKG) \
  91. --with-libunistring-prefix=$(STAGING_DIR_HOSTPKG) \
  92. --with-libxml2-prefix=$(STAGING_DIR_HOSTPKG)
  93. HOST_CONFIGURE_VARS += \
  94. EMACS="no" \
  95. HOST_CFLAGS += $(HOST_FPIC)
  96. define Host/Bootstrap
  97. ( \
  98. cd $(HOST_BUILD_DIR); \
  99. $(AM_TOOL_PATHS) \
  100. ./autogen.sh \
  101. )
  102. endef
  103. define Host/Prepare
  104. $(call Host/Prepare/Default)
  105. $(if $(QUILT),,$(call Host/Bootstrap))
  106. endef
  107. define Host/Configure
  108. $(if $(QUILT),$(call Host/Bootstrap))
  109. $(call Host/Configure/Default)
  110. endef
  111. define Host/Compile
  112. $(foreach makefile,$(PKG_MAKEFILES_FAKE),printf '%s\n%s\n' 'all:' 'install:' > $(HOST_BUILD_DIR)/$(makefile); )
  113. $(call Host/Compile/Default,SUBDIRS='$(PKG_SUBDIRS)')
  114. endef
  115. define Build/Bootstrap
  116. ( \
  117. cd $(PKG_BUILD_DIR); \
  118. $(AM_TOOL_PATHS) \
  119. ./autogen.sh \
  120. )
  121. endef
  122. define Build/Prepare
  123. $(call Build/Prepare/Default)
  124. $(if $(QUILT),,$(call Build/Bootstrap))
  125. endef
  126. define Build/Configure
  127. $(if $(QUILT),$(call Build/Bootstrap))
  128. $(call Build/Configure/Default)
  129. endef
  130. define Build/Compile
  131. $(foreach makefile,$(PKG_MAKEFILES_FAKE),printf '%s\n%s\n' 'all:' 'install:' > $(PKG_BUILD_DIR)/$(makefile); )
  132. $(call Build/Compile/Default,SUBDIRS='$(PKG_SUBDIRS)')
  133. endef
  134. define Build/InstallDev
  135. $(INSTALL_DIR) $(1)/usr/lib/libintl-full/include
  136. $(CP) $(PKG_INSTALL_DIR)/usr/include/libintl.h $(1)/usr/lib/libintl-full/include/
  137. $(INSTALL_DIR) $(1)/usr/lib/libintl-full/lib
  138. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libintl.{a,so*} $(1)/usr/lib/libintl-full/lib/
  139. $(INSTALL_DIR) $(1)/usr/share/gettext/m4
  140. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/gettext/m4/* $(1)/usr/share/gettext/m4/
  141. $(SED) '/read dummy/d' $(STAGING_DIR_HOSTPKG)/bin/gettextize
  142. endef
  143. define Host/Install
  144. $(call Host/Compile/Default,install SUBDIRS='$(PKG_SUBDIRS)')
  145. $(LN) msgfmt $(STAGING_DIR_HOSTPKG)/bin/gmsgfmt
  146. endef
  147. define Build/Install
  148. $(call Build/Install/Default,install SUBDIRS='$(PKG_SUBDIRS)')
  149. endef
  150. define Package/libintl-full/install
  151. $(INSTALL_DIR) $(1)/usr/lib
  152. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libintl.so.* $(1)/usr/lib/
  153. endef
  154. $(eval $(call HostBuild))
  155. $(eval $(call BuildPackage,libintl-full))