#
# Automatically generated make config: don't edit
# Sat Jul  5 07:59:56 2008
#
BR2_HAVE_DOT_CONFIG=y
BR2_VERSION="0.10.0-svn"
# BR2_alpha is not set
# BR2_arm is not set
# BR2_armeb is not set
BR2_avr32=y
# 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_s390 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_at32ap7000=y
# BR2_at32ap7001 is not set
# BR2_at32ap7002 is not set
BR2_ARCH="avr32"
BR2_ENDIAN="BIG"

#
# Target options
#

#
# Project Options
#
BR2_PROJECT="atngw100-expanded"
BR2_HOSTNAME="ngw.example.net"
BR2_BANNER="ATNGW100 ($(DATE))"

#
# Preset Devices
#
BR2_TARGET_ATMEL=y

#
# Selection criteria
#
BR2_TARGET_ATMEL_NET=y
BR2_TARGET_ATMEL_LCD=y
# BR2_TARGET_ATMEL_FPDSP is not set
# BR2_TARGET_ATMEL_MPB is not set

#
# Device Selection
#

#
# Development Board Selection
#

#
# Atmel AVR32 Specific Device Support
#
BR2_TARGET_AVR32=y
BR2_TARGET_AT32AP7000=y
# BR2_TARGET_AT32AP7001 is not set
# BR2_TARGET_AT32AP7002 is not set

#
# Development board support
#
# BR2_TARGET_AVR32_ATSTK1002 is not set
# BR2_TARGET_AVR32_ATNGW100 is not set
# BR2_TARGET_AVR32_ATNGW100_BASE is not set
BR2_TARGET_AVR32_ATNGW100_EXPANDED=y
BR2_BOARD_NAME="atngw100-expanded"

#
# Package support
#

#
# Secondary locations
#
BR2_TARGET_ATMEL_COPYTO=""
BR2_BOARD_PATH="target/device/Atmel/$(BR2_BOARD_NAME)"
BR2_KERNEL_ARCH_PATCH_VERSION="2.6.24"
BR2_KERNEL_ARCH_PATCH_DIR="target/device/Atmel/arch-avr32/kernel-patches-$(BR2_KERNEL_ARCH_PATCH_VERSION)"
# BR2_TARGET_VALKA is not set

#
# Generic Architecture support
#

#
# 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_PRIMARY_SITE=""
BR2_WGET="wget --passive-ftp --retry-connrefused --waitretry=10"
BR2_SVN_CO="svn co"
BR2_SVN_UP="svn up"
BR2_GIT="git clone"
BR2_ZCAT="zcat"
BR2_BZCAT="bzcat"
BR2_TAR_OPTIONS=""
BR2_DL_DIR="$(BASE_DIR)/dl"

#
# Mirrors and Download locations
#
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="$(BUILD_DIR)/staging_dir"
BR2_FPU_SUFFIX=y
BR2_TOPDIR_PREFIX=""
BR2_TOPDIR_SUFFIX=""
BR2_ROOTFS_PREFIX="rootfs"
BR2_ROOTFS_SUFFIX="$(DATE)"
BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
BR2_GNU_TARGET_SUFFIX="linux-uclibc"
BR2_JLEVEL=1
# BR2_PREFER_IMA is not set
# BR2_DEPRECATED is not set
BR2_RECENT=y
# 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_MANPAGES=y
BR2_HAVE_INFOPAGES=y
# BR2_HAVE_DEVFILES is not set
BR2_UPDATE_CONFIG=y

#
# Toolchain
#
# BR2_TOOLCHAIN_BUILDROOT is not set
# BR2_TOOLCHAIN_EXTERNAL is not set
BR2_TOOLCHAIN_EXTERNAL_SOURCE=y
BR2_TOOLCHAIN_SOURCE=y
# BR2_TOOLCHAIN_ATMEL_AVR32_4_1_2 is not set
# BR2_TOOLCHAIN_ATMEL_AVR32_4_2_1 is not set
BR2_TOOLCHAIN_ATMEL_AVR32_4_2_2=y
# BR2_TOOLCHAIN_ATMEL_AVR32_4_2_3 is not set
# BR2_TOOLCHAIN_UNKNOWNVENDOR is not set
# BR2_TOOLCHAIN_ATMEL_AVR32_4_2_3_ENABLE is not set
BR2_TOOLCHAIN_ATMEL_AVR32=y
BR2_VENDOR_SITE="$(BR2_ATMEL_MIRROR)"
BR2_VENDOR_SUFFIX="-avr32"
BR2_VENDOR_BINUTILS_RELEASE="-2.1.5"
BR2_VENDOR_GCC_RELEASE="-2.1.5"
BR2_VENDOR_UCLIBC_RELEASE="-2.1.5"
BR2_VENDOR_GDB_RELEASE="-2.1.5"
BR2_VENDOR_PATCH_DIR="Atmel/avr32"
# BR2_EXT_GCC_VERSION_4_1_2 is not set
# BR2_EXT_GCC_VERSION_4_2_1 is not set
BR2_EXT_GCC_VERSION_4_2_2=y
# BR2_EXT_GCC_VERSION_4_2_3 is not set
BR2_EXT_BINUTILS_VERSION_2_17=y
BR2_EXT_UCLIBC_VERSION_0_9_29=y
# BR2_EXT_UCLIBC_VERSION_0_9_28_3 is not set

