+++ /dev/null
-# Makefile for to build gcc for uClibc
-#
-# Copyright (C) 2002-2003 Erik Andersen <andersen@uclibc.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-
-#############################################################
-#
-# EDIT this stuff to suit your system and preferences
-#
-# Use := when possible to get precomputation, thereby
-# speeding up the build process.
-#
-#############################################################
-
-# What sortof target system shall we compile this for?
-ARCH:=$(MACHINE)
-#ARCH:=arm
-#ARCH:=mips
-#ARCH:=mipsel
-# Possible issues remaining with powerpc and soft float.
-#ARCH:=powerpc
-#ARCH:=sh4
-# Busybox link failing due to needing libgcc functions that are statics.
-#ARCH:=cris
-
-# The following currently fail to build since no shared lib support.
-#ARCH:=sh64
-#ARCH:=m68k
-#ARCH:=v850
-#ARCH:=sparc
-#ARCH:=whatever
-
-# Enable this to use the uClibc daily snapshot instead of a released
-# version. Daily snapshots may contain new features and bugfixes. Or
-# they may not even compile at all, depending on what Erik is doing...
-USE_UCLIBC_SNAPSHOT:=false
-
-# Enable this to use the busybox daily snapshot instead of a released
-# version. Daily snapshots may contain new features and bugfixes. Or
-# they may not even compile at all....
-USE_BUSYBOX_SNAPSHOT:=true
-
-# Enable large file (files > 2 GB) support
-BUILD_WITH_LARGEFILE:=true
-
-# Command used to download source code
-WGET:=wget --passive-ftp
-
-# Soft floating point options.
-# Notes:
-# Currently builds with gcc 3.3 for i386, arm, mips, mipsel.
-# Only tested with multilib enabled.
-# For i386, long double is the same as double (64 bits). While this
-# is unusual for x86, it seemed the best approach considering the
-# limitations in the gcc floating point emulation library.
-# For arm, soft float uses the usual libfloat routines.
-# The uClibc built will support _only_ applications compiled with the
-# -msoft-float flag. To avoid CFLAGS problems, you may want to use
-# scripts similar to those in the build*/staging_dir/bin directory.
-# (Un)comment the appropriate line below.
-#SOFT_FLOAT:=true
-SOFT_FLOAT:=false
-
-# Any additional gcc options you may want to include....
-EXTRA_GCC_CONFIG_OPTIONS:=
-
-# Enable the following if you want locale/gettext/i18n support.
-# NOTE! Currently the pregnerated locale stuff only works for x86!
-#ENABLE_LOCALE:=true
-ENABLE_LOCALE:=false
-
-# If you want multilib enabled, enable this...
-MULTILIB:=--enable-multilib
-
-# Build/install c++ compiler and libstdc++?
-INSTALL_LIBSTDCPP:=false
-
-# For SMP machines some stuff can be run in parallel
-JLEVEL=-j3
-
-#############################################################
-#
-# You should probably leave this stuff alone unless you know
-# what you are doing.
-#
-#############################################################
-USE_UCLIBC_TOOLCHAIN:=true
-TARGETS:=uclibc-configured binutils gcc3_3
-
-# Optimize toolchain for which type of CPU?
-# WARNING!!! CURRENTLY BROKEN!!! LEAVE IT AS $(ARCH)!!!
-OPTIMIZE_FOR_CPU=$(ARCH)
-
-ifeq ($(SOFT_FLOAT),true)
-SOFT_FLOAT_CONFIG_OPTION:=--without-float
-TARGET_SOFT_FLOAT:=-msoft-float
-ARCH_FPU_SUFFIX:=_nofpu
-else
-SOFT_FLOAT_CONFIG_OPTION:=
-TARGET_SOFT_FLOAT:=
-ARCH_FPU_SUFFIX:=
-endif
-
-ifeq ($(ENABLE_LOCALE),true)
-EXTRA_GCC_CONFIG_OPTIONS += --enable-clocale=gnu
-endif
-
-# WARNING -- uClibc currently disables large file support on cris.
-ifeq ("$(strip $(ARCH))","cris")
-BUILD_WITH_LARGEFILE:=false
-endif
-
-ifneq ($(BUILD_WITH_LARGEFILE),true)
-DISABLE_LARGEFILE= --disable-largefile
-endif
-TARGET_OPTIMIZATION=-Os
-TARGET_DEBUGGING= #-g
-TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) $(TARGET_SOFT_FLOAT)
-
-HOSTCC:=gcc
-SED:=sed -i -e
-BASE_DIR:=${shell pwd}
-SOURCE_DIR:=$(BASE_DIR)/sources
-#DL_DIR:=$(SOURCE_DIR)/dl
-DL_DIR:=/usr/src/cache
-PATCH_DIR=$(SOURCE_DIR)/patches
-#BUILD_DIR=$(BASE_DIR)/toolchain_$(ARCH)$(ARCH_FPU_SUFFIX)
-BUILD_DIR=/opt/$(ARCH)-uClibc
-STAGING_DIR=$(BUILD_DIR)
-TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)
-TARGET_PATH=/usr/local/bin:$(STAGING_DIR)/bin:/bin:/sbin:/usr/bin:/usr/sbin
-#TARGET_CROSS=$(STAGING_DIR)/bin/$(ARCH)-uclibc-
-TARGET_CROSS=$(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-
-TARGET_CC=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT)
-STRIP=$(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note
-#STRIP:=/bin/true
-IMAGE:=$(BASE_DIR)/root_fs_$(ARCH)$(ARCH_FPU_SUFFIX)
-GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc
-#KERNEL_CROSS=$(STAGING_DIR)/bin/$(ARCH)-uclibc-
-KERNEL_CROSS=$(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-
-HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
- -e 's/sparc.*/sparc/' \
- -e 's/arm.*/arm/g' \
- -e 's/m68k.*/m68k/' \
- -e 's/alpha.*/alpha/' \
- -e 's/ppc/powerpc/g' \
- -e 's/v850.*/v850/g' \
- -e 's/sh[234]/sh/' \
- -e 's/mips-.*/mips/' \
- -e 's/mipsel-.*/mipsel/' \
- -e 's/cris.*/cris/' \
- -e 's/i[3-9]86/i386/' \
- )
-GNU_HOST_NAME:=$(HOST_ARCH)-pc-linux-gnu
-TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
- AR=$(TARGET_CROSS)ar \
- AS=$(TARGET_CROSS)as \
- LD=$(TARGET_CROSS)ld \
- NM=$(TARGET_CROSS)nm \
- CC=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
- GCC=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
- CXX=$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) \
- RANLIB=$(TARGET_CROSS)ranlib
-ifeq ($(ENABLE_LOCALE),true)
-DISABLE_NLS:=
-else
-DISABLE_NLS:=--disable-nls
-endif
-
-
-all: world
-
-TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
-TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS))
-TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
-
-world: $(DL_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGETS)
-
-.PHONY: all world clean dirclean distclean source $(TARGETS) \
- $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE)
-
-include make/*.mk
-
-#############################################################
-#
-# staging and target directories do NOT list these as
-# dependancies anywhere else
-#
-#############################################################
-$(DL_DIR):
- mkdir $(DL_DIR)
-
-$(STAGING_DIR):
- rm -rf $(STAGING_DIR)
- mkdir -p $(BUILD_DIR)
- mkdir -p $(TOOL_BUILD_DIR)
- mkdir -p $(STAGING_DIR)/lib
- mkdir -p $(STAGING_DIR)/usr
-# mkdir -p $(STAGING_DIR)/include
- ln -fs ../lib $(STAGING_DIR)/usr/lib
-
-source: $(TARGETS_SOURCE)
-
-#############################################################
-#
-# Cleanup and misc junk
-#
-#############################################################
-clean: $(TARGETS_CLEAN)
- rm -rf $(STAGING_DIR) $(IMAGE)
-
-dirclean: $(TARGETS_DIRCLEAN)
- rm -rf $(STAGING_DIR) $(IMAGE)
-
-distclean:
- rm -rf $(DL_DIR) $(BUILD_DIR) $(LINUX_KERNEL) $(IMAGE)
-
-sourceball:
- rm -rf $(BUILD_DIR)
- set -e; \
- cd ..; \
- rm -f buildroot.tar.bz2; \
- tar -cvf buildroot.tar buildroot; \
- bzip2 -9 buildroot.tar; \
+++ /dev/null
-#############################################################
-#
-# build binutils for use on the host system
-#
-#############################################################
-#BINUTILS_SITE:=http://ftp.kernel.org/pub/linux/devel/binutils
-BINUTILS_VER:=2.16.1
-BINUTILS_SOURCE:=binutils-$(BINUTILS_VER).tar.bz2
-BINUTILS_DIR:=$(TOOL_BUILD_DIR)/binutils-$(BINUTILS_VER)
-BINUTILS_CAT:=bzcat
-
-BINUTILS_DIR1:=$(TOOL_BUILD_DIR)/binutils-build
-
-$(DL_DIR)/$(BINUTILS_SOURCE):
-# $(WGET) -P $(DL_DIR) $(BINUTILS_SITE)/$(BINUTILS_SOURCE)
-
-$(BINUTILS_DIR)/.unpacked: $(DL_DIR)/$(BINUTILS_SOURCE)
- mkdir -p $(TOOL_BUILD_DIR)
- mkdir -p $(DL_DIR)
- mkdir -p $(STAGING_DIR)
- mkdir -p $(STAGING_DIR)/lib/gcc-lib
- mkdir -p $(STAGING_DIR)/usr/bin;
- mkdir -p $(STAGING_DIR)/$(GNU_TARGET_NAME)/
- (cd $(STAGING_DIR)/$(GNU_TARGET_NAME); ln -fs ../lib)
- (cd $(STAGING_DIR)/$(GNU_TARGET_NAME); ln -fs ../include)
- (cd $(STAGING_DIR)/$(GNU_TARGET_NAME); ln -fs ../include sys-include)
- $(BINUTILS_CAT) $(DL_DIR)/$(BINUTILS_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf -
- touch $(BINUTILS_DIR)/.unpacked
-
-$(BINUTILS_DIR)/.patched: $(BINUTILS_DIR)/.unpacked
- # Apply any files named binutils-*.patch from the source directory to binutils
- $(SOURCE_DIR)/patch-kernel.sh $(BINUTILS_DIR) $(SOURCE_DIR) binutils/$(BINUTILS_VER)/*.patch
- touch $(BINUTILS_DIR)/.patched
-
-$(BINUTILS_DIR1)/.configured: $(BINUTILS_DIR)/.patched
- mkdir -p $(BINUTILS_DIR1)
- (cd $(BINUTILS_DIR1); CC="$(HOSTCC)" \
- CC_FOR_HOST="$(HOSTCC)" \
- CXX_FOR_HOST="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- $(BINUTILS_DIR)/configure \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_HOST_NAME) \
- --build=$(GNU_HOST_NAME) \
- --prefix=$(STAGING_DIR) \
- --exec-prefix=$(STAGING_DIR) \
- --bindir=$(STAGING_DIR)/bin \
- --sbindir=$(STAGING_DIR)/sbin \
- --sysconfdir=$(STAGING_DIR)/etc \
- --datadir=$(STAGING_DIR)/share \
- --includedir=$(STAGING_DIR)/include \
- --libdir=$(STAGING_DIR)/lib \
- --localstatedir=$(STAGING_DIR)/var \
- --mandir=$(STAGING_DIR)/man \
- --infodir=$(STAGING_DIR)/info \
- --enable-targets=$(GNU_TARGET_NAME) \
- --with-sysroot=$(STAGING_DIR) \
- $(MULTILIB) \
- $(SOFT_FLOAT_CONFIG_OPTION) \
- --program-prefix=$(ARCH)-linux-uclibc-);
- touch $(BINUTILS_DIR1)/.configured
-
-$(BINUTILS_DIR1)/binutils/objdump: $(BINUTILS_DIR1)/.configured
- $(MAKE) $(JLEVEL) CC_FOR_HOST="$(HOSTCC)" \
- CXX_FOR_HOST="$(HOSTCC)" LDFLAGS="$(HOSTLDFLAGS)" \
- -C $(BINUTILS_DIR1);
-
-$(STAGING_DIR)/$(GNU_TARGET_NAME)/bin/ld: $(BINUTILS_DIR1)/binutils/objdump
- $(MAKE) $(JLEVEL) CC_FOR_HOST="$(HOSTCC)" \
- CXX_FOR_HOST="$(HOSTCC)" LDFLAGS="$(HOSTLDFLAGS)" \
- -C $(BINUTILS_DIR1) install;
- rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc \
- $(STAGING_DIR)/share/locale
- mkdir -p $(STAGING_DIR)/usr/bin;
- set -e; \
- for app in addr2line ar as c++filt gprof ld nm objcopy \
- objdump ranlib readelf size strings strip ; \
- do \
- if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} ] ; then \
- (cd $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin; \
- ln -fs ../../bin/$(ARCH)-linux-uclibc-$${app} $${app}; \
- ); \
- (cd $(STAGING_DIR)/usr/bin; \
- ln -fs ../../bin/$(ARCH)-linux-uclibc-$${app} $${app}; \
- ); \
- fi; \
- done;
-
-$(STAGING_DIR)/lib/libg.a:
- mkdir -p $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin
- mkdir -p $(STAGING_DIR)/usr/include/
- mkdir -p $(STAGING_DIR)/usr/lib/
- $(TARGET_CROSS)ar rv $(STAGING_DIR)/lib/libg.a;
- cp $(BINUTILS_DIR)/include/ansidecl.h $(STAGING_DIR)/usr/include/
- cp $(BINUTILS_DIR)/include/bfdlink.h $(STAGING_DIR)/usr/include/
- cp $(BINUTILS_DIR)/include/dis-asm.h $(STAGING_DIR)/usr/include/
- cp $(BINUTILS_DIR)/include/libiberty.h $(STAGING_DIR)/usr/include/
- cp $(BINUTILS_DIR)/include/symcat.h $(STAGING_DIR)/usr/include/
- cp $(BINUTILS_DIR1)/bfd/bfd.h $(STAGING_DIR)/usr/include/
- cp -a $(BINUTILS_DIR1)/bfd/.libs/* $(STAGING_DIR)/usr/lib/
- cp -a $(BINUTILS_DIR1)/opcodes/.libs/* $(STAGING_DIR)/usr/lib/
- cp -a $(BINUTILS_DIR1)/libiberty/libiberty.a $(STAGING_DIR)/usr/lib/
-
-binutils: $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin/ld $(STAGING_DIR)/lib/libg.a
-
-binutils-source: $(DL_DIR)/$(BINUTILS_SOURCE)
-
-binutils-clean:
- rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)*
- -$(MAKE) -C $(BINUTILS_DIR1) clean
-
-binutils-dirclean:
- rm -rf $(BINUTILS_DIR1)
-
-
-
-#############################################################
-#
-# build binutils for use on the target system
-#
-#############################################################
-BINUTILS_DIR2:=$(BUILD_DIR)/binutils-target
-$(BINUTILS_DIR2)/.configured: $(BINUTILS_DIR)/.patched
- mkdir -p $(BINUTILS_DIR2)
- mkdir -p $(TARGET_DIR)/usr/include
- mkdir -p $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/
- (cd $(BINUTILS_DIR2); \
- $(TARGET_CONFIGURE_OPTS) \
- CFLAGS="$(TARGET_CFLAGS)" \
- CC_FOR_BUILD="$(HOSTCC)" \
- CXX_FOR_BUILD="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- AR_FOR_TARGET=$(TARGET_CROSS)ar \
- AS_FOR_TARGET=$(TARGET_CROSS)as \
- LD_FOR_TARGET=$(TARGET_CROSS)ld \
- NM_FOR_TARGET=$(TARGET_CROSS)nm \
- CC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
- GCC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
- CXX_FOR_TARGET=$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) \
- RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib \
- $(BINUTILS_DIR)/configure \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_TARGET_NAME) \
- --build=$(ARCH)-linux \
- --prefix=/usr \
- --mandir=/usr/man \
- --infodir=/usr/info \
- $(MULTILIB) \
- $(SOFT_FLOAT_CONFIG_OPTION) \
- );
- touch $(BINUTILS_DIR2)/.configured
-
-$(BINUTILS_DIR2)/binutils/objdump: $(BINUTILS_DIR2)/.configured
- $(MAKE) $(JLEVEL) -C $(BINUTILS_DIR2) \
- CC_FOR_BUILD="$(HOSTCC)" \
- CXX_FOR_BUILD="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- AR_FOR_TARGET=$(TARGET_CROSS)ar \
- AS_FOR_TARGET=$(TARGET_CROSS)as \
- LD_FOR_TARGET=$(TARGET_CROSS)ld \
- NM_FOR_TARGET=$(TARGET_CROSS)nm \
- CC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
- GCC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
- CXX_FOR_TARGET=$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) \
- RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib
- touch -c $(BINUTILS_DIR2)/binutils/objdump
-
-$(TARGET_DIR)/usr/bin/ld: $(BINUTILS_DIR2)/binutils/objdump
- $(MAKE) $(JLEVEL) -C $(BINUTILS_DIR2) \
- CC_FOR_BUILD="$(HOSTCC)" \
- CXX_FOR_BUILD="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- AR_FOR_TARGET=$(TARGET_CROSS)ar \
- AS_FOR_TARGET=$(TARGET_CROSS)as \
- LD_FOR_TARGET=$(TARGET_CROSS)ld \
- NM_FOR_TARGET=$(TARGET_CROSS)nm \
- CC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
- GCC_FOR_TARGET=$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) \
- CXX_FOR_TARGET=$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) \
- RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib \
- prefix=/usr \
- infodir=/usr/info \
- mandir=/usr/man \
- DESTDIR=$(TARGET_DIR) install
- rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
- $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
- -$(STRIP) $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/bin/* > /dev/null 2>&1
- -$(STRIP) $(TARGET_DIR)/usr/bin/* > /dev/null 2>&1
-
-$(TARGET_DIR)/usr/lib/libg.a:
- $(TARGET_CROSS)ar rv $(TARGET_DIR)/usr/lib/libg.a;
- cp $(BINUTILS_DIR)/include/ansidecl.h $(TARGET_DIR)/usr/include/
- cp $(BINUTILS_DIR)/include/bfdlink.h $(TARGET_DIR)/usr/include/
- cp $(BINUTILS_DIR)/include/dis-asm.h $(TARGET_DIR)/usr/include/
- cp $(BINUTILS_DIR)/include/libiberty.h $(TARGET_DIR)/usr/include/
- cp $(BINUTILS_DIR)/include/symcat.h $(TARGET_DIR)/usr/include/
- cp $(BINUTILS_DIR2)/bfd/bfd.h $(TARGET_DIR)/usr/include/
- cp -a $(BINUTILS_DIR2)/bfd/.libs/* $(TARGET_DIR)/usr/lib/
- cp -a $(BINUTILS_DIR2)/opcodes/.libs/* $(TARGET_DIR)/usr/lib/
- cp -a $(BINUTILS_DIR2)/libiberty/libiberty.a $(TARGET_DIR)/usr/lib/
-
-binutils_target: $(GCC_DEPENDANCY) $(TARGET_DIR)/usr/bin/ld $(TARGET_DIR)/usr/lib/libg.a
-
-binutils_target-clean:
- rm -f $(TARGET_DIR)/bin/$(GNU_TARGET_NAME)*
- -$(MAKE) -C $(BINUTILS_DIR2) clean
-
-binutils_target-dirclean:
- rm -rf $(BINUTILS_DIR2)
-
+++ /dev/null
-# Makefile for to build a gcc/uClibc toolchain
-#
-# Copyright (C) 2002-2003 Erik Andersen <andersen@uclibc.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-ifneq ($(GCC_2_95_TOOLCHAIN),true)
-
-# Older stuff...
-#GCC_SITE:=ftp://ftp.gnu.org/gnu/gcc/
-#GCC_SOURCE:=gcc-3.3.tar.bz2
-#GCC_DIR:=$(TOOL_BUILD_DIR)/gcc-3.3
-#GCC_CAT:=zcat
-
-# Shiny new stuff...
-GCC_VERSION:=3.4.5
-#GCC_SITE:=ftp://ftp.gnu.org/gnu/gcc/gcc-$(GCC_VERSION)
-#GCC_SITE:=http://www.binarycode.org/gcc/releases/gcc-$(GCC_VERSION)
-GCC_SITE:=http://gcc.get-software.com/releases/gcc-$(GCC_VERSION)
-
-#
-# snapshots....
-#GCC_VERSION:=3.3-20031013
-#GCC_SITE:=http://gcc.get-software.com/snapshots/$(GCC_VERSION)
-#
-GCC_SOURCE:=gcc-$(GCC_VERSION).tar.bz2
-GCC_DIR:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)
-GCC_CAT:=bzip2 -dc
-
-#############################################################
-#
-# Setup some initial stuff
-#
-#############################################################
-
-ifeq ($(INSTALL_LIBSTDCPP),true)
-TARGET_LANGUAGES:=c,c++
-else
-TARGET_LANGUAGES:=c
-endif
-
-#############################################################
-#
-# build the first pass gcc compiler
-#
-#############################################################
-GCC_BUILD_DIR1:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)-initial
-
-$(DL_DIR)/$(GCC_SOURCE):
-# $(WGET) -P $(DL_DIR) $(GCC_SITE)/$(GCC_SOURCE)
-
-$(GCC_DIR)/.unpacked: $(DL_DIR)/$(GCC_SOURCE)
- $(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf -
- $(GCC_CAT) $(DL_DIR)/gcc-$(GCC_VERSION).tar.bz2 | tar -C $(TOOL_BUILD_DIR) -xvf -
- touch $(GCC_DIR)/.unpacked
-
-$(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked
- # Apply any files named gcc-*.patch from the source directory to gcc
- $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) gcc/$(GCC_VERSION)/*.patch
- touch $(GCC_DIR)/.patched
-
-$(GCC_DIR)/.gcc3_3_build_hacks: $(GCC_DIR)/.patched
- #
- # Hack things to use the correct shared lib loader
- #
- (cd $(GCC_DIR); set -e; export LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" *`;\
- if [ -n "$$LIST" ] ; then \
- $(SED) "s,-dynamic-linker.*\.so[\.0-9]*},\
- -dynamic-linker /lib/ld-uClibc.so.0},;" $$LIST; fi);
- #
- # Prevent gcc from using the unwind-dw2-fde-glibc code used for
- # unwinding stack frames for C++ exception handling. The
- # unwind-dw2-fde-glibc code depends on glibc's ldso, we want to
- # use the generic version instead.
- #
- $(SED) "s,^#ifndef inhibit_libc,#define inhibit_libc\n\
- #ifndef inhibit_libc,g;" $(GCC_DIR)/gcc/unwind-dw2-fde-glibc.c;
- #
- # Prevent system glibc start files from leaking in uninvited...
- #
- $(SED) "s,standard_startfile_prefix_1 = \".*,standard_startfile_prefix_1 =\
- \"$(STAGING_DIR)/lib/\";,;" $(GCC_DIR)/gcc/gcc.c;
- $(SED) "s,standard_startfile_prefix_2 = \".*,standard_startfile_prefix_2 =\
- \"$(STAGING_DIR)/usr/lib/\";,;" $(GCC_DIR)/gcc/gcc.c;
- #
- # Prevent system glibc include files from leaking in uninvited...
- #
- $(SED) "s,^NATIVE_SYSTEM_HEADER_DIR.*,NATIVE_SYSTEM_HEADER_DIR=\
- $(STAGING_DIR)/include,;" $(GCC_DIR)/gcc/Makefile.in;
- $(SED) "s,^CROSS_SYSTEM_HEADER_DIR.*,CROSS_SYSTEM_HEADER_DIR=\
- $(STAGING_DIR)/include,;" $(GCC_DIR)/gcc/Makefile.in;
- $(SED) "s,^#define.*STANDARD_INCLUDE_DIR.*,#define STANDARD_INCLUDE_DIR \
- \"$(STAGING_DIR)/include\",;" $(GCC_DIR)/gcc/cppdefault.h;
- #
- # Prevent system glibc libraries from being found by collect2
- # when it calls locatelib() and rummages about the system looking
- # for libraries with the correct name...
- #
- $(SED) "s,\"/lib,\"$(STAGING_DIR)/lib,g;" $(GCC_DIR)/gcc/collect2.c
- $(SED) "s,\"/usr/,\"$(STAGING_DIR)/usr/,g;" $(GCC_DIR)/gcc/collect2.c
- touch $(GCC_DIR)/.gcc3_3_build_hacks
-
-# The --without-headers option stopped working with gcc 3.0 and has never been
-# # fixed, so we need to actually have working C library header files prior to
-# # the step or libgcc will not build...
-$(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.gcc3_3_build_hacks
- mkdir -p $(GCC_BUILD_DIR1)
- echo -e "#!/bin/sh\nexec $(GCC_BUILD_DIR1)/gcc/xgcc -B$(GCC_BUILD_DIR1)/gcc/ -B$(STAGING_DIR)/$(ARCH)-linux/bin/ -B$(STAGING_DIR)/$(ARCH)-linux/lib/ -isystem $(STAGING_DIR)/$(ARCH)-linux/include $(TARGET_SOFT_FLOAT) \$$@" > $(GCC_BUILD_DIR1)/target_gcc
- chmod a+x $(GCC_BUILD_DIR1)/target_gcc
- (cd $(GCC_BUILD_DIR1); PATH=$(TARGET_PATH) AR=$(TARGET_CROSS)ar \
- RANLIB=$(TARGET_CROSS)ranlib \
- CC="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- gcc_cv_as_hidden=no \
- $(GCC_DIR)/configure \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_HOST_NAME) \
- --build=$(GNU_HOST_NAME) \
- --prefix=$(STAGING_DIR) \
- --exec-prefix=$(STAGING_DIR) \
- --bindir=$(STAGING_DIR)/bin \
- --sbindir=$(STAGING_DIR)/sbin \
- --sysconfdir=$(STAGING_DIR)/etc \
- --datadir=$(STAGING_DIR)/share \
- --includedir=$(STAGING_DIR)/include \
- --libdir=$(STAGING_DIR)/lib \
- --localstatedir=$(STAGING_DIR)/var \
- --mandir=$(STAGING_DIR)/man \
- --infodir=$(STAGING_DIR)/info \
- --with-local-prefix=$(STAGING_DIR)/usr/local \
- --oldincludedir=$(STAGING_DIR)/include $(MULTILIB) \
- --enable-target-optspace $(DISABLE_NLS) --with-gnu-ld \
- --disable-shared --enable-languages=c --disable-__cxa_atexit \
- $(SOFT_FLOAT_CONFIG_OPTION) \
- $(EXTRA_GCC_CONFIG_OPTIONS) --program-prefix=$(ARCH)-linux-uclibc-);
- touch $(GCC_BUILD_DIR1)/.configured
-
-$(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
- PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) -C $(GCC_BUILD_DIR1) \
- CC="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- AR_FOR_TARGET=$(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-ar \
- RANLIB_FOR_TARGET=$(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-ranlib \
- CC_FOR_TARGET=$(GCC_BUILD_DIR1)/target_gcc \
- GCC_FOR_TARGET=$(GCC_BUILD_DIR1)/target_gcc
- touch $(GCC_BUILD_DIR1)/.compiled
-
-$(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc: $(GCC_BUILD_DIR1)/.compiled
- PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) \
- CC="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- -C $(GCC_BUILD_DIR1) install;
- #Cleanup then mess when --program-prefix mysteriously fails
- -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-cpp $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-cpp
- -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gcc $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc
- if [ -n "$(strip $(TARGET_SOFT_FLOAT))" ] ; then \
- for app in gcc c++ g++ ; do \
- if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} ] ; then \
- (cd $(STAGING_DIR)/bin; \
- rm -f $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \
- echo -e "#!/bin/sh\nexec $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} -msoft-float \$$@" > $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \
- chmod a+x $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \
- ); \
- fi; \
- done; \
- fi; \
- rm -f $(STAGING_DIR)/bin/gccbug $(STAGING_DIR)/bin/gcov
- rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc \
- $(STAGING_DIR)/share/locale
-
-gcc3_3_initial: binutils uclibc-configured $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc
-
-gcc3_3_initial-clean:
- rm -rf $(GCC_BUILD_DIR1)
- rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)*
-
-gcc3_3_initial-dirclean:
- rm -rf $(GCC_BUILD_DIR1)
-
-#############################################################
-#
-# second pass compiler build. Build the compiler targeting
-# the newly built shared uClibc library.
-#
-#############################################################
-GCC_BUILD_DIR2:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)-final
-$(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
- mkdir -p $(GCC_BUILD_DIR2)
- echo -e "#!/bin/sh\nexec $(GCC_BUILD_DIR2)/gcc/xgcc -B$(GCC_BUILD_DIR2)/gcc/ -B$(STAGING_DIR)/$(ARCH)-linux/bin/ -B$(STAGING_DIR)/$(ARCH)-linux/lib/ -isystem $(STAGING_DIR)/$(ARCH)-linux/include $(TARGET_SOFT_FLOAT) \$$@" > $(GCC_BUILD_DIR2)/target_g++
- chmod a+x $(GCC_BUILD_DIR2)/target_g++
- echo -e "#!/bin/sh\nexec $(GCC_BUILD_DIR2)/gcc/xgcc -B$(GCC_BUILD_DIR2)/gcc/ -B$(STAGING_DIR)/$(ARCH)-linux/bin/ -B$(STAGING_DIR)/$(ARCH)-linux/lib/ -isystem $(STAGING_DIR)/$(ARCH)-linux/include $(TARGET_SOFT_FLOAT) \$$@" > $(GCC_BUILD_DIR2)/target_gcc
- chmod a+x $(GCC_BUILD_DIR2)/target_gcc
- (cd $(GCC_BUILD_DIR2); PATH=$(TARGET_PATH) AR=$(TARGET_CROSS)ar \
- RANLIB=$(TARGET_CROSS)ranlib LD=$(TARGET_CROSS)ld \
- NM=$(TARGET_CROSS)nm \
- CC="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- gcc_cv_as_hidden=no \
- $(GCC_DIR)/configure \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_HOST_NAME) \
- --build=$(GNU_HOST_NAME) \
- --prefix=$(STAGING_DIR) \
- --exec-prefix=$(STAGING_DIR) \
- --bindir=$(STAGING_DIR)/bin \
- --sbindir=$(STAGING_DIR)/sbin \
- --sysconfdir=$(STAGING_DIR)/etc \
- --datadir=$(STAGING_DIR)/share \
- --localstatedir=$(STAGING_DIR)/var \
- --mandir=$(STAGING_DIR)/man \
- --infodir=$(STAGING_DIR)/info \
- --with-local-prefix=$(STAGING_DIR)/usr/local \
- --libdir=$(STAGING_DIR)/lib \
- --includedir=$(STAGING_DIR)/include \
- --with-gxx-include-dir=$(STAGING_DIR)/include/c++ \
- --oldincludedir=$(STAGING_DIR)/include \
- --enable-shared $(MULTILIB) \
- --enable-target-optspace $(DISABLE_NLS) \
- --with-gnu-ld --disable-__cxa_atexit \
- --enable-languages=$(TARGET_LANGUAGES) \
- $(EXTRA_GCC_CONFIG_OPTIONS) \
- --program-prefix=$(ARCH)-linux-uclibc- \
- );
- touch $(GCC_BUILD_DIR2)/.configured
-
-$(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured
- # $(SED) 's/\-lc//' $(GCC_BUILD_DIR2)/gcc/Makefile
- PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) \
- CC="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- AR_FOR_TARGET=$(TARGET_CROSS)ar RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib \
- LD_FOR_TARGET=$(TARGET_CROSS)ld NM_FOR_TARGET=$(TARGET_CROSS)nm \
- CC_FOR_TARGET=$(GCC_BUILD_DIR2)/target_gcc \
- GCC_FOR_TARGET=$(GCC_BUILD_DIR2)/target_gcc \
- CXX_FOR_TARGET=$(GCC_BUILD_DIR2)/target_g++ \
- -C $(GCC_BUILD_DIR2)
- touch $(GCC_BUILD_DIR2)/.compiled
-
-$(GCC_BUILD_DIR2)/.installed: $(GCC_BUILD_DIR2)/.compiled $(STAGING_DIR)/lib/libc.a
- PATH=$(TARGET_PATH) $(MAKE) $(JLEVEL) \
- CC="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- -C $(GCC_BUILD_DIR2) install;
- -mv $(STAGING_DIR)/bin/gcc $(STAGING_DIR)/usr/bin;
- -mv $(STAGING_DIR)/bin/protoize $(STAGING_DIR)/usr/bin;
- -mv $(STAGING_DIR)/bin/unprotoize $(STAGING_DIR)/usr/bin;
- -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-cpp $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-cpp
- -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gcc $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc
- -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-c++ $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-c++
- -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-g++ $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-g++
- -mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-c++filt $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-c++filt
- rm -f $(STAGING_DIR)/bin/cpp $(STAGING_DIR)/bin/gcov $(STAGING_DIR)/bin/*gccbug
- rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-$(ARCH)-linux-uclibc-*
- rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc \
- $(STAGING_DIR)/share/locale
- # Strip the host binaries
- -strip --strip-all -R .note -R .comment $(STAGING_DIR)/bin/*
- if [ -n "$(strip $(TARGET_SOFT_FLOAT))" ] ; then \
- for app in gcc c++ g++ ; do \
- if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} ] ; then \
- (cd $(STAGING_DIR)/bin; \
- rm -f $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \
- echo -e "#!/bin/sh\nexec $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} -msoft-float \$$@" > $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \
- chmod a+x $(ARCH)-linux-uclibc-$${app}$(TARGET_SOFT_FLOAT); \
- ); \
- fi; \
- done; \
- fi; \
- set -e; \
- for app in cc gcc c89 cpp c++ g++ ; do \
- if [ -x $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-$${app} ] ; then \
- (cd $(STAGING_DIR)/usr/bin; \
- ln -fs ../../bin/$(ARCH)-linux-uclibc-$${app} $${app}; \
- ); \
- fi; \
- done;
- (cd $(STAGING_DIR)/usr/bin; \
- ln -fs gcc cc; \
- )
- touch $(GCC_BUILD_DIR2)/.installed
-
-ifneq ($(TARGET_DIR),)
-$(TARGET_DIR)/lib/libstdc++.so.5.0.5: $(GCC_BUILD_DIR2)/.installed
- cp -a $(STAGING_DIR)/lib/libstdc++.so* $(TARGET_DIR)/lib/
-
-$(GCC_BUILD_DIR2)/.shared_libgcc: $(GCC_BUILD_DIR2)/.installed
- cp -fa $(STAGING_DIR)/lib/libgcc_s.so* $(TARGET_DIR)/lib/ ; \
- touch $(GCC_BUILD_DIR2)/.shared_libgcc
-
-GCC_TARGETS:=$(GCC_BUILD_DIR2)/.shared_libgcc
-ifeq ($(INSTALL_LIBSTDCPP),true)
-GCC_TARGETS+=$(TARGET_DIR)/lib/libstdc++.so.5.0.5
-endif
-
-endif
-
-gcc3_3: binutils uclibc-configured gcc3_3_initial $(LIBFLOAT_TARGET) uclibc \
- $(GCC_BUILD_DIR2)/.installed $(GCC_TARGETS)
-
-gcc3_3-source: $(DL_DIR)/$(GCC_SOURCE)
-
-gcc3_3-clean:
- rm -rf $(GCC_BUILD_DIR2)
- rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)*
-
-gcc3_3-dirclean:
- rm -rf $(GCC_BUILD_DIR2)
-
-#############################################################
-#
-# Next build target gcc compiler
-#
-#############################################################
-GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target
-
-TARGET_GCC_ARGS= $(TARGET_CONFIGURE_OPTS) \
- AR_FOR_BUILD=ar \
- AS_FOR_BUILD=as \
- LD_FOR_BUILD=ld \
- NM_FOR_BUILD=nm \
- RANLIB_FOR_BUILD=ranlib \
- CC="$(HOSTCC)" \
- LDFLAGS="$(HOSTLDFLAGS)" \
- CC_FOR_BUILD="$(HOSTCC)" \
- GCC_FOR_BUILD="$(HOSTCC)" \
- CXX_FOR_BUILD="$(HOSTCC)" \
- AR_FOR_TARGET=$(TARGET_CROSS)ar \
- AS_FOR_TARGET=$(TARGET_CROSS)as \
- LD_FOR_TARGET=$(TARGET_CROSS)ld \
- NM_FOR_TARGET=$(TARGET_CROSS)nm \
- CC="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
- GCC="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
- CXX="$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
- CC_FOR_TARGET="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
- GCC_FOR_TARGET="$(TARGET_CROSS)gcc$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
- CXX_FOR_TARGET="$(TARGET_CROSS)g++$(TARGET_SOFT_FLOAT) -isystem $(STAGING_DIR)/include" \
- RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib
-
-# We need to unpack a pristine source tree to avoid some of
-# the previously applied hacks, which do not apply here...
-$(GCC_BUILD_DIR3)/.unpacked: $(DL_DIR)/$(GCC_SOURCE)
- $(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- mv $(BUILD_DIR)/gcc-$(GCC_VERSION) $(GCC_BUILD_DIR3)
- touch $(GCC_BUILD_DIR3)/.unpacked
-
-$(GCC_BUILD_DIR3)/.patched: $(GCC_BUILD_DIR3)/.unpacked
- # Apply any files named gcc-*.patch from the source directory to gcc
- $(SOURCE_DIR)/patch-kernel.sh $(GCC_BUILD_DIR3) $(SOURCE_DIR) gcc/$(GCC_VERSION)/*.patch
- touch $(GCC_BUILD_DIR3)/.patched
-
-$(GCC_BUILD_DIR3)/.gcc3_3_build_hacks: $(GCC_BUILD_DIR3)/.patched
- #
- # Hack things to use the correct shared lib loader
- #
- (cd $(GCC_BUILD_DIR3); set -e; export LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" *`;\
- if [ -n "$$LIST" ] ; then \
- $(SED) "s,-dynamic-linker.*\.so[\.0-9]*},\
- -dynamic-linker /lib/ld-uClibc.so.0},;" $$LIST; fi);
- #
- # Prevent gcc from using the unwind-dw2-fde-glibc code used for
- # unwinding stack frames for C++ exception handling. The
- # unwind-dw2-fde-glibc code depends on glibc's ldso, we want to
- # use the generic version instead.
- #
- $(SED) "s,^#ifndef inhibit_libc,#define inhibit_libc\n\
- #ifndef inhibit_libc,g;" $(GCC_BUILD_DIR3)/gcc/unwind-dw2-fde-glibc.c;
- touch $(GCC_BUILD_DIR3)/.gcc3_3_build_hacks
-
-$(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.gcc3_3_build_hacks
- mkdir -p $(GCC_BUILD_DIR3)
- #(cd $(GCC_BUILD_DIR3); ln -fs $(ARCH)-linux-uclibc- build-$(GNU_TARGET_NAME))
- (cd $(GCC_BUILD_DIR3); \
- $(TARGET_GCC_ARGS) \
- gcc_cv_as_hidden=no \
- ./configure \
- --verbose \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_TARGET_NAME) \
- --build=`./config.guess` \
- --prefix=/usr \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --with-gxx-include-dir=/usr/include/c++/$(GCC_VERSION) \
- --enable-target-optspace \
- --enable-shared \
- $(MULTILIB) \
- $(DISABLE_NLS) \
- --with-gnu-ld --disable-__cxa_atexit \
- --enable-languages=$(TARGET_LANGUAGES) \
- $(EXTRA_GCC_CONFIG_OPTIONS) \
- );
- touch $(GCC_BUILD_DIR3)/.configured
-
-$(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
- $(MAKE) $(JLEVEL) $(TARGET_GCC_ARGS) -C $(GCC_BUILD_DIR3)
- touch $(GCC_BUILD_DIR3)/.compiled
-
-$(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled
- $(MAKE) $(JLEVEL) $(TARGET_GCC_ARGS) DESTDIR=$(TARGET_DIR) \
- -C $(GCC_BUILD_DIR3) install
- (cd $(TARGET_DIR)/usr/bin; ln -fs gcc cc)
- (cd $(TARGET_DIR)/lib; ln -fs /usr/bin/cpp)
- rm -rf $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/include
- rm -rf $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/sys-include
- rm -rf $(TARGET_DIR)/usr/include/include $(TARGET_DIR)/usr/usr
- -mv $(TARGET_DIR)/lib/*.a $(TARGET_DIR)/usr/lib/
- -mv $(TARGET_DIR)/lib/*.la $(TARGET_DIR)/usr/lib/
- rm -f $(TARGET_DIR)/lib/libstdc++.so*
- # Make sure gcc does not think we are cross compiling
- $(SED) "s/^1/0/;" $(TARGET_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION)/specs
- -(cd $(TARGET_DIR)/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1)
- -(cd $(TARGET_DIR)/usr/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1)
- -(cd $(TARGET_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION); $(STRIP) cc1 cc1plus collect2 > /dev/null 2>&1)
- -(cd $(TARGET_DIR)/usr/lib; $(STRIP) libstdc++.so.*.*.* > /dev/null 2>&1)
- -(cd $(TARGET_DIR)/lib; $(STRIP) libgcc_s.so.*.*.* > /dev/null 2>&1)
- #
- rm -f $(TARGET_DIR)/usr/lib/*.la*
- rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
- $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
- # Work around problem of missing syslimits.h
- cp -f $(STAGING_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION)/include/syslimits.h $(TARGET_DIR)/usr/lib/gcc-lib/$(ARCH)-linux/$(GCC_VERSION)/include/
- # These are in /lib, so...
- # rm -rf $(TARGET_DIR)/usr/lib/libgcc_s.so*
- touch -c $(TARGET_DIR)/usr/bin/gcc
-
-gcc3_3_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc
-
-gcc3_3_target-clean:
- rm -rf $(GCC_BUILD_DIR3)
- rm -f $(TARGET_DIR)/bin/$(GNU_TARGET_NAME)*
-
-gcc3_3_target-dirclean:
- rm -rf $(GCC_BUILD_DIR3)
-
-endif
+++ /dev/null
-#############################################################
-#
-# uClibc (the C library)
-#
-#############################################################
-ifeq ($(USE_UCLIBC_SNAPSHOT),true)
-# Be aware that this changes daily....
-UCLIBC_DIR=$(TOOL_BUILD_DIR)/uClibc
-UCLIBC_SOURCE=uClibc-snapshot.tar.gz
-UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots
-else
-UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc-0.9.28
-UCLIBC_SOURCE:=uClibc-0.9.28.tar.bz2
-UCLIBC_SITE:=http://www.uclibc.org/downloads
-endif
-LINUX_DIR:=/usr/src/linux
-
-UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \
- -e 's/i.86/i386/' \
- -e 's/sparc.*/sparc/' \
- -e 's/arm.*/arm/g' \
- -e 's/m68k.*/m68k/' \
- -e 's/ppc/powerpc/g' \
- -e 's/v850.*/v850/g' \
- -e 's/sh64/sh/' \
- -e 's/sh[234]/sh/' \
- -e 's/mips.*/mips/' \
- -e 's/mipsel.*/mips/' \
- -e 's/cris.*/cris/' \
-)
-
-
-$(DL_DIR)/$(UCLIBC_SOURCE):
-# $(WGET) -P $(DL_DIR) $(UCLIBC_SITE)/$(UCLIBC_SOURCE)
-
-$(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
- bzip2 -dc $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xf -
- sed -i -e 's/include <sys\/types.h>/include <sys\/types.h>\n#include <pthread.h>/' $(UCLIBC_DIR)/librt/kernel-posix-timers.h
- touch $(UCLIBC_DIR)/.unpacked
-
-$(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked
- $(MAKE) -C $(UCLIBC_DIR) defconfig;
- cp $(SOURCE_DIR)/uClibc.config-$(MACHINE) $(UCLIBC_DIR)/.config
- cp $(SOURCE_DIR)/locales.txt $(UCLIBC_DIR)/extra/locale
- cp $(SOURCE_DIR)/codesets.txt $(UCLIBC_DIR)/extra/locale
- $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(STAGING_DIR) headers;
- (cd $(UCLIBC_DIR)/extra/locale; \
- patch -Np0 < /usr/src/src/patches/uClibc-gen_wctype-segfault.patch; \
- $(MAKE); \
- )
- $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(STAGING_DIR) install_dev;
- rm -rf $(STAGING_DIR)/include
- ln -s $(STAGING_DIR)/usr/include $(STAGING_DIR)/include
- touch $(UCLIBC_DIR)/.configured
-
-$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(LIBFLOAT_TARGET)
- $(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(UCLIBC_DIR)/Rules.mak
- $(MAKE) -C $(UCLIBC_DIR) oldconfig
- $(MAKE) -C $(UCLIBC_DIR) headers
- -$(MAKE) -C $(UCLIBC_DIR) pregen
- (cd $(UCLIBC_DIR)/extra/locale; \
- patch -Np0 < /usr/src/src/patches/uClibc-gen_wctype-segfault.patch; \
- $(MAKE); \
- )
- $(MAKE) -C $(UCLIBC_DIR)
-
-$(STAGING_DIR)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
- $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(STAGING_DIR) install_dev install_runtime
- $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(STAGING_DIR) utils install_utils
- # Clean up the host compiled utils...
- $(MAKE) -C $(UCLIBC_DIR)/utils clean
- (cd $(STAGING_DIR)/lib; \
- ln -fs libc.so.0 libc.so; \
- ln -fs libdl.so.0 libdl.so; \
- ln -fs libcrypt.so.0 libcrypt.so; \
- ln -fs libresolv.so.0 libresolv.so; \
- ln -fs libutil.so.0 libutil.so; \
- ln -fs libm.so.0 libm.so; \
- ln -fs libpthread.so.0 libpthread.so; \
- ln -fs libnsl.so.0 libnsl.so; \
- ln -fs libthread_db.so.1 libthread_db.so; \
- )
-
-ifneq ($(TARGET_DIR),)
-$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/lib/libc.a
- $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(TARGET_DIR) install_runtime
-
-$(TARGET_DIR)/usr/bin/ldd: $(TARGET_DIR)/lib/libc.so.0
- $(MAKE) -C $(UCLIBC_DIR) $(TARGET_CONFIGURE_OPTS) \
- PREFIX=$(TARGET_DIR) utils install_utils
-
-UCLIBC_TARGETS=$(TARGET_DIR)/lib/libc.so.0 $(TARGET_DIR)/usr/bin/ldd
-endif
-
-uclibc-configured: $(UCLIBC_DIR)/.configured
-
-uclibc: $(STAGING_DIR)/bin/$(ARCH)-linux-uclibc-gcc $(STAGING_DIR)/lib/libc.a \
- $(UCLIBC_TARGETS)
-
-uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE)
-
-uclibc-configured-source: uclibc-source
-
-uclibc-clean:
- -$(MAKE) -C $(UCLIBC_DIR) clean
- rm -f $(UCLIBC_DIR)/.config
-
-uclibc-dirclean:
- rm -rf $(UCLIBC_DIR)
-
-
-
-
-#############################################################
-#
-# uClibc for the target just needs its header files
-# and whatnot installed.
-#
-#############################################################
-
-$(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/lib/libc.a
- $(MAKE) -C $(UCLIBC_DIR) $(TARGET_CONFIGURE_OPTS) \
- PREFIX=$(TARGET_DIR) install_dev
- (cd $(TARGET_DIR)/usr/lib; \
- ln -fs /lib/libc.so.0 libc.so; \
- ln -fs /lib/libdl.so.0 libdl.so; \
- ln -fs /lib/libcrypt.so.0 libcrypt.so; \
- ln -fs /lib/libresolv.so.0 libresolv.so; \
- ln -fs /lib/libutil.so.0 libutil.so; \
- ln -fs /lib/libm.so.0 libm.so; \
- ln -fs /lib/libpthread.so.0 libpthread.so; \
- ln -fs /lib/libnsl.so.0 libnsl.so; \
- ln -fs /lib/libthread_db.so.1 libthread_db.so; \
- )
-
-ifeq ($(GCC_2_95_TOOLCHAIN),true)
-uclibc_target: gcc2_95 uclibc $(TARGET_DIR)/usr/lib/libc.a
-else
-uclibc_target: gcc3_3 uclibc $(TARGET_DIR)/usr/lib/libc.a
-endif
-
-uclibc_target-clean:
- rm -f $(TARGET_DIR)/include
-
-uclibc_target-dirclean:
- rm -f $(TARGET_DIR)/include
-
+++ /dev/null
-@euro e
-@cyrillic c
-#---------------------------------------------------------------------------
-UTF-8 yes
-8-BIT yes
-#---------------------------------------------------------------------------
-en_US.UTF-8 UTF-8
-en_US ISO-8859-1
+++ /dev/null
-#
-# Automatically generated make config: don't edit
-#
-# TARGET_alpha is not set
-# TARGET_arm is not set
-# TARGET_bfin is not set
-# TARGET_cris is not set
-# TARGET_e1 is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-TARGET_i386=y
-# TARGET_i960 is not set
-# TARGET_m68k is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nios is not set
-# TARGET_nios2 is not set
-# TARGET_powerpc is not set
-# TARGET_sh is not set
-# TARGET_sh64 is not set
-# TARGET_sparc is not set
-# TARGET_v850 is not set
-# TARGET_x86_64 is not set
-
-#
-# Target Architecture Features and Options
-#
-HAVE_ELF=y
-ARCH_SUPPORTS_LITTLE_ENDIAN=y
-TARGET_ARCH="i386"
-# CONFIG_GENERIC_386 is not set
-# CONFIG_386 is not set
-# CONFIG_486 is not set
-CONFIG_586=y
-# CONFIG_586MMX is not set
-# CONFIG_686 is not set
-# CONFIG_PENTIUMII is not set
-# CONFIG_PENTIUMIII is not set
-# CONFIG_PENTIUM4 is not set
-# CONFIG_K6 is not set
-# CONFIG_K7 is not set
-# CONFIG_ELAN is not set
-# CONFIG_CRUSOE is not set
-# CONFIG_WINCHIPC6 is not set
-# CONFIG_WINCHIP2 is not set
-# CONFIG_CYRIXIII is not set
-# CONFIG_NEHEMIAH is not set
-ARCH_LITTLE_ENDIAN=y
-# ARCH_BIG_ENDIAN is not set
-# ARCH_HAS_NO_MMU is not set
-ARCH_HAS_MMU=y
-UCLIBC_HAS_FLOATS=y
-HAS_FPU=y
-DO_C99_MATH=y
-KERNEL_SOURCE="/usr"
-C_SYMBOL_PREFIX=""
-HAVE_DOT_CONFIG=y
-
-#
-# General Library Settings
-#
-# HAVE_NO_PIC is not set
-DOPIC=y
-# HAVE_NO_SHARED is not set
-HAVE_SHARED=y
-# ARCH_HAS_NO_LDSO is not set
-BUILD_UCLIBC_LDSO=y
-FORCE_SHAREABLE_TEXT_SEGMENTS=y
-LDSO_LDD_SUPPORT=y
-LDSO_CACHE_SUPPORT=y
-# LDSO_PRELOAD_FILE_SUPPORT is not set
-LDSO_BASE_FILENAME="ld.so"
-LDSO_RUNPATH=y
-# DL_FINI_CRT_COMPAT is not set
-UCLIBC_CTOR_DTOR=y
-# HAS_NO_THREADS is not set
-UCLIBC_HAS_THREADS=y
-# PTHREADS_DEBUG_SUPPORT is not set
-UCLIBC_HAS_LFS=y
-# UCLIBC_STATIC_LDCONFIG is not set
-# MALLOC is not set
-# MALLOC_SIMPLE is not set
-MALLOC_STANDARD=y
-MALLOC_GLIBC_COMPAT=y
-UCLIBC_DYNAMIC_ATEXIT=y
-HAS_SHADOW=y
-UNIX98PTY_ONLY=y
-ASSUME_DEVPTS=y
-UCLIBC_HAS_TM_EXTENSIONS=y
-UCLIBC_HAS_TZ_CACHING=y
-UCLIBC_HAS_TZ_FILE=y
-UCLIBC_HAS_TZ_FILE_READ_MANY=y
-UCLIBC_TZ_FILE_PATH="/etc/TZ"
-
-#
-# Networking Support
-#
-# UCLIBC_HAS_IPV6 is not set
-# UCLIBC_HAS_RPC is not set
-
-#
-# String and Stdio Support
-#
-UCLIBC_HAS_STRING_GENERIC_OPT=y
-UCLIBC_HAS_STRING_ARCH_OPT=y
-UCLIBC_HAS_CTYPE_TABLES=y
-UCLIBC_HAS_CTYPE_SIGNED=y
-UCLIBC_HAS_CTYPE_UNSAFE=y
-# UCLIBC_HAS_CTYPE_CHECKED is not set
-# UCLIBC_HAS_CTYPE_ENFORCED is not set
-UCLIBC_HAS_WCHAR=y
-UCLIBC_HAS_LOCALE=y
-UCLIBC_PREGENERATED_LOCALE_DATA=y
-# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set
-# UCLIBC_HAS_XLOCALE is not set
-# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
-# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set
-UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
-# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
-UCLIBC_HAS_STDIO_BUFSIZ_4096=y
-# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
-UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
-# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
-UCLIBC_HAS_STDIO_GETC_MACRO=y
-UCLIBC_HAS_STDIO_PUTC_MACRO=y
-UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
-# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
-# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
-# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
-# UCLIBC_HAS_PRINTF_M_SPEC is not set
-UCLIBC_HAS_ERRNO_MESSAGES=y
-# UCLIBC_HAS_SYS_ERRLIST is not set
-UCLIBC_HAS_SIGNUM_MESSAGES=y
-UCLIBC_HAS_SYS_SIGLIST=y
-UCLIBC_HAS_GNU_GETOPT=y
-
-#
-# Big and Tall
-#
-UCLIBC_HAS_REGEX=y
-# UCLIBC_HAS_WORDEXP is not set
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_GLOB=y
-
-#
-# Library Installation Options
-#
-SHARED_LIB_LOADER_PREFIX="/lib"
-RUNTIME_PREFIX="/"
-DEVEL_PREFIX="/usr/"
-
-#
-# uClibc security related options
-#
-UCLIBC_SECURITY=y
-UCLIBC_BUILD_PIE=y
-UCLIBC_HAS_SSP=y
-# SSP_QUICK_CANARY is not set
-# SSP_USE_ERANDOM is not set
-PROPOLICE_BLOCK_ABRT=y
-# PROPOLICE_BLOCK_SEGV is not set
-# PROPOLICE_BLOCK_KILL is not set
-UCLIBC_BUILD_SSP=y
-UCLIBC_BUILD_RELRO=y
-UCLIBC_BUILD_NOW=y
-UCLIBC_BUILD_NOEXECSTACK=y
-
-#
-# uClibc development/debugging options
-#
-CROSS_COMPILER_PREFIX=""
-# DODEBUG is not set
-# DODEBUG_PT is not set
-# DOASSERTS is not set
-# SUPPORT_LD_DEBUG is not set
-# SUPPORT_LD_DEBUG_EARLY is not set
-WARNINGS="-Wall"
-# UCLIBC_MJN3_ONLY is not set