1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/makefiles/libc/picolibc.mk

33 lines
1.2 KiB
Makefile
Raw Normal View History

ifneq (,$(filter picolibc,$(USEMODULE)))
# Test if picolibc.specs is available
ifeq ($(shell $(LINK) -specs=picolibc.specs -E - 2>/dev/null >/dev/null </dev/null ; echo $$?),0)
USE_PICOLIBC = 1
ifeq (LC_ALL=C $(LINK) $(RIOTTOOLS)/testprogs/minimal_linkable.c -o /dev/null -lc -specs=picolibc.specs -Wall -Wextra -pedantic 2>&1 | grep -q "use of wchar_t values across objects may fail" ; echo $$?),0)
CFLAGS += -fshort-wchar
LINKFLAGS += -Wl,--no-wchar-size-warning
endif
else
BUILDDEPS += _missing-picolibc
endif
endif
.PHONY: _missing-picolibc
_missing-picolibc:
2022-05-30 12:38:19 +02:00
@$(Q)echo "picolibc was selected to be build but no picolibc.specs could be found"
@$(Q)echo "you might want to install "picolibc" for "$(TARGET_ARCH)""
@$(Q)echo "or add "FEATURES_BLACKLIST += picolibc" to Makefile)"
@$(COLOR_ECHO) "$(COLOR_RED)check your installation or build configuration.$(COLOR_RESET)"
@$(Q)exit 1
ifeq (1,$(USE_PICOLIBC))
LINKFLAGS += -specs=picolibc.specs
CFLAGS += -specs=picolibc.specs
ifeq (,$(filter printf_float scanf_float,$(USEMODULE)))
CFLAGS += -DPICOLIBC_INTEGER_PRINTF_SCANF
LINKFLAGS += -DPICOLIBC_INTEGER_PRINTF_SCANF
endif
endif
LINKFLAGS += -lc