mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-26 08:32:38 +00:00
tools/coreutils: bootstrap to local gnulib source
Using the local gnulib source during bootstrap allows for fine-grained control over the macros and source files for use with coreutils but part of gnulib instead of coreutils, without having to wait for a release or deal with gnulib as a git submodule. In this case, the execution of autotools must be skipped by force. Autoconf and Automake during bootstrap on coreutils only works right when using directly checked-out source. There is a symbol in gnulib, @GNULIB_TIME@ that is not yet defined in coreutils source, so we use the backup of lib/time.in.h instead of the one provided by gnulib source. Signed-off-by: Michael Pratt <mcpratt@pm.me>
This commit is contained in:
parent
87e902fcdc
commit
09f8f21ae3
@ -127,6 +127,7 @@ $(curdir)/squashfs4/compile := $(curdir)/xz/compile $(curdir)/zlib/compile
|
|||||||
$(curdir)/zstd/compile := $(curdir)/meson/compile
|
$(curdir)/zstd/compile := $(curdir)/meson/compile
|
||||||
|
|
||||||
ifneq ($(HOST_OS),Linux)
|
ifneq ($(HOST_OS),Linux)
|
||||||
|
$(curdir)/coreutils/compile += $(curdir)/automake/compile $(curdir)/bison/compile $(curdir)/gnulib/compile
|
||||||
$(curdir)/squashfs4/compile += $(curdir)/coreutils/compile
|
$(curdir)/squashfs4/compile += $(curdir)/coreutils/compile
|
||||||
tools-y += coreutils
|
tools-y += coreutils
|
||||||
endif
|
endif
|
||||||
|
@ -20,15 +20,42 @@ BUILD_PROGRAMS = date readlink touch ln chown ginstall
|
|||||||
|
|
||||||
include $(INCLUDE_DIR)/host-build.mk
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
|
|
||||||
|
export GNULIB_SRCDIR:=$(HOST_GNULIB_SRCDIR)
|
||||||
|
|
||||||
BUILD_BINS = $(patsubst %,src/%,$(BUILD_PROGRAMS))
|
BUILD_BINS = $(patsubst %,src/%,$(BUILD_PROGRAMS))
|
||||||
|
|
||||||
HOST_CONFIGURE_ARGS += \
|
HOST_CONFIGURE_ARGS += \
|
||||||
--enable-install-program=$(subst $(space),$(comma),$(strip $(BUILD_PROGRAMS)))
|
--enable-install-program=$(subst $(space),$(comma),$(strip $(BUILD_PROGRAMS)))
|
||||||
|
|
||||||
HOST_MAKE_FLAGS += \
|
HOST_MAKE_FLAGS += \
|
||||||
|
$(AM_TOOL_PATHS_FAKE) \
|
||||||
PROGRAMS="$(BUILD_BINS)" \
|
PROGRAMS="$(BUILD_BINS)" \
|
||||||
LIBRARIES= MANS= SUBDIRS=.
|
LIBRARIES= MANS= SUBDIRS=.
|
||||||
|
|
||||||
|
define Host/Bootstrap
|
||||||
|
( \
|
||||||
|
cd $(HOST_BUILD_DIR); \
|
||||||
|
$(AM_TOOL_PATHS_FAKE) \
|
||||||
|
./bootstrap \
|
||||||
|
--bootstrap-sync \
|
||||||
|
--force \
|
||||||
|
--no-git \
|
||||||
|
--skip-po \
|
||||||
|
--gnulib-srcdir=$(GNULIB_SRCDIR) \
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Host/Prepare
|
||||||
|
$(call Host/Prepare/Default)
|
||||||
|
$(if $(QUILT),,$(call Host/Bootstrap))
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Host/Configure
|
||||||
|
$(if $(QUILT),$(call Host/Bootstrap))
|
||||||
|
-$(CP) $(HOST_BUILD_DIR)/lib/time.in.h~ $(HOST_BUILD_DIR)/lib/time.in.h # @GNULIB_TIME@ not defined
|
||||||
|
$(call Host/Configure/Default)
|
||||||
|
endef
|
||||||
|
|
||||||
define Host/Install
|
define Host/Install
|
||||||
$(INSTALL_DIR) $(1)/bin
|
$(INSTALL_DIR) $(1)/bin
|
||||||
$(INSTALL_BIN) $(patsubst %,$(HOST_BUILD_DIR)/%,$(BUILD_BINS)) $(1)/bin/
|
$(INSTALL_BIN) $(patsubst %,$(HOST_BUILD_DIR)/%,$(BUILD_BINS)) $(1)/bin/
|
||||||
|
45
tools/coreutils/patches/000-bootstrap.patch
Normal file
45
tools/coreutils/patches/000-bootstrap.patch
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
--- a/bootstrap
|
||||||
|
+++ b/bootstrap
|
||||||
|
@@ -278,7 +278,7 @@ check_exists() {
|
||||||
|
($2 --version </dev/null)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
- ($1 --version </dev/null) >/dev/null 2>&1
|
||||||
|
+ ($@ --version </dev/null) >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
test $? -lt 126
|
||||||
|
@@ -563,7 +563,7 @@ p
|
||||||
|
q'
|
||||||
|
|
||||||
|
get_version() {
|
||||||
|
- app=$1
|
||||||
|
+ app="$@"
|
||||||
|
|
||||||
|
$app --version >/dev/null 2>&1 || { $app --version; return 1; }
|
||||||
|
|
||||||
|
@@ -620,13 +620,13 @@ check_versions() {
|
||||||
|
if [ "$req_ver" = "-" ]; then
|
||||||
|
# Merely require app to exist; not all prereq apps are well-behaved
|
||||||
|
# so we have to rely on $? rather than get_version.
|
||||||
|
- if ! check_exists --verbose $app; then
|
||||||
|
+ if ! check_exists --verbose "$app"; then
|
||||||
|
warn_ "Error: '$app' not found"
|
||||||
|
ret=1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Require app to produce a new enough version string.
|
||||||
|
- inst_ver=$(get_version $app)
|
||||||
|
+ inst_ver=$(get_version "$app")
|
||||||
|
if [ ! "$inst_ver" ]; then
|
||||||
|
warn_ "Error: '$app' not found"
|
||||||
|
ret=1
|
||||||
|
@@ -923,7 +923,7 @@ version_controlled_file() {
|
||||||
|
# two just-pre-run programs.
|
||||||
|
|
||||||
|
# Import from gettext.
|
||||||
|
-with_gettext=yes
|
||||||
|
+with_gettext=no
|
||||||
|
grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
|
||||||
|
with_gettext=no
|
||||||
|
|
Loading…
Reference in New Issue
Block a user