minimal.conf: blatantly steal the collective wisdom (and I admit it must have
authorMichael 'Mickey' Lauer <mickey@vanille-media.de>
Thu, 26 Feb 2009 22:44:51 +0000 (23:44 +0100)
committerMichael 'Mickey' Lauer <mickey@vanille-media.de>
Thu, 26 Feb 2009 22:44:51 +0000 (23:44 +0100)
been ton of work, thanks koen et. al.) people put in the angstrom distribution
configuration and reorganize the sections a bit for more clarity. Most of this
is really distribution-independent, so I'd welcome if angstrom would include one
or the other of these sane-*.inc and maintain it there.

conf/distro/include/sane-feed-deb.inc [new file with mode: 0644]
conf/distro/include/sane-feed-ipk.inc [new file with mode: 0644]
conf/distro/include/sane-feed.inc [new file with mode: 0644]
conf/distro/include/sane-toolchain-eglibc.inc [new file with mode: 0644]
conf/distro/include/sane-toolchain-glibc.inc [new file with mode: 0644]
conf/distro/include/sane-toolchain-oabi.inc [new file with mode: 0644]
conf/distro/include/sane-toolchain-uclibc.inc [new file with mode: 0644]
conf/distro/include/sane-toolchain-uclinux-uclibc.inc [new file with mode: 0644]
conf/distro/include/sane-toolchain.inc [new file with mode: 0644]
conf/distro/minimal.conf

