Makefile.booters revision 1.21 1 # $NetBSD: Makefile.booters,v 1.21 1999/04/01 06:05:04 simonb Exp $
2 #
3 # NOTE: $S must correspond to the top of the 'sys' tree
4
5 BINDIR?=/usr/mdec
6 BINMODE?=444
7
8 .BEGIN: ${.OBJDIR}/machine ${.OBJDIR}/mips
9 ${PROG} depend all: ${.OBJDIR}/machine ${.OBJDIR}/mips
10 CLEANFILES+= machine mips
11
12 ${.OBJDIR}/machine:
13 -rm -f ${.TARGET}
14 ln -s $S/arch/${MACHINE}/include ${.TARGET}
15
16 ${.OBJDIR}/mips:
17 -rm -f ${.TARGET}
18 ln -s $S/arch/mips/include mips
19
20 # Tailor C compilation for standalone environment.
21 COPTS= -Os # -Os gives smaller code
22
23 C_MACHDEP=-mmemcpy -mno-abicalls -G 128 # even smaller code
24
25 DEFS?= -DSMALL -D_STANDALONE -D_NO_PROM_DEFINES -DNO_ABICALLS \
26 ${BOOTDEFADD}
27 INCL?= -nostdinc -I${.OBJDIR} -I$S -I${PMAX_STAND_DIR}/lib -I$S/lib/libsa
28
29 CFLAGS+= ${CWARN} ${C_MACHDEP}
30 AFLAGS+= -D_LOCORE -D_KERNEL
31 CPPFLAGS+= ${DEFS} ${INCL}
32
33 LDBUG= -T $S/arch/mips/conf/stand.ldscript
34
35 ### find out what to use for libsa
36 SA_AS= library
37 .include "${S}/lib/libsa/Makefile.inc"
38 LIBSA= ${SALIB}
39 SAMISCMAKEFLAGS= SA_INCLUDE_NET=yes
40
41 # We don't need libkern/libz for the first stage bootblocks
42 .if ${PROG} != "bootxx"
43
44 ### find out what to use for libz
45 Z_AS= library
46 .include "${S}/lib/libz/Makefile.inc"
47 LIBZ= ${ZLIB}
48 # and use compressed read in libsa
49 SAMISCMAKEFLAGS= SA_USE_CREAD=yes
50
51 ### find out what to use for libkern
52 KERN_AS= library
53 .include "${S}/lib/libkern/Makefile.inc"
54 LIBKERN= ${KERNLIB}
55
56 .endif # ${PROG} != "bootxx"
57
58 PMAX_STAND_DIR?= $S/arch/pmax/stand
59 ### find out what to use for libpmax
60 PMAXDIR= ${PMAX_STAND_DIR}/lib
61 .include "${PMAXDIR}/Makefile.inc"
62 LIBPMAX= ${PMAXLIB}
63
64 LIBS= ${LIBPMAX} ${LIBKERN} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBPMAX}
65 VERS_O?=vers.o
66
67 ${PROG}: ${OBJS} ${LIBS}
68 .if ${VERS_O} != ""
69 sh ${PMAX_STAND_DIR}/lib/newvers.sh ${VERSIONFILE} ${NEWVERSWHAT}
70 ${COMPILE.c} vers.c
71 .endif
72 ld -Map ${PROG}.map -N -x -Ttext ${RELOC} ${LDBUG} -e start \
73 ${OBJS} ${VERS_O} ${LIBS} -o ${PROG}
74
75 CLEANFILES+=${PROG}.map
76 .if ${VERS_O} != ""
77 CLEANFILES+=vers.c vers.o
78 .endif
79
80 cleandir distclean: cleanlibdir
81
82 cleanlibdir:
83 rm -rf lib
84
85 .include <bsd.prog.mk>
86
87 # be sure to turn off any PIC flags for standalone library code.
88 CPICFLAGS=
89 CAPICFLAGS=
90 CPPPICFLAGS=
91 APICFLAGS=
92