Makefile revision 1.2
1#	$NetBSD: Makefile,v 1.2 2013/05/01 13:15:26 kiyohara Exp $
2
3.include <../Makefile.inc>
4
5.include <bsd.own.mk>
6.include <bsd.sys.mk>
7.include <bsd.obj.mk>
8.include <bsd.inc.mk>
9
10PROG=e32boot.ldd
11
12SRCS=e32boot.cpp epoc32.cpp cpu.cpp
13OBJS=$(SRCS:R:S/$/.o/g)
14
15IN=$(PROG:.ldd=.in)
16MAP=$(PROG:.ldd=.map)
17
18NOMAN=		#defined
19BINMODE= 444
20
21S=../../../../../
22
23CPPFLAGS=-c -nostdinc -Wall -Wno-ctor-dtor-privacy -O
24CPPFLAGS+=-mcpu=arm710
25CPPFLAGS+=-mapcs-32 -mshort-load-bytes -msoft-float -fcheck-new -fvtable-thunks
26CPPFLAGS+=-D__SYMBIAN32__ -D__PSISOFT32__ -D__GCC32__ -D__EPOC32__ -D__MARM__
27CPPFLAGS+=-U_UNICODE
28CPPFLAGS+=-I. -I../include/ -I- -I$(EPOC32_SDKDIR)/include/
29
30CPPFLAGS+=-D_LOCORE -D__ASSEMBLER__	# XXXXXX
31
32CFLAGS=
33_CXXSEED=	# XXXXX
34
35EPOC32_LIBRARY_PATH=$(EPOC32_SDKDIR)/Release/MARM/Rel/
36LIBS=$(EPOC32_LIBRARY_PATH)/EKERN.LIB $(EPOC32_LIBRARY_PATH)/EUSER.LIB
37
38S5_EKERNID=	100000b9
39S5_UID2=	0x100000ac
40
41S5MX_EKERNID=	100000ba
42S5MX_UID2=	0x100000ae
43
44#S7MX_EKERNID=	100000??
45#S7MX_UID2=	0x100000??
46
47
48all: check_epoc32_cross arm $(PROG:.ldd=-s5.ldd) $(PROG:.ldd=-s5mx.ldd)
49
50arm:
51	ln -s ../../../../$@/include $@
52
53$(PROG:.ldd=-s5.ldd): $(PROG)
54	$(EXTERNAL_TOOLCHAIN)/bin/petran $(PROG) $@.tmp \
55	    -nocall -uid1 0x10000079 -uid2 $(S5_UID2) -uid3 0x00000000
56	sed -e "s/\(EKERN\[\)[0-9a-f]\{8\}\(\]\.EXE\)/\1$(S5_EKERNID)\2/" \
57	    $@.tmp > $@
58	rm $@.tmp
59
60$(PROG:.ldd=-s5mx.ldd): $(PROG)
61	$(EXTERNAL_TOOLCHAIN)/bin/petran $(PROG) $@.tmp \
62	    -nocall -uid1 0x10000079 -uid2 $(S5MX_UID2) -uid3 0x00000000
63	sed -e "s/\(EKERN\[\)[0-9a-f]\{8\}\(\]\.EXE\)/\1$(S5MX_EKERNID)\2/" \
64	    $@.tmp > $@
65	rm $@.tmp
66
67$(PROG): $(OBJS) $(IN)
68	$(LD) -s --base-file $(PROG:.ldd=.bas) \
69	    -o $@ --whole-archive $(IN) --no-whole-archive $(LIBS)
70	TMP=. $(EXTERNAL_TOOLCHAIN)/bin/$(MACHINE_GNU_PLATFORM)-dlltool \
71	    -S $(AS) \
72	    --output-exp $(PROG:.ldd=.exp) --base-file $(PROG:.ldd=.bas) \
73	    $(IN) $(LIBS)
74	$(LD) -s -Map $(MAP) -o $@ $(PROG:.ldd=.exp) \
75	    --whole-archive $(IN) --no-whole-archive $(LIBS)
76	rm $(PROG:.ldd=.bas) $(PROG:.ldd=.exp)
77
78$(IN): $(OBJS)
79	$(AR) r $@ $(OBJS)
80	$(RANLIB) $@
81
82
83clean:
84	rm -f $(PROG) $(OBJS) $(IN) $(MAP)
85	rm -f $(PROG:.ldd=-s5.ldd) $(PROG:.ldd=-s5mx.ldd)
86	rm -f $(PROG:.ldd=.bas) $(PROG:.ldd=.exp)
87	rm -f arm
88