SRCDIR = ../../src
-SINGLETONS = create-normal create-empty create-null create-invalid create-long
+SINGLETONS = \
+ $(addprefix create-, normal empty null bad-ptr long exists bound) \
+ $(addprefix args-, argc argv0 argvn single multiple dbl-space)
define SINGLETON_PROG
PROGS += $(1)
disks: $(DISKS)
PINTOS = ../../src/utils/pintos
-%.dsk: % os.dsk
- rm -f $@ fs.dsk
- $(PINTOS) make-disk fs.dsk 2
- $(PINTOS) -v run -f -q
- $(PINTOS) -v put $<
- mv fs.dsk $@
-
-os.dsk: ../../src/userprog/build/os.dsk
- ln -sf $< $@
+OS_DISK = ../../src/userprog/build/os.dsk
+%.dsk: %
+ rm -f $@.tmp
+ $(PINTOS) make-disk $@.tmp 2
+ $(PINTOS) -v --os-disk=$(OS_DISK) --fs-disk=$@.tmp run -f -q
+ $(PINTOS) -v --os-disk=$(OS_DISK) --fs-disk=$@.tmp put $<
+ mv $@.tmp $@
clean::
rm -f $(DISKS)
include $(SRCDIR)/Makefile.userprog
+
+CFLAGS += -Werror