#
# Automatically generated make config: don't edit
# Fri Jan 30 00:18:55 2009
#
BR2_HAVE_DOT_CONFIG=y
BR2_VERSION="2009.02-svn"
# BR2_alpha is not set
BR2_arm=y
# BR2_armeb is not set
# BR2_avr32 is not set
# BR2_cris is not set
# BR2_ia64 is not set
# BR2_i386 is not set
# BR2_m68k is not set
# BR2_mips is not set
# BR2_mipsel is not set
# BR2_nios2 is not set
# BR2_powerpc is not set
# BR2_sh is not set
# BR2_sh64 is not set
# BR2_sparc is not set
# BR2_sparc64 is not set
# BR2_x86_64 is not set
BR2_generic_arm=y
# BR2_arm7tdmi is not set
# BR2_arm610 is not set
# BR2_arm710 is not set
# BR2_arm720t is not set
# BR2_arm920t is not set
# BR2_arm922t is not set
# BR2_arm926t is not set
# BR2_arm10t is not set
# BR2_arm1136jf_s is not set
# BR2_arm1176jz_s is not set
# BR2_arm1176jzf_s is not set
# BR2_sa110 is not set
# BR2_sa1100 is not set
# BR2_xscale is not set
# BR2_iwmmxt is not set
BR2_ARM_TYPE="GENERIC_ARM"
BR2_ARM_OABI=y
# BR2_ARM_EABI is not set
BR2_ARCH="arm"
BR2_ENDIAN="LITTLE"

#
# Target options
#

#
# Project Options
#
BR2_PROJECT="at91sam9261ek"
BR2_HOSTNAME="AT91SAM9261EK"
BR2_BANNER="Welcome to the Erik's uClibc development environment running on an AT91SAM9261EK"

#
# Preset Devices
#
# BR2_TARGET_ARMLTD is not set
BR2_BOARD_NAME="at91sam9261ek"
BR2_BOARD_PATH="target/device/Atmel/$(BR2_BOARD_NAME)"
BR2_TARGET_ATMEL=y

#
# Atmel AT91 Specific Device Support
#
BR2_TARGET_AT91=y

#
# Selection criteria
#
BR2_TARGET_ATMEL_ALL=y

#
# Device Selection
#
# BR2_TARGET_AT91RM9200 is not set
# BR2_TARGET_AT91SAM9260 is not set
# BR2_TARGET_AT91SAM9G20 is not set
BR2_TARGET_AT91SAM9261=y
# BR2_TARGET_AT91SAM9261S is not set
# BR2_TARGET_AT91SAM9RL64 is not set
# BR2_TARGET_AT91SAM9263 is not set
# BR2_TARGET_AT91SAM9G40 is not set
# BR2_TARGET_AT91SAM9M10 is not set
# BR2_TARGET_AT91SAM9M11 is not set
# BR2_TARGET_AT91SAM9XE is not set
# BR2_TARGET_AT572D940HF is not set
# BR2_TARGET_AT91CAP9 is not set

#
# Development Board Selection
#
# BR2_TARGET_AT91RM9200DF is not set
# BR2_TARGET_AT91RM9200EK is not set
# BR2_TARGET_AT91RM9200DK is not set
# BR2_TARGET_AT91SAM9260DFC is not set
# BR2_TARGET_AT91SAM9260EK is not set
# BR2_TARGET_AT91SAM9G20DFC is not set
# BR2_TARGET_AT91SAM9G20EK is not set
# BR2_TARGET_AT91SAM9XEEK is not set
BR2_TARGET_AT91SAM9261EK=y
# BR2_TARGET_AT91SAM9RL64EK is not set
# BR2_TARGET_AT91SAM9263EK is not set
# BR2_TARGET_AT572D940DCM is not set
# BR2_TARGET_AT91CAP9DK is not set
# BR2_TARGET_AT91CAP9ADK is not set
BR2_TARGET_AT91SAM9261EK_SPIMODE0=y
# BR2_TARGET_AT91SAM9261EK_SPIMODE3 is not set
# BR2_TARGET_AT91_ADVANCED_INFO is not set

#
# Package support
#

#
# Secondary locations
#
BR2_AT91_LINUXPATCH_SITE="http://maxim.org.za/AT91RM9200/2.6"
# BR2_TARGET_DATAFLASHBOOT is not set
BR2_TARGET_AT91BOOTSTRAP=y
BR2_TARGET_AT91BOOTSTRAP_BOARD="$(BOARD_NAME)"
BR2_TARGET_AT91BOOT_DATAFLASH=y
# BR2_TARGET_AT91BOOT_DATAFLASHCARD is not set
# BR2_TARGET_AT91BOOT_NANDFLASH is not set
# BR2_TARGET_AT91BOOT_FLASH is not set
# BR2_TARGET_AT91BOOT_SDCARD is not set
# BR2_TARGET_AT91BOOT_EEPROM is not set
BR2_TARGET_AT91BOOTSTRAP_MEMORY="dataflash"
BR2_AT91BOOTSTRAP_IMG_SIZE="0x32000"
BR2_AT91BOOTSTRAP_JUMP_TO_DEFAULT=y
# BR2_AT91BOOTSTRAP_JUMP_TO_HIGH_SDRAM is not set
# BR2_AT91BOOTSTRAP_JUMP_TO_START_OF_SDRAM is not set
BR2_AT91BOOTSTRAP_JUMP_ADDR="0x23F00000"

#
# It will be copied to $(BR2_AT91BOOTSTRAP_JUMP_ADDR)
#
# BR2_TARGET_KWIKBYTE is not set
BR2_KERNEL_ARCH_PATCH_VERSION="2.6.28"
BR2_KERNEL_ARCH_PATCH_DIR="target/device/Atmel/arch-arm/kernel-patches-$(BR2_KERNEL_ARCH_PATCH_VERSION)"

#
# Generic System Support
#
# BR2_TARGET_GENERIC_ACCESS_POINT is not set
# BR2_TARGET_GENERIC_FIREWALL is not set
# BR2_TARGET_GENERIC_DEV_SYSTEM is not set

