# use normal make for this Makefile # # Makefile for building user programs to run on top of Nachos # # Several things to be aware of: # # Nachos assumes that the location of the program startup routine (the # location the kernel jumps to when the program initially starts up) # is at location 0. This means: start.o must be the first .o passed # to ld, in order for the routine "Start" to be loaded at location 0 # # if you are cross-compiling, you need to point to the right executables # and change the flags to ld and the build procedure for as GCCDIR = /cs/class/cs170/local/decstation-ultrix/bin BINDIR = /cs/class/cs170/local/decstation-ultrix/bin LDFLAGS = -Ttext 0 -N ASFLAGS = CPPFLAGS = $(INCDIR) # if you aren't cross-compiling: #GCCDIR = #LDFLAGS = -N -T #ASFLAGS = #CPPFLAGS = -P $(INCDIR) CC = $(GCCDIR)/gcc AS = $(BINDIR)/as LD = $(BINDIR)/ld CPP = /lib/cpp INCDIR =-I../userprog -I../threads CFLAGS = -G 0 -c $(INCDIR) all: halt shell matmult sort start.o: start.s ../userprog/syscall.h $(CPP) $(CPPFLAGS) start.s > strt.s $(AS) $(ASFLAGS) -o start.o strt.s rm strt.s halt.o: halt.c $(CC) $(CFLAGS) halt.c halt: halt.o start.o $(LD) $(LDFLAGS) start.o halt.o -o halt.coff ../bin/coff2noff halt.coff halt shell.o: shell.c $(CC) $(CFLAGS) shell.c shell: shell.o start.o $(LD) $(LDFLAGS) start.o shell.o -o shell.coff ../bin/coff2noff shell.coff shell sort.o: sort.c $(CC) $(CFLAGS) sort.c sort: sort.o start.o $(LD) $(LDFLAGS) start.o sort.o -o sort.coff ../bin/coff2noff sort.coff sort matmult.o: matmult.c $(CC) $(CFLAGS) matmult.c matmult: matmult.o start.o $(LD) $(LDFLAGS) start.o matmult.o -o matmult.coff ../bin/coff2noff matmult.coff matmult