daca9de450
ow that the image has grown beyond the 1.44M that fits on a floppy. (previously, the floppy emulation mode was used for cd's.) the boot cd now uses 'no emulation mode,' where an image is provided on the cd that is loaded and executed directly. this is the boot monitor. in order to make this work (the entry point is the same as where the image is loaded, and the boot monitor needs its a.out header too) and keep compatability with the same code being used for regular booting, i prepended 16 bytes that jumps over its header so execution can start there. to be able to read the CD (mostly in order to read the boot image), boot has to use the already present 'extended read' call, but address the CD using 2k sectors.
123 lines
2.9 KiB
Makefile
123 lines
2.9 KiB
Makefile
# Makefile for the boot monitor package.
|
|
|
|
SYS = ..
|
|
|
|
CC = exec cc
|
|
CC86 = exec cc -mi86 -Was-ncc
|
|
CFLAGS = -I$(SYS)
|
|
LIBS = -lsys
|
|
LD = $(CC) -s -.o
|
|
LD86 = $(CC86) -.o
|
|
BIN = /usr/bin
|
|
MDEC = /usr/mdec
|
|
|
|
all: bootblock boot edparams masterboot jumpboot installboot addaout
|
|
dos: boot.com mkfile.com
|
|
|
|
bootblock: bootblock.s
|
|
$(LD86) -com -o $@ bootblock.s
|
|
|
|
masterboot: masterboot.s
|
|
$(LD86) -com -o $@ masterboot.s
|
|
|
|
jumpboot: jumpboot.s
|
|
$(LD86) -com -o $@ jumpboot.s
|
|
|
|
boot.o: boot.c
|
|
$(CC86) $(CFLAGS) -c boot.c
|
|
|
|
bootimage.o: bootimage.c
|
|
$(CC86) $(CFLAGS) -c bootimage.c
|
|
|
|
rawfs86.o: rawfs.c rawfs.o
|
|
ln -f rawfs.c rawfs86.c
|
|
$(CC86) $(CFLAGS) -c rawfs86.c
|
|
rm rawfs86.c
|
|
-cmp -s rawfs.o rawfs86.o && ln -f rawfs.o rawfs86.o
|
|
|
|
boot: boothead.s boot.o bootimage.o rawfs86.o
|
|
$(LD86) -o bootexec \
|
|
boothead.s boot.o bootimage.o rawfs86.o $(LIBS)
|
|
install -S 12kb bootexec
|
|
# This is code that is executed when used on a bootable
|
|
# CD, as its entry point is the start of the file then.
|
|
# It jumps over the a.out header into the part of the
|
|
# code in boothead.s where the code knows it's booting
|
|
# from CD if entered there.
|
|
( printf '\xeb\x3e ' ; cat bootexec ) >boot
|
|
chmod 755 boot
|
|
|
|
edparams.o: boot.c
|
|
ln -f boot.c edparams.c
|
|
$(CC) $(CFLAGS) -DUNIX -c edparams.c
|
|
rm edparams.c
|
|
|
|
edparams: edparams.o rawfs.o
|
|
$(CC) $(CFLAGS) $(STRIP) -o $@ edparams.o rawfs.o
|
|
install -S 16kw edparams
|
|
|
|
dosboot.o: boot.c
|
|
$(CC86) $(CFLAGS) -DDOS -o $@ -c boot.c
|
|
|
|
doshead.o: doshead.s
|
|
$(CC) -mi386 -o $@ -c doshead.s
|
|
|
|
dosboot: doshead.o dosboot.o bootimage.o rawfs86.o
|
|
$(LD86) -com -o $@ \
|
|
doshead.o dosboot.o bootimage.o rawfs86.o $(LIBS)
|
|
|
|
boot.com: dosboot
|
|
exec sh a.out2com dosboot boot.com
|
|
|
|
mkfile: mkfhead.s mkfile.c
|
|
$(LD) -.o -mi86 -com -o $@ mkfhead.s mkfile.c $(LIBS)
|
|
|
|
mkfile.com: mkfile
|
|
exec sh a.out2com mkfile mkfile.com
|
|
|
|
installboot: installboot.o rawfs.o
|
|
$(CC) $(STRIP) -o installboot installboot.o rawfs.o
|
|
install -S 6kw installboot
|
|
|
|
addaout: addaout.o
|
|
$(CC) -o addaout addaout.o
|
|
|
|
installboot.o bootimage.o: image.h
|
|
boot.o bootimage.o dosboot.o edparams.o: boot.h
|
|
rawfs.o rawfs86.o installboot.o boot.o bootimage.o: rawfs.h
|
|
|
|
install: $(MDEC)/bootblock $(MDEC)/boot $(MDEC)/masterboot \
|
|
$(MDEC)/jumpboot $(BIN)/installboot $(BIN)/edparams
|
|
dosinstall: $(MDEC)/boot.com $(MDEC)/mkfile.com
|
|
|
|
$(MDEC)/bootblock: bootblock
|
|
install -cs -o bin -m 644 $? $@
|
|
|
|
$(MDEC)/boot: boot
|
|
install -cs -o bin -m 644 $? $@
|
|
|
|
$(MDEC)/boot.com: boot.com
|
|
install -c -m 644 $? $@
|
|
|
|
$(MDEC)/mkfile.com: mkfile.com
|
|
install -c -m 644 $? $@
|
|
|
|
$(MDEC)/masterboot: masterboot
|
|
install -cs -o bin -m 644 $? $@
|
|
|
|
$(MDEC)/jumpboot: jumpboot
|
|
install -cs -o bin -m 644 $? $@
|
|
|
|
$(BIN)/installboot: installboot
|
|
install -cs -o bin $? $@
|
|
|
|
$(BIN)/addaout: addaout
|
|
install -cs -o bin $? $@
|
|
|
|
$(BIN)/edparams: edparams
|
|
install -cs -o bin $? $@
|
|
|
|
clean:
|
|
rm -f *.bak *.o
|
|
rm -f bootblock addaout installboot boot masterboot jumpboot edparams
|
|
rm -f dosboot boot.com mkfile mkfile.com
|