5 kx
5 kx NO_PARALLEL = true
5 kx
5 kx COMPONENT_TARGETS = $(TOOLCHAIN_S8XX_NEWLIB)
5 kx
5 kx FLAVOURS = headers full
5 kx
5 kx
5 kx include ../../../build-system/config.mk
5 kx
5 kx
5 kx SOURCE_REQUIRES = sources/newlib
5 kx
5 kx ifeq ($(FLAVOUR),headers)
5 kx REQUIRES = core/binutils/2020.03.18
5 kx endif
5 kx ifeq ($(FLAVOUR),full)
5 kx REQUIRES = core/gcc/2020.03.16^static
5 kx endif
5 kx
5 kx # ======= __END_OF_REQUIRES__ =======
5 kx
5 kx tar_xz_archive = $(SRC_PACKAGE_PATH)/newlib/newlib-arc-2020.03.18.tar.xz
5 kx SRC_ARCHIVE = $(tar_xz_archive)
5 kx SRC_DIR = $(TARGET_BUILD_DIR)/newlib-arc-2020.03.18
5 kx src_dir_name = newlib-arc-2020.03.18
5 kx src_done = $(TARGET_BUILD_DIR)/.source-done
5 kx
5 kx PATCHES = PATCHES
5 kx
5 kx build_dir = $(TARGET_BUILD_DIR)/build
5 kx
5 kx install_dir = $(TOOLCHAIN_PATH)
5 kx headers_install_dir = $(TOOLCHAIN_PATH)/$(TARGET)
5 kx
5 kx headers_target = $(TARGET_BUILD_DIR)/.headers-installed
5 kx
5 kx build_target = $(TARGET_BUILD_DIR)/.built
5 kx full_target = $(TARGET_BUILD_DIR)/.installed
5 kx
5 kx
5 kx
5 kx ifeq ($(FLAVOUR),headers)
5 kx BUILD_TARGETS = $(headers_target)
5 kx endif
5 kx
5 kx ifeq ($(FLAVOUR),full)
5 kx BUILD_TARGETS = $(build_target)
5 kx BUILD_TARGETS += $(full_target)
5 kx endif
5 kx
5 kx include ../../../build-system/core.mk
5 kx
5 kx
5 kx environment = AS="$(TOOLCHAIN_PATH)/bin/$(TARGET)-as"
5 kx environment += LD="$(TOOLCHAIN_PATH)/bin/$(TARGET)-ld"
5 kx environment += CC="$(CCACHE)$(TOOLCHAIN_PATH)/bin/$(TARGET)-gcc"
5 kx environment += AR="$(TOOLCHAIN_PATH)/bin/$(TARGET)-ar"
5 kx environment += RANLIB="$(TOOLCHAIN_PATH)/bin/$(TARGET)-ranlib"
5 kx
5 kx environment += PATH_FIG2DEV="/usr/bin:/usr/X11R6/bin:/usr/share/texmf/bin"
5 kx environment += PATH="$(TOOLCHAIN_PATH)/bin:$(PATH):$(PATH_FIG2DEV)"
5 kx # =============
5 kx # need for fig2dev and documentation (see: ../.config).
5 kx
5 kx environment += BUILD_CC="$(CCACHE)/usr/bin/gcc"
5 kx environment += TARGET_CFLAGS=""
5 kx
5 kx
5 kx ifeq ($(TOOLCHAIN),$(TOOLCHAIN_S8XX_NEWLIB))
5 kx extra_configure_switches = --disable-multilib
5 kx extra_configure_switches += --with-cpu=arcem
5 kx extra_configure_switches += --with-endian=little
5 kx
5 kx extra_configure_switches += --with-gnu-as
5 kx extra_configure_switches += --with-gnu-ld
5 kx extra_configure_switches += --enable-newlib-supplied-sycalls
5 kx # extra_configure_switches += --enable-newlib-global-atexit
5 kx
5 kx extra_configure_switches += --enable-newlib-io-c99-formats
5 kx extra_configure_switches += --enable-newlib-io-long-long
5 kx extra_configure_switches += --enable-newlib-io-pos-args
5 kx extra_configure_switches += --enable-newlib-multithread
5 kx endif
5 kx
5 kx
5 kx
5 kx $(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
5 kx $(UNPACK_SRC_ARCHIVE)
5 kx $(APPLY_PATCHES)
5 kx @touch $@
5 kx
5 kx $(headers_target): $(src_done)
5 kx @mkdir -p $(headers_install_dir)
5 kx @cp -ar $(TARGET_BUILD_DIR)/$(src_dir_name)/newlib/libc/include $(headers_install_dir)/sys-include
5 kx @if [ -n "`cat $(SRC_DIR)/newlib/configure | grep _NEWLIB_VERSION | cut -f3 -d'"' | sed 's,[^0-9.],,g'`" ] ; then \
5 kx version_string="`cat $(SRC_DIR)/newlib/configure | grep _NEWLIB_VERSION | cut -f3 -d'"' | sed 's,[^0-9.],,g'`" ; \
5 kx echo " newlib-$${version_string}$(if $(FLAVOUR),:$(FLAVOUR),)" >> $(TOOLCHAIN_PATH)/README ; \
5 kx else \
5 kx echo " $(subst $(TOP_BUILD_DIR_ABS)/,,$(CURDIR))$(if $(FLAVOUR),:$(FLAVOUR),)" >> $(TOOLCHAIN_PATH)/README ; \
5 kx fi
5 kx @touch $@
5 kx
5 kx $(build_target): $(src_done)
5 kx # ======= Building newlib =======
5 kx @mkdir -p $(build_dir)
5 kx @cd $(build_dir) && $(environment) ../$(src_dir_name)/newlib/configure \
5 kx --prefix=$(TOOLCHAIN_PATH) \
5 kx --build=$(BUILD) \
5 kx --host=$(TARGET) \
5 kx --target=$(TARGET) \
5 kx --infodir=$(TOOLCHAIN_PATH)/share/info \
5 kx --mandir=$(TOOLCHAIN_PATH)/share/man \
5 kx $(extra_configure_switches)
5 kx @$(environment) $(MAKE) -C $(build_dir) all
5 kx # ======= Building libgloss =======
5 kx @mkdir -p $(build_dir)/libgloss
5 kx @cd $(build_dir)/libgloss && $(environment) ../../$(src_dir_name)/libgloss/configure \
5 kx --prefix=$(TOOLCHAIN_PATH) \
5 kx --build=$(BUILD) \
5 kx --host=$(TARGET) \
5 kx --target=$(TARGET) \
5 kx --infodir=$(TOOLCHAIN_PATH)/share/info \
5 kx --mandir=$(TOOLCHAIN_PATH)/share/man \
5 kx $(extra_configure_switches)
5 kx @$(environment) $(MAKE) -C $(build_dir)/libgloss all info
5 kx @touch $@
5 kx
5 kx $(full_target): $(build_target)
5 kx @mkdir -p $(install_dir)
5 kx @$(environment) $(MAKE) -C $(build_dir) install
5 kx @$(environment) $(MAKE) -C $(build_dir)/libgloss install
5 kx @$(environment) $(MAKE) -C $(build_dir) pdf
5 kx @$(environment) $(MAKE) -C $(build_dir)/libgloss pdf
5 kx # ======= Install Documentation =======
5 kx @$(environment) $(MAKE) -C $(build_dir)/libgloss/doc install-info
5 kx @mkdir -p $(TOOLCHAIN_PATH)/share/doc/newlib
5 kx @cp $(build_dir)/libc/libc.pdf $(TOOLCHAIN_PATH)/share/doc/newlib
5 kx @cp $(build_dir)/libm/libm.pdf $(TOOLCHAIN_PATH)/share/doc/newlib
5 kx @cp $(build_dir)/libgloss/doc/porting.pdf $(TOOLCHAIN_PATH)/share/doc/newlib
5 kx @if [ -n "`cat $(SRC_DIR)/newlib/configure | grep _NEWLIB_VERSION | cut -f3 -d'"' | sed 's,[^0-9.],,g'`" ] ; then \
5 kx version_string="`cat $(SRC_DIR)/newlib/configure | grep _NEWLIB_VERSION | cut -f3 -d'"' | sed 's,[^0-9.],,g'`" ; \
5 kx echo " newlib-$${version_string}$(if $(FLAVOUR),:$(FLAVOUR),)" >> $(TOOLCHAIN_PATH)/README ; \
5 kx else \
5 kx echo " $(subst $(TOP_BUILD_DIR_ABS)/,,$(CURDIR))$(if $(FLAVOUR),:$(FLAVOUR),)" >> $(TOOLCHAIN_PATH)/README ; \
5 kx fi
5 kx @touch $@