xref: /netbsd-src/sys/arch/ews4800mips/stand/boot/Makefile (revision 37afb7eb6895c833050f8bfb1d1bb2f99f332539)
1#	$NetBSD: Makefile,v 1.19 2014/08/05 15:40:59 apb Exp $
2
3WARNS		?= 1
4NOMAN		=
5
6BINMODE		= 444
7
8S		= ${.CURDIR}/../../../..
9COMMON		= ${.CURDIR}/../common
10
11LIBSADIR	= ${S}/lib/libsa
12SYSVBFSDIR	= ${S}/fs/sysvbfs
13EWS4800MIPSDIR	= ${.CURDIR}/../../ews4800mips
14DEVDIR		= ${.CURDIR}/../../dev
15
16# XXX SHOULD NOT NEED TO DEFINE THESE!
17LIBCRT0=
18LIBCRTI=
19LIBC=
20LIBCRTBEGIN=
21LIBCRTEND=
22
23.PATH:		${COMMON} ${LIBSADIR} ${SYSVBFSDIR}	\
24		${EWS4800MIPSDIR} ${SBDDIR} ${DEVDIR}
25
26COFFHDRFIX	= ${.OBJDIR}/coffhdrfix
27
28PROG		= boot
29BOOT_KERNEL	= boot_kernel
30FILES		+= ${PROG}.coff ${BOOT_KERNEL}.gz # XXX hack to install these
31SRCS		= start.S boot.c prompt.c delay.c cmd.c loader.c
32SRCS		+= bfs_subr.o disk.c diskutil.c
33SRCS		+= devopen.c datafs.c bootfs.c ustarfs.c
34SRCS		+= lance.c ether_if.c
35SRCS		+= device_test.c cop0.c mem.c
36SRCS		+= boot_device.c floppy_2d.c floppy_2hd_ibmpc.c
37#SRCS		+= floppy_2hc.c
38SRCS		+= console.c cons_rom.c cons_fb.c cons_zskbd.c cons_zs.c
39BINKERNEL_C	= ${COMMON}/binkernel.c
40BINKERNEL_SIZE	= '2 * 1024 * 1024'
41BINKERNEL_O	= binkernel.o
42BINKERNEL_DUMMY_O= binkernel_dummy.o
43
44# ${S}/lib/libsa
45SRCS		+= dev_net.c
46# ${S}/fs/sysvbfs
47SRCS		+= bfs.c
48# ../../dev
49SRCS		+= ga.c
50# ../../ews4800mips
51SRCS		+= pdinfo.c vtoc.c
52
53.PHONY: vers.c
54vers.c: version
55	${_MKTARGET_CREATE}
56	${HOST_SH} ${S}/conf/newvers_stand.sh ${.CURDIR}/version ${MACHINE}
57
58SRCS+=	vers.c
59CLEANFILES+= vers.c
60
61TEXTADDR	= 0xa0a00000
62LINKFLAGS	= -T ${S}/arch/mips/conf/stand.ldscript -Ttext ${TEXTADDR} \
63		  -e start -N
64COFFLDFLAGS	= -T ${COMMON}/coffboot.ldscript -N
65
66MIPSFLAGS	= -mips1 -G 0 -mno-abicalls
67DEBUGFLAGS	= -Wall -Werror
68DEBUGFLAGS	+= -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
69DEBUGFLAGS	+= -Wno-format-zero-length -Wno-sign-compare
70OPTFLAGS	= -Os -mmemcpy
71FLAGS		= ${MIPSFLAGS} ${DEBUGFLAGS} ${OPTFLAGS}
72AFLAGS		= -xassembler-with-cpp -D_LOCORE ${FLAGS}
73CFLAGS		= ${FLAGS} -ffreestanding
74
75CPPFLAGS	+= -D_STANDALONE -DSUPPORT_BOOTP
76CPPFLAGS	+= -nostdinc -I${.OBJDIR} -I${.CURDIR} -I${COMMON} -I${S}
77CPPFLAGS	+= -D__daddr_t=int32_t
78#CPPFLAGS	+= -DBOOTP_DEBUG -DNETIF_DEBUG -DETHER_DEBUG -DNFS_DEBUG
79#CPPFLAGS	+= -DRPC_DEBUG -DRARP_DEBUG -DNET_DEBUG -DDEBUG -DPARANOID
80
81CLEANFILES	+= ${BINKERNEL_DUMMY_O} ${BINKERNEL_O}
82CLEANFILES	+= ${PROG} ${PROG}.elf ${PROG}.coff ${PROG}.tmp ${PROG}.dis
83CLEANFILES	+= ${COFFHDRFIX}
84CLEANFILES	+= ${BOOT_KERNEL} ${BOOT_KERNEL}.elf ${BOOT_KERNEL}.tmp
85CLEANFILES	+= ${BOOT_KERNEL}.gz ${BOOT_KERNEL}.gz.tmp
86
87.include "${S}/lib/libkern/Makefile.inc"
88LIBKERN=	${KERNLIB}
89
90.include "${S}/lib/libz/Makefile.inc"
91LIBZ=		${ZLIB}
92
93CPPFLAGS+= -DLIBSA_ENABLE_LS_OP
94SAMISCMAKEFLAGS= SA_USE_CREAD=yes SA_USE_LOADFILE=yes SA_ENABLE_LS_OP=yes
95.include "${S}/lib/libsa/Makefile.inc"
96LIBSA=		${SALIB}
97
98LIBS		= ${LIBSA} ${LIBZ} ${LIBKERN}
99
100# fixup GNU binutils file offset error.
101coffhdrfix:	${COMMON}/coffhdrfix.c
102	${HOST_CC} -o ${COFFHDRFIX} ${COMMON}/coffhdrfix.c
103
104cleandir distclean: .WAIT cleanlibdir
105
106cleanlibdir:
107	-rm -rf lib
108
109${BINKERNEL_DUMMY_O}: ${BINKERNEL_C}
110	${_MKTARGET_COMPILE}
111	${COMPILE.c} -DKERNEL_SIZE=0 ${BINKERNEL_C} -o ${.TARGET}
112
113${BINKERNEL_O}: ${BINKERNEL_C}
114	${_MKTARGET_COMPILE}
115	${COMPILE.c} -DKERNEL_SIZE=${BINKERNEL_SIZE} ${BINKERNEL_C} \
116	    -o ${.TARGET}
117
118all realall: ${PROG}.coff ${BOOT_KERNEL}.gz
119
120${PROG}: ${BINKERNEL_DUMMY_O} ${OBJS} ${LIBS}
121	${_MKTARGET_LINK}
122	${LD} ${LINKFLAGS} -S -o ${PROG}.elf ${OBJS} ${LIBS} \
123	    ${BINKERNEL_DUMMY_O}
124	${OBJDUMP} -h ${PROG}.elf
125#	${OBJDUMP} -m mips:4000 -d ${PROG}.elf > ${PROG}.dis
126	mv ${PROG}.elf ${PROG}
127	ls -al ${PROG}
128
129.include <bsd.klinks.mk>
130.include <bsd.prog.mk>
131
132${PROG}.coff:	${PROG}
133	${_MKTARGET_CREATE}
134	${ELF2ECOFF} ${PROG} ${.TARGET}.tmp
135	mv ${.TARGET}.tmp ${.TARGET}
136
137${BOOT_KERNEL}.gz: ${BINKERNEL_O} ${OBJS} ${LIBS}
138	${_MKTARGET_LINK}
139	${LD} ${LINKFLAGS} -o ${BOOT_KERNEL}.elf ${OBJS} ${LIBS} \
140	    ${BINKERNEL_O}
141	mv ${BOOT_KERNEL}.elf ${BOOT_KERNEL}
142	${OBJDUMP} -h ${BOOT_KERNEL}
143	${TOOL_GZIP_N} -9c ${BOOT_KERNEL} > ${.TARGET}.tmp
144	mv ${.TARGET}.tmp ${.TARGET}
145	ls -al ${.TARGET}
146
147COPTS.ustarfs.c+=	-fno-strict-aliasing
148