summaryrefslogtreecommitdiffstats
path: root/rules/xchain-binutils.make
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2003-10-23 15:01:19 +0000
committerMarc Kleine-Budde <mkl@pengutronix.de>2003-10-23 15:01:19 +0000
commita8ad8f5b6429e82b659f2f11548f68bcb353b00a (patch)
tree2dbd95fd14619c038a721d6414ada33a256caeb9 /rules/xchain-binutils.make
parent091ef762efcd334a15a7785fbf82e2c393d665ec (diff)
downloadptxdist-a8ad8f5b6429e82b659f2f11548f68bcb353b00a.tar.gz
ptxdist-a8ad8f5b6429e82b659f2f11548f68bcb353b00a.tar.xz
* merge with testing-branch
git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunk@608 33e552b5-05e3-0310-8538-816dae2090ed
Diffstat (limited to 'rules/xchain-binutils.make')
-rw-r--r--rules/xchain-binutils.make131
1 files changed, 60 insertions, 71 deletions
diff --git a/rules/xchain-binutils.make b/rules/xchain-binutils.make
index e52774f30..9a2f6ed21 100644
--- a/rules/xchain-binutils.make
+++ b/rules/xchain-binutils.make
@@ -1,10 +1,10 @@
# -*-makefile-*-
-# $Id: xchain-binutils.make,v 1.8 2003/09/18 00:42:49 mkl Exp $
+# $Id: xchain-binutils.make,v 1.9 2003/10/23 15:01:19 mkl Exp $
#
-# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
+# Copyright (C) 2002, 2003 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
#
-# For further information about the PTXDIST project and license conditions
+# For further information about the PTXdist project and license conditions
# see the README file.
#
@@ -15,26 +15,10 @@ endif
#
# Paths and names
#
-XBINUTILS = binutils-2.13.2.1
-XBINUTILS_URL = ftp://ftp.gnu.org/pub/gnu/binutils/$(XBINUTILS).tar.gz
-XBINUTILS_SOURCE = $(SRCDIR)/$(XBINUTILS).tar.gz
-XBINUTILS_DIR = $(BUILDDIR)/xchain-$(XBINUTILS)
-ifdef PTXCONF_ARCH_NOMMU
-XBINUTILS = binutils-2.10
-XBINUTILS_URL = ftp://ftp.gnu.org/pub/gnu/binutils/$(XBINUTILS).tar.gz
-endif
-# ifdef PTXCONF_ARCH_MIPS
-# XBINUTILS = binutils-2.14.90.0.4
-# XBINUTILS_URL = ftp://ftp.de.kernel.org/pub/linux/devel/binutils/$(XBINUTILS).tar.gz
-# endif
-# ifdef PTXCONF_ARCH_PARISC
-# XBINUTILS = binutils-2.14.90.0.4
-# XBINUTILS_URL = ftp://ftp.de.kernel.org/pub/linux/devel/binutils/$(XBINUTILS).tar.gz
-# endif
-
-XBINUTILS_NOMMU_PATCH = binutils-2.10-full.patch
-XBINUTILS_NOMMU_PATCH_URL = http://www.uclinux.org/pub/uClinux/m68k-elf-tools/tools-20030314/$(XBINUTILS_NOMMU_PATCH)
-XBINUTILS_NOMMU_PATCH_SOURCE = $(SRCDIR)/$(XBINUTILS_NOMMU_PATCH)
+XCHAIN_BINUTILS_VERSION = $(BINUTILS_VERSION)
+XCHAIN_BINUTILS = $(BINUTILS)
+XCHAIN_BINUTILS_SOURCE = $(BINUTILS_SOURCE)
+XCHAIN_BINUTILS_DIR = $(XCHAIN_BUILDDIR)/$(XCHAIN_BINUTILS)
# ----------------------------------------------------------------------------
# Get
@@ -42,22 +26,18 @@ XBINUTILS_NOMMU_PATCH_SOURCE = $(SRCDIR)/$(XBINUTILS_NOMMU_PATCH)
xchain-binutils_get: $(STATEDIR)/xchain-binutils.get
-binutils_get_deps = $(XBINUTILS_SOURCE)
-ifdef PTXCONF_ARCH_ARM_NOMMU
-binutils_get_deps += $(XBINUTILS_NOMMU_PATCH_SOURCE)
-endif
+xchain-binutils_get_deps = \
+ $(XCHAIN_BINUTILS_SOURCE) \
+ $(STATEDIR)/xchain-binutils-patches.get
$(STATEDIR)/xchain-binutils.get: $(binutils_get_deps)
- @$(call targetinfo, xchain-binutils.get)
+ @$(call targetinfo, $@)
touch $@
-$(XBINUTILS_SOURCE):
- @$(call targetinfo, $(XBINUTILS_SOURCE))
- @$(call get, $(XBINUTILS_URL))
-
-$(XBINUTILS_NOMMU_PATCH_SOURCE):
- @$(call targetinfo, $(XBINUTILS_NOMMU_PATCH_SOURCE))
- @$(call get, $(XBINUTILS_NOMMU_PATCH_URL))
+$(STATEDIR)/xchain-binutils-patches.get:
+ @$(call targetinfo, $@)
+ @$(call get_patches, $(XCHAIN_BINUTILS))
+ touch $@
# ----------------------------------------------------------------------------
# Extract
@@ -66,10 +46,10 @@ $(XBINUTILS_NOMMU_PATCH_SOURCE):
xchain-binutils_extract: $(STATEDIR)/xchain-binutils.extract
$(STATEDIR)/xchain-binutils.extract: $(STATEDIR)/xchain-binutils.get
- @$(call targetinfo, xchain-binutils.extract)
- @$(call clean, $(XBINUTILS_DIR))
- @$(call extract, $(XBINUTILS_SOURCE), $(XBINUTILS_DIR))
- mv $(XBINUTILS_DIR)/$(XBINUTILS)/* $(XBINUTILS_DIR)
+ @$(call targetinfo, $@)
+ @$(call clean, $(XCHAIN_BINUTILS_DIR))
+ @$(call extract, $(XCHAIN_BINUTILS_SOURCE), $(XCHAIN_BUILDDIR))
+ @$(call patchin, $(BINUTILS), $(XCHAIN_BINUTILS_DIR))
#
# inspired by Erik Andersen's buildroot
#
@@ -77,26 +57,22 @@ $(STATEDIR)/xchain-binutils.extract: $(STATEDIR)/xchain-binutils.get
#
# Enable combreloc, since it is such a nice thing to have...
#
- perl -i -p -e "s,link_info.combreloc = false,link_info.combreloc = true,g;" $(XBINUTILS_DIR)/ld/ldmain.c
+ perl -i -p -e "s,link_info.combreloc = false,link_info.combreloc = true,g;" $(XCHAIN_BINUTILS_DIR)/ld/ldmain.c
#
# Hack binutils to use the correct shared lib loader
#
- cd $(XBINUTILS_DIR) && \
+ cd $(XCHAIN_BINUTILS_DIR) && \
perl -i -p -e "s,#.*define.*ELF_DYNAMIC_INTERPRETER.*\".*\",#define ELF_DYNAMIC_INTERPRETER \"$(DYNAMIC_LINKER)\",;" \
- `grep -lr "#define ELF_DYNAMIC_INTERPRETER" $(XBINUTILS_DIR)`
+ `grep -lr "#define ELF_DYNAMIC_INTERPRETER" $(XCHAIN_BINUTILS_DIR)`
#
# Hack binutils to prevent it from searching the host system
# for libraries. We only want libraries for the target system.
#
- cd $(XBINUTILS_DIR) && \
+ cd $(XCHAIN_BINUTILS_DIR) && \
perl -i -p -e "s,^NATIVE_LIB_DIRS.*,NATIVE_LIB_DIRS='$(CROSS_LIB_DIR)/usr/lib $(CROSS_LIB_DIR)/lib',;" \
- $(XBINUTILS_DIR)/ld/configure.host
-
-ifdef PTXCONF_ARCH_ARM_NOMMU
- cd $(XBINUTILS_DIR) && patch -p1 < $(XBINUTILS_NOMMU_PATCH_SOURCE)
-endif
+ $(XCHAIN_BINUTILS_DIR)/ld/configure.host
touch $@
# ----------------------------------------------------------------------------
@@ -105,31 +81,26 @@ endif
xchain-binutils_prepare: $(STATEDIR)/xchain-binutils.prepare
-XCHAIN_XBINUTILS_AUTOCONF_TARGET = --enable-targets=$(PTXCONF_GNU_TARGET)
-# ifdef PTXCONF_ARCH_MIPS
-# XCHAIN_XBINUTILS_AUTOCONF_TARGET = --enable-targets=$(PTXCONF_GNU_TARGET),mips64-linux
-# endif
-# ifdef PTXCONF_OPT_PA8X00
-# XCHAIN_XBINUTILS_AUTOCONF_TARGET = --enable-targets=$(PTXCONF_GNU_TARGET),hppa64-linux
-# endif
-
-XCHAIN_XBINUTILS_AUTOCONF = \
+XCHAIN_XCHAIN_BINUTILS_AUTOCONF = \
--target=$(PTXCONF_GNU_TARGET) \
--host=$(GNU_HOST) \
--build=$(GNU_HOST) \
--prefix=$(PTXCONF_PREFIX) \
+ --enable-targets=$(PTXCONF_GNU_TARGET) \
--disable-nls \
- --disable-shared \
- $(XCHAIN_XBINUTILS_AUTOCONF_TARGET)
-
-# --enable-multilib \
+ --enable-shared \
+ --enable-commonbfdlib \
+ --enable-install-libiberty \
+ --with-sysroot=$(CROSS_LIB_DIR) \
+ --with-lib-path="$(CROSS_LIB_DIR)/usr/lib:$(CROSS_LIB_DIR)/lib"
-XCHAIN_XBINUTILS_ENV = $(HOSTCC_ENV)
+XCHAIN_XCHAIN_BINUTILS_ENV = $(HOSTCC_ENV)
$(STATEDIR)/xchain-binutils.prepare: $(STATEDIR)/xchain-binutils.extract
- @$(call targetinfo, xchain-binutils.prepare)
- cd $(XBINUTILS_DIR) && $(XCHAIN_XBINUTILS_ENV) \
- ./configure $(XCHAIN_XBINUTILS_AUTOCONF)
+ @$(call targetinfo, $@)
+ @$(call clean, $(XCHAIN_BINUTILS_DIR)/config.cache)
+ cd $(XCHAIN_BINUTILS_DIR) && $(XCHAIN_XCHAIN_BINUTILS_ENV) \
+ ./configure $(XCHAIN_XCHAIN_BINUTILS_AUTOCONF)
touch $@
# ----------------------------------------------------------------------------
@@ -139,8 +110,8 @@ $(STATEDIR)/xchain-binutils.prepare: $(STATEDIR)/xchain-binutils.extract
xchain-binutils_compile: $(STATEDIR)/xchain-binutils.compile
$(STATEDIR)/xchain-binutils.compile: $(STATEDIR)/xchain-binutils.prepare
- @$(call targetinfo, xchain-binutils.compile)
- make -C $(XBINUTILS_DIR)
+ @$(call targetinfo, $@)
+ make -C $(XCHAIN_BINUTILS_DIR)
touch $@
# ----------------------------------------------------------------------------
@@ -150,8 +121,26 @@ $(STATEDIR)/xchain-binutils.compile: $(STATEDIR)/xchain-binutils.prepare
xchain-binutils_install: $(STATEDIR)/xchain-binutils.install
$(STATEDIR)/xchain-binutils.install: $(STATEDIR)/xchain-binutils.compile
- @$(call targetinfo, xchain-binutils.install)
- make install -C $(XBINUTILS_DIR)
+ @$(call targetinfo, $@)
+ make install -C $(XCHAIN_BINUTILS_DIR)
+#
+# here we convert the static libiberty.a into a
+# shared one (.so)
+#
+ cd $(XCHAIN_BINUTILS_DIR)/libiberty && \
+ ld --whole-archive libiberty.a -r -o libiberty-$(XCHAIN_BINUTILS_VERSION).so
+
+ install -m 755 $(XCHAIN_BINUTILS_DIR)/libiberty/libiberty-$(XCHAIN_BINUTILS_VERSION).so \
+ $(PTXCONF_PREFIX)/$(GNU_HOST)/$(PTXCONF_GNU_TARGET)/lib
+ ln -sf libiberty-$(XCHAIN_BINUTILS_VERSION).so $(PTXCONF_PREFIX)/$(GNU_HOST)/$(PTXCONF_GNU_TARGET)/lib/libiberty.so
+
+#
+# ksymoops want's to have libiberty.a, we copy it into the dir where ksymoops
+# expects them
+#
+ install -m 644 $(XCHAIN_BINUTILS_DIR)/libiberty/libiberty.a \
+ $(PTXCONF_PREFIX)/$(GNU_HOST)/$(PTXCONF_GNU_TARGET)/lib
+
touch $@
# ----------------------------------------------------------------------------
@@ -161,7 +150,7 @@ $(STATEDIR)/xchain-binutils.install: $(STATEDIR)/xchain-binutils.compile
xchain-binutils_targetinstall: $(STATEDIR)/xchain-binutils.targetinstall
$(STATEDIR)/xchain-binutils.targetinstall: $(STATEDIR)/xchain-binutils.install
- @$(call targetinfo, xchain-binutils.targetinstall)
+ @$(call targetinfo, $@)
touch $@
# ----------------------------------------------------------------------------
@@ -169,6 +158,6 @@ $(STATEDIR)/xchain-binutils.targetinstall: $(STATEDIR)/xchain-binutils.install
# ----------------------------------------------------------------------------
xchain-binutils_clean:
- rm -rf $(STATEDIR)/xchain-binutils.* $(XBINUTILS_DIR)
+ rm -rf $(STATEDIR)/xchain-binutils.* $(XCHAIN_BINUTILS_DIR)
# vim: syntax=make