Home | History | Annotate | Line # | Download | only in stand
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