# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/prefix/darwin/use.mask,v 1.4 2013/02/02 13:12:28 grobian Exp $

#Add USE flags that don't work on Darwin/OpenDarwin/OS X here

# readd globally masked darwin-only flags
-coreaudio
-aqua

# Re-add Darwin libc
-elibc_Darwin
-kernel_Darwin


# these will more than likely never work on darwin
3dfx
acpi
alsa
apm
cap
caps
cman
clvm
directfb
djbfft
emul-linux-x86
fbcon
fmod
ggi
gpm
hardened

# VV requires device-mapper 
on-the-fly-crypt
oss
solid
sybase
sybase-ct
rtc
voodoo3
pvm
v4l

# introspection is far from working on OSX
introspection
