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