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