#-----------------------------------------------------------------------------
#@TYPE: Distribution
#@NAME: SHR
#@DESCRIPTION: Linux Distribution Configuration for Mobile Phones
#-----------------------------------------------------------------------------

# set default locale for images - we have to do that before
# including angstrom-2007-for-openmoko.inc because otherwise
# it will be already set to en-gb
IMAGE_LINGUAS ?= "en-us"

# Set the toolchain type (internal, external) and brand (generic, csl etc.)
TOOLCHAIN_TYPE ?= "internal"
TOOLCHAIN_BRAND ?= ""

#LIBC = "glibc"

require conf/distro/include/preferred-shr-versions.inc
require conf/distro/include/shr-autorev.inc

#
# Header
#
DISTRO_NAME = "shr"
DISTRO_VERSION = "-${DATE}"
DISTRO_REVISION = "2"
DISTRO_PR = ".4"
DISTRO_TYPE = "release"
#DISTRO_TYPE = "debug"
DISTRO = "shr"

DISTRO_SSH_DAEMON = "openssh"
DISTRO_APM = "fso-apm"

#Generate locales on the buildsystem instead of on the target. Speeds up first boot, set to "1" to enable
ENABLE_BINARY_LOCALE_GENERATION ?= "1"

# We only want to build UTF8 locales
LOCALE_UTF8_ONLY = "1"

#save statistical info on images
INHERIT += "testlab"

#activate the angstrom blacklister
INHERIT += "angstrom"

ANGSTROM_BLACKLIST_pn-bluez-libs  = "bluez-libs 3.x has been replaced by bluez4"
ANGSTROM_BLACKLIST_pn-bluez-utils = "bluez-utils 3.x has been replaced by bluez4"
ANGSTROM_BLACKLIST_pn-atd = "atd has been replaced by atd-over-fso"
ANGSTROM_BLACKLIST_pn-update-alternatives-cworth-native = "update-alternatives-cworth-native has been replaced by opkg implementation of u-a script"
ANGSTROM_BLACKLIST_pn-update-alternatives-cworth = "update-alternatives-cworth has been replaced by opkg implementation of u-a script"

CVS_TARBALL_STASH += "http://build.shr-project.org/sources/"

PREMIRRORS = "(ftp|https?)$://.*/.* http://build.shr-project.org/sources/"

DISTRO_FEED_PREFIX ?= "shr-dev"
DISTRO_FEED_URI ?= "http://build.shr-project.org/shr-testing/ipk"

AB_DEPLOY_EXTRA ?= ""
DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE_ARCH}/${AB_DEPLOY_EXTRA}"

IMAGE_INITSCRIPTS = "initscripts-shr"
DISTRO_INITSCRIPTS = "initscripts-shr"
DISTRO_DEV_MANAGER = "udev"

IPKG_VARIANT = "opkg"

# Same kernel so same usb
PACKAGE_ARCH_pn-usb-gadget-mode_om-gta01 = "armv4t"
PACKAGE_ARCH_pn-usb-gadget-mode_om-gta02 = "armv4t"
# same kernel so same keymaps
PACKAGE_ARCH_pn-keymaps_om-gta01 = "armv4t"
PACKAGE_ARCH_pn-keymaps_om-gta02 = "armv4t"
# neod knows about both machines
PACKAGE_ARCH_pn-neod_om-gta01 = "armv4t"
PACKAGE_ARCH_pn-neod_om-gta02 = "armv4t"

# Helper to say what image we built
SHR_VERSION_FILE = "${IMAGE_ROOTFS}/${sysconfdir}/shr-version"
ROOTFS_POSTPROCESS_COMMAND += "OLD_PWD=$PWD; cd `dirname '${FILE_DIRNAME}'`; echo Tag Name: `git tag|tail -n 1`> ${SHR_VERSION_FILE};cd $OLD_PWD;"
ROOTFS_POSTPROCESS_COMMAND += "OLD_PWD=$PWD; cd `dirname '${FILE_DIRNAME}'`; echo VERSION: `git-log -n1 --pretty=oneline|awk '{print $1}'` >> ${SHR_VERSION_FILE}; cd $OLD_PWD;"
ROOTFS_POSTPROCESS_COMMAND += "OLD_PWD=$PWD; cd `dirname '${FILE_DIRNAME}'`; echo Branch: ` git branch |awk '/*/{print $2}'` >> ${SHR_VERSION_FILE}; cd $OLD_PWD;"
ROOTFS_POSTPROCESS_COMMAND += "echo Build Host: `cat /etc/hostname` >> ${SHR_VERSION_FILE};"
ROOTFS_POSTPROCESS_COMMAND += "echo Time Stamp: `date -R` >> ${SHR_VERSION_FILE};"

