# Makefile for staging directory

# fix for build system bug...
obj-$(CONFIG_STAGING)		+= staging.o

obj-y				+= media/
obj-$(CONFIG_SLICOSS)		+= slicoss/
obj-$(CONFIG_PRISM2_USB)	+= wlan-ng/
obj-$(CONFIG_COMEDI)		+= comedi/
obj-$(CONFIG_FB_OLPC_DCON)	+= olpc_dcon/
obj-$(CONFIG_PANEL)		+= panel/
obj-$(CONFIG_RTL8192U)		+= rtl8192u/
obj-$(CONFIG_RTL8192E)		+= rtl8192e/
obj-$(CONFIG_R8712U)		+= rtl8712/
obj-$(CONFIG_R8188EU)		+= rtl8188eu/
obj-$(CONFIG_R8723AU)		+= rtl8723au/
obj-$(CONFIG_RTS5208)		+= rts5208/
obj-$(CONFIG_NETLOGIC_XLR_NET)	+= netlogic/
obj-$(CONFIG_OCTEON_ETHERNET)	+= octeon/
obj-$(CONFIG_OCTEON_USB)	+= octeon-usb/
obj-$(CONFIG_VT6655)		+= vt6655/
obj-$(CONFIG_VT6656)		+= vt6656/
obj-$(CONFIG_VME_BUS)		+= vme/
obj-$(CONFIG_IIO)		+= iio/
obj-$(CONFIG_FB_SM750)		+= sm750fb/
obj-$(CONFIG_FB_XGI)		+= xgifb/
obj-$(CONFIG_USB_EMXX)		+= emxx_udc/
obj-$(CONFIG_SPEAKUP)		+= speakup/
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4)	+= ste_rmi4/
obj-$(CONFIG_MFD_NVEC)		+= nvec/
obj-$(CONFIG_STAGING_RDMA)	+= rdma/
obj-$(CONFIG_ANDROID)		+= android/
obj-$(CONFIG_STAGING_BOARD)	+= board/
obj-$(CONFIG_WIMAX_GDM72XX)	+= gdm72xx/
obj-$(CONFIG_LTE_GDM724X)	+= gdm724x/
obj-$(CONFIG_FIREWIRE_SERIAL)	+= fwserial/
obj-$(CONFIG_GOLDFISH)		+= goldfish/
obj-$(CONFIG_LUSTRE_FS)		+= lustre/
obj-$(CONFIG_DGNC)			+= dgnc/
obj-$(CONFIG_DGAP)			+= dgap/
obj-$(CONFIG_MTD_SPINAND_MT29F)	+= mt29f_spinand/
obj-$(CONFIG_GS_FPGABOOT)	+= gs_fpgaboot/
obj-$(CONFIG_CRYPTO_SKEIN)	+= skein/
obj-$(CONFIG_UNISYSSPAR)	+= unisys/
obj-$(CONFIG_COMMON_CLK_XLNX_CLKWZRD)	+= clocking-wizard/
obj-$(CONFIG_FB_TFT)		+= fbtft/
obj-$(CONFIG_FSL_MC_BUS)	+= fsl-mc/
obj-$(CONFIG_WILC1000)		+= wilc1000/
obj-$(CONFIG_MOST)		+= most/
