
FC = lf95
FOPTS = -g --chk --info
LDOPTS = -g

CC = cc
COPTS = -g

OBJS = autocoder.o bcd_to_ascii_m.o error_m.o input_m.o io_units.o \
       lexer.o literals_m.o machine.o op_codes_m.o operand_m.o \
       parser.o pass_1_m.o pass_2_m.o pass_3_m.o symtab_m.o \
       traces_m.o zone_m.o

SRCS = autocoder.f90 bcd_to_ascii_m.f90 error_m.f90 input_m.f90 io_units.f90 \
       lexer.f90 literals_m.f90 machine.f90 op_codes_m.f90 operand_m.f90 \
       parser.f90 pass_1_m.f90 pass_2_m.f90 pass_3_m.f90 symtab_m.f90 \
       traces_m.f90 zone_m.f90

.SUFFIXES:
.SUFFIXES: .f90 .o

.f90.o:
	$(FC) -c $(FOPTS) $< 2>&1 | hl

all: autocoder

autocoder.o: autocoder.f90 error_m.o input_m.o io_units.o literals_m.o \
        machine.o pass_1_m.o pass_2_m.o pass_3_m.o symtab_m.o traces_m.o
error_m.o: error_m.f90 input_m.o io_units.o
input_m.o: input_m.f90
lexer.o: lexer.f90 error_m.o traces_m.o
literals_m.o: literals_m.f90 error_m.o io_units.o lexer.o operand_m.o \
        symtab_m.o traces_m.o
macro_pass_m.o: macro_pass_m.f90 input_m.o io_units.o machine.o op_codes_m.o
operand_m.o: operand_m.f90
op_codes_m.o: op_codes_m.f90 bcd_to_ascii_m.o
parser.o: parser.f90 error_m.o lexer.o literals_m.o operand_m.o symtab_m.o \
        traces_m.o
pass_1_m.o: pass_1_m.f90 bcd_to_ascii_m.o error_m.o input_m.o io_units.o \
        lexer.o literals_m.o machine.o op_codes_m.o operand_m.o parser.o \
        symtab_m.o
pass_2_m.o: pass_2_m.f90 error_m.o io_units.o literals_m.o operand_m.o \
        symtab_m.o
pass_3_m.o: pass_3_m.f90 bcd_to_ascii_m.o error_m.o io_units.o literals_m.o \
        op_codes_m.o operand_m.o symtab_m.o zone_m.o
symtab_m.o: symtab_m.f90
zone_m.o: zone_m.f90 bcd_to_ascii_m.o

autocoder: $(OBJS)
	$(FC) $(LDOPTS) -o autocoder $(OBJS)

#to_simh: to_simh.o bcd_to_ascii_m.o machine.o
#	$(FC) $(LDOPTS) -o to_simh to_simh.o bcd_to_ascii_m.o machine.o

to_simh: to_simh.c
	$(CC) $(COPTS) -o to_simh to_simh.c

to_e11: to_e11.o bcd_to_ascii_m.o machine.o
	$(FC) $(LDOPTS) -o to_e11 \
           to_e11.o bcd_to_ascii_m.o machine.o

clean:
	rm -f *.o *.mod autocoder autocoder.tar

tapedump: tapedump.f90
	$(FC) -o tapedump $(FOPTS) tapedump.f90

tar:
	tar czf autocoder_f90.tgz 00README Makefile $(SRCS) tapedump.f90 \
          to_simh.c to_simh.f90 to_e11.f90

zip:
	zip autocoder_f90.zip 00README Makefile $(SRCS) tapedump.f90 \
          to_simh.c to_simh.f90 to_e11.f90
