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