Home | History | Annotate | Line # | Download | only in xxboot
Makefile revision 1.1
      1  1.1  skrll #	$NetBSD: Makefile,v 1.1 2014/02/24 07:23:43 skrll Exp $
      2  1.1  skrll 
      3  1.1  skrll PROG=	xxboot
      4  1.1  skrll NOMAN=	# defined
      5  1.1  skrll SRCS=	start.S main.c readufs.c readufs_ffs.c readufs_lfs.c milli_tiny.S
      6  1.1  skrll 
      7  1.1  skrll .PATH:	${.CURDIR}/../common
      8  1.1  skrll 
      9  1.1  skrll CPPFLAGS+=	-I${.CURDIR}/../../../.. -I. -D_STANDALONE
     10  1.1  skrll # configuration for readufs module
     11  1.1  skrll CPPFLAGS+=	-DUSE_LFS -DUSE_FFS -DUSE_UFS1 -DUSE_UFS2
     12  1.1  skrll # IODC can handle only 2GB, so this is enough
     13  1.1  skrll CPPFLAGS+=	-D__daddr_t=int32_t
     14  1.1  skrll # ANSI C feature prevents from being relocatable
     15  1.1  skrll #CPPFLAGS+=	-traditional	# would be best
     16  1.1  skrll CPPFLAGS+=	-Dconst=
     17  1.1  skrll COPTS+=		-Os -funsigned-char -mdisable-fpregs -mpa-risc-1-0
     18  1.1  skrll 
     19  1.1  skrll .include <bsd.own.mk>
     20  1.1  skrll 
     21  1.1  skrll LINKS=	${BINDIR}/${PROG} ${BINDIR}/sdboot
     22  1.1  skrll 
     23  1.1  skrll BINDIR=		/usr/mdec
     24  1.1  skrll STRIPFLAG=
     25  1.1  skrll BINMODE=	444
     26  1.1  skrll 
     27  1.1  skrll # standalone program
     28  1.1  skrll LIBCRTBEGIN=
     29  1.1  skrll LIBCRT0=
     30  1.1  skrll LIBCRTI=
     31  1.1  skrll LIBCRTEND=
     32  1.1  skrll LIBC=
     33  1.1  skrll 
     34  1.1  skrll S=		${.CURDIR}/../../../..
     35  1.1  skrll 
     36  1.1  skrll ${PROG}: iplsum ${OBJS}
     37  1.1  skrll 	${_MKTARGET_LINK}
     38  1.1  skrll 	${LD} -Ttext 0 -Tdata 0 -e '$$START$$' -N -o $@1 $(OBJS)
     39  1.1  skrll 	${LD} -Ttext 0x100 -Tdata 0x23456780 -e '$$START$$' -N -o $@2 $(OBJS)
     40  1.1  skrll 	${SIZE} $@1
     41  1.1  skrll 	${OBJCOPY} -O binary -j .data $@1 $@1.bin
     42  1.1  skrll 	${OBJCOPY} -O binary -j .data $@2 $@2.bin
     43  1.1  skrll 	cmp $@1.bin $@2.bin	# should be same
     44  1.1  skrll 	${OBJCOPY} -O binary -j .text $@1 $@2.bin
     45  1.1  skrll 	test ! -s $@2.bin	# text section must be empty
     46  1.1  skrll 	${_MKMSG} " iplsum " ${.TARGET}
     47  1.1  skrll 	./iplsum $@1.bin $@
     48  1.1  skrll 
     49  1.1  skrll iplsum: iplsum.c
     50  1.1  skrll 	${_MKTARGET_LINK}
     51  1.1  skrll 	${HOST_CC} -o $@ ${.CURDIR}/iplsum.c
     52  1.1  skrll 
     53  1.1  skrll CLEANFILES+=	${PROG}1 ${PROG}2 ${PROG}1.bin ${PROG}2.bin ${PROG}.bin iplsum
     54  1.1  skrll CLEANFILES+=	${SRCS:M*.c:S/.c$/.o.S/}
     55  1.1  skrll 
     56  1.1  skrll .include <bsd.prog.mk>
     57  1.1  skrll .include <bsd.klinks.mk>
     58  1.1  skrll 
     59  1.1  skrll # override default rules
     60  1.1  skrll 
     61  1.1  skrll # Place code to data section.
     62  1.1  skrll .S.o:
     63  1.1  skrll 	${_MKTARGET_COMPILE}
     64  1.1  skrll 	${TOOL_SED} -e 's/\.code/.data/' \
     65  1.1  skrll 	-e 's/\.bss/.section .bss,"aw",@nobits/' \
     66  1.1  skrll 	-e 's/\.allow$$/.level	1.0/' -e 's/\.allow/.level/' \
     67  1.1  skrll 	 ${.IMPSRC} | ${AS} -o ${.TARGET}
     68  1.1  skrll 
     69  1.1  skrll # Place code to data section, and make sure all address calculations
     70  1.1  skrll # are relative to $global$.
     71  1.1  skrll .c.o:
     72  1.1  skrll 	${_MKTARGET_COMPILE}
     73  1.1  skrll 	${CC} ${CFLAGS} ${CPPFLAGS} -o $@.S -S ${.IMPSRC}
     74  1.1  skrll 	grep -i 'ldil' $@.S | egrep -v "ldil L'-?[0-9]*," > /dev/null 2>&1; \
     75  1.1  skrll 		if [ $$? = 0 ]; then \
     76  1.1  skrll 			echo 'found non-relocatable code' >&2 && exit 1; \
     77  1.1  skrll 		fi
     78  1.1  skrll 	${TOOL_SED} -e 's/\.text/.data/' $@.S | ${AS} -o ${.TARGET}
     79