summaryrefslogtreecommitdiffstats
path: root/toolchain
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2016-08-19 17:49:09 +0200
committerDaniel Golle <daniel@makrotopia.org>2016-08-19 17:53:50 +0200
commitc08651226f5645204f91f79d247801033f6015d1 (patch)
tree865b9e6d09a480afc2c209f3d973a2e636b3778d /toolchain
parentf71f7f0df15a78a5793b8f8cdc6abff7563245e3 (diff)
downloadmaster-31e0f0ae-c08651226f5645204f91f79d247801033f6015d1.tar.gz
master-31e0f0ae-c08651226f5645204f91f79d247801033f6015d1.tar.bz2
master-31e0f0ae-c08651226f5645204f91f79d247801033f6015d1.zip
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@makrotopia.org>
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/Config.in8
-rw-r--r--toolchain/Makefile2
-rw-r--r--toolchain/yasm/Makefile63
3 files changed, 72 insertions, 1 deletions
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 <daniel@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))