#
# Kernel Header Options
#
# BR2_KERNEL_HEADERS_2_4_25 is not set
# BR2_KERNEL_HEADERS_2_4_27 is not set
# BR2_KERNEL_HEADERS_2_4_29 is not set
# BR2_KERNEL_HEADERS_2_4_31 is not set
# BR2_KERNEL_HEADERS_2_6_9 is not set
# BR2_KERNEL_HEADERS_2_6_11 is not set
# BR2_KERNEL_HEADERS_2_6_12 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=y
# BR2_KERNEL_HEADERS_2_6_25 is not set
# BR2_KERNEL_HEADERS_SNAP is not set
BR2_DEFAULT_KERNEL_HEADERS="2.6.24.7"

#
# uClibc Options
#
# BR2_UCLIBC_VERSION_0_9_28_3 is not set
BR2_UCLIBC_VERSION_0_9_29=y
# BR2_UCLIBC_VERSION_SNAPSHOT is not set
BR2_UCLIBC_CONFIG="target/device/Atmel/uClibc.config.avr32"
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_UCLIBC_PROGRAM_INVOCATION is not set

#
# Binutils Options
#
BR2_BINUTILS_VERSION_2_17=y
# 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.17"
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=y
# 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_SUPPORTS_SYSROOT=y
# BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE is not set
BR2_GCC_VERSION="4.2.2"
BR2_TOOLCHAIN_SYSROOT=y
# BR2_GCC_USE_SJLJ_EXCEPTIONS is not set
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
BR2_GCC_CROSS_CXX=y
BR2_INSTALL_LIBSTDCPP=y
BR2_GCC_SHARED_LIBGCC=y

#
# Ccache Options
#
# BR2_CCACHE is not set

#
# Gdb Options
#
# BR2_PACKAGE_GDB is not set
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=y
# BR2_GDB_VERSION_6_8 is not set
# BR2_GDB_VERSION_SNAPSHOT is not set
BR2_GDB_VERSION="6.7.1"

#
# Common Toolchain Options
#
# BR2_MKLIBS is not set
# BR2_PACKAGE_SSTRIP_TARGET is not set
# BR2_PACKAGE_SSTRIP_HOST is not set
# BR2_ENABLE_MULTILIB is not set
BR2_LARGEFILE=y
BR2_INET_IPV6=y
BR2_INET_RPC=y
BR2_USE_WCHAR=y
BR2_SOFT_FLOAT=y
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=y
# BR2_PACKAGE_BUSYBOX_SNAPSHOT is not set
BR2_BUSYBOX_VERSION="1.11.0"
BR2_PACKAGE_BUSYBOX_FULLINSTALL=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_BOARD_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
BR2_PACKAGE_BUSYBOX_SKELETON=y

#
# The minimum needed to build a uClibc development system
#
# BR2_PACKAGE_BASH is not set
BR2_PACKAGE_BZIP2=y
# BR2_PACKAGE_DIFFUTILS is not set
# 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_HOST_FAKEROOT=y
BR2_PACKAGE_GETTEXT=y
BR2_PACKAGE_LIBINTL=y
# BR2_PACKAGE_LIBGMP 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_PKGCONFIG=y
BR2_READLINE=y
# BR2_PACKAGE_READLINE_TARGET 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=y
# BR2_PACKAGE_CUSTOMIZE is not set
# BR2_PACKAGE_DASH is not set
# BR2_PACKAGE_FILE is not set
BR2_PACKAGE_GAMIN=y
BR2_PACKAGE_ICU=y
BR2_PACKAGE_IPKG=y
# BR2_PACKAGE_KEXEC is not set
BR2_PACKAGE_LIBDAEMON=y
# BR2_PACKAGE_LIBELF is not set
# BR2_PACKAGE_LIBEVENT is not set
# BR2_PACKAGE_LIBFLOAT is not set
# BR2_PACKAGE_LIBGCRYPT is not set
# BR2_PACKAGE_LIBGPG_ERROR is not set
# BR2_PACKAGE_LIBICONV is not set
# BR2_PACKAGE_LIBLOCKFILE is not set
# BR2_PACKAGE_LIBSYSFS is not set
# BR2_PACKAGE_LOCKFILE_PROGS is not set
# BR2_PACKAGE_LSOF is not set
# BR2_PACKAGE_LTP-TESTSUITE is not set
# BR2_PACKAGE_LTRACE is not set
# BR2_PACKAGE_LTT is not set
BR2_PACKAGE_NG_SPICE_REWORK=y
# BR2_PACKAGE_POPT is not set
# BR2_PACKAGE_PORTAGE is not set
# BR2_PACKAGE_SCREEN is not set
BR2_PACKAGE_SQLITE=y
BR2_PACKAGE_STARTUP_NOTIFICATION=y
BR2_PACKAGE_STRACE=y
# BR2_PACKAGE_SUDO is not set
BR2_DATABASE_SUPPORT=y
# BR2_PACKAGE_MYSQL_CLIENT is not set
BR2_NETWORK_SUPPORT=y

