summaryrefslogtreecommitdiffstats
path: root/rules/cross-gcc.make
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2008-04-29 12:40:34 +0000
committerMarc Kleine-Budde <mkl@pengutronix.de>2008-04-29 12:40:34 +0000
commit1ea3d70c843dc18afe13c9cc92b34a4a2c4bdffe (patch)
treed498dc020ad21a30e63cba9b8996607952699a95 /rules/cross-gcc.make
parent69733dae0b75d95942647400d4dc997c7624efc5 (diff)
downloadOSELAS.Toolchain-1ea3d70c843dc18afe13c9cc92b34a4a2c4bdffe.tar.gz
OSELAS.Toolchain-1ea3d70c843dc18afe13c9cc92b34a4a2c4bdffe.tar.xz
git-svn-id: https://svn.pengutronix.de/svn/oselas/toolchain/branches/OSELAS.Toolchain-mkl@6253 f8d472c7-5700-0410-ac5a-87979cec3adf
Diffstat (limited to 'rules/cross-gcc.make')
-rw-r--r--rules/cross-gcc.make131
1 files changed, 131 insertions, 0 deletions
diff --git a/rules/cross-gcc.make b/rules/cross-gcc.make
new file mode 100644
index 0000000..0c79aad
--- /dev/null
+++ b/rules/cross-gcc.make
@@ -0,0 +1,131 @@
+# -*-makefile-*-
+# $Id$
+#
+# Copyright (C) 2006 by Robert Schwebel
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+CROSS_PACKAGES-$(PTXCONF_CROSS_GCC) += cross-gcc
+
+#
+# Paths and names
+#
+CROSS_GCC_VERSION := $(call remove_quotes,$(PTXCONF_CROSS_GCC_VERSION))
+CROSS_GCC := gcc-$(CROSS_GCC_VERSION)
+CROSS_GCC_SUFFIX := tar.bz2
+CROSS_GCC_URL := $(PTXCONF_SETUP_GNUMIRROR)/gcc/$(CROSS_GCC)/$(CROSS_GCC).$(CROSS_GCC_SUFFIX)
+CROSS_GCC_SOURCE := $(SRCDIR)/$(CROSS_GCC).$(CROSS_GCC_SUFFIX)
+CROSS_GCC_DIR := $(BUILDDIR_CROSS_DEBUG)/$(CROSS_GCC)
+CROSS_GCC_BUILDDIR := $(CROSS_BUILDDIR)/$(CROSS_GCC)-build
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+$(CROSS_GCC_SOURCE):
+ @$(call targetinfo)
+ @$(call get, CROSS_GCC)
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/cross-gcc.extract:
+ @$(call targetinfo)
+ @$(call clean, $(CROSS_GCC_DIR))
+ @$(call extract, CROSS_GCC, $(BUILDDIR_CROSS_DEBUG))
+ @$(call patchin, CROSS_GCC, $(CROSS_GCC_DIR))
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+CROSS_GCC_PATH := PATH=$(CROSS_PATH)
+CROSS_GCC_ENV := $(HOSTCC_ENV)
+
+#
+# autoconf
+#
+CROSS_GCC_AUTOCONF_COMMON := \
+ --target=$(PTXCONF_GNU_TARGET) \
+ --with-gmp=$(PTXCONF_SYSROOT_HOST) \
+ --with-mpfr=$(PTXCONF_SYSROOT_HOST) \
+ $(PTXCONF_CROSS_GCC_EXTRA_CONFIG) \
+ $(PTXCONF_CROSS_GCC_EXTRA_CONFIG_LIBC) \
+ $(PTXCONF_CROSS_GCC_EXTRA_CONFIG_CXA_ATEXIT) \
+ \
+ --disable-nls \
+ --enable-symvers=gnu \
+ --disable-libunwind-exceptions
+
+# for other architectures than AVR its not usefull to have multilib,
+# but we need a sysroot for them
+ifndef PTXCONF_ARCH_AVR
+CROSS_GCC_AUTOCONF_COMMON += \
+ --disable-multilib \
+ --with-sysroot=$(SYSROOT)
+endif
+
+CROSS_GCC_AUTOCONF = \
+ $(CROSS_GCC_AUTOCONF_COMMON) \
+ --prefix=$(PTXCONF_SYSROOT_CROSS) \
+ \
+ --enable-languages=$(PTXCONF_CROSS_GCC_LANG) \
+ --enable-threads=$(PTXCONF_CROSS_GCC_THREADS) \
+ --enable-c99 \
+ --enable-long-long \
+ --enable-libstdcxx-debug \
+ --enable-profile \
+ \
+ $(PTXCONF_CROSS_GCC_EXTRA_CONFIG_SHARED)
+
+$(STATEDIR)/cross-gcc.prepare:
+ @$(call targetinfo)
+ @$(call clean, $(CROSS_GCC_BUILDDIR))
+ mkdir -p $(CROSS_GCC_BUILDDIR)
+ cd $(CROSS_GCC_BUILDDIR) && \
+ $(CROSS_GCC_PATH) $(CROSS_GCC_ENV) \
+ $(CROSS_GCC_DIR)/configure $(CROSS_GCC_AUTOCONF)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/cross-gcc.compile:
+ @$(call targetinfo)
+ cd $(CROSS_GCC_BUILDDIR) && $(CROSS_GCC_PATH) \
+ $(MAKE) $(PARALLELMFLAGS)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/cross-gcc.install:
+ @$(call targetinfo)
+ cd $(CROSS_GCC_BUILDDIR) && \
+ $(CROSS_GCC_PATH) $(MAKE) install
+ @find $(PTXCONF_SYSROOT_CROSS) -name "*.la" | while read la_file; do \
+ rm -v $${la_file}; \
+ done
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+cross-gcc_clean:
+ rm -rf $(STATEDIR)/cross-gcc.*
+ rm -rf $(CROSS_GCC_DIR)
+ rm -rf $(CROSS_GCC_BUILDDIR)
+
+# vim: syntax=make