1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
RIOT/cpu/native/Makefile.features
Frederik Haxel 16eff9b6ed native: Linux/x86_64 support
Initial version to test 64 bit compatibility.

Instead of a separate board, the inital version for Linux/x86_64 is enabled
by setting the environment variable `NATIVE_64BIT=y` and compiling as usual.

Not currently implemented:
* Architectures other than x86_64 or operating systems other than Linux
    * No FreeBSD support
    * No Aarch support
* Rust support for x86_64
2024-01-30 16:33:19 +01:00

48 lines
1.4 KiB
Makefile

ifeq (FreeBSD,$(OS))
DISABLE_LIBSTDCPP ?= 1
endif
ifeq ($(NATIVE_64BIT), 1)
FEATURES_PROVIDED += arch_64bit
else
FEATURES_PROVIDED += arch_32bit
endif
FEATURES_PROVIDED += arch_native
FEATURES_PROVIDED += cpp
ifneq ($(DISABLE_LIBSTDCPP),1)
# libstdc++ on FreeBSD is broken (does not work with -m32)
# Override with "export DISABLE_LIBSTDCPP=0"
FEATURES_PROVIDED += libstdcpp
endif
FEATURES_PROVIDED += periph_cpuid
FEATURES_PROVIDED += periph_eeprom
FEATURES_PROVIDED += periph_flashpage
FEATURES_PROVIDED += periph_flashpage_pagewise
FEATURES_PROVIDED += periph_hwrng
FEATURES_PROVIDED += periph_pm
FEATURES_PROVIDED += periph_pwm
FEATURES_PROVIDED += periph_timer_periodic
FEATURES_PROVIDED += periph_timer_query_freqs
ifeq ($(OS) $(OS_ARCH),Linux x86_64)
# TODO: Add rust support for native 64 bit.
ifneq ($(NATIVE_64BIT), 1)
FEATURES_PROVIDED += rust_target
endif
endif
FEATURES_PROVIDED += ssp
ifeq ($(OS),Linux)
# Access to hardware SPI bus is only supported on Linux hosts
FEATURES_PROVIDED += periph_spi
# Hardware GPIO access is only available on Linux hosts
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
# CAN is only supported on Linux through socketCAN
FEATURES_PROVIDED += periph_can
endif
# This configuration enables modules that are only available when using Kconfig
# module modelling
ifeq (1, $(TEST_KCONFIG))
KCONFIG_CPU_CONFIG += $(RIOTCPU)/native/native.config
endif