#
# Networking applications
#

#
# argus		- disabled (requires libpcap)
#
# BR2_PACKAGE_AVAHI is not set
# BR2_PACKAGE_AXEL is not set
# BR2_PACKAGE_BOA is not set
# BR2_PACKAGE_BIND is not set
BR2_PACKAGE_BRIDGE=y
BR2_PACKAGE_CURL=y
# BR2_PACKAGE_LIBCURL is not set
BR2_PACKAGE_DNSMASQ=y
# BR2_PACKAGE_DNSMASQ_TFTP is not set
BR2_PACKAGE_DROPBEAR=y
# BR2_PACKAGE_ETHTOOL is not set
BR2_PACKAGE_HASERL=y
# BR2_PACKAGE_HASERL_VERSION_0_8_X is not set
BR2_PACKAGE_HASERL_VERSION_0_9_X=y
BR2_PACKAGE_HASERL_VERSION="0.9.23"
# BR2_PACKAGE_IFPLUGD is not set
# BR2_PACKAGE_IRDA_UTILS 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_LIBEXOSIP2 is not set
# BR2_PACKAGE_LIBOSIP2 is not set
# BR2_PACKAGE_LIBPCAP is not set
# BR2_PACKAGE_LINKS is not set
BR2_PACKAGE_LRZSZ=y
# BR2_PACKAGE_MDNSRESPONDER is not set
# BR2_PACKAGE_MICROCOM is not set
# BR2_PACKAGE_MIIDIAG is not set
# BR2_PACKAGE_MROUTED is not set
# BR2_PACKAGE_MUTT is not set
BR2_PACKAGE_NBD=y
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 is not set
# 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_RP_PPPOE is not set
# BR2_PACKAGE_PPTP_LINUX is not set
BR2_PACKAGE_PROFTPD=y
# BR2_PACKAGE_QUAGGA is not set

#
# 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=y
# BR2_PACKAGE_SAMBA is not set
# BR2_PACKAGE_SOCAT is not set
# BR2_PACKAGE_STUNNEL is not set
# BR2_PACKAGE_TCPDUMP is not set
# BR2_PACKAGE_DHCPDUMP is not set
# BR2_PACKAGE_TFTPD is not set
# BR2_PACKAGE_TN5250 is not set
# BR2_PACKAGE_TTCP is not set
# BR2_PACKAGE_UDPCAST is not set

#
# vpnc		- disabled (requires libgcrypt and libgpg_error)
#
# BR2_PACKAGE_VTUN is not set
# BR2_PACKAGE_WEBIF is not set
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_BLOCKDEV_SUPPORT=y
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 is not set
# 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 is not set
# 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 is not set
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_PCMCIA is not set
# BR2_PACKAGE_RAIDTOOLS is not set
# BR2_PACKAGE_SETSERIAL is not set
# BR2_PACKAGE_SMARTMONTOOLS is not set
# BR2_PACKAGE_USBMOUNT is not set
# BR2_PACKAGE_USBUTILS is not set
# BR2_PACKAGE_WIPE is not set
# BR2_PACKAGE_XFSPROGS is not set
BR2_AUDIO_SUPPORT=y
BR2_PACKAGE_ALSA_LIB=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 is not set
# BR2_PACKAGE_ALSA_UTILS_APLAY is not set
# 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 is not set
BR2_PACKAGE_LIBID3TAG=y
BR2_PACKAGE_LIBMAD=y
# BR2_PACKAGE_LIBMAD_TARGET_HEADERS is not set
# BR2_PACKAGE_LIBOGG is not set
# BR2_PACKAGE_LIBSNDFILE is not set

#
# libvorbis requires the package libogg to build
#
BR2_PACKAGE_MADPLAY=y
BR2_PACKAGE_MADPLAY_ALSA=y
# BR2_PACKAGE_MPG123 is not set
BR2_PACKAGE_MPG123_ALSA=y
# BR2_PACKAGE_SPEEX is not set
# BR2_PACKAGE_FESTIVAL is not set
BR2_GRAPHIC_SUPPORT=y

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

#
# text rendering applications
#
# BR2_PACKAGE_DIALOG is not set

