[source] toolchain: include yasm in x86 toolchain

LEDE Commits lede-commits at lists.infradead.org
Fri Aug 19 08:54:39 PDT 2016


dangole pushed a commit to source.git, branch master:
https://git.lede-project.org/?p=source.git;a=commitdiff;h=c08651226f5645204f91f79d247801033f6015d1

commit c08651226f5645204f91f79d247801033f6015d1
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Fri Aug 19 17:49:09 2016 +0200

    toolchain: include yasm in x86 toolchain
    
    Some libraries require yasm to build with in-line assembly for x86
    targets.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 toolchain/Config.in     |  8 +++++++
 toolchain/Makefile      |  2 +-
 toolchain/yasm/Makefile | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+), 1 deletion(-)

diff --git a/toolchain/Config.in b/toolchain/Config.in
index a6aa84d..7cc51a1 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 7d2fddd..a656a86 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 0000000..bf0b8c5
--- /dev/null
+++ b/toolchain/yasm/Makefile
@@ -0,0 +1,63 @@
+#
+# Copyright (C) 2016 Daniel Golle <daniel at makrotopia.org>
+#
+# 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))



More information about the lede-commits mailing list