mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
Cleanup.
git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@330 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8
This commit is contained in:
@@ -1,238 +0,0 @@
|
||||
# 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; \
|
||||
@@ -1,210 +0,0 @@
|
||||
#############################################################
|
||||
#
|
||||
# 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)
|
||||
|
||||
@@ -1,447 +0,0 @@
|
||||
# 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
|
||||
@@ -1,147 +0,0 @@
|
||||
#############################################################
|
||||
#
|
||||
# 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
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
@euro e
|
||||
@cyrillic c
|
||||
#---------------------------------------------------------------------------
|
||||
UTF-8 yes
|
||||
8-BIT yes
|
||||
#---------------------------------------------------------------------------
|
||||
en_US.UTF-8 UTF-8
|
||||
en_US ISO-8859-1
|
||||
@@ -1,186 +0,0 @@
|
||||
#
|
||||
# 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
|
||||
Reference in New Issue
Block a user