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