# Copyright (C) 2022 Sergey V. Lobanov <sergey@lobanov.in>
#
# SPDX-License-Identifier: GPL-2.0-or-later

include $(TOPDIR)/rules.mk

PKG_NAME:=fakeuname
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0-or-later

PKG_MAINTAINER:=Sergey V. Lobanov <sergey@lobanov.in>

PKG_HOST_ONLY:=1

define Package/fakeuname
  SECTION:=utils
  CATEGORY:=Utilities
  TITLE:=Fake uname host tool for cross-compile purposes
  BUILDONLY:=1
endef

define Package/fakeuname/description
 Fakeuname is a host tool for cross-compile cross-platform builds
 if configure or/and build scripts check uname output for target 
 build and use invalid build flags. This tool should not be used 
 in normal case if configure/build scripts allow to redefine 
 required values instead of using uname output
endef

include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk

define Host/Configure
endef

define Host/Compile
	{ \
	    cat src/header.py.inc; \
	    echo machine = \"$(ARCH)\"; \
	    echo kernel_release = \"$(LINUX_UNAME_VERSION)\"; \
	    echo kernel_version = \"#0 $(shell date --date=@$(SOURCE_DATE_EPOCH))\"; \
	    cat src/footer.py.inc; \
	} > $(HOST_BUILD_DIR)/$(PKG_NAME)
endef

define Host/Install
	$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/lib/$(PKG_NAME)
	$(INSTALL_BIN) $(HOST_BUILD_DIR)/$(PKG_NAME) $(STAGING_DIR_HOSTPKG)/lib/$(PKG_NAME)/uname
endef

define Host/Clean
	rm -rf "$(STAGING_DIR_HOSTPKG)/lib/$(PKG_NAME)"
endef

$(eval $(call HostBuild))
$(eval $(call BuildPackage,fakeuname))
