Talk:Writing Interactive Fiction with Inform 7
From HacDC Wiki
Makefiles for command line development
I found the built-in editor with Inform7 somewhat frustrating, so I wrote a set of Makefile rules to allow me to do command line compiling while I edited the source files in my editor of choice. The build process is quite odd; first the Inform7 front-end generates I6 code from the .ni file, which is then compiled into z8 files. For test playing I used frotz.
#!/usr/bin/make
# For OSX; for Linux i386 it is somewhere in /usr/local/bin
INFORM_PATH=/Applications/Inform.app/Contents/Resources/
I7_BIN=$(INFORM_PATH)/Compilers/ni
I7_LIB=$(INFORM_PATH)/Inform7/Extensions
I6_BIN=$(INFORM_PATH)/Compilers/inform-6.31-biplatform
I6_LIB=$(INFORM_PATH)/Library/Natural
ZCODE_VERSION=8
EXT=z$(ZCODE_VERSION)
ifdef DEBUG
DEBUG_OPTS=D
endif
#
# The arguments to the Inform6 compiler set:
# -E2SDwv$(ZCODE_VERSION)x \
# E2 Macintosh MPW-style error messages
# S Strict error-checking at runtime
# w Disable warning messages
# v8 Generate z-code version 8
# x Print # for every 100 lines compiled
#
# Optionally, if debugging is requested:
#
# D Insert "Constant DEBUG;" automatically
#
%.$(EXT): %.ni
TMPDIR=/tmp/inform7-$$$$
mkdir -p "$$TMPDIR"/{Build,Source,Index}
cp "$<" "$$TMPDIR"/Source/story.ni
"$(I7_BIN)" \
--rules "$(I7_LIB)" \
--extension=$(EXT) \
--package "$$TMPDIR" \
"$(I6_BIN)" \
-E2Swv$(ZCODE_VERSION)$(DEBUG_OPTS)x \
+"$(I6_LIB)" \
"$$TMPDIR/Build/auto.inf" \
-o "$@" \
--- Hudson 19:59, 14 December 2008 (UTC)
