Home | History | Annotate | Line # | Download | only in xxboot
Makefile revision 1.4
      1  1.4    martin #	$NetBSD: Makefile,v 1.4 2023/01/13 18:43:43 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.4    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