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