#
# graphic libraries
#
# BR2_PACKAGE_DIRECTFB is not set
# BR2_PACKAGE_IMAGEMAGICK is not set
BR2_PACKAGE_JPEG=y
# BR2_PACKAGE_LIBART is not set
BR2_PACKAGE_LIBPNG=y
# BR2_PACKAGE_LIBUNGIF is not set
# BR2_PACKAGE_SDL is not set
# BR2_PACKAGE_SDL_MIXER is not set
# BR2_PACKAGE_SDL_TTF is not set
BR2_PACKAGE_TIFF=y

#
# busybox graphic applications
#

#
# --> May be broken in busybox
#
# BR2_PACKAGE_FBV is not set
# BR2_PACKAGE_FBSET is not set

#
# other GUIs
#
# BR2_PACKAGE_QTOPIA4 is not set

#
# X Window System server
#
# BR2_PACKAGE_XSERVER_none is not set
# BR2_PACKAGE_XSERVER_xorg is not set
# BR2_PACKAGE_XSERVER_tinyx is not set
BR2_X11_PREFIX="/usr"
BR2_PACKAGE_XORG7=y

#
# X11R7 Servers
#
BR2_PACKAGE_XSERVER_XORG_SERVER=y

#
# X11R7 Libraries
#
BR2_PACKAGE_LIBXCB=y
# BR2_PACKAGE_MESA3D is not set
BR2_PACKAGE_PIXMAN=y
BR2_PACKAGE_PTHREAD_STUBS=y
BR2_PACKAGE_XLIB_LIBFS=y
BR2_PACKAGE_XLIB_LIBICE=y
BR2_PACKAGE_XLIB_LIBSM=y
BR2_PACKAGE_XLIB_LIBX11=y
BR2_PACKAGE_XLIB_LIBXSCRNSAVER=y
BR2_PACKAGE_XLIB_LIBXTRAP=y
BR2_PACKAGE_XLIB_LIBXAU=y
BR2_PACKAGE_XLIB_LIBXAW=y
BR2_PACKAGE_XLIB_LIBXCOMPOSITE=y
BR2_PACKAGE_XLIB_LIBXCURSOR=y
BR2_PACKAGE_XLIB_LIBXDAMAGE=y
BR2_PACKAGE_XLIB_LIBXDMCP=y
# BR2_PACKAGE_XLIB_LIBXEVIE is not set
BR2_PACKAGE_XLIB_LIBXEXT=y
BR2_PACKAGE_XLIB_LIBXFIXES=y
BR2_PACKAGE_XLIB_LIBXFONT=y
BR2_PACKAGE_XLIB_LIBXFONTCACHE=y
BR2_PACKAGE_XLIB_LIBXFT=y
BR2_PACKAGE_XLIB_LIBXI=y
BR2_PACKAGE_XLIB_LIBXINERAMA=y
BR2_PACKAGE_XLIB_LIBXMU=y
BR2_PACKAGE_XLIB_LIBXP=y
BR2_PACKAGE_XLIB_LIBXPM=y
BR2_PACKAGE_XLIB_LIBXPRINTAPPUTIL=y
BR2_PACKAGE_XLIB_LIBXPRINTUTIL=y
BR2_PACKAGE_XLIB_LIBXRANDR=y
BR2_PACKAGE_XLIB_LIBXRENDER=y
BR2_PACKAGE_XLIB_LIBXRES=y
BR2_PACKAGE_XLIB_LIBXT=y
BR2_PACKAGE_XLIB_LIBXTST=y
BR2_PACKAGE_XLIB_LIBXV=y
BR2_PACKAGE_XLIB_LIBXVMC=y
BR2_PACKAGE_XLIB_LIBXXF86DGA=y
BR2_PACKAGE_XLIB_LIBXXF86MISC=y
BR2_PACKAGE_XLIB_LIBXXF86VM=y
BR2_PACKAGE_XLIB_LIBDMX=y
BR2_PACKAGE_XLIB_LIBFONTENC=y
BR2_PACKAGE_XLIB_LIBLBXUTIL=y
BR2_PACKAGE_XLIB_LIBOLDX=y
BR2_PACKAGE_XLIB_LIBXKBFILE=y
BR2_PACKAGE_XLIB_LIBXKBUI=y
BR2_PACKAGE_XLIB_XTRANS=y

