# makefile for MMIX programs of chapter 1 # all documents are given to TeX TEX = tex FMT = '&plain' # MMIX and MMIXAL MMIX = mmix MMIXOPT = -P -L3 MMIXAL = mmixal MMIXALOPT = -b 132 # name of tar file DISTNAME := TAOCP1 # ###################### # the programs either with no input data or with an input file wo_input := 1-3-2--21.mms 1-3-2--29.mms 1-3-3I.mms 1-3-3J.mms w_input := 1-3-3A.mms 1-3-3B.mms othfiles := mmix.tex Makefile mmsfiles := $(wo_input) $(w_input) # generate the names of the input files txtfiles := $(patsubst %.mms,%_input.txt,$(w_input)) # generate the names of the output files outfiles := $(patsubst %.mms,%_run.txt,$(wo_input))\ $(patsubst %.mms,%_run_it.txt,$(w_input)) # generate the names of MMIXAL's files mmofiles := $(patsubst %.mms,%.mmo,$(mmsfiles)) lstfiles := $(patsubst %.mmo,%_lst.txt,$(mmofiles)) # input files for TeX aoafiles := $(patsubst %.mms,%_aoa.tex,$(mmsfiles)) dvifiles := $(patsubst %.mms,%.dvi,$(mmsfiles)) logfiles := $(patsubst %.dvi,%.log,$(dvifiles)) .PHONY : all doc all : $(outfiles) $(dvifiles) doc : $(dvifiles) %.mmo : %.mms $(MMIXAL) $(MMIXALOPT) -l $*_lst.txt -o $*.mmo $*.mms .PRECIOUS : %.mmo %_run.txt : %.mms %.mmo -$(MMIX) $(MMIXOPT) $*.mmo > $*_run.txt %_run_it.txt : %.mms %.mmo -$(MMIX) $(MMIXOPT) $*.mmo $*_input.txt > $*_run_it.txt %.dvi : %.mms %_aoa.tex mmix.tex $(TEX) $(FMT) $*.mms .PHONY : dist dist : tar -czvf $(DISTNAME).tar.gz $(mmsfiles) $(aoafiles) $(txtfiles) $(othfiles) .PHONY : mostlyclean clean mostlyclean : -rm -f $(outfiles) $(lstfiles) $(logfiles) clean : mostlyclean -rm -f $(mmofiles) $(dvifiles)