# Makefile for busy-wait IO tests # XCC = /u/wbcowan/gnuarm-4.0.2/arm-elf/bin/gcc AS = /u/wbcowan/gnuarm-4.0.2/arm-elf/bin/as AR = /u/wbcowan/gnuarm-4.0.2/arm-elf/bin/ar CFLAGS = -c -fPIC -Wall -I. -I../include -mcpu=arm920t -msoft-float # -g: include hooks for gdb # -c: only compile # -mcpu=arm920t: generate code for the 920t architecture # -fpic: emit position-independent code # -Wall: report all warnings ASFLAGS = -mcpu=arm920t -mapcs-32 # -mapcs: always generate a complete stack frame ARFLAGS = rcs all: bwio.a bwio.s: bwio.c $(XCC) -S $(CFLAGS) bwio.c k1.s: k1.c $(XCC) -S $(CFLAGS) k1.c kernel.s: kernel.c $(XCC) -S $(CFLAGS) kernel.c priority-q.s: priority-q.c $(XCC) -S $(CFLAGS) priority-q.c scheduler.s: scheduler.c $(XCC) -S $(CFLAGS) scheduler.c syscall.s: syscall.c $(XCC) -S $(CFLAGS) syscall.c syscall-handler.s: syscall-handler.c $(XCC) -S $(CFLAGS) syscall-handler.c td.s: td.c $(XCC) -S $(CFLAGS) td.c timer.s: timer.c $(XCC) -S $(CFLAGS) timer.c hash-table.s: hash-table.c $(XCC) -S $(CFLAGS) hash-table.c bwio.o: bwio.s $(AS) $(ASFLAGS) -o bwio.o bwio.s context-switch.o: context-switch.s $(AS) $(ASFLAGS) -o context-switch.o context-switch.s k1.o: k1.s $(AS) $(ASFLAGS) -o k1.o k1.s kernel.o: kernel.s $(AS) $(ASFLAGS) -o kernel.o kernel.s priority-q.o: priority-q.s $(AS) $(ASFLAGS) -o priority-q.o priority-q.s scheduler.o: scheduler.s $(AS) $(ASFLAGS) -o scheduler.o scheduler.s syscall.o: syscall.s $(AS) $(ASFLAGS) -o syscall.o syscall.s syscall-handler.o: syscall-handler.s $(AS) $(ASFLAGS) -o syscall-handler.o syscall-handler.s td.o: td.s $(AS) $(ASFLAGS) -o td.o td.s timer.o: timer.s $(AS) $(ASFLAGS) -o timer.o timer.s hash-table.o: hash-table.s $(AS) $(ASFLAGS) -o hash-table.o hash-table.s bwio.a: bwio.o $(AR) $(ARFLAGS) $@ bwio.o context-switch.a: context-switch.o $(AR) $(ARFLAGS) $@ context-switch.o k1.a: k1.o $(AR) $(ARFLAGS) $@ k1.o kernel.a: kernel.o $(AR) $(ARFLAGS) $@ kernel.o priority-q.a: priority-q.o $(AR) $(ARFLAGS) $@ priority-q.o scheduler.a: scheduler.o $(AR) $(ARFLAGS) $@ scheduler.o syscall.a: syscall.o $(AR) $(ARFLAGS) $@ syscall.o syscall-handler.a: syscall-handler.o $(AR) $(ARFLAGS) $@ syscall-handler.o td.a: td.o $(AR) $(ARFLAGS) $@ td.o timer.a: timer.o $(AR) $(ARFLAGS) $@ timer.o hash-table.a: hash-table.o $(AR) $(ARFLAGS) $@ hash-table.o install: bwio.a timer.a context-switch.a kernel.a k1.a priority-q.a scheduler.a syscall.a syscall-handler.a td.a hash-table.a mv bwio.a libbwio.a mv context-switch.a libcs.a mv k1.a libk1.a mv kernel.a libkernel.a mv priority-q.a libpq.a mv scheduler.a libsche.a mv syscall.a libsys.a mv syscall-handler.a libsysh.a mv td.a libtd.a mv timer.a libtimer.a mv hash-table.a libht.a #mv test.a libtest.a clean: mv context-switch.s ct -rm -f *s *.o *.a *~ mv ct context-switch.s