No empty .Rs/.Re
[netbsd-mini2440.git] / sys / arch / sbmips / stand / Makefile.bootprogs
blobf6bd20c1a96cb5265fe7feead5844e9f2fb6aee7
1 # $NetBSD: Makefile.bootprogs,v 1.6 2005/12/11 12:18:51 christos Exp $
3 .include <bsd.sys.mk>           # for HOST_SH
5 S=      ${.CURDIR}/../../../..
7 .PATH:  ${.CURDIR}/../common
9 STRIPFLAG=
10 BINMODE= 444
12 # XXX SHOULD NOT NEED TO DEFINE THESE!
13 LIBCRT0=
14 LIBC=
15 LIBCRTBEGIN=
16 LIBCRTEND=
18 STRIP?= strip
20 CHECKSIZE_CMD=  SIZE=${SIZE} ${HOST_SH} ${.CURDIR}/../common/checksize.sh
22 .PHONY: machine-links
23 beforedepend: machine-links
24 # ${MACHINE} then ${MACHINE_ARCH}
25 machine-links:
26         -rm -f machine && \
27             ln -s $S/arch/sbmips/include machine
28         -rm -f mips && \
29             ln -s $S/arch/mips/include mips
30 CLEANFILES+=machine mips
32 realall: machine-links ${PROG}
34 AFLAGS+=        -DASSEMBLER -D_LOCORE -mno-abicalls
35 # -I${.CURDIR}/../.. done by Makefile.inc
36 CPPFLAGS+=      -nostdinc -I${.OBJDIR} -D_STANDALONE -I${S}
37 CFLAGS=         -Os -g -ffreestanding -mno-abicalls -msoft-float -G 0
38 CFLAGS+=        -Werror ${CWARNFLAGS}
40 NETBSD_VERS!=${HOST_SH} ${.CURDIR}/../../../../conf/osrelease.sh
41 CPPFLAGS+= -DNETBSD_VERS='"${NETBSD_VERS}"'
43 CWARNFLAGS+=    -Wno-main 
44 CWARNFLAGS+=    -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
45 CWARNFLAGS+=    -Wno-pointer-sign
47 # if there is a 'version' file, add rule for vers.c and add it to SRCS
48 # and CLEANFILES
49 .if exists(version)
50 .PHONY: vers.c
51 vers.c: version
52         ${HOST_SH} ${S}/conf/newvers_stand.sh -N ${.CURDIR}/version "sbmips"
54 SRCS+=  vers.c
55 CLEANFILES+= vers.c
56 .endif
58
59 # Refer to CFE documentation for a description of these regions.
60
62 REGION1_START=          0x20000000              # "Region 1 start"
63 REGION1_SIZE!=          expr 256 \* 1024        # 256k
65 # our memory lauout:
67 #       'unified' boot loaders (e.g. netboot) can consume all of region
68 #       1 for their text+data, or text+data+bss.
70 UNIFIED_LOAD_ADDRESS=   ${REGION1_START}
71 UNIFIED_MAX_LOAD!=      expr ${REGION1_SIZE}
72 UNIFIED_MAX_TOTAL!=     expr ${REGION1_SIZE}
74 #UNIFIED_HEAP_START=    right after secondary bss
75 UNIFIED_HEAP_LIMIT=     (${REGION1_START} + ${REGION1_SIZE})
77 #       two-stage boot loaders must share region 1.  The first stage
78 #       loads into the lowest portion, and uses the higest portion
79 #       for its heap.  The second stage loads in between the primary image
80 #       and the heap, and can reuse the memory after it (i.e. the primary's
81 #       heap) for its own heap.
83 PRIMARY_LOAD_ADDRESS=   ${REGION1_START}
84 #PRIMARY_MAX_LOAD=      booter dependent, no more than ${PRIMARY_MAX_TOTAL}
85 PRIMARY_MAX_TOTAL!=     expr 16 \* 1024
87 # XXX SECONDARY_LOAD_ADDRESS should be
88 # XXX (${PRIMARY_LOAD_ADDRESS} + ${PRIMARY_MAX_TOTAL}) bt there's no easy
89 # XXX way to do that calculation and 'ld' wants a single number.
90 SECONDARY_LOAD_ADDRESS= 0x20004000      # XXX
91 SECONDARY_MAX_LOAD!=    expr 112 \* 1024
92 SECONDARY_MAX_TOTAL!=   expr ${REGION1_SIZE} - ${PRIMARY_MAX_TOTAL}
94 PRIMARY_HEAP_START=     (${SECONDARY_LOAD_ADDRESS} + ${SECONDARY_MAX_LOAD})
95 PRIMARY_HEAP_LIMIT=     (${REGION1_START} + ${REGION1_SIZE})
97 #SECONDARY_HEAP_START=  right after secondary bss
98 SECONDARY_HEAP_LIMIT=   (${REGION1_START} + ${REGION1_SIZE})
100 #       standalone programs are like kernels.  They load at
101 #       0xfffffc0000300000 and can use the rest of memory.
103 STANDPROG_LOAD_ADDRESS= 0xfffffc0000300000
106 FILE_FORMAT_CPPFLAGS=   -DBOOT_ECOFF -DBOOT_ELF
108 UNIFIED_CPPFLAGS=       -DUNIFIED_BOOTBLOCK \
109                         -DHEAP_LIMIT="${UNIFIED_HEAP_LIMIT}" \
110                         ${FILE_FORMAT_CPPFLAGS}
112 PRIMARY_CPPFLAGS=       -DPRIMARY_BOOTBLOCK \
113                         -DSECONDARY_LOAD_ADDRESS="${SECONDARY_LOAD_ADDRESS}" \
114                         -DSECONDARY_MAX_LOAD="${SECONDARY_MAX_LOAD}" \
115                         -DHEAP_LIMIT="${PRIMARY_HEAP_LIMIT}" \
116                         -DHEAP_START="${PRIMARY_HEAP_START}"
118 SECONDARY_CPPFLAGS=     -DSECONDARY_BOOTBLOCK \
119                         -DHEAP_LIMIT="${SECONDARY_HEAP_LIMIT}" \
120                         ${FILE_FORMAT_CPPFLAGS}
122 STANDPROG_CPPFLAGS=     -DSTANDALONE_PROGRAM
124 .include <bsd.prog.mk>
126 ### find out what to use for libkern
127 KERN_AS=        library
128 .include "${S}/lib/libkern/Makefile.inc"
129 LIBKERN=        ${KERNLIB}
131 ### find out what to use for libz
132 Z_AS=           library
133 .include "${S}/lib/libz/Makefile.inc"
134 LIBZ=           ${ZLIB}
136 ### find out what to use for libsa
137 SA_AS=          library
138 SAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes"
139 .include "${S}/lib/libsa/Makefile.inc"
140 LIBSA=          ${SALIB}
143 /usr/lib/crt0.o:
144         true
146 /usr/lib/crtbegin.o:
147         true
149 /usr/lib/crtend.o:
150         true
152 cleandir: cleandirlocal
153 cleandirlocal:
154         -rm -rf lib