# Default buildroot configuration for running Linux on an Xtensa processor
# on an LX60 board.

#
# Project Options
#
BR2_BANNER="Welcome to your custom Xtensa processor based uClibc environment."
BR2_HAVE_DOT_CONFIG=y
BR2_xtensa=y
BR2_xtensa_dc232b=y
BR2_xtensa_core_name="dc232b"
BR2_ARCH="xtensa"

#
# Build options
#
BR2_WGET="wget --passive-ftp"
# BR2_STRIP_strip is not set
# BR2_STRIP_none=y

## Added by Maxim

#
# Kernel Header Options
#
BR2_KERNEL_none=y
BR2_KERNEL_HEADERS_2_6_22_1=y
BR2_DEFAULT_KERNEL_HEADERS="2.6.22.1"

#
# uClibc Options
#
BR2_UCLIBC_VERSION_0_9_30=y
# BR2_UCLIBC_VERSION_SNAPSHOT is not set
BR2_UCLIBC_CONFIG="target/xtensa/uClibc-0.9.30.config"
BR2_PTHREADS_OLD=y
# BR2_PTHREADS_NATIVE is not set
BR2_PTHREAD_DEBUG=y

#
# Binutils Options
#
BR2_BINUTILS_VERSION_2_19=y
BR2_BINUTILS_VERSION="2.19"
BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""

#
# Gcc Options
#
BR2_GCC_VERSION_4_3_2=y
# BR2_GCC_IS_SNAP is not set
BR2_GCC_VERSION="4.3.2"
BR2_TOOLCHAIN_SYSROOT=y
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
BR2_GCC_CROSS_CXX=y
BR2_INSTALL_LIBSTDCPP=y
BR2_GCC_SHARED_LIBGCC=y

#
# Gdb Options
#
BR2_PACKAGE_GDB=y
BR2_PACKAGE_GDB_SERVER=y
BR2_PACKAGE_GDB_HOST=y
# BR2_GDB_VERSION_6_2_1 is not set
# BR2_GDB_VERSION_6_3 is not set
# BR2_GDB_VERSION_6_4 is not set
# BR2_GDB_VERSION_6_5 is not set
# BR2_GDB_VERSION_6_6 is not set
# BR2_GDB_VERSION_6_7_1 is not set
BR2_GDB_VERSION_6_8=y
# BR2_GDB_VERSION_SNAPSHOT is not set
BR2_GDB_VERSION="6.8"

#
# Common Toolchain Options
#
# BR2_PACKAGE_SSTRIP_TARGET is not set
# BR2_PACKAGE_SSTRIP_HOST is not set
BR2_LARGEFILE=y
BR2_INET_RPC=y
BR2_TARGET_OPTIMIZATION="-Os -pipe"


## Added by Maxim
BR2_TOOLCHAIN_BUILDROOT=y


# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set

#
# Other development stuff
#
# BR2_PACKAGE_LIBINTL is not set
#  For NFS mount:
BR2_PACKAGE_PORTMAP=y

#
# Other stuff
#

#
# filesystem for target device
#
BR2_ROOTFS_DEVICE_TABLE="target/device/xtensa/device_table.txt"
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_CPIO_GZIP=y
BR2_TARGET_ROOTFS_INITRAMFS=y

#
# Linux Options
#
# BR2_PACKAGE_LINUX is not set

#
# Board Support Options
#
BR2_TARGET_XTENSA=y

#
# Tensilica Xtensa/Diamond based Device Support
#
BR2_TARGET_XTENSA_XTAV60=y

#
# Compressors / decompressors
#

BR2_PACKAGE_ZLIB=y
