Dir cleanup
This commit is contained in:
@@ -17,7 +17,7 @@ FROM deps AS build
|
|||||||
|
|
||||||
ARG TARGET
|
ARG TARGET
|
||||||
|
|
||||||
ADD . /workspace
|
ADD ./src /workspace
|
||||||
WORKDIR /workspace
|
WORKDIR /workspace
|
||||||
RUN make ${TARGET}
|
RUN make ${TARGET}
|
||||||
|
|
||||||
|
74
Makefile
74
Makefile
@@ -1,84 +1,12 @@
|
|||||||
dev-image = 5150-dev
|
dev-image = 5150-dev
|
||||||
|
|
||||||
%.bin: %.asm
|
|
||||||
nasm $< -o $@
|
|
||||||
|
|
||||||
crc16.s: crc16.c
|
|
||||||
ia16-elf-gcc -S -Os -o crc16.s crc16.c
|
|
||||||
|
|
||||||
crc16.bin: crc16.s
|
|
||||||
ia16-elf-gcc -o crc16.bin -Os -nostdlib crc16.s
|
|
||||||
|
|
||||||
CC = ia16-elf-gcc
|
|
||||||
CXX = ia16-elf-gcc
|
|
||||||
LD = ia16-elf-gcc
|
|
||||||
CXXFLAGS = -mregparmcall -ffunction-sections -Os -flto
|
|
||||||
CFLAGS = -mregparmcall -ffunction-sections -Os -flto
|
|
||||||
LDFLAGS = -mregparmcall -Wl,--gc-sections -Os -nostdlib -flto
|
|
||||||
|
|
||||||
%.elf:
|
|
||||||
$(LD) $(LDFLAGS) $(CPPFLAGS) -o $@ $^
|
|
||||||
|
|
||||||
%.com: %.elf
|
|
||||||
ia16-elf-objcopy -O binary $< $@
|
|
||||||
|
|
||||||
bootsectors = fat12boot.bin wozmon.bin
|
|
||||||
$(bootsectors):
|
|
||||||
ia16-elf-objcopy -O binary $< $@
|
|
||||||
|
|
||||||
fat12boot.elf: fat12boot.o fat12.o bootsect.S
|
|
||||||
fat12boot.elf: LDFLAGS += -T bootsect.ld
|
|
||||||
|
|
||||||
fat12boot.bin: fat12boot.elf
|
|
||||||
|
|
||||||
stdlib.o: CFLAGS := $(filter-out -flto, $(CFLAGS))
|
|
||||||
|
|
||||||
polmon.elf: LDFLAGS += -T flat1000.ld
|
|
||||||
polmon.elf: polmon.o stdlib.o
|
|
||||||
|
|
||||||
polio.elf: LDFLAGS += -T flat0600.ld
|
|
||||||
polio.elf: polio-main.o polio.s fat12.o paracomm.o stdlib.o
|
|
||||||
|
|
||||||
wozmon.o: polmon.cc
|
|
||||||
wozmon.o: CPPFLAGS = -DWOZMON=1
|
|
||||||
wozmon.o:
|
|
||||||
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
|
|
||||||
|
|
||||||
wozmon.elf: wozmon.o bootsect.S
|
|
||||||
wozmon.elf: LDFLAGS += -T bootsect.ld
|
|
||||||
wozmon.elf: CPPFLAGS += -DNOBPB
|
|
||||||
|
|
||||||
wozmon.bin: wozmon.elf
|
|
||||||
|
|
||||||
paracli.elf: LDFLAGS += -T doscom.ld
|
|
||||||
paracli.elf: paracli.s paracomm.o
|
|
||||||
|
|
||||||
dos-programs = mushroom.elf hello.elf
|
|
||||||
$(dos-programs): LDFLAGS += -T doscom.ld
|
|
||||||
|
|
||||||
mushroom.elf: mushroom.s
|
|
||||||
hello.elf: hello.o stdlib.o crt0.s
|
|
||||||
|
|
||||||
polos.img: fat12boot.bin polmon.com polio.com mushroom.com hello.com
|
|
||||||
dd if=/dev/zero of=$@ bs=512 count=720
|
|
||||||
mformat -i $@ -t 40 -h 2 -s 9
|
|
||||||
mcopy -i $@ polio.com ::/
|
|
||||||
mcopy -i $@ polmon.com ::/
|
|
||||||
mcopy -i $@ mushroom.com ::/
|
|
||||||
mcopy -i $@ hello.com ::/
|
|
||||||
dd if=fat12boot.bin of=$@ conv=notrunc
|
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
clean: ## Remove generated files
|
|
||||||
rm -rf *.bin *.elf *.o *.com polos.img
|
|
||||||
|
|
||||||
.PHONY: dev-image
|
.PHONY: dev-image
|
||||||
dev-image:
|
dev-image:
|
||||||
docker build -t $(dev-image) --target dev .
|
docker build -t $(dev-image) --target dev .
|
||||||
|
|
||||||
.PHONY: dev
|
.PHONY: dev
|
||||||
dev: dev-image ## Launch a dev container
|
dev: dev-image ## Launch a dev container
|
||||||
docker run -it --rm -v $(CURDIR):/workspace $(dev-image)
|
docker run -it --rm -v $(CURDIR)/src:/workspace $(dev-image)
|
||||||
|
|
||||||
|
|
||||||
.PHONY: binaries
|
.PHONY: binaries
|
||||||
|
11
README.md
11
README.md
@@ -19,6 +19,17 @@ make binaries
|
|||||||
|
|
||||||
and stop whining.
|
and stop whining.
|
||||||
|
|
||||||
|
You can also type
|
||||||
|
```
|
||||||
|
make floppy
|
||||||
|
```
|
||||||
|
|
||||||
|
then
|
||||||
|
```
|
||||||
|
bochs
|
||||||
|
```
|
||||||
|
to launch the simulator. You'll need to `c` it in the console for it to start.
|
||||||
|
|
||||||
|
|
||||||
## Useful stuff
|
## Useful stuff
|
||||||
|
|
||||||
|
71
src/Makefile
Normal file
71
src/Makefile
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
%.bin: %.asm
|
||||||
|
nasm $< -o $@
|
||||||
|
|
||||||
|
crc16.s: crc16.c
|
||||||
|
ia16-elf-gcc -S -Os -o crc16.s crc16.c
|
||||||
|
|
||||||
|
crc16.bin: crc16.s
|
||||||
|
ia16-elf-gcc -o crc16.bin -Os -nostdlib crc16.s
|
||||||
|
|
||||||
|
CC = ia16-elf-gcc
|
||||||
|
CXX = ia16-elf-gcc
|
||||||
|
LD = ia16-elf-gcc
|
||||||
|
CXXFLAGS = -mregparmcall -ffunction-sections -Os -flto
|
||||||
|
CFLAGS = -mregparmcall -ffunction-sections -Os -flto
|
||||||
|
LDFLAGS = -mregparmcall -Wl,--gc-sections -Os -nostdlib -flto
|
||||||
|
|
||||||
|
%.elf:
|
||||||
|
$(LD) $(LDFLAGS) $(CPPFLAGS) -o $@ $^
|
||||||
|
|
||||||
|
%.com: %.elf
|
||||||
|
ia16-elf-objcopy -O binary $< $@
|
||||||
|
|
||||||
|
bootsectors = fat12boot.bin wozmon.bin
|
||||||
|
$(bootsectors):
|
||||||
|
ia16-elf-objcopy -O binary $< $@
|
||||||
|
|
||||||
|
fat12boot.elf: fat12boot.o fat12.o bootsect.S
|
||||||
|
fat12boot.elf: LDFLAGS += -T bootsect.ld
|
||||||
|
|
||||||
|
fat12boot.bin: fat12boot.elf
|
||||||
|
|
||||||
|
stdlib.o: CFLAGS := $(filter-out -flto, $(CFLAGS))
|
||||||
|
|
||||||
|
polmon.elf: LDFLAGS += -T flat1000.ld
|
||||||
|
polmon.elf: polmon.o stdlib.o
|
||||||
|
|
||||||
|
polio.elf: LDFLAGS += -T flat0600.ld
|
||||||
|
polio.elf: polio-main.o polio.s fat12.o paracomm.o stdlib.o
|
||||||
|
|
||||||
|
wozmon.o: polmon.cc
|
||||||
|
wozmon.o: CPPFLAGS = -DWOZMON=1
|
||||||
|
wozmon.o:
|
||||||
|
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
wozmon.elf: wozmon.o bootsect.S
|
||||||
|
wozmon.elf: LDFLAGS += -T bootsect.ld
|
||||||
|
wozmon.elf: CPPFLAGS += -DNOBPB
|
||||||
|
|
||||||
|
wozmon.bin: wozmon.elf
|
||||||
|
|
||||||
|
paracli.elf: LDFLAGS += -T doscom.ld
|
||||||
|
paracli.elf: paracli.s paracomm.o
|
||||||
|
|
||||||
|
dos-programs = mushroom.elf hello.elf
|
||||||
|
$(dos-programs): LDFLAGS += -T doscom.ld
|
||||||
|
|
||||||
|
mushroom.elf: mushroom.s
|
||||||
|
hello.elf: hello.o stdlib.o crt0.s
|
||||||
|
|
||||||
|
polos.img: fat12boot.bin polmon.com polio.com mushroom.com hello.com
|
||||||
|
dd if=/dev/zero of=$@ bs=512 count=720
|
||||||
|
mformat -i $@ -t 40 -h 2 -s 9
|
||||||
|
mcopy -i $@ polio.com ::/
|
||||||
|
mcopy -i $@ polmon.com ::/
|
||||||
|
mcopy -i $@ mushroom.com ::/
|
||||||
|
mcopy -i $@ hello.com ::/
|
||||||
|
dd if=fat12boot.bin of=$@ conv=notrunc
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean: ## Remove generated files
|
||||||
|
rm -rf *.bin *.elf *.o *.com polos.img
|
Reference in New Issue
Block a user