
if BOARD_NATIVE_POSIX

config BUILD_OUTPUT_BIN
	default n

config BUILD_OUTPUT_EXE
	default y

config OUTPUT_PRINT_MEMORY_USAGE
	default n

config BOARD
	default "native_posix"

if NETWORKING

config NET_L2_ETHERNET
	default y if !NET_LOOPBACK && !NET_TEST

config ETH_NATIVE_POSIX
	default y if NET_L2_ETHERNET

endif # NETWORKING

if ENTROPY_GENERATOR

config FAKE_ENTROPY_NATIVE_POSIX
	default y

endif # ENTROPY_GENERATOR

if BT_HCI

choice BT_HCI_BUS_TYPE
	default BT_USERCHAN
endchoice

endif # BT_HCI

if SERIAL

config UART_NATIVE_POSIX
	default y

endif # SERIAL

if LOG

config LOG_BACKEND_NATIVE_POSIX
	default y if !SERIAL

# For native_posix we can log immediately without any problem
# Doing so will be nicer for debugging
config LOG_IMMEDIATE
	default y

# If we set LOG_IMMEDIATE, there is no need to have the logging thread
# running
config LOG_PROCESS_THREAD
	default n

endif # LOG

if CONSOLE

config NATIVE_POSIX_CONSOLE
	default y if !SERIAL

config UART_CONSOLE
	default y if SERIAL

endif #CONSOLE

if DISPLAY

config SDL_DISPLAY
	default y

endif # DISPLAY

if TRACING_CTF

config TRACING_CTF_BOTTOM_POSIX
	default y

endif # TRACING_CTF

endif # BOARD_NATIVE_POSIX

if USB

config USB_NATIVE_POSIX
	def_bool y

endif # USB