#
# Build options
#
BR2_WGET="wget --passive-ftp"
BR2_SVN="svn"
BR2_GIT="git"
BR2_ZCAT="gzip -d -c"
BR2_BZCAT="bzcat"
BR2_TAR_OPTIONS=""
BR2_DL_DIR="$(TOPDIR)/dl"

#
# Mirrors and Download locations
#
BR2_PRIMARY_SITE=""
BR2_BACKUP_SITE="http://sources.buildroot.net/"
BR2_SOURCEFORGE_MIRROR="easynews"
BR2_KERNEL_MIRROR="http://www.kernel.org/pub/"
BR2_GNU_MIRROR="http://ftp.gnu.org/pub/gnu"
BR2_DEBIAN_MIRROR="http://ftp.debian.org"

#
# Atmel Mirrors
#
BR2_ATMEL_MIRROR="ftp://www.at91.com/pub/buildroot"
BR2_AT91_PATCH_MIRROR="http://maxim.org.za/AT91RM9200/2.6/"
BR2_STAGING_DIR="$(BASE_DIR)/staging"
# BR2_FPU_SUFFIX is not set
BR2_TOPDIR_PREFIX=""
BR2_TOPDIR_SUFFIX=""
BR2_ROOTFS_PREFIX="at91sam9261ek-NAND"
BR2_JLEVEL=2
# BR2_DEPRECATED is not set
# BR2_ENABLE_DEBUG is not set
BR2_STRIP_strip=y
# BR2_STRIP_sstrip is not set
# BR2_STRIP_none is not set
# BR2_OPTIMIZE_0 is not set
# BR2_OPTIMIZE_1 is not set
# BR2_OPTIMIZE_2 is not set
# BR2_OPTIMIZE_3 is not set
BR2_OPTIMIZE_S=y
# BR2_PREFER_STATIC_LIB is not set
# BR2_HAVE_DOCUMENTATION is not set
# BR2_HAVE_DEVFILES is not set

#
# Toolchain
#
BR2_TOOLCHAIN_BUILDROOT=y
# BR2_TOOLCHAIN_EXTERNAL is not set

#
# Kernel Header Options
#
# BR2_KERNEL_HEADERS_2_4_31 is not set
# BR2_KERNEL_HEADERS_2_6_20_4 is not set
# BR2_KERNEL_HEADERS_2_6_20 is not set
# BR2_KERNEL_HEADERS_2_6_21_5 is not set
# BR2_KERNEL_HEADERS_2_6_21 is not set
# BR2_KERNEL_HEADERS_2_6_22_1 is not set
# BR2_KERNEL_HEADERS_2_6_22_10 is not set
# BR2_KERNEL_HEADERS_2_6_22 is not set
# BR2_KERNEL_HEADERS_2_6_23 is not set
# BR2_KERNEL_HEADERS_2_6_24 is not set
# BR2_KERNEL_HEADERS_2_6_25 is not set
# BR2_KERNEL_HEADERS_2_6_26 is not set
# BR2_KERNEL_HEADERS_2_6_27 is not set
BR2_KERNEL_HEADERS_2_6_28=y
# BR2_KERNEL_HEADERS_SNAP is not set
BR2_DEFAULT_KERNEL_HEADERS="2.6.28.2"

#
# uClibc Options
#
# BR2_UCLIBC_VERSION_0_9_29 is not set
BR2_UCLIBC_VERSION_0_9_30=y
# BR2_UCLIBC_VERSION_SNAPSHOT is not set
BR2_UCLIBC_CONFIG="toolchain/uClibc/uClibc-0.9.30.config"
BR2_ENABLE_LOCALE=y
# BR2_PTHREADS_NONE is not set
# BR2_PTHREADS is not set
BR2_PTHREADS_OLD=y
# BR2_PTHREADS_NATIVE is not set
# BR2_PTHREAD_DEBUG is not set
BR2_PROGRAM_INVOCATION=y
# BR2_UCLIBC_INSTALL_TEST_SUITE is not set

#
# Binutils Options
#
# BR2_BINUTILS_VERSION_2_17 is not set
# BR2_BINUTILS_VERSION_2_17_50_0_17 is not set
# BR2_BINUTILS_VERSION_2_18 is not set
# BR2_BINUTILS_VERSION_2_18_50_0_1 is not set
# BR2_BINUTILS_VERSION_2_18_50_0_3 is not set
# BR2_BINUTILS_VERSION_2_18_50_0_6 is not set
# BR2_BINUTILS_VERSION_2_18_50_0_8 is not set
# BR2_BINUTILS_VERSION_2_18_50_0_9 is not set
BR2_BINUTILS_VERSION_2_19=y
BR2_BINUTILS_VERSION="2.19"
BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""

#
# GCC Options
#
# BR2_GCC_VERSION_3_4_6 is not set
# BR2_GCC_VERSION_4_0_4 is not set
# BR2_GCC_VERSION_4_1_2 is not set
# BR2_GCC_VERSION_4_2_1 is not set
# BR2_GCC_VERSION_4_2_2 is not set
# BR2_GCC_VERSION_4_2_3 is not set
# BR2_GCC_VERSION_4_2_4 is not set
# BR2_GCC_VERSION_4_3_1 is not set
BR2_GCC_VERSION_4_3_2=y
BR2_GCC_SUPPORTS_SYSROOT=y
BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE=y
BR2_GCC_VERSION="4.3.2"
BR2_TOOLCHAIN_SYSROOT=y
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
BR2_GCC_CROSS_CXX=y
# BR2_GCC_CROSS_FORTRAN is not set
BR2_INSTALL_LIBSTDCPP=y
# BR2_INSTALL_LIBGCJ is not set
# BR2_INSTALL_OBJC is not set
# BR2_INSTALL_FORTRAN is not set
BR2_GCC_SHARED_LIBGCC=y

#
# Ccache Options
#
BR2_CCACHE=y
BR2_CCACHE_DIR="$(TOOLCHAIN_DIR)/ccache-$(CCACHE_VER)/cache"

#
# Gdb Options
#
# BR2_PACKAGE_GDB is not set
# BR2_PACKAGE_GDB_SERVER is not set
# BR2_PACKAGE_GDB_HOST is not set

