This deprecates the monolithic syscalls.c environment in favor of a more structured board support package (BSP) based on newlib.
51 lines
1.2 KiB
Makefile
51 lines
1.2 KiB
Makefile
# Handle libgloss-htif dependency
|
|
ifndef libgloss
|
|
|
|
ifndef GCC
|
|
$(error GCC is not defined)
|
|
endif
|
|
|
|
libgloss_specs := htif_nano.specs
|
|
|
|
# Test whether libgloss-htif is globally installed and usable
|
|
# Define BUILD_LIBGLOSS=1 to unconditionally force a local build
|
|
BUILD_LIBGLOSS ?= $(shell { echo 'int main(void) { return 0; }' | \
|
|
$(GCC) -xc -specs=$(libgloss_specs) -o /dev/null - 2> /dev/null ; } || \
|
|
echo "$$?")
|
|
|
|
ifneq ($(BUILD_LIBGLOSS),)
|
|
$(info libgloss-htif: Using local build)
|
|
|
|
libgloss_srcdir := ../toolchains/libgloss
|
|
libgloss_builddir := libgloss
|
|
libgloss_specs := $(libgloss_srcdir)/util/$(libgloss_specs)
|
|
libgloss_lib := $(libgloss_builddir)/libgloss_htif.a
|
|
libgloss := $(libgloss_lib) $(libgloss_specs) htif.ld
|
|
|
|
LDFLAGS += -L libgloss
|
|
|
|
$(libgloss_builddir)/Makefile: $(libgloss_srcdir)/configure
|
|
mkdir -p $(dir $@)
|
|
cd $(dir $@) && $(realpath $<) \
|
|
--prefix=$(shell $(GCC) -print-sysroot) \
|
|
--host=$(TARGET) \
|
|
--disable-multilib
|
|
|
|
$(libgloss_lib): $(libgloss_builddir)/Makefile
|
|
$(MAKE) -C $(dir $^)
|
|
|
|
.PHONY: libgloss
|
|
libgloss: $(libgloss)
|
|
|
|
else
|
|
|
|
$(info libgloss-htif: Using global install)
|
|
libgloss := # No additional prerequisites
|
|
|
|
endif
|
|
|
|
CFLAGS += -specs=$(libgloss_specs)
|
|
LDFLAGS += -specs=$(libgloss_specs)
|
|
|
|
endif # libgloss
|