#
# X11R7 Applications
#
BR2_PACKAGE_XAPP_APPRES=y
BR2_PACKAGE_XAPP_BDFTOPCF=y
BR2_PACKAGE_XAPP_BEFORELIGHT=y
BR2_PACKAGE_XAPP_BITMAP=y
BR2_PACKAGE_XAPP_EDITRES=y
BR2_PACKAGE_XAPP_FONTTOSFNT=y
BR2_PACKAGE_XAPP_FSLSFONTS=y
BR2_PACKAGE_XAPP_FSTOBDF=y
BR2_PACKAGE_XAPP_ICEAUTH=y
BR2_PACKAGE_XAPP_ICO=y
BR2_PACKAGE_XAPP_LBXPROXY=y
BR2_PACKAGE_XAPP_LISTRES=y
BR2_PACKAGE_XAPP_LUIT=y
BR2_PACKAGE_XAPP_MKFONTDIR=y
BR2_PACKAGE_XAPP_MKFONTSCALE=y
BR2_PACKAGE_XAPP_OCLOCK=y
BR2_PACKAGE_XAPP_PROXYMNGR=y
BR2_PACKAGE_XAPP_RGB=y
BR2_PACKAGE_XAPP_RSTART=y
BR2_PACKAGE_XAPP_SCRIPTS=y
BR2_PACKAGE_XAPP_SESSREG=y
BR2_PACKAGE_XAPP_SETXKBMAP=y
BR2_PACKAGE_XAPP_SHOWFONT=y
BR2_PACKAGE_XAPP_SMPROXY=y
BR2_PACKAGE_XAPP_TWM=y
BR2_PACKAGE_XAPP_VIEWRES=y
BR2_PACKAGE_XAPP_X11PERF=y
BR2_PACKAGE_XAPP_XAUTH=y
BR2_PACKAGE_XAPP_XBIFF=y
BR2_PACKAGE_XAPP_XCALC=y
BR2_PACKAGE_XAPP_XCLIPBOARD=y
BR2_PACKAGE_XAPP_XCLOCK=y
BR2_PACKAGE_XAPP_XCMSDB=y
BR2_PACKAGE_XAPP_XCURSORGEN=y
BR2_PACKAGE_XAPP_XDBEDIZZY=y
BR2_PACKAGE_XAPP_XDITVIEW=y
BR2_PACKAGE_XAPP_XDM=y
BR2_PACKAGE_XAPP_XDPYINFO=y
# BR2_PACKAGE_XAPP_XDRIINFO is not set
BR2_PACKAGE_XAPP_XEDIT=y
BR2_PACKAGE_XAPP_XEV=y
BR2_PACKAGE_XAPP_XEYES=y
BR2_PACKAGE_XAPP_XF86DGA=y
BR2_PACKAGE_XAPP_XFD=y
BR2_PACKAGE_XAPP_XFINDPROXY=y
BR2_PACKAGE_XAPP_XFONTSEL=y
BR2_PACKAGE_XAPP_XFS=y
BR2_PACKAGE_XAPP_XFSINFO=y
BR2_PACKAGE_XAPP_XFWP=y
BR2_PACKAGE_XAPP_XGAMMA=y
BR2_PACKAGE_XAPP_XGC=y
BR2_PACKAGE_XAPP_XHOST=y
BR2_PACKAGE_XAPP_XINIT=y
BR2_PACKAGE_XAPP_XKBCOMP=y
BR2_PACKAGE_XAPP_XKBEVD=y
BR2_PACKAGE_XAPP_XKBPRINT=y
BR2_PACKAGE_XAPP_XKBUTILS=y
BR2_PACKAGE_XAPP_XKILL=y
BR2_PACKAGE_XAPP_XLOAD=y
BR2_PACKAGE_XAPP_XLOGO=y
BR2_PACKAGE_XAPP_XLSATOMS=y
BR2_PACKAGE_XAPP_XLSCLIENTS=y
BR2_PACKAGE_XAPP_XLSFONTS=y
BR2_PACKAGE_XAPP_XMAG=y
BR2_PACKAGE_XAPP_XMESSAGE=y
BR2_PACKAGE_XAPP_XMH=y
BR2_PACKAGE_XAPP_XMODMAP=y
BR2_PACKAGE_XAPP_XMORE=y
BR2_PACKAGE_XAPP_XPHELLOWORLD=y
BR2_PACKAGE_XAPP_XPLSPRINTERS=y
BR2_PACKAGE_XAPP_XPR=y
BR2_PACKAGE_XAPP_XPREHASHPRINTERLIST=y
BR2_PACKAGE_XAPP_XPROP=y
BR2_PACKAGE_XAPP_XRANDR=y
BR2_PACKAGE_XAPP_XRDB=y
BR2_PACKAGE_XAPP_XREFRESH=y
BR2_PACKAGE_XAPP_XRX=y
BR2_PACKAGE_XAPP_XSET=y
BR2_PACKAGE_XAPP_XSETMODE=y
BR2_PACKAGE_XAPP_XSETPOINTER=y
BR2_PACKAGE_XAPP_XSETROOT=y
BR2_PACKAGE_XAPP_XSM=y
BR2_PACKAGE_XAPP_XSTDCMAP=y
BR2_PACKAGE_XAPP_XTRAP=y
BR2_PACKAGE_XAPP_XVIDTUNE=y
BR2_PACKAGE_XAPP_XVINFO=y
BR2_PACKAGE_XAPP_XWD=y
BR2_PACKAGE_XAPP_XWININFO=y
BR2_PACKAGE_XAPP_XWUD=y

