# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/prefix/windows/winnt/use.mask,v 1.8 2011/11/01 00:56:22 ssuominen Exp $

# Re-add Interix libc
-elibc_Winnt
-kernel_Winnt

# these need a review, since they are just copied from interix
# these will more than likely never work on Windows
3dfx
acpi
alsa
altivec
apm
bluetooth
cap
caps
cdr
coreaudio
dga
directfb
divx4linux
djbfft
dri
dvdr
# emacs USE flag is masked because of missing implementation for unexec()
emacs
emul-linux-x86
fbcon
fdftk
fmod
ggi
glut
gpm
gps
hardened
hddtemp
ibm
icc
icc-pgo
ieee1394
ifc
ipod
ipv6
lm_sensors
matrox
ncurses
netboot
old-linux
# the following USE flag requires device-mapper
on-the-fly-crypt
opengl
oss
pcmcia
pda
rtc
selinux
scanner
smartcard
svga
uclibc
# unicode is totally b0rked on interix
unicode
usb
voodoo3
pvm
v4l
wifi

# these are USE flags that don't _currently_ work, but may will in the future.
ffmpeg
fftw
flac
jack
joystick
ladspa
# opennmp is not working yet on interix
openmp
portaudio
pulseaudio
qt4
readline
# libtiff only static, so avoid the tiff USE flag!
tiff
timidity