#
# Common Toolchain Options
#
# BR2_ELF2FLT is not set
# BR2_MKLIBS is not set
# BR2_PACKAGE_SSTRIP_TARGET is not set
BR2_PACKAGE_SSTRIP_HOST=y
BR2_LARGEFILE=y
BR2_INET_IPV6=y
BR2_INET_RPC=y
BR2_USE_WCHAR=y
# BR2_SOFT_FLOAT is not set
# BR2_VFP_FLOAT is not set
BR2_TARGET_OPTIMIZATION="-Os -pipe"
BR2_CROSS_TOOLCHAIN_TARGET_UTILS=y

#
# Package Selection for the target
#
BR2_PACKAGE_BUSYBOX=y
# BR2_BUSYBOX_VERSION_1_2_2_1 is not set
# BR2_BUSYBOX_VERSION_1_6_1 is not set
# BR2_BUSYBOX_VERSION_1_7_X is not set
# BR2_BUSYBOX_VERSION_1_8_X is not set
# BR2_BUSYBOX_VERSION_1_9_X is not set
# BR2_BUSYBOX_VERSION_1_10_X is not set
# BR2_BUSYBOX_VERSION_1_11_X is not set
# BR2_BUSYBOX_VERSION_1_12_X is not set
BR2_BUSYBOX_VERSION_1_13_X=y
# BR2_PACKAGE_BUSYBOX_SNAPSHOT is not set
BR2_BUSYBOX_VERSION="1.13.2"
BR2_PACKAGE_BUSYBOX_FULLINSTALL=y
BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.13.x.config"
# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set

#
# The minimum needed to build a uClibc development system
#
# BR2_PACKAGE_FLEX is not set
# BR2_PACKAGE_GCC_TARGET is not set
# BR2_PACKAGE_MAKE is not set

#
# Other development stuff
#
# BR2_PACKAGE_AUTOCONF is not set
# BR2_PACKAGE_AUTOMAKE is not set
# BR2_PACKAGE_BISON is not set
# BR2_PACKAGE_CCACHE_TARGET is not set
# BR2_PACKAGE_CVS is not set
# BR2_PACKAGE_DISTCC is not set
# BR2_PACKAGE_DMALLOC is not set
# BR2_PACKAGE_FAKEROOT is not set
BR2_PACKAGE_GETTEXT=y
# BR2_PACKAGE_GETTEXT_STATIC is not set
BR2_PACKAGE_LIBINTL=y
# BR2_PACKAGE_LIBGMP is not set
# BR2_PACKAGE_GPERF is not set
# BR2_PACKAGE_LIBMPFR is not set
# BR2_PACKAGE_LIBTOOL is not set
# BR2_PACKAGE_M4 is not set
# BR2_PACKAGE_OPROFILE is not set
BR2_PACKAGE_READLINE=y
BR2_PACKAGE_READLINE_TARGET=y
# BR2_PACKAGE_READLINE_HEADERS is not set
# BR2_PACKAGE_PCRE is not set

#
# Other stuff
#
# BR2_PACKAGE_AT is not set
# BR2_PACKAGE_BEECRYPT is not set
# BR2_PACKAGE_BERKELEYDB is not set
# BR2_PACKAGE_BSDIFF is not set
# BR2_PACKAGE_CUPS is not set
# BR2_PACKAGE_CUSTOMIZE is not set
# BR2_PACKAGE_FILE is not set
# BR2_PACKAGE_GAMIN is not set
BR2_PACKAGE_ICU=y
# BR2_PACKAGE_KEXEC is not set
# BR2_PACKAGE_LIBCONFIG is not set
# BR2_PACKAGE_LIBCONFUSE is not set
# BR2_PACKAGE_LIBDAEMON is not set
# BR2_PACKAGE_LIBELF is not set
# BR2_PACKAGE_LIBEVENT is not set
# BR2_PACKAGE_LIBGCRYPT is not set
# BR2_PACKAGE_LIBGPG_ERROR is not set
# BR2_PACKAGE_LIBICONV is not set
# BR2_PACKAGE_LIBIDN is not set
BR2_PACKAGE_LIBLOCKFILE=y
BR2_PACKAGE_LIBOIL=y
# BR2_PACKAGE_LIBSYSFS is not set
BR2_PACKAGE_LOCKFILE_PROGS=y
# BR2_PACKAGE_LOGROTATE is not set
# BR2_PACKAGE_LSOF is not set
# BR2_PACKAGE_LTP-TESTSUITE is not set
# BR2_PACKAGE_LTRACE is not set
# BR2_PACKAGE_MEMSTAT is not set
# BR2_PACKAGE_NG_SPICE_REWORK is not set
# BR2_PACKAGE_POPT is not set
# BR2_PACKAGE_SCREEN is not set
# BR2_PACKAGE_STARTUP_NOTIFICATION is not set
# BR2_PACKAGE_STRACE is not set
# BR2_PACKAGE_SUDO is not set

#
# Database
#
# BR2_PACKAGE_MYSQL_CLIENT is not set
BR2_PACKAGE_SQLITE=y

#
# Networking
#

#
# Networking applications
#
# BR2_PACKAGE_ARGUS is not set
# BR2_PACKAGE_AVAHI is not set
# BR2_PACKAGE_AXEL is not set
# BR2_PACKAGE_BIND is not set
# BR2_PACKAGE_BRIDGE is not set
# BR2_PACKAGE_DNSMASQ is not set
# BR2_PACKAGE_DROPBEAR is not set
# BR2_PACKAGE_ETHTOOL is not set
# BR2_PACKAGE_HASERL is not set
# BR2_PACKAGE_IFPLUGD is not set
# BR2_PACKAGE_IPERF is not set
# BR2_PACKAGE_IPROUTE2 is not set