#
# X11R7 Fonts
#
BR2_PACKAGE_XFONT_FONT_UTIL=y
BR2_PACKAGE_XFONT_ENCODINGS=y
BR2_PACKAGE_XFONT_FONT_ADOBE_100DPI=y
BR2_PACKAGE_XFONT_FONT_ADOBE_75DPI=y
BR2_PACKAGE_XFONT_FONT_ADOBE_UTOPIA_100DPI=y
BR2_PACKAGE_XFONT_FONT_ADOBE_UTOPIA_75DPI=y
BR2_PACKAGE_XFONT_FONT_ADOBE_UTOPIA_TYPE1=y
BR2_PACKAGE_XFONT_FONT_ALIAS=y
BR2_PACKAGE_XFONT_FONT_ARABIC_MISC=y
BR2_PACKAGE_XFONT_FONT_BH_100DPI=y
BR2_PACKAGE_XFONT_FONT_BH_75DPI=y
BR2_PACKAGE_XFONT_FONT_BH_LUCIDATYPEWRITER_100DPI=y
BR2_PACKAGE_XFONT_FONT_BH_LUCIDATYPEWRITER_75DPI=y
BR2_PACKAGE_XFONT_FONT_BH_TTF=y
BR2_PACKAGE_XFONT_FONT_BH_TYPE1=y
BR2_PACKAGE_XFONT_FONT_BITSTREAM_100DPI=y
BR2_PACKAGE_XFONT_FONT_BITSTREAM_75DPI=y
BR2_PACKAGE_XFONT_FONT_BITSTREAM_SPEEDO=y
BR2_PACKAGE_XFONT_FONT_BITSTREAM_TYPE1=y
BR2_PACKAGE_XFONT_FONT_CRONYX_CYRILLIC=y
BR2_PACKAGE_XFONT_FONT_CURSOR_MISC=y
BR2_PACKAGE_XFONT_FONT_DAEWOO_MISC=y
BR2_PACKAGE_XFONT_FONT_DEC_MISC=y
BR2_PACKAGE_XFONT_FONT_IBM_TYPE1=y
BR2_PACKAGE_XFONT_FONT_ISAS_MISC=y
BR2_PACKAGE_XFONT_FONT_JIS_MISC=y
BR2_PACKAGE_XFONT_FONT_MICRO_MISC=y
BR2_PACKAGE_XFONT_FONT_MISC_CYRILLIC=y
BR2_PACKAGE_XFONT_FONT_MISC_ETHIOPIC=y
BR2_PACKAGE_XFONT_FONT_MISC_MELTHO=y
BR2_PACKAGE_XFONT_FONT_MISC_MISC=y
BR2_PACKAGE_XFONT_FONT_MUTT_MISC=y
BR2_PACKAGE_XFONT_FONT_SCHUMACHER_MISC=y
BR2_PACKAGE_XFONT_FONT_SCREEN_CYRILLIC=y
BR2_PACKAGE_XFONT_FONT_SONY_MISC=y
BR2_PACKAGE_XFONT_FONT_SUN_MISC=y
BR2_PACKAGE_XFONT_FONT_WINITZKI_CYRILLIC=y
BR2_PACKAGE_XFONT_FONT_XFREE86_TYPE1=y

#
# X11R7 X protocols
#
BR2_PACKAGE_XCB_PROTO=y
# BR2_PACKAGE_XPROTO_APPLEWMPROTO is not set
BR2_PACKAGE_XPROTO_BIGREQSPROTO=y
BR2_PACKAGE_XPROTO_COMPOSITEPROTO=y
BR2_PACKAGE_XPROTO_DAMAGEPROTO=y
BR2_PACKAGE_XPROTO_DMXPROTO=y
BR2_PACKAGE_XPROTO_EVIEEXT=y
BR2_PACKAGE_XPROTO_FIXESPROTO=y
BR2_PACKAGE_XPROTO_FONTCACHEPROTO=y
BR2_PACKAGE_XPROTO_FONTSPROTO=y
BR2_PACKAGE_XPROTO_GLPROTO=y
BR2_PACKAGE_XPROTO_INPUTPROTO=y
BR2_PACKAGE_XPROTO_KBPROTO=y
BR2_PACKAGE_XPROTO_PRINTPROTO=y
BR2_PACKAGE_XPROTO_RANDRPROTO=y
BR2_PACKAGE_XPROTO_RECORDPROTO=y
BR2_PACKAGE_XPROTO_RENDERPROTO=y
BR2_PACKAGE_XPROTO_RESOURCEPROTO=y
BR2_PACKAGE_XPROTO_SCRNSAVERPROTO=y
BR2_PACKAGE_XPROTO_TRAPPROTO=y
BR2_PACKAGE_XPROTO_VIDEOPROTO=y
# BR2_PACKAGE_XPROTO_WINDOWSWMPROTO is not set
BR2_PACKAGE_XPROTO_XCMISCPROTO=y
BR2_PACKAGE_XPROTO_XEXTPROTO=y
BR2_PACKAGE_XPROTO_XF86BIGFONTPROTO=y
BR2_PACKAGE_XPROTO_XF86DGAPROTO=y
BR2_PACKAGE_XPROTO_XF86DRIPROTO=y
BR2_PACKAGE_XPROTO_XF86MISCPROTO=y
BR2_PACKAGE_XPROTO_XF86RUSHPROTO=y
BR2_PACKAGE_XPROTO_XF86VIDMODEPROTO=y
BR2_PACKAGE_XPROTO_XINERAMAPROTO=y
BR2_PACKAGE_XPROTO_XPROTO=y
BR2_PACKAGE_XPROTO_XPROXYMANAGEMENTPROTOCOL=y

