# By default, just typing MAKE will compile the target with debugging turned
# on.
# MAKE REL will compile with debugging off
# MAKE ABBREV will compile a release version and turn on abbreviations. It
# also dumps out the compilation statistics.
# MAKE BLORB will build the release version and blorb it.
#
# Things you might need to change to get it to work on your system:
# ROOTDIR if your Inform compiler isn't on your root drive.
# INFRMROOT to point to the root of your Inform installation
# TARGET to the name of your main executable
#
# I've also included a MAX_OBJECTS definition, mainly to illustrate how to
# properly pass $ commands to Inform through the makefile.
#
# All these flags are located near the beginning of the file to make them easy
# to change.
# Modify the line below (and uncomment it) if your Inform executable is not on
# your root drive
ROOTDIR=C:
# Modify this line to point to your Inform directory
INFRMROOT=$(ROOTDIR)/devl/inform
PYROOT=$(ROOTDIR)/Python27
#INFRMROOT=/usr/local/inform
# Change this to match the name of your main source file
TARGET=illum
# Uncomment the line below if you have any custom .h files for your game and
# you want make to recompile the target if the .h files change
DEPS=$(TARGET).h
# Uncomment the line below if you want to compile to V8
# V8=1
# Change the line below if you need more than 640 objects (default)
# If you intend to leave it at 640, you can leave it commented out
OBJ_FLAG=\$$MAX_LABELS=1400 \$$MAX_QTEXT_SIZE=5000
GENABBR_FLAG=\$$MAX_TRANSCRIPT_SIZE=300000 \$$MAX_QTEXT_SIZE=5000
# Library and include directory settings
BINDIR=$(INFRMROOT)/bin
LIBDIR=$(INFRMROOT)/lib
#CONTRIBDIR=$(LIBDIR)/contrib
CONTRIBDIR=./localcontrib
#INFRM definition
INFRM=$(BINDIR)/inform6.exe
CBLORB=$(BINDIR)/cblorb.exe
BABEL=$(BINDIR)/babel.exe
PYTHON=$(PYROOT)/python.exe
RELDIR=./release
WEBDIR=play_online
TERPDIR=$(WEBDIR)/interpreter
TOOLDIR=tools
PYGAME2JS=$(TOOLDIR)/game2js.py
G2JSFLAGS=--giload
SED=sed
FLAGS=$(OBJ_FLAG)
# see top of file for explanation of default settings
DBGFLAGS=-S -D $(FLAGS)
CBLORBFLAGS=-unix
RELFLAGS=-~S -~D -~X $(FLAGS)
GLULXFLAGS=-G -H \$$MAX_PROP_TABLE_SIZE=90000 \$$MAX_STATIC_DATA=16000 \$$MAX_QTEXT_SIZE=5000
INCLUDE=+include_path=./,$(LIBDIR),$(CONTRIBDIR)
#RM definition for Linux machine or Cygwin
RM=rm -f
CP=cp
SRCS=$(TARGET).inf
reldir:
@mkdir -p $(RELDIR)
$(TARGET) : $(SRCS) $(DEPS)
$(INFRM) $(GLULXFLAGS) $(DBGFLAGS) $(INCLUDE) $(SRCS) $(RELDIR)/$(TARGET).ulx
debug: $(SRCS) $(DEPS)
$(INFRM) $(GLULXFLAGS) $(DBGFLAGS) $(INCLUDE) $(SRCS) $(RELDIR)/$(TARGET).ulx
rel: release
release: $(SRCS) $(DEPS)
$(INFRM) $(GLULXFLAGS) $(RELFLAGS) $(INCLUDE) $(SRCS) $(RELDIR)/$(TARGET).ulx
glulxrel: $(SRCS) $(DEPS)
$(INFRM) $(GLULXFLAGS) $(RELFLAGS) $(INCLUDE) $(SRCS) $(RELDIR)/$(TARGET).ulx
.PHONY: checksum_glulx
checksum_glulx:
$(eval DATE=`date +%Y-%m-%d`)
$(eval CHECKSUM_GLULX=`hexdump -ve '16/1 "%0.2X" "\n"' -s 32 -n 4 $(RELDIR)/$(TARGET).ulx`)
$(eval SERIAL_GLULX=`hexdump -ve '16/1 "%c" "\n"' -s 54 -n 6 $(RELDIR)/$(TARGET).ulx`)
$(eval RELEASE_GLULX=`hexdump -ve '16/1 "%d" "\n"' -s 52 -n 2 $(RELDIR)/$(TARGET).ulx | sed 's/^0*//'`)
blorb: glulxrel ifiction_ulx
@$(CBLORB) $(CBLORBFLAGS) $(TARGET)ulx.blurb $(RELDIR)/$(TARGET).gblorb
@echo "Created $(TARGET).glorb with IFID: GLULX-$(RELEASE_GLULX)-$(SERIAL_GLULX)-$(CHECKSUM_GLULX)"
@$(RM) $(TARGET)ulx.ifiction
blorbrel: blorb website
blorbd: debug ifiction_ulx
@$(CBLORB) $(CBLORBFLAGS) $(TARGET)ulx.blurb $(RELDIR)/$(TARGET)-d.gblorb
@$(RM) $(TARGET)ulx.ifiction
.PHONY: website
website: htmlgen
@$(PYTHON) $(PYGAME2JS) $(G2JSFLAGS) $(RELDIR)/$(TARGET).gblorb > $(TERPDIR)/$(TARGET).gblorb.js
ifiction_ulx: checksum_glulx
@echo "Generating iFiction Glulx file."
@echo "" > $(TARGET)ulx.ifiction
@echo "" >> $(TARGET)ulx.ifiction
@echo "
" >> $(TARGET)ulx.ifiction
@echo " An overripe sequel to 2003's Xyzzy-nominated Risorgimento Represso." >> $(TARGET)ulx.ifiction
@echo " Fifteen years in the making! Well, fifteen years to finish." >> $(TARGET)ulx.ifiction
@echo " More exotic cheeses! Better visions! Longer! Plot-significant!" >> $(TARGET)ulx.ifiction
@echo "
" >> $(TARGET)ulx.ifiction
@echo " The interplanar rift which brought you to this world is still active, and" >> $(TARGET)ulx.ifiction
@echo " you must battle to close it before Renaldo can rip it wide open and visit" >> $(TARGET)ulx.ifiction
@echo " his evil upon your own world." >> $(TARGET)ulx.ifiction
@echo "
" >> $(TARGET)ulx.ifiction
@echo " Coded in Inform6. Includes automap and sound features." >> $(TARGET)ulx.ifiction
@echo "
" >> $(TARGET)ulx.ifiction
@echo " Difficulty: Standard" >> $(TARGET)ulx.ifiction
@echo "
" >> $(TARGET)ulx.ifiction
@echo " IFID: GLULX-$(RELEASE_GLULX)-$(SERIAL_GLULX)-$(CHECKSUM_GLULX)" >> $(TARGET)ulx.ifiction
@echo "