#
# ipsec-tools	- disabled (requires openssl, flex and the flex library (libfl.a) )
#
BR2_PACKAGE_IPTABLES=y
# BR2_PACKAGE_KISMET is not set
# BR2_PACKAGE_L2TP is not set
# BR2_PACKAGE_LIBCGI is not set
# BR2_PACKAGE_LIBCGICC is not set
# BR2_PACKAGE_LIBCURL is not set
# BR2_PACKAGE_LIBDNET is not set
# BR2_PACKAGE_LIBEXOSIP2 is not set
# BR2_PACKAGE_LIBOSIP2 is not set
# BR2_PACKAGE_LIBPCAP is not set
# BR2_PACKAGE_LIBUPNP is not set
# BR2_PACKAGE_LINKS is not set
BR2_PACKAGE_LRZSZ=y
# BR2_PACKAGE_MDNSRESPONDER is not set
BR2_PACKAGE_MICROCOM=y
# BR2_PACKAGE_MIIDIAG is not set
# BR2_PACKAGE_MROUTED is not set
# BR2_PACKAGE_MUTT is not set
# BR2_PACKAGE_NBD is not set
BR2_PACKAGE_NCFTP=y

#
# ncFTP tools selection
#
BR2_PACKAGE_NCFTP_GET=y
BR2_PACKAGE_NCFTP_PUT=y
BR2_PACKAGE_NCFTP_LS=y
BR2_PACKAGE_NCFTP_BATCH=y
# BR2_PACKAGE_NCFTP_SPOOLER is not set
# BR2_PACKAGE_NCFTP_BOOKMARKS is not set
# BR2_PACKAGE_NEON is not set
# BR2_PACKAGE_NETKITBASE is not set
# BR2_PACKAGE_NETKITTELNET is not set
# BR2_PACKAGE_NETPLUG is not set
# BR2_PACKAGE_NETSNMP is not set
# BR2_PACKAGE_NFS_UTILS is not set
BR2_PACKAGE_NTP=y
# BR2_PACKAGE_NTP_SNTP is not set
# BR2_PACKAGE_OLSR is not set
# BR2_PACKAGE_OPENNTPD is not set
# BR2_PACKAGE_OPENSSH is not set
# BR2_PACKAGE_OPENSSL is not set
# BR2_PACKAGE_OPENVPN is not set
# BR2_PACKAGE_OPENSWAN is not set
BR2_PACKAGE_PORTMAP=y
# BR2_PACKAGE_PPPD is not set
# BR2_PACKAGE_RADVD is not set
# BR2_PACKAGE_RP_PPPOE is not set
# BR2_PACKAGE_PPTP_LINUX is not set
BR2_PACKAGE_PROFTPD=y

#
# quagga suite
#
# BR2_PACKAGE_QUAGGA_ZEBRA is not set
# BR2_PACKAGE_QUAGGA_BGPD is not set
# BR2_PACKAGE_QUAGGA_RIPD is not set
# BR2_PACKAGE_QUAGGA_RIPNGD is not set
# BR2_PACKAGE_QUAGGA_OSPFD is not set
# BR2_PACKAGE_QUAGGA_OSPF6D is not set
# BR2_PACKAGE_QUAGGA_WATCHQUAGGA is not set
# BR2_PACKAGE_QUAGGA_ISISD is not set
# BR2_PACKAGE_RSYNC is not set
# BR2_PACKAGE_SAMBA is not set
BR2_PACKAGE_SOCAT=y
BR2_PACKAGE_SOCAT_PREDEF_CRDLY_SHIFT="9"
BR2_PACKAGE_SOCAT_PREDEF_TABDLY_SHIFT="11"
BR2_PACKAGE_SOCAT_PREDEF_CSIZE_SHIFT="4"
# BR2_PACKAGE_STUNNEL is not set
# BR2_PACKAGE_TCPDUMP is not set
# BR2_PACKAGE_DHCPDUMP is not set
BR2_PACKAGE_TFTPD=y
# BR2_PACKAGE_TN5250 is not set
# BR2_PACKAGE_TTCP is not set
# BR2_PACKAGE_UDPCAST is not set
# BR2_PACKAGE_VPNC is not set
# BR2_PACKAGE_VSFTPD is not set
# BR2_PACKAGE_VTUN is not set
# BR2_PACKAGE_WEBIF is not set
# BR2_PACKAGE_WIRELESS_TOOLS is not set

#
# Hardware handling / blockdevices and filesystem maintenance
#
BR2_PACKAGE_DBUS=y
# BR2_DBUS_EXPAT is not set
BR2_DBUS_LIBXML2=y
# BR2_PACKAGE_DBUS_GLIB is not set
# BR2_PACKAGE_DEVMEM2 is not set
# BR2_PACKAGE_DM is not set
# BR2_PACKAGE_DMRAID is not set
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_BADBLOCKS=y
BR2_PACKAGE_E2FSPROGS_BLKID=y
BR2_PACKAGE_E2FSPROGS_CHATTR=y
BR2_PACKAGE_E2FSPROGS_DUMPE2FS=y
BR2_PACKAGE_E2FSPROGS_E2FSCK=y
BR2_PACKAGE_E2FSPROGS_E2LABEL=y
BR2_PACKAGE_E2FSPROGS_FILEFRAG=y
BR2_PACKAGE_E2FSPROGS_FINDFS=y
BR2_PACKAGE_E2FSPROGS_FSCK=y
BR2_PACKAGE_E2FSPROGS_LOGSAVE=y
BR2_PACKAGE_E2FSPROGS_LSATTR=y
BR2_PACKAGE_E2FSPROGS_MKE2FS=y
BR2_PACKAGE_E2FSPROGS_MKLOSTFOUND=y
BR2_PACKAGE_E2FSPROGS_TUNE2FS=y
BR2_PACKAGE_E2FSPROGS_UUIDGEN=y
BR2_PACKAGE_EEPROG=y
# BR2_PACKAGE_FCONFIG is not set
# BR2_PACKAGE_FIS is not set
# BR2_PACKAGE_LIBFUSE is not set
# BR2_PACKAGE_GADGETFS_TEST is not set
# BR2_PACKAGE_HAL is not set
# BR2_PACKAGE_HWDATA is not set
# BR2_PACKAGE_I2C_TOOLS is not set
# BR2_PACKAGE_INPUT_TOOLS is not set
# BR2_PACKAGE_IOSTAT is not set
# BR2_PACKAGE_LIBAIO is not set
# BR2_PACKAGE_LIBRAW1394 is not set
BR2_PACKAGE_LIBUSB=y
# BR2_PACKAGE_LM_SENSORS is not set
# BR2_PACKAGE_LVM2 is not set
# BR2_PACKAGE_MDADM is not set
# BR2_PACKAGE_MEMTESTER is not set
BR2_PACKAGE_MKDOSFS=y
BR2_PACKAGE_MTD=y
BR2_PACKAGE_MTD_UTILS=y
# BR2_PACKAGE_MTD_20061007 is not set
# BR2_PACKAGE_MTD_20050122 is not set
# BR2_PACKAGE_MTD_UTILS_GIT is not set