#Package customization
EXTRA_OECONF-pn_qemu += " --target-list=arm-linux-user,arm-softmmu"

#Illume settings
ILLUME_CONFIG = "e-wm-config-illume-shr"
ILLUME_THEME = "e-wm-theme-illume-gry"

# From minimal.conf

#############################################################################
# FEATURE SELECTION
#############################################################################
# Use bluetooth 4.0
DISTRO_BLUETOOTH_MANAGER = "bluez4"
# We want images supporting the following features (for task-base)
DISTRO_FEATURES = "nfs smbfs wifi ppp alsa ext2 vfat pcmcia usbgadget usbhost pci"
# Following features are for ARM and E500 based machines
DISTRO_FEATURES += "eabi"

#############################################################################
# LIBRARY NAMES
#############################################################################
# libfoo -> libfoo0-2 (etc)
INHERIT += "debian"

#############################################################################
# STAGING AREA
#############################################################################
# Controlled by packaging system
INHERIT += "packaged-staging"

#############################################################################
# PACKAGING & FEEDS
#############################################################################
# Chose the packaging system
INHERIT += "package_ipk"
IMAGE_FSTYPES ?= "tar.gz jffs2"

require conf/distro/include/sane-feed.inc
PREFERRED_PKG_FORMAT ?= "ipk"
require conf/distro/include/sane-feed-${PREFERRED_PKG_FORMAT}.inc

#############################################################################
# IMAGES
#############################################################################
# Name the generated images in a sane way
IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${LIBC}-${PREFERRED_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
CACHE ?= "${TMPDIR}/cache/${LIBC}/${MACHINE}"
DEPLOY_DIR ?= "${TMPDIR}/deploy/${LIBC}"
DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"

# increase inode/block ratio for ext2 filesystem 
EXTRA_IMAGECMD_ext2 = "-i 8192"

#############################################################################
# KERNEL
#############################################################################
KERNEL = "kernel26"
MACHINE_KERNEL_VERSION = "2.6"

#############################################################################
# OVERWRITES adjusted from bitbake.conf to feature the MACHINE_CLASS
#############################################################################
OVERRIDES = "local:${MACHINE}:${MACHINE_CLASS}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"

#############################################################################
# TOOLCHAIN
#############################################################################
LIBC ?= "eglibc"
require conf/distro/include/sane-toolchain.inc

#############################################################################
# PREFERRED PROVIDERS
#############################################################################
PREFERRED_PROVIDER_gpsd = "fso-gpsd"
PREFERRED_PROVIDER_atd = "atd-over-fso"
PREFERRED_PROVIDER_opkg = "opkg"
PREFERRED_PROVIDER_virtual/libusb0 ?= "libusb"
PREFERRED_PROVIDER_frameworkd-config = "frameworkd-config-shr"

#############################################################################
# PREFERRED VERSIONS
#############################################################################
require conf/distro/include/sane-srcdates.inc
require conf/distro/include/sane-srcrevs.inc
require conf/distro/include/preferred-e-versions.inc
require conf/distro/include/preferred-opie-versions-1.2.4.inc
#Use newest available (X11R7.5 now)
#require conf/distro/include/preferred-xorg-versions-X11R7.4-updates.inc
#require conf/distro/include/preferred-xorg-versions-X11R7.4.inc

#############################################################################
# CONTENTS
#############################################################################

# Ship extra debug utils in the rootfs when doing a debug build 
DISTRO_EXTRA_APPS ?= ""
DISTRO_EXTRA_APPS += '${@base_conditional("DISTRO_TYPE", "release", "", "task-cli-tools-debug",d)}'

# Additional content I (only valid if you include task-base)
# distro-feed-configs: configuration files for the online feeds
# util-linux-ng-mount util-linux-ng-umount: busybox mount is broken
# angstrom-libc-fixup-hack: fixes an obscure bug with libc.so symlink
DISTRO_EXTRA_RDEPENDS += "\
  distro-feed-configs \
  util-linux-ng-mount util-linux-ng-umount \
  angstrom-libc-fixup-hack \
  ${DISTRO_EXTRA_APPS} \
"

# Additional content II (can be masked with BAD_RECOMMENDATIONS)
DISTRO_EXTRA_RRECOMMENDS += " \
    kernel-module-vfat \
    kernel-module-ext2 \
    kernel-module-ext3 \
    kernel-module-af-packet \
    openssh-sftp-server \
"

#    avahi-daemon \
#    avahi-autoipd \