NASM=nasm65
NLINK=nlink65
NLIB=nlib65
SHELL=callgu

AFLAGS=-n
LIB65=..

.SUFFIXES:

.SUFFIXES:	.l65 .o65 .s65 .h65

.s65.o65:
	$(NASM) $(AFLAGS) $<

.o65.com:
	$(NLINK) $(LFLAGS) $< -o $*.com
#
RELOC =$(LIB65)\preloc.o65 $(LIB65)\breloc.o65 $(LIB65)\mover.o65 $(LIB65)\areloc.o65

# modules that don't need others
LEVEL1=stdio.o65 string1.o65 hatabs.o65 atou.o65 utoa.o65 utoh.o65 screen.o65 kil0lead.o65

# modules that need LEVEL1 modules
LEVEL2=itoa.o65 atoi.o65

# modules that look pretty  OS-specific
LEVEL3=sdsector.o65 ddsector.o65
# --------------------------------------------------------------
all:	movers $(LIB65)\std.l65

clean:
	$(SHELL) rm *.[d-o]*

movers:	$(RELOC)

new:
	$(SHELL) make clean
	$(SHELL) rm ..\*.l65
	$(SHELL) rm ..\*.o65
	$(SHELL) rm *.o65
	$(SHELL) make


$(LIB65)\preloc.o65:	preloc.s65
	$(NASM) $(AFLAGS) -vfl preloc.s65 -o $(LIB65)\preloc.o65

$(LIB65)\breloc.o65:	breloc.s65
	$(NASM) $(AFLAGS) -vfl breloc.s65 -o $(LIB65)\breloc.o65

$(LIB65)\areloc.o65:	areloc.s65
	$(NASM) $(AFLAGS) -vfl areloc.s65 -o $(LIB65)\areloc.o65

$(LIB65)\mover.o65:	mover.s65
	$(NASM) $(AFLAGS) -vfl mover.s65 -o $(LIB65)\mover.o65

$(LIB65)\std.l65:	$(LEVEL1) $(LEVEL2) $(LEVEL3)
	$(NLIB) -c $(LEVEL3) -l $(LIB65)\std.l65
	$(NLIB) -a $(LEVEL2) -l $(LIB65)\std.l65
	$(NLIB) -a -b level1.lnk -l $(LIB65)\std.l65

