iucode-tool/host is used by intel-microcode to manipulate with microcode.bin file. iucode-tool requires cpuid.h at compile time for autodection feature, but non-x86 build hosts does not have this header file (e.g. ubuntu 20.04 aarch64) or this header generates compile time error (#error macro) (e.g. macos arm64). This patch provides compat cpuid.h to build iucode-tool/host on non-x86 linux hosts and macos. CPU autodectection is not required for intel-microcode package build so compat cpuid.h is ok for OpenWrt purposes. glibc and argp lib are not present in macos so iucode-tool/host build fails. This patch adds argp-standalone/host as build dependency if host os is macos. Generated ucode (intel-microcode package) is exactly the same on Linux x86_64 (Ubuntu 20.04), Linux aarch64 (Ubuntu 20.04) and Darwin arm64 (MacOS 11.6) build hosts. Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#
 | 
						|
# Copyright (C) 2018 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:=iucode-tool
 | 
						|
PKG_VERSION:=2.3.1
 | 
						|
PKG_RELEASE:=2
 | 
						|
 | 
						|
PKG_SOURCE:=iucode-tool_$(PKG_VERSION).tar.xz
 | 
						|
PKG_SOURCE_URL:=https://gitlab.com/iucode-tool/releases/raw/latest
 | 
						|
PKG_HASH:=12b88efa4d0d95af08db05a50b3dcb217c0eb2bfc67b483779e33d498ddb2f95
 | 
						|
 | 
						|
PKG_BUILD_DEPENDS:=USE_UCLIBC:argp-standalone USE_MUSL:argp-standalone
 | 
						|
HOST_BUILD_DEPENDS:=HOST_OS_MACOS:argp-standalone/host
 | 
						|
 | 
						|
PKG_MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
 | 
						|
PKG_LICENSE:=GPL-2.0
 | 
						|
 | 
						|
PKG_FLAGS:=nonshared
 | 
						|
 | 
						|
PKG_INSTALL:=1
 | 
						|
 | 
						|
include $(INCLUDE_DIR)/package.mk
 | 
						|
include $(INCLUDE_DIR)/host-build.mk
 | 
						|
 | 
						|
define Package/iucode-tool
 | 
						|
  SECTION:=utils
 | 
						|
  CATEGORY:=Base system
 | 
						|
  URL:=$(PKG_SOURCE_URL)
 | 
						|
  DEPENDS:=@TARGET_x86
 | 
						|
  TITLE:=Intel microcode loader
 | 
						|
endef
 | 
						|
 | 
						|
define Package/iucode-tool/install
 | 
						|
	$(INSTALL_DIR) $(1)/lib/firmware
 | 
						|
	$(INSTALL_DIR) $(1)/usr/bin
 | 
						|
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/iucode_tool $(1)/usr/bin/
 | 
						|
endef
 | 
						|
 | 
						|
# List of build hosts with working cpuid.h
 | 
						|
IUT_NATIVE_HOST_OS_ARCH := \
 | 
						|
	linux/x86_64 linux/amd64 linux/i386 linux/i686
 | 
						|
 | 
						|
IUT_HOST_OS_ARCH := $(call tolower,$(HOST_OS))/$(HOST_ARCH)
 | 
						|
 | 
						|
# Use cpuid.h compat header if build host does not have working cpuid.h
 | 
						|
ifeq ($(filter $(IUT_HOST_OS_ARCH),$(IUT_NATIVE_HOST_OS_ARCH)),)
 | 
						|
HOST_CFLAGS += \
 | 
						|
	-I$(HOST_BUILD_DIR)/cpuid-compat
 | 
						|
endif
 | 
						|
 | 
						|
define Host/Install
 | 
						|
	$(INSTALL_BIN) $(HOST_BUILD_DIR)/iucode_tool $(STAGING_DIR_HOST)/bin/iucode_tool
 | 
						|
endef
 | 
						|
 | 
						|
$(eval $(call HostBuild))
 | 
						|
$(eval $(call BuildPackage,iucode-tool))
 |