# # Makefile for the mipsi-src directory. # # Invoking "make" will compile libmipsi.a into the ../lib # directory. # # This is a kludge so that -g will put enough of the path name in for GDB # to figure out where the .c file is: BASE = ../mipsi-src # Note that gcc needs -O2 for inline mem_address to work CFLAGS = -g -I$(INCLUDE1) -I$(INCLUDE2) -DKERN CC = gcc # was cc # Endianness (BIGENDIAN, LITTLEENDIAN) ENDIAN = -DLITTLEENDIAN # System (ultrix, irix) SYSTEM = ultrix INCLUDE1 = ../include INCLUDE2 = ../mipsi-include LIB = ../lib # What to build. TARGET = $(LIB)/libmipsi.a # The object files composing the library. OBJS = $(BASE)/read-aout.o $(BASE)/run.o $(BASE)/signals.o \ $(BASE)/syscalls.o $(BASE)/mem.o \ $(BASE)/main.o $(BASE)/utils.o \ $(BASE)/print.o $(BASE)/tlb.o $(BASE)/disk.o .c.o: $(CC) $(CFLAGS) -c $< $(TARGET): $(OBJS) ar -cr $@ $(OBJS); ranlib $@ $(BASE)/mem.o: $(BASE)/mem.c $(INCLUDE2)/mem.h $(INCLUDE2)/main.h $(INCLUDE1)/mt_os.h $(BASE)/utils.o: $(BASE)/utils.c $(INCLUDE2)/main.h $(INCLUDE2)/mem.h $(INCLUDE1)/mt_os.h $(BASE)/signals.o: $(BASE)/signals.c $(INCLUDE2)/mem.h $(INCLUDE2)/main.h $(INCLUDE1)/mt_os.h $(BASE)/tlb.o: $(BASE)/tlb.c $(INCLUDE2)/mem.h $(INCLUDE2)/main.h $(INCLUDE1)/mt_os.h $(BASE)/print.o: $(BASE)/print.c $(INCLUDE2)/mem.h $(INCLUDE2)/main.h $(INCLUDE2)/inst.h $(INCLUDE1)/mt_os.h $(BASE)/read_aout.o: $(BASE)/read_aout.c $(INCLUDE2)/main.h $(INCLUDE2)/mem.h $(INCLUDE1)/mt_os.h $(BASE)/syscalls.o: $(BASE)/syscalls.c syscalls-${SYSTEM}.h $(INCLUDE2)/mem.h $(INCLUDE2)/main.h $(INCLUDE1)/mt_os.h $(CC) $(CFLAGS) -I. -DSYSCALLHEADER=\"syscalls-${SYSTEM}.h\" -DSYSCALLNOS=\"MIPS/syscall-${SYSTEM}.h\" -c syscalls.c syscalls-ultrix.h: calls-ultrix calls-template createsys calls-ultrix > syscalls-ultrix.h $(BASE)/main.o: $(BASE)/main.c $(INCLUDE2)/main.h # memaddr.c file is included in the header mem.h so inlining is possible # admittedly kludgy but the only way to get things to run fast with the linker # which does not do global optimizations. # mem.h: memaddr.c # touch mem.h clean: rm -f *.o *~ core $(TARGET) clobber: rm -f a.out mipsi multimipsi gmultimipsi syscalls-*.h profile: rm -f a.out make 'LFLAGS=-p' depend: makedepend -- $(CFLAGS) *.c # DO NOT DELETE THIS LINE -- make depend depends on it. disk.o: ../mipsi-include/main.h ../mipsi-include/mem.h ../include/disk.h disk.o: /usr/include/string.h /usr/include/standards.h disk.o: /usr/include/sys/types.h ../include/tlb.h /usr/include/stdio.h disk.o: /usr/include/assert.h main.o: /usr/include/stdio.h /usr/include/standards.h /usr/include/stdlib.h main.o: /usr/include/string.h /usr/include/sys/types.h /usr/include/setjmp.h main.o: ../mipsi-include/config.h ../mipsi-include/main.h main.o: ../mipsi-include/mem.h ../include/minithread.h main.o: ../include/minithread_public.h ../include/minithread_md.h main.o: ../include/disk.h /usr/include/assert.h mem.o: /usr/include/stdlib.h /usr/include/standards.h /usr/include/string.h mem.o: /usr/include/sys/types.h ../mipsi-include/config.h mem.o: ../mipsi-include/main.h ../mipsi-include/mem.h ../include/tlb.h mem.o: ../include/mt_vm.h memaddr.c ../include/mt_os.h memaddr.o: ../include/mt_os.h print.o: /usr/include/stdio.h /usr/include/standards.h print.o: ../mipsi-include/config.h ../mipsi-include/main.h print.o: ../mipsi-include/mem.h ../mipsi-include/inst.h read-aout.o: /usr/include/stdio.h /usr/include/standards.h read-aout.o: ../mipsi-include/MIPS/filehdr.h read-aout.o: ../mipsi-include/MIPS/ansi_compat.h read-aout.o: ../mipsi-include/MIPS/a.out.h ../mipsi-include/config.h read-aout.o: ../mipsi-include/main.h ../mipsi-include/mem.h run.o: /usr/include/stdio.h /usr/include/standards.h /usr/include/math.h run.o: ../mipsi-include/MIPS/nan.h ../mipsi-include/MIPS/ansi_compat.h run.o: ../mipsi-include/config.h ../mipsi-include/main.h run.o: ../mipsi-include/mem.h ../mipsi-include/inst.h /usr/include/setjmp.h run.o: ../include/mt_vm.h ../include/tlb.h signals.o: /usr/include/assert.h /usr/include/standards.h signals.o: ../mipsi-include/config.h ../mipsi-include/main.h signals.o: ../mipsi-include/mem.h ../mipsi-include/MIPS/signal.h signals.o: ../mipsi-include/MIPS/ansi_compat.h /usr/include/setjmp.h syscalls.o: /usr/include/stdarg.h /usr/include/standards.h syscalls.o: ../mipsi-include/MIPS/sys/time.h syscalls.o: ../mipsi-include/MIPS/ansi_compat.h syscalls.o: ../mipsi-include/MIPS/sys/types.h ../mipsi-include/MIPS/signal.h syscalls.o: ../mipsi-include/MIPS/ansi_compat.h ../mipsi-include/config.h syscalls.o: ../mipsi-include/main.h ../mipsi-include/syscalls.h syscalls.o: ../mipsi-include/mem.h /usr/include/stdio.h syscalls.o: /usr/include/sys/types.h /usr/include/sys/stat.h syscalls.o: /usr/include/sys/mode.h tlb.o: /usr/include/stdio.h /usr/include/standards.h tlb.o: ../mipsi-include/config.h ../mipsi-include/main.h tlb.o: ../mipsi-include/mem.h ../include/tlb.h ../include/mt_os.h tlb.o: /usr/include/assert.h utils.o: /usr/include/stdio.h /usr/include/standards.h /usr/include/stdlib.h utils.o: /usr/include/string.h /usr/include/sys/types.h /usr/include/stdarg.h utils.o: /usr/include/setjmp.h ../mipsi-include/config.h utils.o: ../mipsi-include/main.h ../mipsi-include/mem.h