forked from mirror/openwrt
Use the clean recipe during build, so that files already generated by the bootstrapping within the release are removed before the bootstrap script is run again. Automake with modified rules must be ran in order to generate a Makefile that does not delete itself. Override an automake variable "am__CONFIG_DISTCLEAN_FILES" in order to prevent removing config.status and other configure files so that configure stage does not need to be ran twice. Redefine MAINTAINERCLEANFILES with Make functions to avoid deleting the targets of gettext and gperf rules. In order to prevent an inconsistent state of `install` since this utility must always be available as a prerequisite, do not allow it to be removed. Instead of preventing the removal of the config.h header, the Makefile supports regenerating it quickly. Tested-by: Georgi Valkov <gvalkov@gmail.com> # macOS Signed-off-by: Michael Pratt <mcpratt@pm.me> Link: https://github.com/openwrt/openwrt/pull/16522 Signed-off-by: Robert Marko <robimarko@gmail.com>
80 lines
2.1 KiB
Makefile
80 lines
2.1 KiB
Makefile
#
|
|
# Copyright (C) 2015 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=coreutils
|
|
PKG_CPE_ID:=cpe:/a:gnu:coreutils
|
|
PKG_VERSION:=9.6
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=@GNU/coreutils
|
|
PKG_HASH:=2bec616375002c92c1ed5ead32a092b174fe44c14bc736d32e5961053b821d84
|
|
|
|
HOST_BUILD_PARALLEL := 1
|
|
|
|
PKG_PROGRAMS:=date readlink touch ln chown ginstall
|
|
|
|
include $(INCLUDE_DIR)/host-build.mk
|
|
|
|
export GNULIB_SRCDIR:=$(HOST_GNULIB_SRCDIR)
|
|
|
|
HOST_GNULIB_SKIP := \
|
|
lib/iconv_open-aix.gperf \
|
|
lib/iconv_open-hpux.gperf \
|
|
lib/iconv_open-irix.gperf \
|
|
lib/iconv_open-osf.gperf \
|
|
lib/iconv_open-solaris.gperf \
|
|
lib/iconv_open-zos.gperf
|
|
|
|
HOST_CONFIGURE_ARGS += \
|
|
--enable-install-program=$(subst $(space),$(comma),$(strip $(PKG_PROGRAMS)))
|
|
|
|
HOST_MAKE_FLAGS += \
|
|
$(AM_TOOL_PATHS) AUTOPOINT="$(TRUE)" GTKDOCIZE="$(TRUE)" \
|
|
am__CONFIG_DISTCLEAN_FILES= \
|
|
MAINTAINERCLEANFILES='$$$$(filter-out lib/iconv_open% %.texi,$$$$(BUILT_SOURCES))' \
|
|
PROGRAMS="$(patsubst %,src/%,$(PKG_PROGRAMS))" \
|
|
LIBRARIES= MANS= SUBDIRS=.
|
|
|
|
define Host/Bootstrap
|
|
( \
|
|
cd $(HOST_BUILD_DIR); \
|
|
$(AM_TOOL_PATHS) AUTOPOINT="$(TRUE)" GTKDOCIZE="$(TRUE)" \
|
|
./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))
|
|
$(foreach src,$(HOST_GNULIB_SKIP),mv -f $(HOST_BUILD_DIR)/$(src)~ $(HOST_BUILD_DIR)/$(src) || true; )
|
|
$(call Host/Configure/Default)
|
|
$(call Host/Uninstall)
|
|
$(call Host/Compile/Default,lib/config.h)
|
|
endef
|
|
|
|
define Host/Install
|
|
$(INSTALL_DIR) $(1)/bin
|
|
$(INSTALL_BIN) $(patsubst %,$(HOST_BUILD_DIR)/src/%,$(PKG_PROGRAMS)) $(1)/bin/
|
|
ln -sf ginstall $(1)/bin/install
|
|
endef
|
|
|
|
define Host/Uninstall
|
|
-$(call Host/Compile/Default,uninstall)
|
|
-$(call Host/Compile/Default,maintainer-clean) # Clean bootstrap files from the release
|
|
endef
|
|
|
|
$(eval $(call HostBuild))
|