# # Makefile for IMP80 compiler # # Bob Eager August 2002 # # # Product name # PRODUCT = imp # # Compiler setup # CC = gcc #!IFDEF DEBUG DBUG = -DDEBUG #!ELSE #DBUG = #!ENDIF #!IFDEF PROD #CFLAGS = $(DBUG) -Fi -G5 -O -Q -Si -Tl30 #!ELSE CFLAGS = -g -Wall $(DBUG) #!ENDIF # # Names of object files # OBJ1 = asm.o global.o OBJ2 = global2.o lput.o main.o message.o misc.o OBJ3 = ncode.o pass1.o table.o OBJ4 = cgen.o code.o expop.o pass2.o # # Names of source files # CFILES1 = asm.c global.c CFILES2 = global2.c lput.c main.c misc.c CFILES3 = ncode.c pass1.c table.c CFILES4 = cgen.c code.c expop.c pass2.c # # Names of directories and files # ASMDIR = ../genop ASMFILE = a86.dat MESDIR = ../compmess MESFILE = messages.txt PSFILE = ps86.dat PSLIST = ps86.lst SNDIR = ../gensn SNINFO = snames.dat SYNDIR = ../genps # # Names of generated files # ASM = asm.h ASMLIST = a86.lst MESSAGE = message.c OPCODE = opcode.h SCOMM = scomms.h SNAMES = snames.h SNTABS = sntabs.h SYNTAX = syntax.h # # Names of listing files # LIST = a86.lst ps86.lst # # Other files # MAKEFILE = makefile README = readme.txt # # Final executable file # EXE = $(PRODUCT) # #----------------------------------------------------------------------------- # $(EXE): $(OBJ1) $(OBJ2) $(OBJ3) $(DEF) $(LNK) #!IFDEF PROD # ilink /nologo /exepack:2 @$(LNK) # lxlite $(EXE) # eautil $(EXE) nul /s #!ELSE $(CC) -o $(EXE) $(OBJ1) $(OBJ2) $(OBJ3) #!ENDIF # # Object files # asm.o: $(ASM) $(OPCODE) imp.h asm.c code.o: imp.h asm.h global.h global2.h lput.h $(OPCODE) code.c #cgen.o: imp.h global.h global2.h cgen.c expop.o: imp.h global.h expop.c global.o: global.h imp.h global.c global2.o: global2.h imp.h $(OPCODE) global2.c lput.o: lput.h lput.c main.o: imp.h global.h global2.h lput.h $(OPCODE) $(SNTABS) \ $(SNDIR)/$(SNINFO) $(SNTABS) $(SNAMES) \ main.c message.o: imp.h $(MESSAGE) $(MESDIR)/$(MESFILE) misc.o: imp.h global.h global2.h $(OPCODE) misc.c ncode.o: imp.h global.h ncode.c pass1.o: imp.h global.h $(OPCODE) pass1.c \ $(SYNTAX) $(SYNDIR)/$(PSFILE) pass2.o: imp.h global.h pass2.c table.o: table.c test.o: test.c # # Generated files # $(ASM): $(ASMDIR)/$(ASMFILE) $(ASMDIR)/genop $(ASMDIR)/$(ASMFILE) $(ASM) $(OPCODE) $(ASMLIST) $(MESSAGE): $(MESDIR)/$(MESFILE) $(MESDIR)/compmess $(MESDIR)/$(MESFILE) $(MESSAGE) /dev/null $(OPCODE): $(ASMDIR)/$(ASMFILE) $(ASMDIR)/genop $(ASMDIR)/$(ASMFILE) $(ASM) $(OPCODE) $(ASMLIST) $(SCOMM): $(SNDIR)/$(SNINFO) $(SNDIR)/gensn $(SNDIR)/$(SNINFO) $(SNTABS) $(SNAMES) $(SCOMM) $(SNAMES): $(SNDIR)/$(SNINFO) $(SNDIR)/gensn $(SNDIR)/$(SNINFO) $(SNTABS) $(SNAMES) $(SCOMM) $(SNTABS): $(SNDIR)/$(SNINFO) $(SNDIR)/gensn $(SNDIR)/$(SNINFO) $(SNTABS) $(SNAMES) $(SCOMM) $(SYNTAX): $(SYNDIR)/$(PSFILE) $(SYNDIR)/genps $(SYNDIR)/$(PSFILE) $(SYNTAX) $(PSLIST) # # Archive # archive: zip -9 $(PRODUCT) $(CFILES1) $(CFILES2) $(CFILES3) $(EXE) $(README) $(MAKEFILE) # # Cleanup # clean: rm $(OBJ1) $(OBJ2) $(OBJ3) $(LNK) $(PRODUCT).map # rm $(OBJ4) rm $(LIST) csetc.pch # # End of makefile for IMP80 compiler #