xref: /inferno-os/os/boot/mpc/mkfile (revision 74a4d8c26dd3c1e9febcb717cfd6cb6512991a7a)
1objtype=power
2OBJTYPE=power	# always
3<../../../mkconfig
4SYSTARG=$OSTARG	# always
5<$ROOT/mkfiles/mkfile-$SYSTARG-$OBJTYPE
6INSTALLDIR=$ROOT/Inferno/$OBJTYPE/bin	#path of directory where kernel is installed
7ARCH=fads	# selects board dependent code
8TARG=qb$ARCH
9OFILES=\
10	l.$O\
11	arch$ARCH.$O\
12	devuart.$O\
13	uartboot.$O\
14	alarm.$O\
15	bootp.$O\
16	clock.$O\
17	conf.$O\
18	console.$O\
19	cpm.$O\
20	defont0.$O\
21	donprint.$O\
22	dosboot.$O\
23	devether.$O\
24	etherscc.$O\
25	fblt.$O\
26	gbitbltclip.$O\
27	flash.$O\
28	main.$O\
29	plan9boot.$O\
30	qio.$O\
31	rmap.$O\
32	screen.$O\
33	init$ARCH.$O\
34	trap.$O\
35	zqs.$O\
36
37HFILES=\
38	boot.h\
39	dat.h\
40	fns.h\
41	io.h\
42	lib.h\
43	mem.h\
44	squeeze.h\
45	gnot.h\
46	arch$ARCH.h\
47
48LIBS=\
49	kern\
50
51LIBDIRS=$LIBS
52LIBNAMES=${LIBS:%=lib%.a}
53LIBFILES=${LIBS:%=$ROOT/$TARGMODEL/$OBJTYPE/lib/lib%.a}
54
55#all:NV:	$TARG k.mx f.mx
56all:NV:	$TARG
57install:V: 	$INSTALLDIR/$TARG
58installall:V: 	$INSTALLDIR/$TARG
59
60$INSTALLDIR/%: %
61	rm -f $INSTALLDIR/$stem && cp $stem $INSTALLDIR/$stem
62
63$TARG: $OFILES $LIBNAMES
64	$LD -o $target -l  -T0x140000 -R4 $OFILES $LIBFILES
65	ls -l $target
66
67qbrom$ARCH:	$OFILES $LIBNAMES
68	$LD -o $target -l -T0x02800100 -R0 -D0x140000 $OFILES $LIBFILES
69
70k.mx:	$TARG
71	ms2 -S 0x100 -a 0x100 -p 4 $TARG >k.mx
72
73f.mx:	qbrom$ARCH
74	ms2 -S 0x100 -a 0x2800100 -p 4 $prereq >f.mx
75
76%.$O:	%.s
77	$AS $stem.s
78
79%.$O:	%.c
80	$CC $CFLAGS $stem.c
81
82%.$O:	$HFILES
83
84lib%.a:V:	$SHELLTYPE-lib%.a
85
86rc-lib%.a nt-lib%.a:VQ:
87	echo '@{builtin cd ' $ROOT/lib$stem ';mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE install}'
88	@{builtin cd  $ROOT/lib$stem ;mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE install}
89
90sh-lib%.a:VQ:
91	echo "(cd $ROOT/lib$stem ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE install)"
92	(cd $ROOT/lib$stem ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE install)
93
94clock.$O floppy.$O trap.$O:	ureg.h
95conf.$O dosboot.$O main.$O:	dosfs.h
96ether.$O etherscc.$O:	etherif.h
97bootp.$O:	ip.h
98
99clean:V:
100	rm -f *.[$OS] [$OS].out y.tab.? y.debug y.output $TARG qboot k.mx f.mx romboot
101
102nuke-sh:QV:
103		for i in $LIBDIRS
104		do
105			echo "(cd $ROOT/lib$i ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE nuke)"
106			(cd $ROOT/lib$i; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE nuke)
107		done
108
109nuke-rc nuke-nt:QV:
110		for (i in $LIBDIRS)
111		{
112			echo '@{cd $ROOT/lib$i ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE nuke}'
113			@{cd $ROOT/lib$i; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE nuke}
114		}
115
116nuke:V:		clean nuke-$SHELLTYPE
117