Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
CONF=pi
2
CONFLIST=pi picpu pifat
3
EXTRACOPIES=
4
 
5
loadaddr=0x80008000
6
 
7
objtype=arm
8
</$objtype/mkfile
9
p=9
10
 
11
DEVS=`{rc ../port/mkdevlist $CONF}
12
 
13
PORT=\
14
	alarm.$O\
15
	alloc.$O\
16
	allocb.$O\
17
	auth.$O\
18
	cache.$O\
19
	chan.$O\
20
	dev.$O\
21
	edf.$O\
22
	fault.$O\
23
	mul64fract.$O\
24
	page.$O\
25
	parse.$O\
26
	pgrp.$O\
27
	portclock.$O\
28
	print.$O\
29
	proc.$O\
30
	qio.$O\
31
	qlock.$O\
32
	rdb.$O\
33
	rebootcmd.$O\
34
	segment.$O\
35
	swap.$O\
36
	syscallfmt.$O\
37
	sysfile.$O\
38
	sysproc.$O\
39
	taslock.$O\
40
	tod.$O\
41
	xalloc.$O\
42
 
43
OBJ=\
44
	l.$O\
45
	lexception.$O\
46
	lproc.$O\
47
	arch.$O\
48
	clock.$O\
49
	fpi.$O\
50
	fpiarm.$O\
51
	fpimem.$O\
52
	main.$O\
53
	mmu.$O\
54
	random.$O\
55
	syscall.$O\
56
	trap.$O\
57
	$CONF.root.$O\
58
	$CONF.rootc.$O\
59
	$DEVS\
60
	$PORT\
61
 
62
# HFILES=
63
 
64
LIB=\
65
	/$objtype/lib/libmemlayer.a\
66
	/$objtype/lib/libmemdraw.a\
67
	/$objtype/lib/libdraw.a\
68
	/$objtype/lib/libip.a\
69
	/$objtype/lib/libsec.a\
70
	/$objtype/lib/libmp.a\
71
	/$objtype/lib/libc.a\
72
 
73
9:V: $p$CONF s$p$CONF
74
 
75
$p$CONF:DQ:	$CONF.c $OBJ $LIB mkfile
76
	$CC $CFLAGS '-DKERNDATE='`{date -n} $CONF.c
77
	echo '# linking raw kernel'	# H6: no headers, data segment aligned
78
	$LD -l -o $target -H6 -R4096 -T$loadaddr $OBJ $CONF.$O $LIB
79
 
80
s$p$CONF:DQ:	$CONF.$O $OBJ $LIB
81
	echo '# linking kernel with symbols'
82
	$LD -l -o $target -R4096 -T$loadaddr $OBJ $CONF.$O $LIB
83
	size $target
84
 
85
$p$CONF.gz:D:	$p$CONF
86
	gzip -9 <$p$CONF >$target
87
 
88
$OBJ: $HFILES
89
 
90
install:V: /$objtype/$p$CONF
91
 
92
/$objtype/$p$CONF:D: $p$CONF s$p$CONF
93
	cp -x $p$CONF s$p$CONF /$objtype/ &
94
	for(i in $EXTRACOPIES)
95
		{ 9fs $i && cp $p$CONF s$p$CONF /n/$i/$objtype && echo -n $i... & }
96
	wait
97
	echo
98
	touch $target
99
 
100
<../boot/bootmkfile
101
<../port/portmkfile
102
<|../port/mkbootrules $CONF
103
 
104
arch.$O clock.$O fpiarm.$O main.$O mmu.$O screen.$O syscall.$O trap.$O: \
105
	/$objtype/include/ureg.h
106
 
107
archbcm.$O devether.$0: etherif.h ../port/netif.h
108
archbcm.$O: ../port/flashif.h
109
fpi.$O fpiarm.$O fpimem.$O: ../port/fpi.h
110
l.$O lexception.$O lproc.$O mmu.$O: arm.s mem.h
111
main.$O: errstr.h init.h reboot.h
112
devmouse.$O mouse.$O screen.$O: screen.h
113
devusb.$O: ../port/usb.h
114
usbehci.$O usbohci.$O usbuhci.$O: ../port/usb.h usbehci.h uncached.h
115
 
116
init.h:D:	../port/initcode.c init9.s
117
	$CC ../port/initcode.c
118
	$AS init9.s
119
	$LD -l -R1 -s -o init.out init9.$O initcode.$O /$objtype/lib/libc.a
120
	{echo 'uchar initcode[]={'
121
	 xd -1x <init.out |
122
		sed -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g'
123
	 echo '};'} > init.h
124
 
125
reboot.h:D:	rebootcode.s arm.s arm.h mem.h
126
	$AS rebootcode.s
127
	# -lc is only for memmove.  -T arg is PADDR(REBOOTADDR)
128
	$LD -l -s -T0x3400 -R4 -o reboot.out rebootcode.$O -lc
129
	{echo 'uchar rebootcode[]={'
130
	 xd -1x reboot.out |
131
		sed -e '1,2d' -e 's/^[0-9a-f]+ //' -e 's/ ([0-9a-f][0-9a-f])/0x\1,/g'
132
	 echo '};'} > reboot.h