#----------------------------------------------------------------------
# Makefile para geracao dos exemplos E286 - evocar com o comando:
# 		nmake nome_do_exemplo
#
# Autor: Jose Rufino
# Data:  OUT 94
#----------------------------------------------------------------------

.SUFFIXES : .asm .c .obj 

EDRIVE = c:
MFILE  = makefile

IDIR   = $(EDRIVE)\e286\include
KDIR   = $(EDRIVE)\e286\kernel
KTASK  = $(EDRIVE)\e286\kernel\task1.exe
KTMAP  = $(EDRIVE)\e286\kernel\task1.map
IOLIB  = $(EDRIVE)\e286\kernel\iopc.lib
EXLIB  = $(EDRIVE)\e286\kernel\exints.lib

MASM   = masm  
AFLAGS = /Z /ML /P
CC     = cl 
CFLAGS = /c /Gs /G2 /Awsn /J /Od
LINK   = link 
LFLAGS = /M /DOSSEG /NOE
LIBS   = $(IOLIB)+$(EXLIB)

LOBJS  = $(KDIR)\tbegin.obj\
		 $(KDIR)\tstart.obj\
		 $(OBJS)\
		 $(KDIR)\tend.obj

EOBJS  = tarefas.obj\
         mailbox.obj\
         queues.obj\
         regions.obj\
         semapho.obj\
         tlimits.obj


# Geracao de objectos a partir de ficheiros fonte
#
.asm.obj:
		$(MASM) $(AFLAGS) $< ;
.c.obj:
		$(CC) $(CFLAGS) /I$(IDIR) $<

# Geracao dos objectos em falta
#
compile:	$(EOBJS)	

# Geracao de cada um dos exemplos
#
tarefas:	tarefas.obj
	nmake OBJS="tarefas.obj" mkexec

mailbox:	mailbox.obj
	nmake OBJS="mailbox.obj" mkexec

queues:		queues.obj
	nmake OBJS="queues.obj"  mkexec

regions:	regions.obj
	nmake OBJS="regions.obj" mkexec

semapho:	semapho.obj
	nmake OBJS="semapho.obj" mkexec

tlimits:	tlimits.obj
	nmake OBJS="tlimits.obj" mkexec

mkexec:
	$(LINK) $(LFLAGS) @<<linkobj
$(LOBJS: =+^
),
$(KTASK),
$(KTMAP),
$(LIBS);
<<NOKEEP

# Execucao de utilidades
#
purge:
	-rm *.bak

clean:
	-rm *.bak
	-rm *.obj

kclean:
	-rm $(KTASK) $(KTMAP)


# Dependencias
tarefas.obj:		tarefas.c
mailbox.obj:		mailbox.c
queues.obj:			queues.c
regions.obj:		regions.c
semapho.obj:		semapho.c
tlimits.obj:		tlimits.c