#
# MTD tools selection
#
BR2_PACKAGE_MTD_DOCFDISK=y
BR2_PACKAGE_MTD_DOC_LOADBIOS=y
BR2_PACKAGE_MTD_FLASHCP=y
BR2_PACKAGE_MTD_FLASH_ERASE=y
BR2_PACKAGE_MTD_FLASH_ERASEALL=y
BR2_PACKAGE_MTD_FLASH_INFO=y
BR2_PACKAGE_MTD_FLASH_LOCK=y
BR2_PACKAGE_MTD_FLASH_UNLOCK=y
BR2_PACKAGE_MTD_FTL_CHECK=y
BR2_PACKAGE_MTD_FTL_FORMAT=y
BR2_PACKAGE_MTD_JFFS2DUMP=y
BR2_PACKAGE_MTD_MKFSJFFS2=y
BR2_PACKAGE_MTD_MKFSJFFS=y
BR2_PACKAGE_MTD_MTD_DEBUG=y
BR2_PACKAGE_MTD_NANDDUMP=y
BR2_PACKAGE_MTD_NANDWRITE=y
BR2_PACKAGE_MTD_NFTL_FORMAT=y
BR2_PACKAGE_MTD_NFTLDUMP=y
BR2_PACKAGE_MTD_SUMTOOL=y
# BR2_PACKAGE_NTFS-3G is not set
# BR2_PACKAGE_PCIUTILS is not set
BR2_PACKAGE_SETSERIAL=y
# BR2_PACKAGE_SMARTMONTOOLS is not set
BR2_PACKAGE_UDEV_VOLUME_ID=y
BR2_PACKAGE_UDEV_SCSI_ID=y
BR2_PACKAGE_USBMOUNT=y
BR2_PACKAGE_USBUTILS=y
# BR2_PACKAGE_WIPE is not set
# BR2_PACKAGE_XFSPROGS is not set

#
# Audio and video libraries and applications
#
BR2_PACKAGE_ALSA_LIB=y
BR2_PACKAGE_ALSA_LIB_PYTHON=y
BR2_PACKAGE_ALSA_UTILS=y

#
# ALSA utils selection
#
BR2_PACKAGE_ALSA_UTILS_ALSACONF=y
BR2_PACKAGE_ALSA_UTILS_ALSACTL=y
BR2_PACKAGE_ALSA_UTILS_ALSAMIXER=y
# BR2_PACKAGE_ALSA_UTILS_AMIDI is not set
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
# BR2_PACKAGE_ALSA_UTILS_ARECORD is not set
# BR2_PACKAGE_ALSA_UTILS_IECSET is not set
# BR2_PACKAGE_ALSA_UTILS_ACONNECT is not set
# BR2_PACKAGE_ALSA_UTILS_APLAYMIDI is not set
# BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI is not set
# BR2_PACKAGE_ALSA_UTILS_ASEQDUMP is not set
# BR2_PACKAGE_ALSA_UTILS_ASEQNET is not set
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y

#
# asterisk	- disabled (required openssl and mpg123)
#
BR2_PACKAGE_AUMIX=y
# BR2_PACKAGE_GSTREAMER is not set
BR2_PACKAGE_LIBID3TAG=y
BR2_PACKAGE_LIBMAD=y
# BR2_PACKAGE_LIBMAD_TARGET_HEADERS is not set
# BR2_PACKAGE_LIBMPD is not set
BR2_PACKAGE_LIBOGG=y
BR2_PACKAGE_LIBSNDFILE=y
# BR2_PACKAGE_LIBTHEORA is not set
BR2_PACKAGE_LIBVORBIS=y
BR2_PACKAGE_LIBVORBIS_TREMOR=y
BR2_PACKAGE_MADPLAY=y
BR2_PACKAGE_MADPLAY_ALSA=y
BR2_PACKAGE_MPG123=y
BR2_PACKAGE_MPG123_ALSA=y
BR2_PACKAGE_MPLAYER=y
# BR2_PACKAGE_SPEEX is not set
# BR2_PACKAGE_FESTIVAL is not set
# BR2_PACKAGE_VLC is not set

#
# Graphic libraries and applications (graphic/text)
#

#
# text rendering libraries
#
BR2_PACKAGE_NCURSES=y
BR2_PACKAGE_NCURSES_TARGET_PANEL=y
BR2_PACKAGE_NCURSES_TARGET_FORM=y
BR2_PACKAGE_NCURSES_TARGET_MENU=y
BR2_PACKAGE_NCURSES_TARGET_HEADERS=y
# BR2_PACKAGE_NEWT is not set
# BR2_PACKAGE_SLANG is not set

#
# text rendering applications
#
BR2_PACKAGE_DIALOG=y

#
# graphic libraries
#
BR2_PACKAGE_DIRECTFB=y
BR2_PACKAGE_DIRECTFB_MULTI=y
BR2_PACKAGE_DIRECTFB_KEYBOARD=y
BR2_PACKAGE_DIRECTFB_SERIALMOUSE=y
# BR2_PACKAGE_DIRECTFB_PNG is not set
BR2_PACKAGE_DIRECTFB_TSLIB=y
BR2_PACKAGE_DIRECTFB_GIF=y
BR2_PACKAGE_DIRECTFB_JPEG=y
# BR2_PACKAGE_DIRECTFB_EXAMPLES is not set
BR2_PACKAGE_FBDUMP=y
# BR2_PACKAGE_IMAGEMAGICK is not set
BR2_PACKAGE_JPEG=y
# BR2_PACKAGE_LIBART is not set
BR2_PACKAGE_LIBPNG=y
BR2_PACKAGE_LIBUNGIF=y
BR2_PACKAGE_LINUX_FUSION=y
BR2_PACKAGE_LITE=y
BR2_PACKAGE_PIXMAN=y
BR2_PACKAGE_SAWMAN=y
BR2_PACKAGE_SDL=y

