diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2003-10-23 15:01:19 +0000 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2003-10-23 15:01:19 +0000 |
commit | a8ad8f5b6429e82b659f2f11548f68bcb353b00a (patch) | |
tree | 2dbd95fd14619c038a721d6414ada33a256caeb9 /rules/xchain-binutils.make | |
parent | 091ef762efcd334a15a7785fbf82e2c393d665ec (diff) | |
download | ptxdist-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.make | 131 |
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 |