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
|