#
# X11R7 Utilities
#
# BR2_PACKAGE_XUTIL_MAKEDEPEND is not set
BR2_PACKAGE_XUTIL_UTIL_MACROS=y
BR2_PACKAGE_MCOOKIE=y

#
# X11R7 Other data
#
BR2_PACKAGE_XDATA_XBITMAPS=y
BR2_PACKAGE_XDATA_XCURSOR_THEMES=y
BR2_PACKAGE_XKEYBOARD_CONFIG=y

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

#
# GTK Themes
#
# BR2_PACKAGE_GTK2_THEME_HICOLOR is not set
BR2_PACKAGE_LIBSEXY=y
BR2_PACKAGE_FLTK=y
BR2_PACKAGE_OPENMOTIF=y
BR2_PACKAGE_FONTCONFIG=y
BR2_PACKAGE_FREETYPE=y
BR2_FREETYPE_VERSION_2_2_1=y
# BR2_FREETYPE_VERSION_2_3_5 is not set
BR2_FREETYPE_VERSION="2.2.1"
BR2_PACKAGE_TSLIB=y
BR2_PACKAGE_WEBKIT=y

#
# X Window managers
#
# BR2_PACKAGE_MATCHBOX is not set
# BR2_PACKAGE_METACITY is not set
BR2_PACKAGE_BLACKBOX=y

#
# X applications
#
# BR2_PACKAGE_ALSAMIXERGUI is not set

#
# dillo		- disabled (requires jpeg,libglib12,libgtk12,zlib,libpng and Xorg(7))
#
BR2_PACKAGE_DOCKER=y
BR2_PACKAGE_GQVIEW=y
BR2_PACKAGE_LEAFPAD=y
BR2_PACKAGE_MIDORI=y
BR2_PACKAGE_PCMANFM=y
# BR2_PACKAGE_RDESKTOP is not set
BR2_PACKAGE_SYLPHEED=y
BR2_PACKAGE_SYNERGY=y
BR2_PACKAGE_TORSMO=y
BR2_PACKAGE_X11VNC=y
BR2_PACKAGE_XPDF=y
BR2_PACKAGE_XSTROKE=y
BR2_PACKAGE_XVKBD=y

#
# Video libraries/codecs and applications
#
BR2_PACKAGE_MPLAYER=y
# BR2_PACKAGE_VLC is not set
BR2_COMPRESSOR_SUPPORT=y
BR2_PACKAGE_LZO=y
# BR2_PACKAGE_LZMA_TARGET is not set
# BR2_PACKAGE_LZMA_HOST is not set
BR2_PACKAGE_ZLIB=y
# BR2_PACKAGE_ZLIB_TARGET_HEADERS is not set
# BR2_SCRIPTING_SUPPORT is not set
BR2_XML_SUPPORT=y
BR2_PACKAGE_EXPAT=y
# BR2_PACKAGE_EZXML is not set
BR2_PACKAGE_LIBXML2=y
# BR2_PACKAGE_LIBXML2_TARGET_HEADERS is not set
BR2_PACKAGE_LIBXSLT=y
# BR2_PACKAGE_XERCES is not set
# BR2_JAVA_SUPPORT is not set
BR2_GAMES=y
BR2_PACKAGE_LXDOOM=y
BR2_PACKAGE_LXDOOM_WAD=y
# BR2_PACKAGE_ACE_OF_PENGUINS is not set
BR2_PACKAGE_GNUCHESS=y
BR2_PACKAGE_XBOARD=y
BR2_PACKAGE_RUBIX=y
BR2_PACKAGE_MAGICCUBE4D=y
BR2_PACKAGE_VICE=y

#
# Target filesystem options
#

