Makefile revision 1.8
1MAN=installboot.8
2
3### what we need:
4
5S=		${.CURDIR}/../../../..
6DIR_SA = 	${S}/lib/libsa
7DIR_KERN=	${S}/lib/libkern
8DIR_KERN_MD=	${S}/lib/libkern/arch/$(MACHINE_ARCH)
9
10.PATH:  $(DIR_SA) $(DIR_KERN) $(DIR_KERN_MD)
11
12# prefer our assembler versions over assembler, and assembler over C:
13
14.SUFFIXES:
15.SUFFIXES: .out .o .po .so .s .S .c .cc .C .f .y .l .ln .m4 .sh
16
17SRCS=installboot.sh
18
19BOOTBLOCKS= xxboot fdboot
20
21COBJS = configure.o main.o console.o xd.o twiddle.o bzero.o gets.o
22COBJS+=  lseek.o open.o read.o close.o dev.o
23COBJS+=  ufs.o
24
25SOBJS = alloc.o ashrdi3.o bcopy.o muldi3.o printf.o startit.o
26SOBJS += strlen.o strcmp.o
27SOBJS += libstubs.o 
28
29OBJS=	$(SOBJS) $(COBJS)
30
31DEFS = -DSTANDALONE -DINSECURE
32
33### main target: ###
34
35all: ${BOOTBLOCKS} installboot
36
37### special  rules for bootblocks ###
38
39AFLAGS += -m68030 -l
40CAFLAGS += -Wa,-l -Wa,-m68030
41
42INCPATH = -I${S} -I${S}/lib/libsa -I${.CURDIR} -I${.CURDIR}/../..
43BB_COPTIM= -O2 -fomit-frame-pointer -fno-function-cse -Wa,-l -m68060 -Wa,-m68030
44BB_CFLAGS = ${BB_COPTIM} ${INCPATH} ${DEFS} -Wall #-Wstrict-prototypes
45
46.c.o:
47	$(CC) $(BB_CFLAGS) -S $< -o $*.s
48	./txlt < $*.s | $(AS) $(AFLAGS) -o $*.o
49	rm $*.s
50
51.s.o: ; $(CC) $(CAFLAGS) $(COPTS) -x assembler-with-cpp -o $@ -c $<
52
53.S.o: ; $(CC) $(CAFLAGS) $(COPTS) -x assembler-with-cpp -o $@ -c $<
54
55${COBJS}: txlt
56
57${BOOTBLOCKS}: aout2bb
58
59CLEANFILES += xxboot fdboot x.out f.out xxstart.o fdstart.o libboot.a
60
61xxboot: x.out
62	./aout2bb x.out $@ || nm -u x.out
63
64fdboot: f.out
65	./aout2bb f.out $@ || nm -u f.out
66
67x.out: xxstart.o libboot.a
68	$(LD) $(LDFLAGS) -r -dc -e _start -o $@ $>
69	size $@
70	nm -u $@
71
72f.out: fdstart.o libboot.a
73	$(LD) $(LDFLAGS) -r -dc -e _start -o $@ $>
74	size $@
75	nm -u $@
76
77xxstart.o: ${.CURDIR}/bbstart.s
78	$(CC) $(CAFLAGS) $(COPTS) -x assembler-with-cpp \
79		-o $@ -c $>
80
81fdstart.o: ${.CURDIR}/bbstart.s
82	$(CC) -DAUTOLOAD=8192 $(CAFLAGS) $(COPTS) -x assembler-with-cpp \
83		-o $@ -c $>
84
85libboot.a: $(OBJS)
86	ar r $@ $> && ranlib $@
87
88### install what we need: ###
89
90install:
91	install -o $(BINOWN) -g $(BINGRP) installboot ${DESTDIR}/usr/sbin
92	install -o $(BINOWN) -g $(BINGRP) $(BOOTBLOCKS) ${DESTDIR}/usr/mdec
93
94### start of helper programs: ###
95
96HOSTED_CC=	$(CC)
97HOSTED_CFLAGS=	$(CFLAGS)
98
99HOSTED_C=	${HOSTED_CC} ${HOSTED_CFLAGS} ${HOSTED_CPPFLAGS} -c $<
100
101CLEANFILES += txlt txlt.o aout2bb aout2bb.o chksum.o
102
103aout2bb: aout2bb.o chksum.o
104	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $>
105
106aout2bb.o: ${.CURDIR}/aout2bb.c
107	${HOSTED_C}
108
109chksum.o: ${.CURDIR}/chksum.c
110	${HOSTED_C}
111
112txlt: txlt.o
113	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $> -ll
114
115depend::
116	mkdep -a ${.CURDIR}/aout2bb.c ${.CURDIR}/chksum.c
117
118### end of helper programs ###
119
120.include <bsd.prog.mk>
121