11.12Smlelstv#	$NetBSD: Makefile,v 1.12 2014/03/29 12:52:56 mlelstv Exp $
21.1Sis
31.1Sis### what we need:
41.1Sis
51.1SisDIR_TOP=	${.CURDIR}/../../../../..
61.1SisDIR_SA = 	${DIR_TOP}/lib/libsa
71.1SisDIR_KERN=	${DIR_TOP}/lib/libkern
81.1SisDIR_KERN_MD=	${DIR_TOP}/lib/libkern/arch/$(MACHINE_ARCH)
91.1SisDIR_BOOT=	${.CURDIR}/../boot
101.1Sis
111.1Sis.PATH:  $(DIR_SA) $(DIR_KERN) $(DIR_KERN_MD) $(DIR_BOOT)
121.1Sis
131.1Sis# prefer our assembler versions over assembler, and assembler over C:
141.1Sis
151.1Sis.SUFFIXES:
161.8Smrg.SUFFIXES: .out .o .po .pico .so .s .S .c .cc .C .f .y .l .ln .m4 .sh
171.1Sis
181.1SisFILES= xxppcboot fdppcboot
191.1SisBINDIR=/usr/mdec
201.1Sis
211.1SisCOBJS = main.o console.o xd.o twiddle.o bzero.o gets.o
221.1SisCOBJS+=  lseek.o open.o read.o close.o dev.o errno.o
231.1SisCOBJS+=  ufs.o ppcstart.o
241.1Sis
251.1SisSOBJS = alloc.o ashrdi3.o bcopy.o muldi3.o printf.o
261.1SisSOBJS += strlen.o strcmp.o
271.3SaymericSOBJS += libstubs.o
281.1Sis
291.1SisOBJS=	$(SOBJS) $(COBJS)
301.1Sis
311.7SeladDEFS = -DPPCBOOTER -D_STANDALONE -DSA_EXEC_ANYOWNER -DDEBUG_MEMORY_LIST
321.1Sis
331.1Sis### main target: ###
341.1Sis
351.1Sisall: ${FILES}
361.1Sis
371.1Sis.include <bsd.prog.mk>
381.1Sis
391.1Sis### special  rules for bootblocks ###
401.1Sis
411.9SmrgINCPATH = -I${DIR_TOP} -I${DIR_TOP}/lib/libsa -I${DIR_BOOT} -I${.CURDIR} -I${.CURDIR}/../../.. -I${.CURDIR}/../elf2bb -I${.OBJDIR}
421.1Sis
431.1SisAFLAGS += -m68030 -l
441.12SmlelstvCAFLAGS += -Wa,-l -Wa,-mcpu=68030 ${INCPATH}
451.1Sis
461.10SjoergCOPTIM= -Os -fomit-frame-pointer -fcse-follow-jumps -fcse-skip-blocks
471.12SmlelstvCOPTIM+= -Wa,-l -m68060 -Wa,-mcpu=68030 -fno-unwind-tables
481.5SthorpejCFLAGS= -ffreestanding ${COPTIM} ${INCPATH} ${DEFS} -Wall #-Wstrict-prototypes
491.1Sis
501.1Sis.c.o:
511.1Sis	${CC} ${CFLAGS} -S $< -o $*.s
521.1Sis	${TXLT} < $*.s | ${AS} ${AFLAGS} -o $*.o
531.1Sis	rm $*.s
541.1Sis
551.1Sis.s.o: ; ${CC} ${CAFLAGS} ${COPTS} -x assembler-with-cpp -o $@ -c $<
561.1Sis
571.1Sis.S.o: ; ${CC} ${CAFLAGS} ${COPTS} -x assembler-with-cpp -o $@ -c $<
581.1Sis
591.1SisCLEANFILES += xxppcboot fdppcboot x.out f.out xxstart.o fdstart.o libboot.a
601.1Sis
611.1Sisxxppcboot: x.out
621.2Smhitch	${RELOC2BB} x.out $@ || nm -u x.out
631.1Sis
641.1Sisfdppcboot: f.out
651.2Smhitch	${RELOC2BB} f.out $@ || nm -u f.out
661.1Sis
671.1Sisx.out: xxstart.o libboot.a
681.1Sis	${LD} ${LDFLAGS} -r -dc -e _start -o $@ $>
691.1Sis	size $@
701.1Sis	nm -u $@
711.1Sis
721.1Sisf.out: fdstart.o libboot.a
731.1Sis	${LD} ${LDFLAGS} -r -dc -e _start -o $@ $>
741.1Sis	size $@
751.1Sis	nm -u $@
761.1Sis
771.1Sisxxstart.o: ${DIR_BOOT}/bbstart.s
781.1Sis	${CC} ${CAFLAGS} ${COPTS} -x assembler-with-cpp \
791.1Sis		-o $@ -c $>
801.1Sis
811.1Sisfdstart.o: ${DIR_BOOT}/bbstart.s
821.1Sis	${CC} -DAUTOLOAD=8192 ${CAFLAGS} ${COPTS} -x assembler-with-cpp \
831.1Sis		-o $@ -c $>
841.1Sis
851.1SisPPCCC=powerpc-netbsd-gcc
861.1SisPPCAS=powerpc-netbsd-as
871.1SisPPCLD=powerpc-netbsd-ld
881.1SisPPCOD=powerpc-netbsd-objdump
891.1Sis
901.1SisCLEANFILES += kickstart.o kickstart.bin kickstart68.c
911.1Sis
921.1Sisppcstart.o:	kickstart68.c
931.1Sis
941.1Siskickstart68.c:	kickstart.bin hex2c.awk
951.6Sapb		hexdump kickstart.bin | ${TOOL_AWK} -f ${.CURDIR}/hex2c.awk > $@
961.1Sis
971.1Siskickstart.bin:	kickstart.o
981.1Sis		$(PPCLD) -Ttext=0xfff00100 -o$@ --oformat binary $?
991.1Sis
1001.1Siskickstart.o:	kickstart.S
1011.1Sis		$(PPCCC) -DDEBUG $(COPTS) -x assembler-with-cpp -c $?
1021.1Sis
1031.1Siskickstart.lis:	kickstart.o
1041.1Sis		$(PPCOD) --disassemble-all kickstart.o
1051.1Sis
1061.1Sislibboot.a: ${OBJS}
1071.1Sis	${AR} r $@ $> && ${RANLIB} $@
1081.1Sis
1091.1Sis# make sure these are built:
1101.1Sis
1111.1Sis${COBJS}: ${TXLT}
1121.2Smhitch${FILES}: ${RELOC2BB}
1131.4Saymeric
1141.4Saymeric.include "${.CURDIR}/../Makefile.booters"
115