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