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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
#
# This file is part of RUfl
# Licensed under the MIT License,
# http://www.opensource.org/licenses/mit-license
# Copyright 2005 James Bursa <james@semichrome.net>
#
# choose one of the two below
COMPILER = gcc
#COMPILER = norcroft
SOURCE = rufl_init.c rufl_quit.c rufl_dump_state.c \
rufl_character_set_test.c \
rufl_paint.c rufl_glyph_map.c rufl_invalidate_cache.c \
rufl_find.c rufl_decompose.c rufl_metrics.c
HDRS = rufl.h rufl_internal.h
.PHONY: all install clean
ifeq ($(COMPILER), gcc)
# cross-compiling using GCCSDK or native build with GCC
HOST := $(shell uname -s)
ifeq ($(HOST),)
HOST := riscos
$(warning Build platform determination failed but that's a known problem for RISC OS so we're assuming a native RISC OS build.)
else
ifeq ($(HOST),RISC OS)
# Fixup uname -s returning "RISC OS"
HOST := riscos
endif
endif
ifeq ($(HOST),riscos)
GCCSDK_INSTALL_ENV ?= <NSLibs$$Dir>
CC := gcc
AR := ar
else
GCCSDK_INSTALL_CROSSBIN ?= /home/riscos/cross/bin
GCCSDK_INSTALL_ENV ?= /home/riscos/env
CC := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*gcc)
AR := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*ar)
endif
CFLAGS = -std=c99 -O3 -W -Wall -Wundef -Wpointer-arith -Wcast-qual \
-Wcast-align -Wwrite-strings -Wstrict-prototypes \
-Wmissing-prototypes -Wmissing-declarations \
-Wnested-externs -Winline -Wno-unused-parameter \
-mpoke-function-name -I$(GCCSDK_INSTALL_ENV)/include
ARFLAGS = cr
LIBS = -L$(GCCSDK_INSTALL_ENV)/lib -lOSLib32
INSTALL = $(GCCSDK_INSTALL_ENV)/ro-install
OBJS = $(SOURCE:.c=.o)
ifneq (,$(findstring arm-unknown-riscos-gcc,$(CC)))
EXEEXT=,e1f
else
EXEEXT=,ff8
endif
all: librufl.a rufl_test$(EXEEXT) rufl_chars$(EXEEXT)
librufl.a: $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
install: librufl.a
$(INSTALL) librufl.a $(GCCSDK_INSTALL_ENV)/lib/librufl.a
$(INSTALL) rufl.h $(GCCSDK_INSTALL_ENV)/include/rufl.h
else
# compiling on RISC OS using Norcroft
CC = cc
CFLAGS = -fn -ecz -wap -IOSLib: -DNDEBUG
LD = link
LDFLAGS = -aof
LIBS = OSLib:o.oslib32
MKDLK = makedlk
SOURCE += strfuncs.c
OBJS = $(SOURCE:.c=.o)
EXEEXT =
all: librufl.a rufl/pyd rufl_test rufl_chars
librufl.a: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $(OBJS)
o.ruflmodule: ruflmodule.o librufl.a
$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
ruflmodule.o: ruflmodule.c
$(CC) -fn -wp -IPyInc:Include,PyInc:RISCOS,TCPIPLibs:,OSLib: -c $@ $<
rufl/pyd: o.ruflmodule
$(MKDLK) -s <Python$$Dir>.RISCOS.s.linktab -o $< -d $@ -e initrufl
endif
# common rules
rufl_glyph_map.c: Glyphs makeglyphs
./makeglyphs < Glyphs > $@
rufl_test$(EXEEXT): rufl_test.c librufl.a
$(CC) $(CFLAGS) $(LIBS) -o $@ $^
rufl_chars$(EXEEXT): rufl_chars.c librufl.a
$(CC) $(CFLAGS) $(LIBS) -o $@ $^
.c.o: $(HDRS)
$(CC) $(CFLAGS) -c -o $@ $<
clean:
-rm *.o librufl.a rufl_glyph_map.c rufl_test$(EXEEXT) rufl_chars$(EXEEXT)
|