#
# SDL options selection
#
BR2_PACKAGE_SDL_FBCON=y
BR2_PACKAGE_SDL_DIRECTFB=y
# BR2_PACKAGE_SDL_QTOPIA is not set
# BR2_PACKAGE_SDL_X11 is not set
BR2_PACKAGE_SDL_IMAGE=y

#
# SDL_image file format support
#
# BR2_PACKAGE_SDL_IMAGE_BMP is not set
BR2_PACKAGE_SDL_IMAGE_GIF=y
BR2_PACKAGE_SDL_IMAGE_JPEG=y
# BR2_PACKAGE_SDL_IMAGE_LBM is not set
# BR2_PACKAGE_SDL_IMAGE_PCX is not set
# BR2_PACKAGE_SDL_IMAGE_PNG is not set
# BR2_PACKAGE_SDL_IMAGE_PNM is not set
# BR2_PACKAGE_SDL_IMAGE_TARGA is not set
# BR2_PACKAGE_SDL_IMAGE_TIFF is not set
# BR2_PACKAGE_SDL_IMAGE_XCF is not set
# BR2_PACKAGE_SDL_IMAGE_XPM is not set
# BR2_PACKAGE_SDL_IMAGE_XV is not set
BR2_PACKAGE_SDL_MIXER=y
BR2_PACKAGE_SDL_NET=y
BR2_PACKAGE_SDL_TTF=y
# BR2_PACKAGE_TIFF is not set

#
# busybox graphic applications
#

#
# --> May be broken in busybox
#
BR2_PACKAGE_FBV=y
BR2_PACKAGE_FBSET=y

#
# other GUIs
#
# BR2_PACKAGE_QT is not set
BR2_PACKAGE_XSERVER_none=y
# BR2_PACKAGE_XSERVER_xorg is not set
# BR2_PACKAGE_XSERVER_tinyx is not set

#
# X libraries and helper libraries
#
BR2_PACKAGE_ATK=y
BR2_PACKAGE_CAIRO=y
BR2_PACKAGE_PANGO=y
# BR2_PACKAGE_LIBDRM is not set
BR2_PACKAGE_LIBERATION=y
# BR2_PACKAGE_LIBGLADE is not set
BR2_PACKAGE_LIBGLIB2=y
BR2_PACKAGE_LIBGTK2=y
BR2_PACKAGE_LIBGTK2_ENGINES=y

#
# GTK Themes
#
BR2_PACKAGE_GTK2_THEME_HICOLOR=y
# BR2_PACKAGE_LIBSEXY is not set
# BR2_PACKAGE_OPENMOTIF is not set
BR2_PACKAGE_FONTCONFIG=y
BR2_PACKAGE_FREETYPE=y
# BR2_FREETYPE_VERSION_2_2_1 is not set
BR2_FREETYPE_VERSION_2_3_7=y
BR2_FREETYPE_VERSION="2.3.7"
BR2_PACKAGE_TSLIB=y
# BR2_PACKAGE_WEBKIT is not set

#
# X Window managers
#
# BR2_PACKAGE_MATCHBOX is not set

#
# X applications
#
# BR2_PACKAGE_ALSAMIXERGUI is not set

#
# dillo		- disabled (requires jpeg,libglib12,libgtk12,zlib,libpng and Xorg(7))
#
# BR2_PACKAGE_GQVIEW is not set
# BR2_PACKAGE_GMPC is not set
# BR2_PACKAGE_GTKPERF is not set
# BR2_PACKAGE_LEAFPAD is not set

#
# midori		- disabled (requires Xorg(7))
#
# BR2_PACKAGE_PCMANFM is not set
# BR2_PACKAGE_SYLPHEED is not set
# BR2_PACKAGE_TORSMO is not set
# BR2_PACKAGE_X11VNC is not set
# BR2_PACKAGE_XPDF is not set
# BR2_PACKAGE_XSTROKE is not set
# BR2_PACKAGE_XVKBD is not set

#
# Compressors / decompressors
#
BR2_PACKAGE_LZO=y
BR2_PACKAGE_LZMA=y
# BR2_PACKAGE_LZMA_HEADERS is not set
BR2_PACKAGE_LZMA_HOST=y
BR2_PACKAGE_ZLIB=y
# BR2_PACKAGE_ZLIB_TARGET_HEADERS is not set

#
# Package managers
#
# BR2_PACKAGE_IPKG is not set
# BR2_PACKAGE_PORTAGE is not set

#
# Interpreter languages / Scripting
#
# BR2_PACKAGE_LUA is not set
BR2_PACKAGE_MICROPERL=y
BR2_PACKAGE_MICROPERL_MODULES=""
BR2_PACKAGE_PYTHON=y
# BR2_PACKAGE_PYTHON_DEV is not set
BR2_PACKAGE_PYTHON_PY_ONLY=y
# BR2_PACKAGE_PYTHON_PYC_ONLY is not set
# BR2_PACKAGE_PYTHON_PY_PYC is not set

#
# The following modules are unusual or require extra libraries
#
# BR2_PACKAGE_PYTHON_BSDDB is not set
BR2_PACKAGE_PYTHON_CODECSCJK=y
# BR2_PACKAGE_PYTHON_CURSES is not set
# BR2_PACKAGE_PYTHON_GDBM is not set
# BR2_PACKAGE_PYTHON_NIS is not set
# BR2_PACKAGE_PYTHON_PYEXPAT is not set
# BR2_PACKAGE_PYTHON_READLINE is not set
# BR2_PACKAGE_PYTHON_SSL is not set
# BR2_PACKAGE_PYTHON_TKINTER is not set
BR2_PACKAGE_PYTHON_UNICODEDATA=y
# BR2_PACKAGE_RUBY is not set
# BR2_PACKAGE_TCL is not set
BR2_PACKAGE_PHP=y
BR2_PACKAGE_PHP_CLI=y
BR2_PACKAGE_PHP_CGI=y
BR2_PACKAGE_PHP_FASTCGI=y

