1 # $NetBSD: Makefile,v 1.10 2001/09/29 03:45:13 minoura Exp $ 2 3 BOOT= xxboot 4 VERSION=0.3 5 6 # text and bss addresses in hex 7 TEXT= 3f0000 8 BSS= 3f2000 9 10 PROG= $(BOOT) 11 BINDIR= /usr/mdec 12 PROGNAME= sdboot 13 LINKS= ${BINDIR}/sdboot ${BINDIR}/fdboot 14 STRIPFLAG= 15 BINMODE= 444 16 SCRIPTSMODE= 555 17 SCRIPTS= installboot.sh 18 MKMAN= no 19 20 STRIP?= strip 21 22 SRCS= xxboot.S bootufs.c unzip.c 23 .PATH: ${.CURDIR}/gunzip 24 25 CFLAGS= -O -fomit-frame-pointer 26 CFLAGS+= -W -Wall -Wconversion -Wstrict-prototypes -Wmissing-prototypes 27 CFLAGS+= -DTEXTADDR="0x$(TEXT)" -DBOOT=\"$(BOOT)\" -DBOOT_VERS=\"$(VERSION)\" 28 CFLAGS+= -DGZIP -DSCSI_ADHOC_BOOTPART 29 CFLAGS+= -DTITLE_IMAGE -DIMAGE_EXTRA=100 30 #CFLAGS+= -DBOOT_DEBUG 31 AFLAGS= ${CFLAGS:M-[ID]*} 32 LDFLAGS=-N -Bstatic -Ttext $(TEXT) -e top 33 .if ${OBJECT_FMT} == "ELF" 34 LDFLAGS+= -noinhibit-exec # XXX 35 .endif 36 #LDADD= -lc 37 38 CLEANFILES= $(BOOT).x s.x x.s x.o 39 CLEANFILES+= ej2sjesc.lo ej2sjesc *.o.c *.o.s *.o.o 40 41 .c.o: 42 ./ej2sjesc ${.IMPSRC} ${.TARGET}.c 43 @echo '${CC} -fall-bsr ${CFLAGS} ${CPPFLAGS} -o ${.TARGET} -c ${.TARGET}.c' 44 @${CC} ${CFLAGS} ${CPPFLAGS} -S ${.TARGET}.c -o ${.TARGET}.s 45 @${CC} -c -o ${.TARGET}.o ${.TARGET}.s 46 @${NM} ${.TARGET}.o | ${.CURDIR}/all_bsr.sh ${.TARGET}.s | ${AS} -o ${.TARGET} 47 @rm -f ${.TARGET}.c ${.TARGET}.s ${.TARGET}.o 48 49 $(BOOT): $(OBJS) 50 $(LD) $(LDFLAGS) -o $(BOOT).x $(OBJS) $(LDADD) 51 @$(NM) $(BOOT).x | sed -n '/T first_kbyte/p' 52 @if [ `(echo ibase=16; \ 53 $(NM) $(BOOT).x | sed -n 's/T first_kbyte/-$(TEXT)-400/p' | \ 54 tr a-f A-F) | bc` -gt 0 ];\ 55 then echo '$(BOOT): first_kbyte exceeds the first killobyte'; exit 1; fi 56 @$(SIZE) $(BOOT).x 57 @if [ `(echo ibase=16; \ 58 $(NM) $(BOOT).x | sed -n 's/D _edata/-$(BSS)/p' | tr a-f A-F) |\ 59 bc` -gt 0 ];\ 60 then echo '$(BOOT): text+data is too large'; exit 1; fi 61 @cp $(BOOT).x s.x 62 @$(STRIP) s.x 63 @$(OBJCOPY) -O binary s.x $(BOOT) 64 @rm s.x 65 66 bootufs.o unzip.o: ej2sjesc 67 68 # helper program running on the host 69 ej2sjesc: ej2sjesc.lo 70 ${HOST_LINK.c} -o ${.TARGET} ${.ALLSRC} 71 72 .include <bsd.prog.mk> 73