# Makefile for Borland C++ v1.5 for OS/2
DRV      = C:
SRC      = .
#
BIN      = $(DRV)\BCOS2\BIN
LIB      = $(DRV)\BCOS2\LIB
INC      = $(DRV)\BCOS2\INCLUDE
#
CC       = $(BIN)\BCC
TLINK    = $(BIN)\TLINK
TLIB     = $(BIN)\TLIB
IMPLIB   = $(BIN)\IMPLIB
#
CFLAGS   = -w -O2 -H -P-c -I$(INC) -I$(SRC)
#
DEFS     = -DOS2 -DASM
#
LIBS     = $(ALGO).LIB C2.LIB OS2.LIB 
#
LINKA    = $(TLINK) -x -Toe -ap -L$(LIB)
LINKD    = $(TLINK) -x -Tod -ap -L$(LIB)
#
ALGO     = twofish
CIPHER   = tf
#

all: testvk.exe testvt.exe bench.exe $(CIPHER).exe

testvk.exe : testvk.obj $(ALGO).lib
    $(LINKA) c02 testvk, testvk,,$(LIBS),$(SRC)\testvk

testvk.obj: $(SRC)/testvk.c $(SRC)/$(ALGO).h
    $(CC) $(CFLAGS) $(DEFS) -otestvk.obj -c $(SRC)/testvk.c

testvt.exe : testvt.obj $(ALGO).lib
    $(LINKA) c02 testvt, testvt,,$(LIBS),$(SRC)\testvt

testvt.obj: $(SRC)/testvt.c $(SRC)/$(ALGO).h
   	$(CC) $(CFLAGS) $(DEFS) -otestvt.obj -c $(SRC)/testvt.c

bench.exe : bench.obj $(ALGO).lib
    $(LINKA) c02 bench, bench,,$(LIBS),$(SRC)\bench

bench.obj: $(SRC)/bench.c $(SRC)/$(ALGO).h
   	$(CC) $(CFLAGS) $(DEFS) -obench.obj -c $(SRC)/bench.c

$(CIPHER).exe : $(CIPHER).obj $(ALGO).lib
    $(LINKA) c02 $(CIPHER), $(CIPHER),,$(LIBS),$(SRC)\$(CIPHER)

$(CIPHER).obj: $(SRC)/$(CIPHER).c $(SRC)/$(ALGO).h
   	$(CC) $(CFLAGS) $(DEFS) -o$(CIPHER).obj -c $(SRC)/$(CIPHER).c

clean:
        @if exist *.map del *.map
        @if exist *.obj del *.obj
        @if exist *.bak del *.bak
        @if exist *.res del *.res
        @if exist *.exe del *.exe
        @if exist *.lst del *.lst
        @if exist *.lnk del *.lnk
        @if exist *.zip del *.zip

zip:
        @if exist *.obj del *.obj
        zip $(ALGO)_os2_bc.zip *.*

