# Makefile for OS/2 WARP platform using IBM CSET
ALGO     = serpent
CIPHER   = srp
#
AFLAGS  = /Mx -t -z
ASM     = ml /c /Zm
LINK    = LINK386
LIBS    = DDE4MBS + os2386 + $(ALGO).lib
SRC     = .

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

testvk.lnk: makefile
    echo testvk.obj             >  testvk.lnk
    echo testvk.exe             >> testvk.lnk
    echo testvk.map             >> testvk.lnk
    echo $(LIBS)                >> testvk.lnk
    echo testvk.def             >> testvk.lnk

testvt.lnk: makefile
    echo testvt.obj             >  testvt.lnk
    echo testvt.exe             >> testvt.lnk
    echo testvt.map             >> testvt.lnk
    echo $(LIBS)                >> testvt.lnk
    echo testvt.def             >> testvt.lnk

bench.lnk: makefile
    echo bench.obj               > bench.lnk
    echo bench.exe              >> bench.lnk
    echo bench.map              >> bench.lnk
    echo $(LIBS)                >> bench.lnk
    echo bench.def              >> bench.lnk

$(CIPHER).lnk: makefile
    echo $(CIPHER).obj           > $(CIPHER).lnk
    echo $(CIPHER).exe          >> $(CIPHER).lnk
    echo $(CIPHER).map          >> $(CIPHER).lnk
    echo $(LIBS)                >> $(CIPHER).lnk
    echo $(CIPHER).def          >> $(CIPHER).lnk

testvt.exe: testvt.obj testvt.lnk
	$(LINK) /NOE /NOD /ALIGN:16 /EXEPACK /M /BASE:0x10000 @testvt.lnk

testvt.obj: $(SRC)\testvt.c $(SRC)\$(ALGO).h
	icc /c /O+ /Sa /Gd- -Fotestvt.obj $(SRC)\testvt.c

testvk.exe: testvk.obj testvk.lnk
	$(LINK) /NOE /NOD /ALIGN:16 /EXEPACK /M /BASE:0x10000 @testvk.lnk

testvk.obj: $(SRC)\testvk.c $(SRC)\$(ALGO).h
	icc /c /O+ /Sa /Gd- -Fotestvk.obj $(SRC)\testvk.c

bench.exe: bench.obj bench.lnk
	$(LINK) /NOE /NOD /ALIGN:16 /EXEPACK /M /BASE:0x10000 @bench.lnk

bench.obj: $(SRC)\bench.c $(SRC)\$(ALGO).h
	icc /c /O+ /Sa /Gd- -D__EXTENDED__ -Fobench.obj $(SRC)\bench.c

$(CIPHER).exe: $(CIPHER).obj $(CIPHER).lnk
	$(LINK) /NOE /NOD /ALIGN:16 /EXEPACK /M /BASE:0x10000 @$(CIPHER).lnk

$(CIPHER).obj: $(SRC)\$(CIPHER).c $(SRC)\$(ALGO).h
	icc /c /O+ /Sa /Gd- -Fo$(CIPHER).obj $(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_cset.zip *.*

