Home | History | Annotate | Line # | Download | only in xxboot
      1  1.6   skrll #	$NetBSD: Makefile,v 1.6 2024/04/29 07:34:27 skrll Exp $
      2  1.1   skrll 
      3  1.6   skrll NODEBUG=	yes
      4  1.6   skrll PROG=		xxboot
      5  1.6   skrll NOMAN=		# defined
      6  1.6   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.5   skrll # Make sure we override any optimization options specified by the user
     21  1.5   skrll DBG=		# empty
     22  1.5   skrll 
     23  1.1   skrll .include <bsd.own.mk>
     24  1.1   skrll 
     25  1.1   skrll LINKS=	${BINDIR}/${PROG} ${BINDIR}/sdboot
     26  1.1   skrll 
     27  1.1   skrll BINDIR=		/usr/mdec
     28  1.1   skrll STRIPFLAG=
     29  1.1   skrll BINMODE=	444
     30  1.1   skrll 
     31  1.1   skrll # standalone program
     32  1.1   skrll LIBCRTBEGIN=
     33  1.1   skrll LIBCRT0=
     34  1.1   skrll LIBCRTI=
     35  1.1   skrll LIBCRTEND=
     36  1.1   skrll LIBC=
     37  1.1   skrll 
     38  1.1   skrll S=		${.CURDIR}/../../../..
     39  1.1   skrll 
     40  1.1   skrll ${PROG}: iplsum ${OBJS}
     41  1.1   skrll 	${_MKTARGET_LINK}
     42  1.1   skrll 	${LD} -Ttext 0 -Tdata 0 -e '$$START$$' -N -o $@1 $(OBJS)
     43  1.1   skrll 	${LD} -Ttext 0x100 -Tdata 0x23456780 -e '$$START$$' -N -o $@2 $(OBJS)
     44  1.1   skrll 	${SIZE} $@1
     45  1.1   skrll 	${OBJCOPY} -O binary -j .data $@1 $@1.bin
     46  1.1   skrll 	${OBJCOPY} -O binary -j .data $@2 $@2.bin
     47  1.1   skrll 	cmp $@1.bin $@2.bin	# should be same
     48  1.1   skrll 	${OBJCOPY} -O binary -j .text $@1 $@2.bin
     49  1.1   skrll 	test ! -s $@2.bin	# text section must be empty
     50  1.1   skrll 	${_MKMSG} " iplsum " ${.TARGET}
     51  1.1   skrll 	./iplsum $@1.bin $@
     52  1.1   skrll 
     53  1.1   skrll iplsum: iplsum.c
     54  1.1   skrll 	${_MKTARGET_LINK}
     55  1.1   skrll 	${HOST_CC} -o $@ ${.CURDIR}/iplsum.c
     56  1.1   skrll 
     57  1.1   skrll CLEANFILES+=	${PROG}1 ${PROG}2 ${PROG}1.bin ${PROG}2.bin ${PROG}.bin iplsum
     58  1.1   skrll CLEANFILES+=	${SRCS:M*.c:S/.c$/.o.S/}
     59  1.1   skrll 
     60  1.1   skrll .include <bsd.prog.mk>
     61  1.1   skrll .include <bsd.klinks.mk>
     62  1.1   skrll 
     63  1.1   skrll # override default rules
     64  1.1   skrll 
     65  1.1   skrll # Place code to data section.
     66  1.1   skrll .S.o:
     67  1.1   skrll 	${_MKTARGET_COMPILE}
     68  1.1   skrll 	${TOOL_SED} -e 's/\.code/.data/' \
     69  1.1   skrll 	-e 's/\.bss/.section .bss,"aw",@nobits/' \
     70  1.1   skrll 	-e 's/\.allow$$/.level	1.0/' -e 's/\.allow/.level/' \
     71  1.1   skrll 	 ${.IMPSRC} | ${AS} -o ${.TARGET}
     72  1.1   skrll 
     73  1.1   skrll # Place code to data section, and make sure all address calculations
     74  1.1   skrll # are relative to $global$.
     75  1.1   skrll .c.o:
     76  1.1   skrll 	${_MKTARGET_COMPILE}
     77  1.1   skrll 	${CC} ${CFLAGS} ${CPPFLAGS} -o $@.S -S ${.IMPSRC}
     78  1.1   skrll 	grep -i 'ldil' $@.S | egrep -v "ldil L'-?[0-9]*," > /dev/null 2>&1; \
     79  1.1   skrll 		if [ $$? = 0 ]; then \
     80  1.1   skrll 			echo 'found non-relocatable code' >&2 && exit 1; \
     81  1.1   skrll 		fi
     82  1.1   skrll 	${TOOL_SED} -e 's/\.text/.data/' $@.S | ${AS} -o ${.TARGET}
     83