From c08651226f5645204f91f79d247801033f6015d1 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Fri, 19 Aug 2016 17:49:09 +0200 Subject: [PATCH] toolchain: include yasm in x86 toolchain Some libraries require yasm to build with in-line assembly for x86 targets. Signed-off-by: Daniel Golle --- toolchain/Config.in | 8 ++++++ toolchain/Makefile | 2 +- toolchain/yasm/Makefile | 63 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 toolchain/yasm/Makefile diff --git a/toolchain/Config.in b/toolchain/Config.in index a6aa84db75..7cc51a1bb1 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -206,6 +206,14 @@ comment "Compiler" source "toolchain/gcc/Config.in" +config YASM + bool + depends on ( i386 || x86_64 ) + prompt "Build yasm" if TOOLCHAINOPTS + default y + help + Enable if you want to build yasm + comment "C Library" depends on TOOLCHAINOPTS diff --git a/toolchain/Makefile b/toolchain/Makefile index 7d2fddda31..a656a86b0d 100644 --- a/toolchain/Makefile +++ b/toolchain/Makefile @@ -29,7 +29,7 @@ curdir:=toolchain # subdirectories to descend into -$(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_INSIGHT),insight) $(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/initial gcc/final $(LIBC) fortify-headers) +$(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_INSIGHT),insight) $(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/initial gcc/final $(LIBC) fortify-headers) $(if $(CONFIG_YASM),yasm) ifdef CONFIG_USE_UCLIBC $(curdir)/builddirs += $(LIBC)/utils endif diff --git a/toolchain/yasm/Makefile b/toolchain/yasm/Makefile new file mode 100644 index 0000000000..bf0b8c5c48 --- /dev/null +++ b/toolchain/yasm/Makefile @@ -0,0 +1,63 @@ +# +# Copyright (C) 2016 Daniel Golle +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk + +PKG_NAME:=yasm +PKG_VERSION:=1.3.0 + +PKG_SOURCE_URL:=http://www.tortall.net/projects/yasm/releases/ +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz + +PKG_MD5SUM:=fc9e586751ff789b34b1f21d572d96af + +HOST_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/toolchain-build.mk + +YASM_CONFIGURE:= \ + ./configure \ + --prefix=$(TOOLCHAIN_DIR) \ + --build=$(GNU_HOST_NAME) \ + --host=$(GNU_HOST_NAME) \ + --target=$(REAL_GNU_TARGET_NAME) \ + --with-sysroot=$(TOOLCHAIN_DIR) \ + --disable-multilib \ + --disable-werror \ + --disable-nls \ + --disable-sim \ + --disable-gdb \ + $(SOFT_FLOAT_CONFIG_OPTION) \ + +define Host/Prepare + $(call Host/Prepare/Default) + ln -snf $(notdir $(HOST_BUILD_DIR)) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) + $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(HOST_BUILD_DIR)/ +endef + +define Host/Configure + (cd $(HOST_BUILD_DIR); \ + $(YASM_CONFIGURE) \ + ); +endef + +define Host/Compile + +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) all +endef + +define Host/Install + $(MAKE) -C $(HOST_BUILD_DIR) \ + prefix=$(TOOLCHAIN_DIR) \ + install +endef + +define Host/Clean + rm -rf \ + $(HOST_BUILD_DIR) \ + $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) +endef + +$(eval $(call HostBuild)) -- 2.30.2