summaryrefslogtreecommitdiff
path: root/os/boot/pc/mkfile
diff options
context:
space:
mode:
Diffstat (limited to 'os/boot/pc/mkfile')
-rw-r--r--os/boot/pc/mkfile241
1 files changed, 241 insertions, 0 deletions
diff --git a/os/boot/pc/mkfile b/os/boot/pc/mkfile
new file mode 100644
index 00000000..57eef41e
--- /dev/null
+++ b/os/boot/pc/mkfile
@@ -0,0 +1,241 @@
+<../../../mkconfig
+objtype=386
+SYSTARG=$OSTARG
+OBJTYPE=386
+BIN=$ROOT/Inferno/$OBJTYPE
+LIBDIR=$ROOT/Inferno/$OBJTYPE/lib
+LIBDIRS=../libflate $ROOT/libkern
+LIBS=\
+ libflate\
+ libkern\
+
+LIBFILES=${LIBS:%=$LIBDIR/%.a}
+<$ROOT/mkfiles/mkfile-$SYSTARG-$OBJTYPE
+
+BIN=$ROOT/Inferno/$OBJTYPE
+
+TARG=\
+ 9load\
+ 9pxeload\
+ 9loadlite\
+ 9loaddebug\
+ 9loadlitedebug\
+ ld.com\
+ mbr\
+ pbs\
+ pbslba\
+
+CORE=\
+ alarm.$O\
+ cga.$O\
+ clock.$O\
+ console.$O\
+ dosboot.$O\
+ devfloppy.$O\
+ dma.$O\
+ fs.$O\
+ ilock.$O\
+ kbd.$O\
+ kfsboot.$O\
+ print.$O\
+ queue.$O\
+ trap.$O\
+ getcallerpc.$O\
+
+LOAD=\
+ 8250.$O\
+ apm.$O\
+ boot.$O\
+ devpccard.$O\
+ conf.$O\
+ devi82365.$O\
+ devsd.$O\
+ inflate.$O\
+ load.$O\
+ memory.$O\
+ part.$O\
+ pci.$O\
+ sdata.$O\
+ sdmylex.$O\
+ sd53c8xx.$O\
+ sdscsi.$O\
+
+ETHER=\
+ bootp.$O\
+ eipfmt.$O\
+ ether.$O\
+ ether2114x.$O\
+ ether2000.$O\
+ ether589.$O\
+ ether79c970.$O\
+ ether8003.$O\
+ ether8139.$O\
+ ether8169.$O\
+ ether82557.$O\
+ ether83815.$O\
+ ether8390.$O\
+ etherec2t.$O\
+ etherelnk3.$O\
+ etherigbe.$O\
+ ethermii.$O\
+ etherrhine.$O\
+
+BCOM=\
+ bcom.$O\
+ bootld.$O\
+ devsd.$O\
+ memory.$O\
+ part.$O\
+ pci.$O\
+ sdata.$O\
+ sdscsi.$O\
+
+HFILES=\
+ lib.h\
+ mem.h\
+ dat.h\
+ fns.h\
+ io.h\
+
+CFLAGS=-FVw -I. -I$ROOT/Inferno/$OBJTYPE/include -I$ROOT/include
+
+all:V: $TARG
+
+9load: l.$O $CORE $LOAD $ETHER $LIBFILES
+ $LD -o $target -H3 -T0x80010000 -l $prereq
+ ls -l $target
+
+9pxeload: l.$O $CORE $LOAD $ETHER $LIBFILES
+ $LD -o $target -H3 -T0x80007C00 -l $prereq
+ ls -l $target
+
+9loaddebug: l.$O $CORE $LOAD $ETHER $LIBFILES
+ $LD -o $target -T0x80010000 -l $prereq
+ ls -l $target
+ # acid $target
+ # map({"text", 0x80010000, 0x80090000, 0x00000020})
+
+9loadlite: l.$O $CORE $LOAD noether.$O $LIBFILES
+ $LD -o $target -H3 -T0x80010000 -l $prereq
+ ls -l $target
+
+9loadlitedebug: l.$O $CORE $LOAD noether.$O $LIBFILES
+ $LD -o $target -T0x80010000 -l $prereq
+ ls -l $target
+ # acid $target
+ # map({"text", 0x80010000, 0x80090000, 0x00000020})
+
+ld.com: ld.$O $CORE $BCOM $LIBFILES
+ $LD -o $target -H3 -T0x80080100 -l $prereq
+ ls -l $target
+
+lddebug: ld.$O $CORE $BCOM $LIBFILES
+ $LD -o $target -T0x80080100 -l $prereq
+ ls -l $target
+ # acid $target
+ # map({"text", 0x80080100, 0x800B0000, 0x00000020})
+
+ld.$O: l.s
+ $AS -DDOTCOM -o $target l.s
+
+lpxe.$O: l.s
+ $AS -DPXE -o $target l.s
+
+%.$O: %.s
+ $AS $stem.s
+
+%.$O: %.c
+ $CC $CFLAGS $stem.c
+
+%.$O: $HFILES
+
+l.$O pbs.$O pbslba.$O mbr.$O: x16.h
+
+clock.$O floppy.$O trap.$O: ureg.h
+bcom.$O conf.$O devfloppy.$O devsd.$O dosboot.$O fs.$O \
+ kfsboot.$O load.$O part.$O: dosfs.h fs.h kfs.h
+ether.$O etherelnk3.$O: etherif.h
+devsd.$O part.$O sdata.$O sdscsi.$O: sd.h
+bootp.$O: ip.h
+
+mbr: mbr.$O
+ $LD -o $target -H3 -T0x0600 -l $prereq
+ ls -l $target
+
+pbs&: pbs%.$O
+ $LD -o $target -H3 -T0x7C00 -l $prereq
+ ls -l $target
+
+pbs&.debug: pbs%.$O
+ $LD -o $target -T0x7C00 -l $prereq
+ ls -l $target
+ # acid $target
+ # map({"text", 0x7C00, 0x7E00, 0x00000020})
+
+# added to cause libflate to be made automatically:
+
+$ROOT/Inferno/$OBJTYPE/lib/lib%.a:Q: all-$SHELLTYPE
+ #
+
+rc-lib%.a nt-lib%.a:VQ:
+ echo '@{builtin cd ' $ROOT/lib$stem ';mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE install}'
+ @{builtin cd $ROOT/lib$stem ;mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE install}
+
+sh-lib%.a:VQ:
+ echo "(cd $ROOT/lib$stem ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE install)"
+ (cd $ROOT/lib$stem ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE install)
+
+clean:
+ rm -f *.[$OS] [$OS].out y.tab.? y.debug y.output $TARG 9loaddebug lddebug
+
+install:V:
+ for (i in $TARG)
+ mk $MKFLAGS $i.install
+
+%.install:V: $BIN/%
+
+$BIN/%: %
+ cp $stem $BIN/$stem
+
+UPDATE=\
+ mkfile\
+ ${CORE:%.$O=%.c}\
+ ${LOAD:%.$O=%.c}\
+ ${BCOM:%.$O=%.c}\
+ ${ETHER:%.$O=%.c}\
+ $HFILES\
+ l.s\
+ noether.c\
+ pbs.s\
+ pbslba.s\
+ mbr.s\
+ x16.h\
+ ureg.h\
+ dosfs.h\
+ fs.h\
+ kfs.h\
+ etherif.h\
+ sd.h\
+ ip.h\
+ devfloppy.h\
+ ${TARG:%=/386/%}\
+
+update:V:
+ update $UPDATEFLAGS $UPDATE
+
+
+%-sh:QV:
+ for i in $LIBDIRS
+ do
+ echo "(cd $i ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE $stem)"
+ (cd $i; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE $stem)
+ done
+
+%-rc %-nt:QV:
+ for (i in $LIBDIRS)
+ {
+ echo '@{cd $i ; mk SHELLTYPE=$SHELLTYPE SYSTARG=$SYSTARG OBJTYPE=$OBJTYPE $stem}'
+ @{cd $i; mk 'SHELLTYPE='$SHELLTYPE 'SYSTARG='$SYSTARG 'OBJTYPE='$OBJTYPE $stem}
+ }
+
+nuke:V: clean nuke-$SHELLTYPE