summaryrefslogtreecommitdiff
path: root/frontends/riscos/Makefile.tools
blob: 19a2e7768c1293c4145c1416ca6b97dd8106b3ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# -*- mode: makefile-gmake -*-
##
## RISC OS target tool setup
##

ifeq ($(HOST),riscos)
  # Build for RO on RO
  GCCSDK_INSTALL_ENV := <NSLibs$$Dir>
  CCRES := ccres
  TPLEXT :=
  MAKERUN := makerun
  SQUEEZE := squeeze
  RUNEXT :=
  CC := gcc
  CXX := g++
  EXEEXT :=
  PKG_CONFIG :=
  ZIP := zip
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)
  # 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+.
  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
      else
	# No NetSurf-specific toolchain found: try the "normal" GCCSDK path
        GCCSDK_INSTALL_ENV := /home/riscos/env
      endif
    endif
  endif

  ifeq ($(origin GCCSDK_INSTALL_CROSSBIN),undefined)
    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
      else
	# No NetSurf-specific toolchain found: try the "normal" GCCSDK path
        GCCSDK_INSTALL_CROSSBIN := /home/riscos/cross/bin
      endif
    endif
  endif

  CCRES := $(GCCSDK_INSTALL_CROSSBIN)/ccres
  TPLEXT := ,fec
  MAKERUN := $(GCCSDK_INSTALL_CROSSBIN)/makerun
  SQUEEZE := $(GCCSDK_INSTALL_CROSSBIN)/squeeze
  RUNEXT := ,feb
  CC := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*gcc)

  # Work out what kind of toolchain we're dealing with
  ifneq (,$(findstring arm-unknown-riscos-gcc,$(CC)))
    # GCCSDK 4
    SUBTARGET := -elf
    EXEEXT := ,e1f
    ELF2AIF := $(GCCSDK_INSTALL_CROSSBIN)/elf2aif
  else
   ifneq (,$(findstring arm-riscos-gnueabihf-gcc,$(CC)))
     # GCCSDK 8+
     SUBTARGET := -elfeabi
     EXEEXT := ,e1f
     ELF2AIF := $(GCCSDK_INSTALL_CROSSBIN)/elf2aif -e
   else
     # GCCSDK 3.4.6
     SUBTARGET := -aof
     EXEEXT := ,ff8
   endif
  endif

  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
endif