#
# filesystem for target device
#
# BR2_TARGET_ROOTFS_CRAMFS is not set
# BR2_TARGET_ROOTFS_CLOOP is not set
# BR2_TARGET_ROOTFS_EXT2 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_FLASH_128=y
# BR2_TARGET_ROOTFS_JFFS2_FLASH_64 is not set
# BR2_TARGET_ROOTFS_JFFS2_CUSTOM is not set
BR2_TARGET_ROOTFS_JFFS2_PAGESIZE=0x1000
BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x20000
BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
# BR2_JFFS2_TARGET_SREC is not set
# BR2_TARGET_ROOTFS_JFFS2_PAD is not set
# BR2_TARGET_ROOTFS_JFFS2_LE is not set
BR2_TARGET_ROOTFS_JFFS2_BE=y
# BR2_TARGET_ROOTFS_JFFS2_SQUASH is not set
# BR2_TARGET_ROOTFS_JFFS2_SUMMARY is not set
BR2_TARGET_ROOTFS_JFFS2_OUTPUT="$(IMAGE).jffs2"
BR2_TARGET_ROOTFS_JFFS2_COPYTO=""
# BR2_TARGET_ROOTFS_UBIFS is not set
# BR2_TARGET_ROOTFS_SQUASHFS is not set
BR2_TARGET_ROOTFS_TAR=y
BR2_TARGET_ROOTFS_TAR_NONE=y
# BR2_TARGET_ROOTFS_TAR_GZIP is not set
# BR2_TARGET_ROOTFS_TAR_BZIP2 is not set
# BR2_TARGET_ROOTFS_TAR_LZMA is not set
BR2_TARGET_ROOTFS_TAR_OPTIONS=""
BR2_TARGET_ROOTFS_TAR_COPYTO="1"
# 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="atngw100"
BR2_TARGET_UBOOT_CUSTOM_PATCH=""
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_TARGET_UBOOT_ETH1ADDR=""
# BR2_TARGET_UBOOT_SILENT is not set
# BR2_TARGET_UBOOT_TOOL_MKIMAGE is not set
# BR2_TARGET_UBOOT_TOOL_ENV is not set

#
# Kernel
#
# BR2_KERNEL_none is not set
BR2_KERNEL_LINUX_ADVANCED=y
# BR2_KERNEL_LINUX is not set
# BR2_KERNEL_HURD is not set
BR2_PACKAGE_LINUX=y
BR2_PACKAGE_LINUX_KCONFIG="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-2.6.24.config"
BR2_PACKAGE_LINUX_FORMAT="uImage"
BR2_KERNEL_CURRENT_VERSION="2.6.25.9"
BR2_KERNEL_NEXT_VERSION="2.6.25"
BR2_KERNEL_THIS_VERSION="2.6.24"
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_LINUX_2_6_STABLE is not set
# BR2_LINUX_2_6_25 is not set
BR2_LINUX_2_6_24=y
# BR2_LINUX_2_6_23 is not set
# BR2_LINUX_2_6_22_10 is not set
# BR2_LINUX_2_6_22_1 is not set
# BR2_LINUX_2_6_22 is not set
# BR2_LINUX_2_6_21_7 is not set
# BR2_LINUX_2_6_21_5 is not set
# BR2_LINUX_2_6_21 is not set
# BR2_LINUX_2_6_20 is not set
# BR2_LINUX_2_6_26 is not set
# BR2_LINUX_2_6_27 is not set
# BR2_LINUX26_CUSTOM is not set

#
# Patches
#
# BR2_KERNEL_ADD_KERNEL_ORG_PATCH is not set
# BR2_KERNEL_ADD_PATCH is not set
BR2_KERNEL_ARCH_PATCH_ENABLED=y
BR2_ARCH_AVR32_2_6_24=y
# BR2_ARCH_AVR32_2_6_23 is not set
# BR2_ARCH_AVR32_2_6_22_10 is not set
# BR2_ARCH_AVR32_2_6_22_1 is not set
# BR2_ARCH_AVR32_2_6_21_5 is not set
# BR2_ARCH_AVR32_2_6_20_4 is not set
# BR2_LINUX_AVR32_ISI_PATCH is not set
# BR2_LINUX_AVR32_AC97_PATCH is not set
# BR2_LINUX_AVR32_PSIF_PATCH is not set
BR2_LINUX_BSP_PATCH=""
# BR2_KERNEL_PREPATCHED is not set
BR2_KERNEL_BASE=y
# BR2_KERNEL_LATEST is not set
BR2_DOWNLOAD_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)"
BR2_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)"

#
# Linux Kernel Configuration
#
BR2_PACKAGE_LINUX_USE_KCONFIG=y
# BR2_PACKAGE_LINUX_USE_DEFCONFIG is not set
# BR2_PACKAGE_LINUX_USE_XCONFIG is not set
BR2_MAKE_XCONFIG=y
# BR2_MAKE_MENUCONFIG is not set
BR2_KERNEL_CONFIG_METHOD="xconfig"
# 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=y
# BR2_LINUX_COPYTO_TFTPBOOT is not set
BR2_LINUX_COPYTO=""
# BR2_LINUX_COPY_CONFIGURATION is not set
