# MAKEFILE (in each subdir of SRC\)
# built by concatenating MAKE[123].ADD (in LIB\)
# LIBFILE from file LIBFILE (in each subdir)
# OBJS and dependency information collected by makemake program

# the latter also makes xmodules and xbldlib

# this makefile adds OBJS to relevant LIB if $(UPDATE) defined

# The env var L3XCOPTS can be set to additional C compiler flags, defines ...

!include ..\..\lib\config.mk


LIBFILE = xio.lib

.c.obj:
	$(CC) -c $(CFLAGS) -I$(H) $<
!ifdef UPDATE
	$(LIB) $(L)\$(LIBFILE) $(LIBFLAGS) -+$*
!endif

.asm.obj:
	$(ASM) $*;
!ifdef UPDATE
	$(LIB) $(L)\$(LIBFILE) $(LIBFLAGS) -+$*
!endif

.c.asm:
	$(CC) -S $(CFLAGS) -I$(H) $<
	rename $*.asm $*.log

OBJS = isatty.obj kbdio.obj kgetc.obj kputc.obj nullgetc.obj nullopen.obj \
nullread.obj nullwrit.obj readcopy.obj slclose.obj slcntl.obj slgetc.obj \
slopen.obj slputc.obj ttycntl.obj ttygetc.obj ttyiin.obj ttyinit.obj \
ttyiproc.obj ttyopen0.obj ttyoproc.obj ttyputc.obj ttyread.obj ttywrite.obj \
vidio.obj writcopy.obj 

update:
	@make -DUPDATE all

all: $(OBJS)

objs: all

lib: all
 	$(LIB) $(L)\$(LIBFILE) $(LIBFLAGS) @xbldlib

clean:
	del *.obj

make:
	makemake

xref:
	objxref @xmodules


isatty.obj: $(H)\conf.h $(H)\io.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h isatty.c
kbdio.obj: ..\h\dos.asm kbdio.asm
kgetc.obj: $(H)\conf.h $(H)\kbdio.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h kgetc.c
kputc.obj: $(H)\conf.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h $(H)\vidio.h kputc.c
nullgetc.obj: $(H)\conf.h $(H)\disk.h $(H)\dir.h $(H)\iblock.h $(H)\file.h $(H)\kernel.h $(H)\xtypes.h nullgetc.c
nullopen.obj: $(H)\conf.h $(H)\kernel.h $(H)\xtypes.h nullopen.c
nullread.obj: $(H)\conf.h $(H)\disk.h $(H)\dir.h $(H)\iblock.h $(H)\file.h $(H)\kernel.h $(H)\xtypes.h nullread.c
nullwrit.obj: $(H)\conf.h $(H)\kernel.h $(H)\xtypes.h nullwrit.c
readcopy.obj: $(H)\conf.h $(H)\io.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h readcopy.c
slclose.obj: $(H)\conf.h $(H)\kernel.h $(H)\xtypes.h slclose.c
slcntl.obj: $(H)\conf.h $(H)\kernel.h $(H)\xtypes.h $(H)\mem.h $(H)\xtypes.h $(H)\sl.h slcntl.c
slgetc.obj: $(H)\conf.h $(H)\kernel.h $(H)\xtypes.h slgetc.c
slopen.obj: $(H)\conf.h $(H)\kernel.h $(H)\xtypes.h slopen.c
slputc.obj: $(H)\conf.h $(H)\kernel.h $(H)\xtypes.h slputc.c
ttycntl.obj: $(H)\conf.h $(H)\io.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h ttycntl.c
ttygetc.obj: $(H)\conf.h $(H)\io.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h ttygetc.c
ttyiin.obj: $(H)\conf.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h ttyiin.c
ttyinit.obj: $(H)\conf.h $(H)\io.h $(H)\kbdio.h $(H)\kernel.h $(H)\xtypes.h $(H)\pc.h $(H)\proc.h $(H)\tty.h $(H)\window.h ttyinit.c
ttyiproc.obj: $(H)\butler.h $(H)\conf.h $(H)\io.h $(H)\kbdio.h $(H)\kernel.h $(H)\xtypes.h $(H)\pc.h $(H)\tty.h $(H)\window.h ttyiproc.c
ttyopen0.obj: $(H)\conf.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h ttyopen0.c
ttyoproc.obj: $(H)\conf.h $(H)\io.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h $(H)\vidio.h ttyoproc.c
ttyputc.obj: $(H)\conf.h $(H)\io.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h ttyputc.c
ttyread.obj: $(H)\conf.h $(H)\io.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h ttyread.c
ttywrite.obj: $(H)\conf.h $(H)\io.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h ttywrite.c
vidio.obj: ..\h\dos.asm vidio.asm
writcopy.obj: $(H)\conf.h $(H)\io.h $(H)\kernel.h $(H)\xtypes.h $(H)\tty.h $(H)\window.h writcopy.c
