1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-01 07:48:35 +03:00
inform7/inform6/makescript.txt
2020-07-13 20:56:17 +01:00

116 lines
4 KiB
Plaintext

# This is the script from which inweb -makefile will construct a makefile
# for inform6, which is (uniquely for the Inform tools) not a web.
{platform-settings}
ME = inform6
INTEST = ../intest/Tangled/intest
SANDBOX = $(ME)/Inform6
INTERPRETERS = $(ME)/Tests/Assistants
# Making the program:
I6SOURCE = \
$(SANDBOX)/arrays.o $(SANDBOX)/asm.o $(SANDBOX)/bpatch.o $(SANDBOX)/chars.o \
$(SANDBOX)/directs.o $(SANDBOX)/errors.o $(SANDBOX)/expressc.o $(SANDBOX)/expressp.o \
$(SANDBOX)/files.o $(SANDBOX)/inform.o $(SANDBOX)/lexer.o $(SANDBOX)/linker.o \
$(SANDBOX)/memory.o $(SANDBOX)/objects.o $(SANDBOX)/states.o $(SANDBOX)/symbols.o \
$(SANDBOX)/syntax.o $(SANDBOX)/tables.o $(SANDBOX)/text.o $(SANDBOX)/veneer.o \
$(SANDBOX)/verbs.o
$(ME)/Tangled/$(ME): $(SANDBOX)/*.c $(SANDBOX)/*.h
$(call make-me)
.PHONY: force
force:
$(call make-me)
define make-me
cd $(SANDBOX); $(INDULGENTCC) -std=c99 *.c -D$(INFORM6OS)
$(LINK) -o $(ME)/Tangled/$(ME)$(EXEEXTENSION) $(I6SOURCE) $(LINKEROPTS)
endef
# Testing the program:
.PHONY: test
test: $(INTERPRETERS)/dumb-frotz/dumb-frotz $(INTERPRETERS)/dumb-glulx/glulxe/glulxe
$(INTEST) -from $(ME) all
.PHONY: interpreters
interpreters: $(INTERPRETERS)/dumb-frotz/dumb-frotz $(INTERPRETERS)/dumb-glulx/glulxe/glulxe
# "dumb-frotz" is a Z-machine interpreter and is used in development to test
# that story files in Z format perform as intended. It's written in old C,
# and is dumb in the sense that it uses a dumb terminal.
GLKLIB = libcheapglk.a
GLKINCLUDEDIR = ../cheapglk
GLKLIBDIR = ../cheapglk
GLKMAKEFILE = Make.cheapglk
CHEAPGLK_OBJS = \
cgfref.o cggestal.o cgmisc.o cgstream.o cgstyle.o cgwindow.o cgschan.o \
cgunicod.o main.o gi_dispa.o gi_blorb.o cgblorb.o
GLULXE_OBJS = main.o files.o vm.o exec.o float.o funcs.o operand.o string.o glkop.o \
heap.o serial.o search.o gestalt.o osdepend.o unixstrt.o accel.o profile.o
CHEAPGLK_HEADERS = cheapglk.h gi_dispa.h
$(INTERPRETERS)/dumb-frotz/dumb-frotz: \
$(INTERPRETERS)/dumb-frotz/*.c \
$(INTERPRETERS)/dumb-frotz/*.h
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) buffer.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) dumb-init.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) dumb-input.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) dumb-output.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) dumb-pic.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) fastmem.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) files.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) hotkey.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) input.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) math.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) object.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) process.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) random.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) redirect.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) screen.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) sound.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) stream.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) table.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) text.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) variable.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) profiling.c
cd $(INTERPRETERS)/dumb-frotz; $(INDULGENTCC) main.c
cd $(INTERPRETERS)/dumb-frotz; $(LINK) -o dumb-frotz$(EXEEXTENSION) *.o $(LINKEROPTS)
# "dumb-glulxe" is the analogous thing for Glulx-format story files.
$(INTERPRETERS)/dumb-glulx/glulxe/glulxe: \
$(INTERPRETERS)/dumb-glulx/cheapglk/*.c \
$(INTERPRETERS)/dumb-glulx/cheapglk/*.h \
$(INTERPRETERS)/dumb-glulx/glulxe/*.c \
$(INTERPRETERS)/dumb-glulx/glulxe/*.h
cd $(INTERPRETERS)/dumb-glulx/cheapglk; make
cd $(INTERPRETERS)/dumb-glulx/glulxe; make
# Cleaning up:
.PHONY: clean
clean:
$(call clean-up)
.PHONY: purge
purge:
$(call clean-up)
rm -f $(ME)/Tangled/$(ME)
rm -f $(INTERPRETERS)/dumb-frotz/dumb-frotz
rm -f $(INTERPRETERS)/dumb-glulx/glulxe/glulxe
define clean-up
rm -f $(SANDBOX)/*.o
rm -f $(INTERPRETERS)/dumb-frotz/*.o
rm -f $(INTERPRETERS)/dumb-glulx/glulxe/*.o
rm -f $(INTERPRETERS)/dumb-glulx/cheapglk/*.o
endef