95ab1ad588
Working in "blk/" folder from a modern system is harder than it should be. Moving blocks around is a bit awkward, grepping is a bit less convenient than it could be, git blame has troubles following, etc. In this commit, we modify blkpack and blkunpack to work with single text files with blocks being separated by a special markup. I think this will make the code significantly more convenient to work into.
47 lines
930 B
Makefile
47 lines
930 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: $(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
|