# Copyright (c) 2017 Oticon A/S
# SPDX-License-Identifier: Apache-2.0

if BOARD_NATIVE_POSIX

config BUILD_OUTPUT_BIN
	default n

config BUILD_OUTPUT_EXE
	default y

config OUTPUT_PRINT_MEMORY_USAGE
	default n

if NETWORKING

config NET_L2_ETHERNET
	default y if !NET_LOOPBACK && !NET_TEST

config ETH_NATIVE_POSIX
	default y if NET_L2_ETHERNET && ETH_DRIVER

endif # NETWORKING

choice BT_HCI_BUS_TYPE
	default BT_USERCHAN
	depends on BT_HCI
endchoice

if CONSOLE

config POSIX_ARCH_CONSOLE
	default y if !SERIAL

config UART_CONSOLE
	default y if SERIAL

endif # CONSOLE

if I2C

config EMUL
	default y

endif # I2C

endif # BOARD_NATIVE_POSIX