#
# PHP Extensions
#
# BR2_PACKAGE_PHP_EXT_SOCKETS is not set
BR2_PACKAGE_PHP_EXT_POSIX=y
BR2_PACKAGE_PHP_EXT_SPL=y
BR2_PACKAGE_PHP_EXT_SESSION=y
BR2_PACKAGE_PHP_EXT_LIBXML2=y
# BR2_PACKAGE_PHP_EXT_SIMPLEXML is not set
BR2_PACKAGE_PHP_EXT_ZLIB=y
# BR2_PACKAGE_PHP_EXT_EXIF is not set
# BR2_PACKAGE_PHP_EXT_FTP is not set
# BR2_PACKAGE_PHP_EXT_GETTEXT is not set
# BR2_PACKAGE_PHP_EXT_JSON is not set
# BR2_PACKAGE_PHP_EXT_READLINE is not set
# BR2_PACKAGE_PHP_EXT_NCURSES is not set
# BR2_PACKAGE_PHP_EXT_SYSVMSG is not set
# BR2_PACKAGE_PHP_EXT_SYSVSEM is not set
# BR2_PACKAGE_PHP_EXT_SYSVSHM is not set
# BR2_PACKAGE_PHP_EXT_ZIP is not set
# BR2_PACKAGE_PHP_EXT_FILTER is not set

#
# Database extensions
#
BR2_PACKAGE_PHP_EXT_SQLITE=y
# BR2_PACKAGE_PHP_EXT_SQLITE_UTF8 is not set
BR2_PACKAGE_PHP_EXT_PDO=y
BR2_PACKAGE_PHP_EXT_PDO_SQLITE=y
# BR2_PACKAGE_PHP_EXT_PDO_MYSQL is not set

#
# XML handling
#
BR2_PACKAGE_EXPAT=y
# BR2_PACKAGE_EZXML is not set
BR2_PACKAGE_LIBXML2=y
BR2_PACKAGE_LIBXSLT=y
# BR2_PACKAGE_XERCES is not set

#
# Java
#
# BR2_PACKAGE_CLASSPATH is not set

#
# Games
#
# BR2_PACKAGE_GNUCHESS is not set
# BR2_PACKAGE_MAGICCUBE4D is not set
# BR2_PACKAGE_PRBOOM is not set
# BR2_PACKAGE_RUBIX is not set
# BR2_PACKAGE_VICE is not set
# BR2_PACKAGE_XBOARD is not set

#
# Target filesystem options
#

#
# filesystem for target device
#
BR2_ROOTFS_DEVICE_TABLE="target/device/Atmel/root/device_table.txt"
# BR2_TARGET_ROOTFS_CRAMFS is not set
# BR2_TARGET_ROOTFS_CLOOP is not set
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_BLOCKS=0
BR2_TARGET_ROOTFS_EXT2_INODES=0
BR2_TARGET_ROOTFS_EXT2_RESBLKS=0
BR2_TARGET_ROOTFS_EXT2_SQUASH=y

BR2_TARGET_ROOTFS_EXT2_NONE=y
# BR2_TARGET_ROOTFS_EXT2_GZIP is not set
# BR2_TARGET_ROOTFS_EXT2_BZIP2 is not set
# BR2_TARGET_ROOTFS_EXT2_LZMA is not set

BR2_TARGET_ROOTFS_JFFS2=y
# BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056 is not set
# BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528 is not set
BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K=y
# BR2_TARGET_ROOTFS_JFFS2_FLASH_128 is not set
# BR2_TARGET_ROOTFS_JFFS2_FLASH_64 is not set
# BR2_TARGET_ROOTFS_JFFS2_CUSTOM is not set
BR2_TARGET_ROOTFS_JFFS2_PAGESIZE=0x800
BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x20000
BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
# BR2_JFFS2_TARGET_SREC is not set
BR2_TARGET_ROOTFS_JFFS2_PAD=y
BR2_TARGET_ROOTFS_JFFS2_PADSIZE=0x02000000
BR2_TARGET_ROOTFS_JFFS2_LE=y
# BR2_TARGET_ROOTFS_JFFS2_BE is not set
# BR2_TARGET_ROOTFS_JFFS2_SQUASH is not set
# BR2_TARGET_ROOTFS_JFFS2_SUMMARY is not set


# BR2_TARGET_ROOTFS_UBIFS is not set
# BR2_TARGET_ROOTFS_SQUASHFS is not set
# BR2_TARGET_ROOTFS_TAR is not set
# BR2_TARGET_ROOTFS_CPIO is not set
# BR2_TARGET_ROOTFS_INITRAMFS is not set
# BR2_TARGET_ROOTFS_ROMFS is not set