diff --git a/conf/distro/include/sane-feed-deb.inc b/conf/distro/include/sane-feed-deb.inc
new file mode 100644 (file)
index 0000000..4f38b8f
--- /dev/null
@@ -0,0 +1,6 @@
+
+
+INHERIT += "package_deb"
+
+PREFERRED_PROVIDER_virtual/update-alternatives-native = "update-alternatives-cworth-native"
+PREFERRED_PROVIDER_virtual/update-alternatives = "update-alternatives-cworth"
diff --git a/conf/distro/include/sane-feed-ipk.inc b/conf/distro/include/sane-feed-ipk.inc
new file mode 100644 (file)
index 0000000..a33a4ad
--- /dev/null
@@ -0,0 +1,5 @@
+INHERIT += "package_ipk"
+
+PREFERRED_PROVIDER_virtual/update-alternatives-native = "update-alternatives-cworth-native"
+PREFERRED_PROVIDER_virtual/update-alternatives = "update-alternatives-cworth"
+
diff --git a/conf/distro/include/sane-feed.inc b/conf/distro/include/sane-feed.inc
new file mode 100644 (file)
index 0000000..5bc19a1
--- /dev/null
@@ -0,0 +1,170 @@
+# Originally brought to you by the Angstrom Distribution
+
+#############################################################################
+# FEED BUILDING SETTINGS
+#############################################################################
+
+# Put links to sources in deploy/sources to make it easier for people to be GPL compliant
+INHERIT += "src_distribute_local"
+SRC_DIST_LOCAL ?= "symlink"
+
+# Add FEED_ARCH to overrides
+OVERRIDES .= ":${FEED_ARCH}"
+
+FEED_ARCH ?= "${TARGET_ARCH}"
+
+# Blackfin machines
+FEED_ARCH_bfin          = "blackfin"
+
+# armv4t machines
+
+FEED_ARCH_acern30      = "armv4t"
+FEED_ARCH_amsdelta     = "armv4t"
+FEED_ARCH_ep93xx       = "armv4t"
+FEED_ARCH_eteng500     = "armv4t"
+FEED_ARCH_om-gta01     = "armv4t"
+FEED_ARCH_om-gta02     = "armv4t"
+FEED_ARCH_h1940        = "armv4t"
+FEED_ARCH_h6300        = "armv4t"
+FEED_ARCH_kb9202       = "armv4t"
+FEED_ARCH_ks8695       = "armv4t"
+FEED_ARCH_rx1950       = "armv4t"
+FEED_ARCH_rx3000       = "armv4t"
+FEED_ARCH_sarge-at91   = "armv4t"
+FEED_ARCH_smdk2440     = "armv4t"
+FEED_ARCH_smdk2443     = "armv4t"
+
+# armv5t machines
+
+FEED_ARCH_a1200        = "armv5te"
+FEED_ARCH_a780                 = "armv5te"
+FEED_ARCH_akita        = "armv5te"
+FEED_ARCH_asus620      = "armv5te"
+FEED_ARCH_asus730      = "armv5te"
+FEED_ARCH_at91sam9263ek = "armv5te"
+FEED_ARCH_aximx50      = "armv5te"
+FEED_ARCH_aximx50v     = "armv5te"
+FEED_ARCH_c7x0                 = "armv5te"
+FEED_ARCH_compulab-pxa270 = "armv5te"
+FEED_ARCH_davinci-dvevm = "armv5te"
+FEED_ARCH_devkitidp-pxa255 = "armv5te"
+FEED_ARCH_e680                 = "armv5te"
+FEED_ARCH_er0100       = "armv5te"
+FEED_ARCH_gumstix      = "armv5te"
+FEED_ARCH_gumstix-verdex = "armv5te"
+FEED_ARCH_gumstix-connex = "armv5te"
+FEED_ARCH_h1910        = "armv5te"
+FEED_ARCH_h2200        = "armv5te"
+FEED_ARCH_h3900        = "armv5te"
+FEED_ARCH_h4000        = "armv5te"
+FEED_ARCH_h5000        = "armv5te"
+FEED_ARCH_htcalpine    = "armv5te"
+FEED_ARCH_htcapache    = "armv5te"
+FEED_ARCH_htcblueangel         = "armv5te"
+FEED_ARCH_htchimalaya  = "armv5te"
+FEED_ARCH_htcsable     = "armv5te"
+FEED_ARCH_htctornado   = "armv5te"
+FEED_ARCH_htcuniversal         = "armv5te"
+FEED_ARCH_hx2000       = "armv5te"
+FEED_ARCH_hx4700       = "armv5te"
+FEED_ARCH_ixp4xxle     = "armv5te"
+FEED_ARCH_logicpd-pxa270 = "armv5te"
+FEED_ARCH_looxc550     = "armv5te"
+FEED_ARCH_lsarm        = "armv5te"
+FEED_ARCH_magician     = "armv5te"
+FEED_ARCH_mainstone    = "armv5te"
+FEED_ARCH_mnci                 = "armv5te"
+FEED_ARCH_mtx-3        = "armv5te"
+FEED_ARCH_mx21ads      = "armv5te"
+FEED_ARCH_n2100        = "armv5te"
+FEED_ARCH_navman-icn330 = "armv5te"
+FEED_ARCH_netbook-pro  = "armv5te"
+FEED_ARCH_nokia770     = "armv5te"
+FEED_ARCH_rokre2       = "armv5te"
+FEED_ARCH_nslu2le      = "armv5te"
+FEED_ARCH_omap1510inn  = "armv5te"
+FEED_ARCH_omap1610h2   = "armv5te"
+FEED_ARCH_omap1710h3   = "armv5te"
+FEED_ARCH_omap5912osk  = "armv5te"
+FEED_ARCH_palmld       = "armv5te"
+FEED_ARCH_palmt650     = "armv5te"
+FEED_ARCH_palmt680     = "armv5te"
+FEED_ARCH_palmtc       = "armv5te"
+FEED_ARCH_palmtt       = "armv5te"
+FEED_ARCH_palmtt3      = "armv5te"
+FEED_ARCH_palmtt5      = "armv5te"
+FEED_ARCH_palmtx       = "armv5te"
+FEED_ARCH_palmz31      = "armv5te"
+FEED_ARCH_palmz71      = "armv5te"
+FEED_ARCH_palmz72      = "armv5te"
+FEED_ARCH_poodle       = "armv5te"
+FEED_ARCH_qemuarm      = "armv5te"
+FEED_ARCH_spitz        = "armv5te"
+FEED_ARCH_tosa                 = "armv5te"
+FEED_ARCH_triton       = "armv5te"
+
+FEED_ARCH_ixp4xxbe     = "armv5teb"
+FEED_ARCH_nslu2be      = "armv5teb"
+
+# armv6 machines
+
+FEED_ARCH_mx31ads      = "armv6"
+FEED_ARCH_mx31moboard  = "armv6"
+FEED_ARCH_nokia800     = "armv6"
+FEED_ARCH_omap2420h4   = "armv6"
+FEED_ARCH_omap2430sdp   = "armv6"
+
+# i486 machines
+FEED_ARCH_geodegx      = "i486"
+FEED_ARCH_geodelx      = "i486"
+FEED_ARCH_netvista     = "i486"
+FEED_ARCH_wrap                 = "i486"
+FEED_ARCH_x86          = "i486"
+
+# i586 machines
+FEED_ARCH_epia                 = "i586"
+FEED_ARCH_i586-generic         = "i586"
+FEED_ARCH_qemux86      = "i586"
+
+# i686 machines
+
+FEED_ARCH_alix                 = "i686"
+FEED_ARCH_colinux      = "i686"
+FEED_ARCH_guinness     = "i686"
+FEED_ARCH_i686-generic         = "i686"
+FEED_ARCH_progear      = "i686"
+
+# powerpc machines
+
+FEED_ARCH_dht-walnut   = "ppc405"
+FEED_ARCH_magicbox     = "ppc405"
+FEED_ARCH_xilinx-ml403         = "ppc405"
+FEED_ARCH_xilinx-ml410         = "ppc405"
+FEED_ARCH_sequoia      = "ppc440e"
+FEED_ARCH_efika        = "ppc603e"
+FEED_ARCH_lite5200     = "ppc603e"
+FEED_ARCH_lsppchd      = "ppc603e"
+FEED_ARCH_lsppchg      = "ppc603e"
+FEED_ARCH_storcenter   = "ppc603e"
+FEED_ARCH_turbostation         = "ppc603e"
+FEED_ARCH_mpc8313e-rdb         = "ppce300c3"
+FEED_ARCH_mpc8323e-rdb         = "ppce300c2"
+
+# strongarm machines, no EABI
+
+FEED_ARCH_collie       = "arm-oabi"
+FEED_ARCH_h3600        = "arm-oabi"
+FEED_ARCH_h3800        = "arm-oabi"
+FEED_ARCH_htcwallaby   = "arm-oabi"
+FEED_ARCH_jornada56x   = "arm-oabi"
+FEED_ARCH_jornada7xx   = "arm-oabi"
+FEED_ARCH_shark        = "arm-oabi"
+FEED_ARCH_simpad       = "arm-oabi"
+
+# Tweak packaging for strongarm machines since they can't use EABI
+
+PACKAGE_EXTRA_ARCHS_collie = "arm-oabi"
+PACKAGE_EXTRA_ARCHS_h3600  = "arm-oabi"
+PACKAGE_EXTRA_ARCHS_h3800  = "arm-oabi"
+PACKAGE_EXTRA_ARCHS_simpad = "arm-oabi"
+PACKAGE_EXTRA_ARCHS_htcwallaby = "arm-oabi"
diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
new file mode 100644 (file)
index 0000000..e780349
--- /dev/null
@@ -0,0 +1,37 @@
+# Originally brought to you by the Angstrom Distribution
+
+# eglibc:
+PREFERRED_PROVIDER_virtual/libiconv = "eglibc"
+PREFERRED_PROVIDER_virtual/libintl = "eglibc"
+PREFERRED_PROVIDER_virtual/libc = "eglibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "eglibc-initial"
+
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc"
+PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc"
+PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc"
+PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc"
+PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc"
+PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc"
+PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc"
+
+TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+
+#TARGET_OS = "linux-gnuspe"
+
+#mess with compiler flags to use -Os instead of -O2
+#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
+# perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616
+# [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
+
+FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
+FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
+FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
+
+BUILD_OPTIMIZATION = "-Os"
+BUILD_OPTIMIZATION_pn-perl = "-O1"
+BUILD_OPTIMIZATION_sparc = "-O2"
+
+TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][bb.data.getVar('TARGET_ARCH',d,1) in ['mips', 'mipsel']]}"
+
+CXXFLAGS += "-fvisibility-inlines-hidden"
+
diff --git a/conf/distro/include/sane-toolchain-glibc.inc b/conf/distro/include/sane-toolchain-glibc.inc
new file mode 100644 (file)
index 0000000..b14f880
--- /dev/null
@@ -0,0 +1,39 @@
+# glibc:
+PREFERRED_PROVIDER_virtual/libiconv ?= "glibc"
+PREFERRED_PROVIDER_virtual/libintl ?= "glibc"
+PREFERRED_PROVIDER_virtual/libc ?= "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial ?= "glibc-initial"
+PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers"
+
+#Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc"
+
+
+TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+
+#mess with compiler flags to use -Os instead of -O2
+#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
+# perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616
+# [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
+
+FULL_OPTIMIZATION = "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2"
+
+FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
+FULL_OPTIMIZATION_pn-glibc = "-fexpensive-optimizations -fomit-frame-pointer -O2"
+FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
+
+BUILD_OPTIMIZATION = "-O2"
+BUILD_OPTIMIZATION_pn-perl = "-O1"
+BUILD_OPTIMIZATION_pn-glibc = "-O2"
+BUILD_OPTIMIZATION_sparc = "-O2"
+
+TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][bb.data.getVar('TARGET_ARCH',d,1) in ['mips', 'mipsel']]}"
+
+CXXFLAGS += "-fvisibility-inlines-hidden"
+
diff --git a/conf/distro/include/sane-toolchain-oabi.inc b/conf/distro/include/sane-toolchain-oabi.inc
new file mode 100644 (file)
index 0000000..816d442
--- /dev/null
@@ -0,0 +1,2 @@
+PACKAGE_ARCH     = "arm-oabi"
+BASE_PACKAGE_ARCH = "arm-oabi"
diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc
new file mode 100644 (file)
index 0000000..66ac81a
--- /dev/null
@@ -0,0 +1,42 @@
+# Originally brought to you by the Angstrom Distribution
+
+# uclibc:
+#fix some iconv issues, needs to be adjusted when doing uclibc builds
+PREFERRED_PROVIDER_virtual/libc = "uclibc"
+PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv"
+PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
+PREFERRED_PROVIDER_virtual/libintl_avr32 = "proxy-libintl"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
+PREFERRED_PROVIDER_virtual/arm-${TARGET_VENDOR}-linux-uclibcgnueabi-libc-for-gcc    = "uclibc-initial"
+PREFERRED_PROVIDER_virtual/armeb-${TARGET_VENDOR}-linux-uclibcgnueabi-libc-for-gcc  = "uclibc-initial"
+
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
+PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
+
+USE_NLS ?= "no"
+USE_NLS_glib-2.0 = "yes"
+USE_NLS_glib-2.0-native = "yes"
+USE_NLS_gcc-cross = "no"
+
+TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d)  in ['bfin']]}"
+
+#mess with compiler flags to use -Os instead of -O2
+#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
+FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
+BUILD_OPTIMIZATION = "-Os"
+
+#Gcc will die with 'internal consistency error when using the above optimizations
+#with gcc-4.2.1-atmel.1.0.3 (and probably most other avr32 gcc ports).
+#However, some packages require optimizations to compile (e.g. libmad).
+#It appears the guilty optimization is "-frename-registers", leaving that one 
+#out allows the build to proceed normally.  -fexpensive-optimizations may be OK,
+#it was removed while debugging an issue that ultimately turned out to be due
+#to the ICE fixed by gcc-pr32889.patch.  It needs to be tested again. 
+#Note that this testing was done without the gcc-pr32889.patch.
+FULL_OPTIMIZATION_avr32 = "-Os -fomit-frame-pointer"
+
+TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][bb.data.getVar('TARGET_ARCH',d,1) in ['mips', 'mipsel', 'avr32']]}"
+
+CXXFLAGS += "-fvisibility-inlines-hidden"
+
diff --git a/conf/distro/include/sane-toolchain-uclinux-uclibc.inc b/conf/distro/include/sane-toolchain-uclinux-uclibc.inc
new file mode 100644 (file)
index 0000000..85ccddf
--- /dev/null
@@ -0,0 +1,26 @@
+# Originally brought to you by the Angstrom Distribution
+
+# uclibc:
+#fix some iconv issues, needs to be adjusted when doing uclibc builds
+PREFERRED_PROVIDER_virtual/libc = "uclibc"
+PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv"
+PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
+
+USE_NLS ?= "no"
+USE_NLS_glib-2.0 = "yes"
+USE_NLS_glib-2.0-native = "yes"
+USE_NLS_gcc-cross = "no"
+
+TARGET_OS_UC = "uclinux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+
+#mess with compiler flags to use -Os instead of -O2
+#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
+FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
+BUILD_OPTIMIZATION = "-Os"
+
+#Gcc will die with 'internal consistency error when using the above optimizations
+FULL_OPTIMIZATION_avr32 = ""
+BUILD_OPTIMIZATION_avr32 = ""
+
+CXXFLAGS += "-fvisibility-inlines-hidden"
+
diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
new file mode 100644 (file)
index 0000000..6165e75
--- /dev/null
@@ -0,0 +1,145 @@
+# Originally brought to you by the Angstrom Distribution
+
+#############################################################################
+# TOOLCHAIN VERSION SETTINGS
+#############################################################################
+
+# Base line versions, good for most things
+PREFERRED_GCC_VERSION                ?= "4.2.4"
+PREFERRED_BINUTILS                   ?= "2.18.50.0.7"
+
+# Prefer glibc 2.6 and uclibc 0.9.30, these have had the most testing.
+PREFERRED_VERSION_glibc             ?= "2.6.1"
+PREFERRED_VERSION_glibc-initial     ?= "2.6.1"
+PREFERRED_VERSION_uclibc            ?= "0.9.30"
+PREFERRED_VERSION_uclibc-initial    ?= "0.9.30"
+
+# Some systems need a special gcc version
+PREFERRED_GCC_VERSION_486sx          ?= "4.3.2"
+PREFERRED_GCC_VERSION_avr32          ?= "4.2.2"
+PREFERRED_GCC_VERSION_armv7a         ?= "4.3.1" 
+PREFERRED_GCC_VERSION_bfin           ?= "4.1.2"
+PREFERRED_GCC_VERSION_ppc405         ?= "4.1.1"
+PREFERRED_GCC_VERSION_xilinx-ml403   ?= "4.1.1"
+PREFERRED_GCC_VERSION_xilinx-ml403   ?= "4.1.1"
+
+# This is unrelated to the kernel version, but userspace apps (e.g. HAL) require a recent version to build against
+PREFERRED_VERSION_linux-libc-headers = "2.6.23"
+
+# Uncomment this if want need to build an armv7a kernel with CSL toolchain (<2.6.27 don't boot with mainline gcc)
+#KERNEL_CCSUFFIX_armv7a= "-4.2.1+csl-arm-2007q3-53"
+
+# Binutils
+PREFERRED_VERSION_binutils           ?= "PREFERRED_BINUTILS"
+PREFERRED_VERSION_binutils-cross     ?= "PREFERRED_BINUTILS"
+PREFERRED_VERSION_binutils-cross-sdk ?= "PREFERRED_BINUTILS"
+
+# Avr32 only has patches for binutils 2.17 in OE
+PREFERRED_VERSION_binutils_avr32 =           "2.17"
+PREFERRED_VERSION_binutils-cross_avr32 =     "2.17"
+PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17"
+
+# Compiler versions
+PREFERRED_VERSION_gcc                    ?= "${PREFERRED_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross              ?= "${PREFERRED_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-sdk          ?= "${PREFERRED_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-initial      ?= "${PREFERRED_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "${PREFERRED_GCC_VERSION}"
+
+# Compiler selection
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils         = "binutils-cross"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial      = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc              = "gcc-cross"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++              = "gcc-cross"
+
+# Others
+PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
+
+#############################################################################
+# TOOLCHAIN CUSTOMIZATION
+#############################################################################
+
+# Branding
+TARGET_VENDOR = "-oe"
+
+# ARM920T and up can use thumb mode to decrease binary size at the expense of speed
+# (the complete story is a bit more nuanced due to cache starvation)
+# Angstrom turns on thumb for armv4t machine according to this RFC:
+# http://lists.linuxtogo.org/pipermail/angstrom-distro-devel/2008-October/002714.html
+
+# We can't do ARM_INSTRUCTION_SET_armv4t since that will un-overridable in recipes like gcc
+ANGSTROM_ARM_INSTRUCTION_SET         ?=  "arm"
+ANGSTROM_ARM_INSTRUCTION_SET_armv4t   = "thumb"
+ANGSTROM_ARM_INSTRUCTION_SET_armv5te  = "thumb"
+ANGSTROM_ARM_INSTRUCTION_SET_armv5teb = "thumb"
+
+ARM_INSTRUCTION_SET = "${ANGSTROM_ARM_INSTRUCTION_SET}"
+# "arm" "thumb"
+#    The instruction set the compiler should use when generating application
+#    code.  The kernel is always compiled with arm code at present.  arm code
+#    is the original 32 bit ARM instruction set, thumb code is the 16 bit
+#    encoded RISC sub-set.  Thumb code is smaller (maybe 70% of the ARM size)
+#    but requires more instructions (140% for 70% smaller code) so may be
+#    slower.
+
+THUMB_INTERWORK = "yes"
+# "yes" "no"
+#    Whether to compile with code to allow interworking between the two
+#    instruction sets.  This allows thumb code to be executed on a primarily
+#    arm system and vice versa.  It is strongly recommended that DISTROs not
+#    turn this off - the actual cost is very small.
+
+# We don't want to keep OABI compat
+ARM_KEEP_OABI = "0"
+# Do keep OABI compat for om-gta01 to keep the gllin binary working
+ARM_KEEP_OABI_pn-linux-openmoko-2.6.24_om-gta01 = "1"
+ARM_KEEP_OABI_pn-linux-openmoko-2.6.28_om-gta01 = "1"
+
+# ARM EABI is softfloat by default, but let's make sure :)
+# make it overridable for platforms with FPU, like ep93xx or i.mx31
+TARGET_FPU_arm ?= "soft"
+TARGET_FPU_armeb ?= "soft"
+TARGET_FPU_ixp4xx ?= "soft"
+TARGET_FPU_ppc405 ?= "soft"
+
+TARGET_FPU_armv6 ?= "hard"
+TARGET_FPU_armv6-novfp ?= "soft"
+TARGET_FPU_armv7a ?= "hard"
+TARGET_FPU_ppc603e ?= "hard"
+
+# webkit-gtk and cairo have alignment issues with double instructions on armv5 so
+# disable them here
+TARGET_CC_ARCH_pn-webkit-gtk_armv5te = "-march=armv4t"
+TARGET_CC_ARCH_pn-cairo_armv5te = "-march=armv4t"
+
+#############################################################################
+# C LIBRARY SETTINGS
+#############################################################################
+
+# Can be "glibc", "eglibc" or "uclibc"
+PREFERRED_LIBC ?= "glibc"
+PSTAGE_EXTRAPATH = "${PREFERRED_LIBC}"
+
+CACHE = "${TMPDIR}/cache/${PREFERRED_LIBC}/${MACHINE}"
+DEPLOY_DIR = "${TMPDIR}/deploy/${PREFERRED_LIBC}"
+require conf/distro/include/sane-toolchain-${PREFERRED_LIBC}.inc
+
+# Generate locales on the buildsystem instead of on the target. Speeds up first boot, set to "1" to enable
+PREFERRED_PROVIDER_qemu-native = "qemu-native"
+ENABLE_BINARY_LOCALE_GENERATION ?= "1"
+
+# We only want to build UTF8 locales
+LOCALE_UTF8_ONLY = "1"
+
+# Qemu doesn't like armv6/eabi/vfp
+ENABLE_BINARY_LOCALE_GENERATION_armv6 = "0"
+ENABLE_BINARY_LOCALE_GENERATION_armv6-novfp = "0"
+ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0"
+
+#qemu has taken a dislike to armeb as well
+ENABLE_BINARY_LOCALE_GENERATION_armeb = "0"
+
+# This is needed to get a correct PACKAGE_ARCH for packages that have PACKAGE_ARCH = ${MACHINE_ARCH}
+ARM_ABI ?= "${@['','oabi'][bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+include conf/distro/include/sane-toolchain-${ARM_ABI}.inc
index 99c1db0..65378b8 100644 (file)
@@ -1,99 +1,82 @@
-#-----------------------------------------------------------------------------
+#############################################################################
 #@TYPE: Distribution
 #@NAME: Minimal
 #@DESCRIPTION: Embedded Linux Distribution Configuration (minimal)
 #
 #@COMMENT: This distribution configuration serves as a starting point for
 #@COMMENT: the integration of new target platforms, machines, or distributions.
-#@COMMENT: It bases on conservative settings and should always be buildable.
-#-----------------------------------------------------------------------------
+#############################################################################
 
-#
-# Header
-#
-DISTRO_NAME = "minimal-glibc"
+#############################################################################
+# NAME AND VERSION
+#############################################################################
+DISTRO_NAME = "minimal"
 DISTRO_VERSION = ".dev-snapshot-${SRCDATE}"
 #DISTRO_TYPE = "release"
 DISTRO_TYPE = "debug"
 
-#
-# Naming schemes
-#
+# Ensure some form of release config, so error out if someone thinks he knows better
+DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove this line or set a dummy DISTRO_VERSION")
+
+# We want images supporting the following features (for task-base)
+DISTRO_FEATURES = "nfs smbfs wifi ppp alsa bluetooth ext2 vfat irda pcmcia usbgadget usbhost pci"
+
+#############################################################################
+# LIBRARY NAMES
+#############################################################################
 INHERIT += "debian"
 
-#
-# Packaging and output format
-#
+#############################################################################
+# PACKAGING
+#############################################################################
 INHERIT += "package_ipk"
 IMAGE_FSTYPES ?= "tar.gz ext2.gz jffs2"
 
-#
-# Kernel
-#
-KERNEL = "kernel26"
-MACHINE_KERNEL_VERSION = "2.6"
+#############################################################################
+# IMAGES
+#############################################################################
+# Name the generated images in a sane way
+IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${PREFERRED_LIBC}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
+DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"
 
-#
-# Binutils & Compiler
-#
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
-PREFERRED_PROVIDER_virtual/arm-linux-binutils = "binutils-cross"
-PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
+#############################################################################
+# FEEDS
+#############################################################################
+require conf/distro/include/sane-feed.inc
+PREFERRED_PKG_FORMAT ?= "ipk"
+require conf/distro/include/sane-feed-${PREFERRED_PKG_FORMAT}.inc
 
-PREFERRED_VERSION_gcc ?= "4.3.3"
-PREFERRED_VERSION_gcc-cross ?= "4.3.3"
-PREFERRED_VERSION_gcc-cross-initial ?= "4.3.3"
-PREFERRED_VERSION_gcc-cross-intermediate ?= "4.3.3"
-PREFERRED_VERSION_binutils ?= "2.18"
-PREFERRED_VERSION_binutils-cross ?= "2.18"
+#############################################################################
+# KERNEL
+#############################################################################
+KERNEL = "kernel26"
+MACHINE_KERNEL_VERSION = "2.6"
 
-#
-# Target OS & FPU system
-#
-TARGET_OS = "linux"
-TARGET_FPU_arm = "soft"
-TARGET_FPU_armeb = "soft"
+#############################################################################
+# TOOLCHAIN
+#############################################################################
+PREFERRED_LIBC = "glibc"
+require conf/distro/include/sane-toolchain.inc
 
-#
-# C library
-#
-PREFERRED_PROVIDER_virtual/libiconv = "glibc"
-PREFERRED_PROVIDER_virtual/libintl = "glibc"
-PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
-PREFERRED_VERSION_linux-libc-headers ?= "2.6.23"
-PREFERRED_VERSION_glibc ?= "2.6.1"
-
-#
-# Bootstrap & Init
-#
+#############################################################################
+# PREFERRED PROVIDERS
+#############################################################################
 PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap"
-
-#
-# 
-#
+PREFERRED_PROVIDER_avahi = "avahi"
 PREFERRED_PROVIDER_gconf = "gconf-dbus"
 PREFERRED_PROVIDER_gtk+ = "gtk+"
 PREFERRED_PROVIDER_libgpewidget = "libgpewidget"
-PREFERRED_PROVIDER_virtual/libsdl = "libsdl-x11"
-PREFERRED_PROVIDER_avahi = "avahi"
 PREFERRED_PROVIDER_virtual/db = "db3"
 PREFERRED_PROVIDER_virtual/db-native = "db3-native"
+PREFERRED_PROVIDER_virtual/libsdl = "libsdl-x11"
+PREFERRED_PROVIDER_virtual/libx11 ?= "libx11"
 
-
-#NOTE: multiple providers are available for virtual/arm-linux-libc-initial (glibc-initial, eglibc-initial);
-#NOTE: consider defining PREFERRED_PROVIDER_virtual/arm-linux-libc-initial
-
-#
-# Preferred versions
-#
-
+#############################################################################
+# PREFERRED VERSIONS
+#############################################################################
 require conf/distro/include/sane-srcdates.inc
 require conf/distro/include/sane-srcrevs.inc
-
-PREFERRED_PROVIDER_virtual/libx11 ?= "libx11"
+require conf/distro/include/preferred-e-versions.inc
+require conf/distro/include/preferred-xorg-versions-X11R7.4-updates.inc
 require conf/distro/include/preferred-xorg-versions-X11R7.4.inc
+