Makefile 4.3 KB

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