gettext-full: override SUBDIRS variable with Makefile

Instead of editing the SUBDIRS variable with a patch,
it can be overriden at the end of the command line when invoking Make.

This tool has a series of recursive Makefiles in each subdirectory,
therefore SUBDIRS is set to a pattern of Make functions
so that the result is variable depending on the current subdirectory
that Make is being invoked in.

Some of the subdirectories don't have a Makefile and are just storing files
for another subdirectory Makefile target,
therefore we have to place a fake Makefile that does nothing.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
This commit is contained in:
Michael Pratt 2023-04-15 19:54:43 -04:00 committed by Christian Marangi
parent 4437434b8a
commit ca8577f930
No known key found for this signature in database
GPG Key ID: AC001D09ADBFEAD7
2 changed files with 44 additions and 23 deletions

View File

@ -27,6 +27,35 @@ PKG_BUILD_DEPENDS:=gettext-full/host
PKG_BUILD_PARALLEL:=0
HOST_BUILD_PARALLEL:=0
PKG_SUBDIRS:= \
$$$$(foreach dir, \
intl \
intl-csharp \
intl-java \
its \
gnulib-lib \
gnulib-local \
lib \
$$$$(SUBDIR_libasprintf) \
libgettextpo \
libgrep \
libtextstyle \
m4 \
misc \
po \
projects \
src \
styles \
gettext-runtime \
gettext-tools \
,$$$$(wildcard $$$$(dir)) )
PKG_MAKEFILES_FAKE:= \
gnulib-local/m4/Makefile \
libtextstyle/gnulib-local/Makefile \
libtextstyle/m4/Makefile \
m4/Makefile
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
@ -75,6 +104,16 @@ HOST_CONFIGURE_VARS += \
HOST_CFLAGS += $(HOST_FPIC)
define Host/Compile
$(foreach makefile,$(PKG_MAKEFILES_FAKE),printf '%s\n%s\n' 'all:' 'install:' > $(HOST_BUILD_DIR)/$(makefile); )
$(call Host/Compile/Default,SUBDIRS='$(PKG_SUBDIRS)')
endef
define Build/Compile
$(foreach makefile,$(PKG_MAKEFILES_FAKE),printf '%s\n%s\n' 'all:' 'install:' > $(PKG_BUILD_DIR)/$(makefile); )
$(call Build/Compile/Default,SUBDIRS='$(PKG_SUBDIRS)')
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib/libintl-full/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/libintl.h $(1)/usr/lib/libintl-full/include/
@ -89,10 +128,14 @@ define Build/InstallDev
endef
define Host/Install
$(call Host/Install/Default)
$(call Host/Compile/Default,install SUBDIRS='$(PKG_SUBDIRS)')
$(LN) msgfmt $(STAGING_DIR_HOSTPKG)/bin/gmsgfmt
endef
define Build/Install
$(call Build/Install/Default,install SUBDIRS='$(PKG_SUBDIRS)')
endef
define Package/libintl-full/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libintl.so.* $(1)/usr/lib/

View File

@ -1,22 +0,0 @@
--- a/gettext-runtime/Makefile.am
+++ b/gettext-runtime/Makefile.am
@@ -27,7 +27,7 @@ SUBDIR_libasprintf = libasprintf
else
SUBDIR_libasprintf =
endif
-SUBDIRS = doc intl intl-java intl-csharp gnulib-lib $(SUBDIR_libasprintf) src po man m4 tests
+SUBDIRS = intl intl-java intl-csharp gnulib-lib $(SUBDIR_libasprintf) src po m4
EXTRA_DIST = BUGS
--- a/gettext-tools/Makefile.am
+++ b/gettext-tools/Makefile.am
@@ -19,7 +19,7 @@
AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies
ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
-SUBDIRS = intl gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests examples doc
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po its projects styles misc m4
EXTRA_DIST = misc/DISCLAIM
MOSTLYCLEANFILES = core *.stackdump