Makefile revision 1.1
1#	$NetBSD: Makefile,v 1.1 1997/10/19 11:00:51 oki Exp $
2
3# Define all target-dependent utilities as macros in case of cross compilation.
4# These definitions can be overridden by  <sys.mk>
5LD?=	ld
6AS?=	as
7NM?=	nm
8XSTRIP?=strip
9SIZE?=	size
10
11# text and bss addresses in hex
12TEXT=	3f0000
13BSS=	3f2000
14
15BOOT=	xxboot
16VERSION=0.2
17
18SRCS=	xxboot.S bootufs.c unzip.c
19OBJS=	xxboot.o bootufs.o unzip.o
20.PATH:  ${.CURDIR}/gunzip
21
22#G=-g
23#M=-m68020 -fall-bsr
24CFLAGS=	-O -fomit-frame-pointer -Wall $M $G -DGZIP -DBOOT=\"$(BOOT)\"
25#LDFLAGS=-N -Bstatic -Ttext 0x$(TEXT) -Tbss 0x$(BSS)
26LDFLAGS=-n -Bstatic -T $(TEXT)
27#LDADD=	-lc
28
29CLEANFILES=	$(BOOT) $(BOOT).x s.x x.s x.o $(BOOT)-$(VERSION){,.tar.gz}
30
31.SUFFIXES: .S
32
33.if 0
34# saves about 60bytes...
35.c.o:
36	@echo ${CC} -fall-bsr ${CFLAGS} ${CPPFLAGS} -c ${.IMPSRC}
37	@${CC} ${CFLAGS} ${CPPFLAGS} -S ${.IMPSRC} -o x.s
38	@${CC} -c -o x.o x.s
39	@${NM} x.o | ${.CURDIR}/all_bsr.sh x.s | ${AS} -o ${.TARGET}
40	@rm -f x.s x.o
41.endif
42
43.S.o .s.o:
44	${CPP} ${CPPFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \
45		${AS} -o ${.TARGET}
46
47all: $(BOOT)
48
49$(BOOT): $(OBJS)
50	@echo loading $(BOOT)
51	@$(LD) $(LDFLAGS) -o $(BOOT).x $(OBJS) $(LDADD)
52	@if [ `(echo ibase=16; \
53		$(NM) $(BOOT).x | sed -n 's/D _edata/-$(BSS)/p' | tr a-f A-F) |\
54			bc` -gt 0 ];\
55	then	echo $(BOOT): text+data is too large; exit 1; fi
56	@cp $(BOOT).x s.x
57	@$(XSTRIP) s.x
58	@dd bs=32 skip=1 count=256 if=s.x of=$(BOOT) 2> /dev/null
59	@rm s.x
60	@$(SIZE) $(BOOT).x
61
62#
63# installation
64#
65${DESTDIR}/usr/mdec/sdboot!
66	install -c -o bin -g bin -m 444 $(BOOT) ${DESTDIR}/usr/mdec/sdboot
67
68${DESTDIR}/usr/mdec/fdboot:	${DESTDIR}/usr/mdec/sdboot
69	rm -f ${DESTDIR}/usr/mdec/fdboot
70	ln ${DESTDIR}/usr/mdec/sdboot ${DESTDIR}/usr/mdec/fdboot
71
72install: ${DESTDIR}/usr/mdec/sdboot ${DESTDIR}/usr/mdec/fdboot
73	install -c -o bin -g bin -m 755 writefdboot ${DESTDIR}/usr/mdec
74
75# make package
76dist: ${.CURDIR}/$(BOOT)
77	rm -f $(BOOT)-$(VERSION); ln -s ${.CURDIR} $(BOOT)-$(VERSION); \
78	tar --exclude \*/$(BOOT)-$(VERSION)\* --exclude RCS --exclude tmp \
79		--exclude obj --exclude obj.${MACHINE} \
80		-czhf $(BOOT)-$(VERSION).tar.gz $(BOOT)-$(VERSION); \
81	rm -f $(BOOT)-$(VERSION) ${.CURDIR}/$(BOOT)
82
83${.CURDIR}/$(BOOT): $(BOOT)
84	-ln -f $(BOOT) ${.CURDIR}/$(BOOT)	2>/dev/null
85
86.include <bsd.prog.mk>
87