collapseos/cvm/Makefile

47 lines
940 B
Makefile

TARGETS = forth stage
OBJS = vm.o
BLKPACK = ../tools/blkpack
BLKUNPACK = ../tools/blkunpack
.PHONY: all
all: $(TARGETS)
$(BLKPACK):
$(MAKE) -C ../tools
.PHONY: $(BLKUNPACK)
$(BLKUNPACK): $(BLKPACK)
stage: stage.c $(OBJS) blkfs
$(CC) -DFBIN_PATH=\"`pwd`/stage.bin\" -DBLKFS_PATH=\"`pwd`/blkfs\" stage.c $(OBJS) -o $@
blkfs: ../blk.fs $(BLKPACK)
$(BLKPACK) < ../blk.fs > $@
forth.bin: stage common.fs forth.fs blkfs
cat common.fs forth.fs | ./stage > $@
forth: forth.c $(OBJS) forth.bin
$(CC) -DFBIN_PATH=\"`pwd`/forth.bin\" -DBLKFS_PATH=\"`pwd`/blkfs\" forth.c $(OBJS) -lcurses -o $@
vm.o: vm.c blkfs
$(CC) -c -o vm.o vm.c
.PHONY: updatebootstrap
updatebootstrap: stage common.fs stage.fs pack
cat common.fs stage.fs | ./stage > new.bin
mv new.bin stage.bin
.PHONY: pack
pack:
rm blkfs && $(MAKE) blkfs
.PHONY: unpack
unpack:
$(BLKUNPACK) < blkfs > ../blk.fs
.PHONY: clean
clean:
rm -f $(TARGETS) *.o forth.bin blkfs