summaryrefslogtreecommitdiff
path: root/makefile
blob: 71bb865e5ae5222abb16f921dd82db33d57ca8d4 (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
#
# This file is part of NetSurf, http://netsurf.sourceforge.net/
# Licensed under the GNU General Public License,
#                http://www.opensource.org/licenses/gpl-license
#

# There is 1 possible build of NSTheme:
#
#   riscos -- standard RISC OS build
#
# "riscos" can be compiled under RISC OS, or cross-compiled using gccsdk.

OBJECTS_COMMON = messages.o utils.o				# utils/
OBJECTS_COMMON += nstheme.o options.o				# desktop/

OBJECTS_RISCOS = $(OBJECTS_COMMON)
OBJECTS_RISCOS += dialog.o gui.o help.o menus.o wimp.o save.o


OBJDIR_RISCOS = $(shell $(CC) -dumpmachine)
SOURCES_RISCOS=$(OBJECTS_RISCOS:.o=.c)
OBJS_RISCOS=$(OBJECTS_RISCOS:%.o=$(OBJDIR_RISCOS)/%.o)

# Inclusion of platform specific files has to occur after the OBJDIR stuff as
# that is refered to in the files

OS = $(word 2,$(subst -, ,$(shell gcc -dumpmachine)))
ifeq ($(OS),riscos)
include riscos.mk
else
include posix.mk
endif

VPATH = desktop:riscos:utils

WARNFLAGS = -W -Wall -Wundef -Wpointer-arith -Wcast-qual \
	-Wcast-align -Wwrite-strings -Wstrict-prototypes \
	-Wmissing-prototypes -Wmissing-declarations -Wredundant-decls \
	-Wnested-externs -Winline -Wno-unused-parameter -Wuninitialized

# CFLAGS have to appear after the inclusion of platform specific files as the
# PLATFORM_CFLAGS variables are defined in them

CFLAGS_RISCOS = -std=c9x -D_BSD_SOURCE -Driscos -DBOOL_DEFINED -O2 \
	$(WARNFLAGS) -I.. $(PLATFORM_CFLAGS_RISCOS) -mpoke-function-name \

# targets
riscos: $(RUNIMAGE)
$(RUNIMAGE) : $(OBJS_RISCOS)
	$(CC) -o $@ $(LDFLAGS_RISCOS) $^

netsurf.zip: $(RUNIMAGE)
	rm nstheme.zip; riscos-zip -9vr, nstheme.zip !NSTheme

# pattern rule for c source
$(OBJDIR_RISCOS)/%.o : %.c
	@echo "==> $<"
	@$(CC) -o $@ -c $(CFLAGS_RISCOS) $<

# generate dependencies
depend : $(SOURCES_RISCOS) 
	-mkdir $(OBJDIR_RISCOS)
	$(CC) -MM -MG $(CFLAGS_RISCOS) $^ | sed 's|.*\.o:|$(OBJDIR_RISCOS)/&|g' > depend

# remove generated files
clean :
	-rm $(OBJDIR_RISCOS)

ifneq ($(OS),riscos)
include depend
endif