#######################################################################
#
# generation of TICAPI TSR (P1CAPI for miro)
#
# Copyright Stollmann E+V GmbH Hamburg - MJ / 18.11.1994
#
# Note: when switching between MIRO, MIROBOX and !MIRO del c*.obj before!!!
#
#######################################################################
#

DEBUG=  1
#
#       don't forget SIODEBUG.OBJ and TRACE_T.OBJ in link list !!
#

AS=     tasm

!if $d(MIRO)
ASFLAGS=-Mx -D__TINY__ -DMIRO
!elif $d(MIROBOX)
ASFLAGS=-Mx -D__TINY__ -DMIROBOX
!else
ASFLAGS=-Mx -D__TINY__
!endif

my_echo=doecho

MAKE=   make
MYDIR= \miro_p1\develop\ticapi
SRC= .
OBJ= .
EXE= .
LNK= .
INC= .
PCIF_INC= .
#FCP_INC= \fw\capi
FCP_INC= .
CP_INC= $(INC) -I$(FCP_INC)

INCFILES= $(INC)\capi.h \
	  $(INC)\cp_bdefs.h \
	  $(INC)\cp_buf.h \
	  $(FCP_INC)\capi11.h \
	  $(FCP_INC)\capi20.h \
	  $(FCP_INC)\cp11mnf.h \
	  $(FCP_INC)\capicomm.h \
	  $(FCP_INC)\capipcfw.h \
	  $(FCP_INC)\cp11err.h \
	  $(FCP_INC)\cp20err.h \
	  $(INC)\capiprot.h \
	  $(INC)\sicc.h \
	  $(PCIF_INC)\modul_reg.h \
	  $(INC)\cp_xfer.h


CC=     bcc
CINC=   c:\bc31\inc
CLIB=   C:\bc31\lib\cs.lib
LINK=   tlink

!if $d(MIRO)
CFLAGS= -DMIRO
!elif $d(MIROBOX)
CFLAGS= -DMIROBOX
!endif

!if $(DEBUG)
CFLAGS= $(CFLAGS) -DDEBUG -a- -c -f- -v -y -O -G -m$(MEMORY) -I$(CINC)
!else
CFLAGS= $(CFLAGS) -a- -c -f- -v -y -O -G -m$(MEMORY) -I$(CINC)
!endif

SEGM=   -zD_TEXT -zBCODE -zR_TEXT -zTCODE
CFLAGS= $(CFLAGS) $(SEGM)
SIOFLAGS= -m$(MEMORY) -a- -c -I$(CINC) -I$(INC) -N- -G -O -n$(OBJ) -v -y -S $(SEGM)

LKFLAGS= /c /s /v
COUT=   -o
FIRSTOBJ=  $(OBJ)\cp_start.obj
#ENDOBJ= $(OBJ)\end.obj


ticapi:
	@$(MAKE) -DMEMORY=t $(EXE)\ticapi.exe
	@echo "Alles paletti!"

p1capi:
	@$(MAKE) -DMEMORY=t -DMIRO $(EXE)\ticapi.exe
	@echo "Alles paletti!"
	@del p1capi.exe
	@ren ticapi.exe p1capi.exe

p1box:
	@$(MAKE) -DMEMORY=t -DMIROBOX $(EXE)\ticapi.exe
	@echo "Alles paletti!"
	@del p1box.exe
	@ren ticapi.exe p1box.exe


#
#       TICAPI TSR module
#
#       NOTE: modules behind cp_main do not stay resident!!!!!! for the
#             non-DEBUG version TRACE_T is not required.
#             for DEBUG version:
#               SIODEBUG.OBJ, TRACE_T.OBJ before MAIN
#             for non-DEBUG version:
#               SIODEBUG.OBJ behind MAIN
#

