diff options
Diffstat (limited to 'frontends/riscos/Makefile.tools')
-rw-r--r-- | frontends/riscos/Makefile.tools | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/frontends/riscos/Makefile.tools b/frontends/riscos/Makefile.tools index 19a2e7768..a5b5cca1e 100644 --- a/frontends/riscos/Makefile.tools +++ b/frontends/riscos/Makefile.tools @@ -16,27 +16,33 @@ ifeq ($(HOST),riscos) EXEEXT := PKG_CONFIG := ZIP := zip + SED := else # Cross-build for RO - # Three options are available: - # a. GCCSDK 3.4.6 - AOF (machine: arm-unknown-riscos) - # b. GCCSDK 4 - ELF (machine: arm-unknown-riscos) - # c. GCCSDK 8+ - ELF, using EABI (machine: arm-riscos-gnueabihf) + # Four options are available: + # a. GCCSDK 3.4.6 - AOF (machine: arm-unknown-riscos) + # b. GCCSDK 4 - ELF (machine: arm-unknown-riscos) + # c. GCCSDK 8+ - ELF, using soft-float EABI (machine: arm-riscos-gnueabi) + # d. GCCSDK 8+ - ELF, using hard-float EABI (machine: arm-riscos-gnueabihf) # GCCSDK 3.4.6 and 4 are distinguished by GCCSDK 3.4.6 binary names # not having the machine prefix (e.g. gcc), whereas GCCSDK 4 binaries # do (e.g. arm-unknown-riscos-gcc). # Search for the toolchain install locations if we haven't been told - # The search order prefers GCCSDK 3.4.6/4 over 8+. + # The search order prefers GCCSDK 3.4.6/4 over 8+ and soft-float over hard. ifeq ($(origin GCCSDK_INSTALL_ENV),undefined) ifneq ($(realpath /opt/netsurf/arm-unknown-riscos/env),) GCCSDK_INSTALL_ENV := /opt/netsurf/arm-unknown-riscos/env else - ifneq ($(realpath /opt/netsurf/arm-riscos-gnueabihf/env),) - GCCSDK_INSTALL_ENV := /opt/netsurf/arm-riscos-gnueabihf/env + ifneq ($(realpath /opt/netsurf/arm-riscos-gnueabi/env),) + GCCSDK_INSTALL_ENV := /opt/netsurf/arm-riscos-gnueabi/env else - # No NetSurf-specific toolchain found: try the "normal" GCCSDK path - GCCSDK_INSTALL_ENV := /home/riscos/env + ifneq ($(realpath /opt/netsurf/arm-riscos-gnueabihf/env),) + GCCSDK_INSTALL_ENV := /opt/netsurf/arm-riscos-gnueabihf/env + else + # No NetSurf-specific toolchain found: try the "normal" GCCSDK path + GCCSDK_INSTALL_ENV := /home/riscos/env + endif endif endif endif @@ -45,11 +51,15 @@ else ifneq ($(realpath /opt/netsurf/arm-unknown-riscos/cross/bin),) GCCSDK_INSTALL_CROSSBIN := /opt/netsurf/arm-unknown-riscos/cross/bin else - ifneq ($(realpath /opt/netsurf/arm-riscos-gnueabihf/cross/bin),) - GCCSDK_INSTALL_CROSSBIN := /opt/netsurf/arm-riscos-gnueabihf/cross/bin + ifneq ($(realpath /opt/netsurf/arm-riscos-gnueabi/cross/bin),) + GCCSDK_INSTALL_CROSSBIN := /opt/netsurf/arm-riscos-gnueabi/cross/bin else - # No NetSurf-specific toolchain found: try the "normal" GCCSDK path - GCCSDK_INSTALL_CROSSBIN := /home/riscos/cross/bin + ifneq ($(realpath /opt/netsurf/arm-riscos-gnueabihf/cross/bin),) + GCCSDK_INSTALL_CROSSBIN := /opt/netsurf/arm-riscos-gnueabihf/cross/bin + else + # No NetSurf-specific toolchain found: try the "normal" GCCSDK path + GCCSDK_INSTALL_CROSSBIN := /home/riscos/cross/bin + endif endif endif endif @@ -68,9 +78,12 @@ else EXEEXT := ,e1f ELF2AIF := $(GCCSDK_INSTALL_CROSSBIN)/elf2aif else - ifneq (,$(findstring arm-riscos-gnueabihf-gcc,$(CC))) + ifneq (,$(findstring arm-riscos-gnueabi,$(CC))) # GCCSDK 8+ SUBTARGET := -elfeabi + ifneq (,$(findstring gnueabihf,$(CC))) + SUBTARGET := -elfeabihf + endif EXEEXT := ,e1f ELF2AIF := $(GCCSDK_INSTALL_CROSSBIN)/elf2aif -e else @@ -83,4 +96,5 @@ else CXX := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*g++) PKG_CONFIG = PKG_CONFIG_LIBDIR="$(PREFIX)/lib/pkgconfig:$(GCCSDK_INSTALL_ENV)/lib/pkgconfig:$(GCCSDK_INSTALL_ENV)/share/pkgconfig" pkg-config ZIP := $(GCCSDK_INSTALL_CROSSBIN)/zip + SED := sed endif |