#
# bootloader for target device
#
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="$(BOARD_NAME)"
BR2_TARGET_UBOOT_2009_01=y
# BR2_TARGET_UBOOT_2008_10 is not set
BR2_UBOOT_VERSION="2009.01"
BR2_TARGET_U_BOOT_2009_01_ARCH_AT91=y
BR2_TARGET_U_BOOT_ARCH_AT91_PATCH_DIR="target/device/Atmel/arch-arm/u-boot/2009.01"
BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR=""
# BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD is not set
BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASH=y
# BR2_TARGET_UBOOT_BOOTSOURCE_NANDFLASH is not set
# BR2_TARGET_UBOOT_BOOTSOURCE_FLASH is not set
# BR2_TARGET_UBOOT_BOOTSOURCE_SDCARD is not set
# BR2_TARGET_UBOOT_BOOTSOURCE_EEPROM is not set
BR2_TARGET_UBOOT_BOOTSOURCE="dataflash"
# BR2_TARGET_UBOOT_TOOL_MKIMAGE is not set
# BR2_TARGET_UBOOT_TOOL_ENV is not set
BR2_TARGET_UBOOT_DATAFLASH_SIZE_8MB=y
# BR2_TARGET_UBOOT_DATAFLASH_SIZE_4MB is not set
# BR2_TARGET_UBOOT_DATAFLASH_SIZE_2MB is not set
# BR2_TARGET_UBOOT_DATAFLASH_SIZE_1MB is not set
# BR2_TARGET_UBOOT_DATAFLASH_SIZE_0_50MB is not set
# BR2_TARGET_UBOOT_DATAFLASH_SIZE_0_25MB is not set
BR2_TARGET_UBOOT_END_OF_FLASH="C083FFFF"
BR2_TARGET_UBOOT_KERNEL_LOCATION="C0042000"
BR2_TARGET_UBOOT_NETWORK=y
BR2_TARGET_UBOOT_SERVERIP="10.175.196.221"
BR2_TARGET_UBOOT_IPADDR="10.175.196.18"
BR2_TARGET_UBOOT_GATEWAY="10.175.196.1"
BR2_TARGET_UBOOT_NETMASK="255.255.255.0"
BR2_TARGET_UBOOT_ETHADDR="04:25:fe:ed:00:18"
BR2_BOOTSOURCE_DATAFLASH=y
BR2_BOOTSOURCE_NANDFLASH=y
BR2_BOOTSOURCE=y

#
# Kernel
#
# BR2_KERNEL_none is not set
BR2_KERNEL_LINUX_ADVANCED=y
# BR2_KERNEL_LINUX is not set
BR2_PACKAGE_LINUX=y
BR2_PACKAGE_LINUX_FORMAT="uImage"
BR2_KERNEL_CURRENT_VERSION="2.6.28.2"
BR2_KERNEL_LATEST_2_6_28="2"
BR2_KERNEL_LATEST_2_6_27="13"
BR2_KERNEL_LATEST_2_6_26="8"
BR2_KERNEL_LATEST_2_6_25="19"
BR2_KERNEL_LATEST_2_6_24="7"
BR2_KERNEL_LATEST_2_6_23="17"
BR2_KERNEL_LATEST_2_6_22="19"
BR2_KERNEL_LATEST_2_6_21="7"
BR2_KERNEL_LATEST_2_6_20="21"
BR2_KERNEL_PATCH_LEVEL="$(BR2_KERNEL_MINORLEVEL)"
BR2_KERNEL_NEXT_VERSION="2.6.29"
BR2_KERNEL_THIS_VERSION="2.6.28"
BR2_KERNEL_SITE="http://ftp.kernel.org/pub/linux/kernel/v2.6"
BR2_MM_PATCH_SITE="http://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6"
BR2_RC_MM_PATCH_DIR="$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)/2.6.$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)-mm$(BR2_KERNEL_MM_LEVEL)"
BR2_KERNEL_PATCH_SITE="$(BR2_KERNEL_SITE)"
# BR2_LINUX_2_6_STABLE is not set
BR2_LINUX_2_6_28=y
# BR2_LINUX_2_6_27 is not set
# BR2_LINUX_2_6_26 is not set
# BR2_LINUX_2_6_25 is not set
# BR2_LINUX_2_6_24 is not set
# BR2_LINUX_2_6_23 is not set
# BR2_LINUX_2_6_22 is not set
# BR2_LINUX_2_6_21 is not set
# BR2_LINUX_2_6_20 is not set
# BR2_LINUX_2_6_29 is not set
# BR2_LINUX26_CUSTOM is not set

#
# Patches
#
BR2_KERNEL_ADD_KERNEL_ORG_PATCH=y
# BR2_KERNEL_ADD_LATEST is not set
# BR2_KERNEL_ADD_LATEST_MINORPATCH is not set
BR2_KERNEL_ADD_MINORPATCH=y
# BR2_KERNEL_ADD_LATEST_RC_PATCH is not set
# BR2_KERNEL_ADD_RC_PATCH is not set
# BR2_KERNEL_ADD_LATEST_SNAPSHOT is not set
# BR2_KERNEL_ADD_SNAPSHOT is not set
# BR2_KERNEL_ADD_LATEST_MM_PATCH is not set
# BR2_KERNEL_ADD_MM_PATCH is not set
BR2_KERNEL_ADD_PATCH=y
BR2_KERNEL_MINORLEVEL="2"
BR2_KERNEL_ARCH_PATCH_ENABLED=y
BR2_ARCH_AT91_2_6_28=y
# BR2_ARCH_AT91_2_6_27 is not set
# BR2_ARCH_AT91_2_6_26 is not set
# BR2_ARCH_AT91_2_6_25 is not set
# BR2_ARCH_AT91_2_6_24 is not set
# BR2_ARCH_AT91_2_6_22 is not set
BR2_LINUX_BSP_PATCH=""
BR2_KERNEL_PATCH="patch-$(BR2_DOWNLOAD_LINUX26_VERSION).$(BR2_KERNEL_PATCH_LEVEL).bz2"
BR2_EXTRA_VERSION=".$(BR2_KERNEL_PATCH_LEVEL)"
BR2_KERNEL_BASE=y
BR2_DOWNLOAD_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)"
BR2_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION).$(BR2_KERNEL_PATCH_LEVEL)"

#
# Linux Kernel Configuration
#
# BR2_PACKAGE_LINUX_USE_KCONFIG is not set
BR2_PACKAGE_LINUX_USE_DEFCONFIG=y
# BR2_PACKAGE_LINUX_USE_XCONFIG is not set
# BR2_LINUX_BIN_BZIMAGE is not set
BR2_LINUX_BIN_UIMAGE=y
# BR2_LINUX_BIN_VMLINUX is not set
# BR2_LINUX_BIN_ZIMAGE is not set
# BR2_LINUX_BIN_CUSTOM is not set

#
# Destinations for linux kernel binaries
#
# BR2_LINUX_COPYTO_ROOTFS is not set
BR2_LINUX_COPYTO_TFTPBOOT=y
BR2_LINUX_COPYTO=""
BR2_LINUX_COPY_CONFIGURATION=y
