# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/arch/x86/make.defaults,v 1.4 2009/08/16 22:07:20 remi Exp $

# All extra USE/etc should be specified in sub-profiles.
# DO NOT POLLUTE USE ON THIS PROFILE.

ARCH="x86"
ACCEPT_KEYWORDS="x86"

CHOST="i686-cros-linux-gnu"
CFLAGS="-O2 -march=i686 -pipe"
CXXFLAGS="${CFLAGS}"

# Michał Górny <mgorny@gentoo.org> (30 Jan 2015)
# Unhide the CPU_FLAGS_X86 USE_EXPANDs.
USE_EXPAND_HIDDEN="-CPU_FLAGS_X86"

# 2006/08/18 - Donnie Berkholz <dberkholz@gentoo.org>
# Defaults for video drivers
VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nv r128 radeon savage sis tdfx trident vesa vga via vmware voodoo"

# 2006/12/21 - Andrej Kacian <ticho@gentoo.org>
# Defaults for audio drivers
ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci"

# Michał Górny <mgorny@gentoo.org> (25 Jun 2014)
# Make the native ABI implicit so that MULTILIB_USEDEP can be satisfied
# by non-multilib ebuilds when non-native ABIs are disabled.
IUSE_IMPLICIT="abi_x86_32"

# Michał Górny <mgorny@gentoo.org> (01 Jul 2014)
# Default to abi_x86_32 for packages that don't have it forced.
ABI_X86="32"
