PREFIX ?= /usr/local DATADIR ?= $(PREFIX)/share/RETRO12 DOCSDIR ?= $(PREFIX)/share/doc/RETRO12 EXAMPLESDIR ?= $(PREFIX)/share/examples/RETRO12 MANDIR ?= $(PREFIX)/man/man1 LIBM ?= -lm LIBCURSES ?= -lcurses RREIO ?= io/filesystem.o io/floatingpoint.o io/gopher.o io/unix.o io/strl.o all: build help: build: dirs toolchain bin/retro optional: build bin/retro-repl toolchain: dirs bin/retro-embedimage bin/retro-extend bin/retro-muri bin/retro-unu dirs: mkdir -p bin clean: rm -f bin/* find . -name "*.o" -type f -delete test: bin/retro ./bin/retro tests/test-core.forth # Targets for development/interactive usage glossary: doc/Glossary.txt doc/Glossary.html image: interfaces/image.c js: bin/RETRO12.html repl: bin/retro-repl update: bin/retro-unu literate/Unu.md literate/Muri.md ./bin/retro-unu literate/Unu.md >tools/unu.c ./bin/retro-unu literate/Muri.md >tools/muri.c # File targets. bin/retro-embedimage: tools/embedimage.c $(CC) $(CFLAGS) $(LDFLAGS) -o bin/retro-embedimage tools/embedimage.c bin/retro-extend: tools/extend.c $(CC) $(CFLAGS) $(LDFLAGS) -o bin/retro-extend tools/extend.c bin/retro-injectimage-js: tools/injectimage-js.c $(CC) $(CFLAGS) $(LDFLAGS) -o bin/retro-injectimage-js tools/injectimage-js.c bin/retro-muri: tools/muri.c $(CC) $(CFLAGS) $(LDFLAGS) -o bin/retro-muri tools/muri.c bin/RETRO12.html: bin/retro-injectimage-js ./bin/retro-injectimage-js >bin/RETRO12.html bin/retro: io bin/retro-embedimage bin/retro-extend interfaces/image.c interfaces/rre.c interfaces/rre.forth interfaces/image-functions.o interfaces/io/rng.forth cp ngaImage rre.image ./bin/retro-extend rre.image interfaces/io/filesystem.forth interfaces/io/gopher.forth interfaces/io/floatingpoint.forth interfaces/io/unix.forth interfaces/io/rng.forth interfaces/rre.forth ./bin/retro-embedimage rre.image >interfaces/rre_image.c cd interfaces && $(CC) $(CFLAGS) $(LDFLAGS) -o ../bin/retro rre.c image-functions.o $(RREIO) $(LIBM) cd package && ../bin/retro -f list ./bin/retro-embedimage rre.image >interfaces/rre_image.c cd interfaces && $(CC) $(CFLAGS) $(LDFLAGS) -o ../bin/retro rre.c image-functions.o $(RREIO) $(LIBM) rm rre.image doc/Glossary.txt: bin/retro words.tsv LC_ALL=C sort -o sorted.tsv words.tsv mv sorted.tsv words.tsv ./bin/retro glossary.forth export glossary >doc/Glossary.txt doc/Glossary.html: bin/retro words.tsv LC_ALL=C sort -o sorted.tsv words.tsv mv sorted.tsv words.tsv ./bin/retro glossary.forth export html >doc/Glossary.html interfaces/image.c: bin/retro-embedimage bin/retro-extend bin/retro-muri literate/RetroForth.md literate/Rx.md ./bin/retro-muri literate/Rx.md ./bin/retro-extend ngaImage literate/RetroForth.md ./bin/retro-embedimage ngaImage > interfaces/image.c io: interfaces/io/filesystem.o interfaces/io/floatingpoint.o interfaces/io/gopher.o interfaces/io/unix.o interfaces/io/strl.o interfaces/image-functions.o: interfaces/image-functions.c interfaces/image-functions.h cd interfaces && $(CC) $(CFLAGS) -c -o image-functions.o image-functions.c interfaces/io/filesystem.o: interfaces/io/filesystem.forth interfaces/io/filesystem.c cd interfaces/io && $(CC) $(CFLAGS) -c -o filesystem.o filesystem.c interfaces/io/floatingpoint.o: interfaces/io/floatingpoint.forth interfaces/io/floatingpoint.c cd interfaces/io && $(CC) $(CFLAGS) -c -o floatingpoint.o floatingpoint.c interfaces/io/gopher.o: interfaces/io/gopher.forth interfaces/io/gopher.c cd interfaces/io && $(CC) $(CFLAGS) -c -o gopher.o gopher.c interfaces/io/unix.o: interfaces/io/unix.forth interfaces/io/unix.c cd interfaces/io && $(CC) $(CFLAGS) -c -o unix.o unix.c interfaces/io/strl.o: interfaces/io/strl.c cd interfaces/io && $(CC) $(CFLAGS) -c -o strl.o strl.c bin/retro-unu: tools/unu.c $(CC) $(CFLAGS) $(LDFLAGS) -o bin/retro-unu tools/unu.c