# 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 = xkernel.lib

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

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

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

OBJS = freebuf.obj getbuf.obj getbufi.obj mark.obj mkpool.obj pcount.obj \
pcreate.obj pdelete.obj pinit.obj poolinit.obj preceive.obj preceivi.obj \
preset.obj psend.obj psendi.obj ptclear.obj 

update:
	@make -DUPDATE all

all: $(OBJS)

objs: all

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

clean:
	del *.obj

make:
	makemake

xref:
	objxref @xmodules


freebuf.obj: $(H)\bufpool.h $(H)\mark.h $(H)\conf.h $(H)\dos.h $(H)\kernel.h $(H)\mark.h freebuf.c
getbuf.obj: $(H)\bufpool.h $(H)\mark.h $(H)\conf.h $(H)\dos.h $(H)\kernel.h $(H)\mark.h getbuf.c
getbufi.obj: $(H)\bufpool.h $(H)\mark.h $(H)\conf.h $(H)\kernel.h $(H)\mark.h getbufi.c
mark.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h mark.c
mkpool.obj: $(H)\bufpool.h $(H)\mark.h $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\mem.h mkpool.c
pcount.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\ports.h $(H)\mark.h pcount.c
pcreate.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\ports.h $(H)\mark.h pcreate.c
pdelete.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\ports.h $(H)\mark.h pdelete.c
pinit.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\mem.h $(H)\ports.h $(H)\mark.h pinit.c
poolinit.obj: $(H)\bufpool.h $(H)\mark.h $(H)\conf.h $(H)\kernel.h $(H)\mark.h poolinit.c
preceive.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\ports.h $(H)\mark.h preceive.c
preceivi.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\ports.h $(H)\mark.h preceivi.c
preset.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\ports.h $(H)\mark.h preset.c
psend.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\ports.h $(H)\mark.h psend.c
psendi.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\ports.h $(H)\mark.h psendi.c
ptclear.obj: $(H)\conf.h $(H)\kernel.h $(H)\mark.h $(H)\ports.h $(H)\mark.h ptclear.c