$(LNK)\ticapi.lnk:              $(SRC)\makefile
			- del $<
			$(my_echo) $< $(FIRSTOBJ)+
			$(my_echo) $< $(OBJ)\cp_inthd +
			$(my_echo) $< $(OBJ)\capi +
			$(my_echo) $< $(OBJ)\capi_q +
			$(my_echo) $< $(OBJ)\cp_amsg +
			$(my_echo) $< $(OBJ)\cp_util +
			$(my_echo) $< $(OBJ)\cp_list +
			$(my_echo) $< $(OBJ)\cp_xfer +
			$(my_echo) $< $(OBJ)\cp_buf +
			$(my_echo) $< $(OBJ)\siodebug +
			$(my_echo) $< $(OBJ)\trace_t +
			$(my_echo) $< $(OBJ)\cp_main +
			$(my_echo) $< $(OBJ)\cp_xinit +
			$(my_echo) $< $(OBJ)\resident +
			$(my_echo) $< $(OBJ)\cp_util0 $(ENDOBJ)
			$(my_echo) $< $(EXE)\ticapi.exe
			$(my_echo) $< $(EXE)\ticapi.map
			$(my_echo) $< $(CLIB)
			append $< semicol  


$(EXE)\ticapi.exe:      $(FIRSTOBJ)     \
		$(OBJ)\cp_inthd.obj      \
		$(OBJ)\capi.obj  \
		$(OBJ)\capi_q.obj        \
		$(OBJ)\cp_amsg.obj       \
		$(OBJ)\cp_util.obj       \
		$(OBJ)\cp_list.obj       \
		$(OBJ)\cp_xfer.obj       \
		$(OBJ)\cp_buf.obj        \
		$(OBJ)\cp_main.obj       \
		$(OBJ)\cp_xinit.obj      \
		$(OBJ)\siodebug.obj      \
		$(OBJ)\resident.obj      \
		$(OBJ)\cp_util0.obj $(ENDOBJ)   \
		$(LNK)\ticapi.lnk
		$(LINK) $(LKFLAGS) @$(LNK)\ticapi.lnk


$(OBJ)\cp_main.obj:     $(SRC)\cp_main.c \
			$(INCFILES)
		$(CC) $(CFLAGS) -I$(CP_INC) $(COUT)$< $(SRC)\cp_main.c

$(OBJ)\capi.obj:        $(SRC)\capi.c \
			$(INCFILES)
		$(CC) $(CFLAGS) -I$(CP_INC) $(COUT)$< $(SRC)\capi.c

$(OBJ)\capi_q.obj:      $(SRC)\capi_q.c \
			$(INCFILES)
		$(CC) $(CFLAGS) -I$(CP_INC) $(COUT)$< $(SRC)\capi_q.c

$(OBJ)\cp_amsg.obj:     $(SRC)\cp_amsg.c \
			$(INCFILES)
		$(CC) $(CFLAGS) -I$(CP_INC) $(COUT)$< $(SRC)\cp_amsg.c

$(OBJ)\cp_util.obj:     $(SRC)\cp_util.c \
			$(INCFILES) \
			$(INC)\titrace.h
		$(CC) $(CFLAGS) -I$(CP_INC) $(COUT)$< $(SRC)\cp_util.c

$(OBJ)\cp_list.obj:     $(SRC)\cp_list.c \
			$(INCFILES)
		$(CC) $(CFLAGS) -I$(CP_INC) $(COUT)$< $(SRC)\cp_list.c

$(OBJ)\cp_xinit.obj:    $(SRC)\cp_xinit.c \
			$(INCFILES)
		$(CC) $(CFLAGS) -I$(CP_INC) $(COUT)$< $(SRC)\cp_xinit.c

$(OBJ)\cp_xfer.obj:     $(SRC)\cp_xfer.c \
			$(INCFILES)
		$(CC) $(CFLAGS) -I$(CP_INC) $(COUT)$< $(SRC)\cp_xfer.c

$(OBJ)\cp_buf.obj:      $(SRC)\cp_buf.c \
			$(INCFILES)
		$(CC) $(CFLAGS) -I$(CP_INC) $(COUT)$< $(SRC)\cp_buf.c


$(OBJ)\siodebug.obj:   $(SRC)\siodebug.c
	$(CC) $(SIOFLAGS) $(COUT)$(OBJ)\siodebug siodebug
	xlate /R/FA"segment word public"AT"segment byte public" siodebug.asm
	tasm siodebug.asm, $(OBJ)\siodebug.obj /ml
	del siodebug.asm


#  Rule to generate object files from assembler source

.asm.obj:
	$(AS) $(ASFLAGS) $*.asm,$*.obj;

