From c5d214d6b24cc87c11047f2db2fea5cb6d8a9b54 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Sun, 19 Oct 2008 14:38:15 +0200 Subject: [PATCH] add nasm --- package/Config.in | 1 + package/nasm/Config.in | 8 ++ .../nasm/nasm-2.04-building-out-of-tree.01.patch | 42 +++++++ package/nasm/nasm.mk | 126 +++++++++++++++++++++ package/nasm/nasmcheck.sh | 9 ++ 5 files changed, 186 insertions(+) create mode 100644 package/nasm/Config.in create mode 100644 package/nasm/nasm-2.04-building-out-of-tree.01.patch create mode 100644 package/nasm/nasm.mk create mode 100755 package/nasm/nasmcheck.sh diff --git a/package/Config.in b/package/Config.in index cff4f1c..6f9488d 100644 --- a/package/Config.in +++ b/package/Config.in @@ -55,6 +55,7 @@ source "package/mpfr/Config.in" source "package/libtool/Config.in" source "package/m4/Config.in" source "package/mpatrol/Config.in" +source "package/nasm/Config.in" source "package/pkgconfig/Config.in" source "package/readline/Config.in" source "package/valgrind/Config.in" diff --git a/package/nasm/Config.in b/package/nasm/Config.in new file mode 100644 index 0000000..f880f2b --- /dev/null +++ b/package/nasm/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_NASM + bool "nasm" + default n + help + NASM - the famous Netwide Assembler. + + http://www.nasm.us/ + diff --git a/package/nasm/nasm-2.04-building-out-of-tree.01.patch b/package/nasm/nasm-2.04-building-out-of-tree.01.patch new file mode 100644 index 0000000..22e8de7 --- /dev/null +++ b/package/nasm/nasm-2.04-building-out-of-tree.01.patch @@ -0,0 +1,42 @@ +diff -rdup nasm-2.04.oorig/Makefile.in nasm-2.04/Makefile.in +--- nasm-2.04.oorig/Makefile.in 2008-09-26 02:10:18.000000000 +0200 ++++ nasm-2.04/Makefile.in 2008-10-18 18:42:44.000000000 +0200 +@@ -8,6 +8,8 @@ + + top_srcdir = @top_srcdir@ + srcdir = @srcdir@ ++top_builddir = @top_builddir@ ++builddir = @builddir@ + VPATH = @srcdir@ + prefix = @prefix@ + exec_prefix = @exec_prefix@ +@@ -18,7 +20,7 @@ datarootdir = @datarootdir@ + CC = @CC@ + CFLAGS = @CFLAGS@ + BUILD_CFLAGS = $(CFLAGS) @DEFS@ +-INTERNAL_CFLAGS = -I$(srcdir) -I. ++INTERNAL_CFLAGS = -I$(srcdir) -I$(top_builddir) + ALL_CFLAGS = $(BUILD_CFLAGS) $(INTERNAL_CFLAGS) + LDFLAGS = @LDFLAGS@ + LIBS = @LIBS@ +diff -rdup nasm-2.04.oorig/rdoff/Makefile.in nasm-2.04/rdoff/Makefile.in +--- nasm-2.04.oorig/rdoff/Makefile.in 2008-09-26 02:10:08.000000000 +0200 ++++ nasm-2.04/rdoff/Makefile.in 2008-10-18 18:43:17.000000000 +0200 +@@ -9,6 +9,8 @@ + + top_srcdir = @top_srcdir@ + srcdir = @srcdir@ ++top_builddir = @top_builddir@ ++builddir = @builddir@ + VPATH = @srcdir@ + prefix = @prefix@ + exec_prefix = @exec_prefix@ +@@ -19,7 +21,7 @@ datarootdir = @datarootdir@ + CC = @CC@ + CFLAGS = @CFLAGS@ + BUILD_CFLAGS = $(CFLAGS) @DEFS@ +-INTERNAL_CFLAGS = -I$(srcdir) -I$(top_srcdir) ++INTERNAL_CFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(builddir) -I$(top_builddir) + ALL_CFLAGS = $(BUILD_CFLAGS) $(INTERNAL_CFLAGS) + LDFLAGS = @LDFLAGS@ + diff --git a/package/nasm/nasm.mk b/package/nasm/nasm.mk new file mode 100644 index 0000000..90be4d9 --- /dev/null +++ b/package/nasm/nasm.mk @@ -0,0 +1,126 @@ +############################################################# +# +# nasm +# +############################################################# +NASM_VERSION:=2.04 +NASM_SOURCE:=nasm-$(NASM_VERSION).tar.bz2 +NASM_SITE:=http://www.nasm.us/pub/nasm/releasebuilds/$(NASM_VERSION)/ +NASM_SRCDIR:=$(TOOL_BUILD_DIR)/nasm-$(NASM_VERSION) +NASM_DIR:=$(BUILD_DIR)/nasm-$(NASM_VERSION) +NASM_HOSTDIR:=$(TOOL_BUILD_DIR)/nasm-$(NASM_VERSION)-host +NASM_CAT:=$(BZCAT) +NASM_BINARY:=nasm +NASM_BINARIES:=ldrdf rdf2bin rdf2com rdf2bin rdf2ihx rdfdump rdflib rdx +NASM_TARGET_BINARY:=usr/bin/nasm + +$(DL_DIR)/$(NASM_SOURCE): + $(WGET) -P $(DL_DIR) $(NASM_SITE)/$(NASM_SOURCE) + +$(NASM_SRCDIR)/.unpacked: $(DL_DIR)/$(NASM_SOURCE) + $(NASM_CAT) $(DL_DIR)/$(NASM_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) - + toolchain/patch-kernel.sh $(NASM_SRCDIR) package/nasm/ nasm-$(NASM_VERSION)\*.patch + $(CONFIG_UPDATE) $(NASM_SRCDIR)/ + touch $@ + +$(NASM_DIR)/.configured: THIS_SRCDIR=$(NASM_SRCDIR) +$(NASM_DIR)/.configured: $(NASM_SRCDIR)/.unpacked + mkdir -p $(@D) + (cd $(@D); rm -rf config.cache; \ + $(AUTO_CONFIGURE_TARGET) \ + --prefix=/usr \ + ) + touch $@ + +$(NASM_DIR)/$(NASM_BINARY): $(NASM_DIR)/.configured + $(MAKE) -C $(NASM_DIR)/ + touch -c $@ + +$(TARGET_DIR)/$(NASM_TARGET_BINARY): $(NASM_DIR)/$(NASM_BINARY) + # Bloat: rdoff/* should use a common library! + $(MAKE) INSTALLROOT=$(TARGET_DIR) -C $(NASM_DIR) install install_rdf +ifneq ($(BR2_HAVE_INFOPAGES),y) + rm -rf $(TARGET_DIR)/usr/share/info +endif +ifneq ($(BR2_HAVE_MANPAGES),y) + rm -rf $(TARGET_DIR)/usr/share/man +endif + rm -rf $(TARGET_DIR)/share/locale + rm -rf $(TARGET_DIR)/usr/share/doc + $(STRIPCMD) $(STRIP_STRIP_ALL) $@ + +nasm: $(TARGET_DIR)/$(NASM_TARGET_BINARY) + +nasm-source: $(DL_DIR)/$(NASM_SOURCE) + +nasm-clean: + -$(MAKE) -C $(NASM_DIR) clean + rm -rf $(TARGET_DIR)/$(NASM_TARGET_BINARY) \ + $(addprefix $(TARGET_DIR)/$(dir $(NASM_TARGET_BINARY)), \ + ndisasm $(NASM_BINARIES)) + +nasm-dirclean: + rm -rf $(NASM_DIR) + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(BR2_PACKAGE_NASM),y) +TARGETS+=nasm +endif + +############################################################# +# +# nasm for the host +# +############################################################# +HOST_NASM_BINARY=$(shell $(CONFIG_SHELL) package/nasm/nasmcheck.sh) +HOST_NASM_IF_ANY=$(shell $(CONFIG_SHELL) toolchain/dependencies/check-host-nasm.sh) + + +$(NASM_HOSTDIR)/.configured: THIS_SRCDIR=$(NASM_SRCDIR) +$(NASM_HOSTDIR)/.configured: $(NASM_SRCDIR)/.unpacked + mkdir -p $(@D) + (cd $(@D); rm -rf config.cache; \ + $(HOST_CONFIGURE_OPTS) \ + $(THIS_SRCDIR)/configure \ + --prefix=/usr \ + ) + touch $@ + +$(NASM_HOSTDIR)/$(NASM_BINARY): $(NASM_HOSTDIR)/.configured + $(MAKE) -C $(NASM_HOSTDIR)/ + touch -c $@ + +build-nasm-host-binary: $(NASM_HOSTDIR)/$(NASM_BINARY) + $(INSTALL) -D -m0755 $(NASM_HOSTDIR)/$(NASM_BINARY) $(TOOL_BUILD_DIR)/bin/$(NASM_BINARY) + $(INSTALL) -D -m0755 $(NASM_HOSTDIR)/ndisasm $(TOOL_BUILD_DIR)/bin/ndisasm + $(foreach f,$(NASM_BINARIES),\ + $(INSTALL) -D -m0755 $(NASM_HOSTDIR)/rdoff/$(f) $(TOOL_BUILD_DIR)/bin/$(f);) + +use-nasm-host-binary: + $(Q)if [ ! -e "$(TOOL_BUILD_DIR)/bin/$(NASM_BINARY)" ]; then \ + rm -f $(TOOL_BUILD_DIR)/bin/$(NASM_BINARY); \ + mkdir -p $(TOOL_BUILD_DIR)/bin; \ + ln -sf "$(HOST_NASM_IF_ANY)" \ + $(TOOL_BUILD_DIR)/bin/$(NASM_BINARY); \ + fi + +host-nasm: $(HOST_NASM_BINARY) + +host-nasm-source: $(DL_DIR)/$(NASM_SOURCE) +ifeq ($(HOST_NASM_BINARY),build-nasm-host-binary) +host-nasm-clean: + -$(MAKE) -C $(NASM_HOSTDIR) clean + rm -rf $(addprefix $(TOOL_BUILD_DIR)/bin/,$(NASM_BINARY) ndisasm\ + $(NASM_BINARIES)) + +host-nasm-dirclean: + rm -rf $(NASM_HOSTDIR) $(NASM_SRCDIR) +else +host-nasm-clean host-nasm-dirclean: +endif +.PHONY: host-nasm use-nasm-host-binary build-nasm-host-binary + diff --git a/package/nasm/nasmcheck.sh b/package/nasm/nasmcheck.sh new file mode 100755 index 0000000..2ad71c7 --- /dev/null +++ b/package/nasm/nasmcheck.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +NASM=$(toolchain/dependencies/check-host-nasm.sh) + +if [ -z "$NASM" ] ; then + echo build-nasm-host-binary +else + echo use-nasm-host-binary +fi -- 2.11.4.GIT