CC = m68k-palmos-coff-gcc
AR = m68k-palmos-coff-ar
OBJRES = m68k-palmos-coff-obj-res
STUBGEN = m68k-palmos-coff-stubgen
EXPORTLIST = m68k-palmos-coff-exportlist

CFLAGS = -O2 -g

all: BNLib.prc BlowfishLib.prc DESLib.prc DHLib.prc IDEALib.prc MDLib.prc \
     RANDLib.prc RC2Lib.prc RC4Lib.prc RSALib.prc SHALib.prc libbn.sa \
     libbf.sa libdes.sa libdh.sa libidea.sa libmd.sa librand.sa \
     librc2.sa librc4.sa librsa.sa libsha.sa

gen_exps: gen_bn.exp gen_bf.exp gen_des.exp gen_dh.exp gen_idea.exp \
	  gen_md.exp gen_rand.exp gen_rc2.exp gen_rc4.exp gen_rsa.exp \
	  gen_sha.exp

.S.o:
	$(CC) -c $<

clean:
	-rm -f *.o *.bin bin.res *.grc \
	    {BN,Blowfish,DES,DH,IDEA,MD,RAND,RC2,RC4,RSA,SHA}Lib{,.S} \
	    {BN,Blowfish,DES,DH,IDEA,MD,RAND,RC2,RC4,RSA,SHA}stub.c

veryclean: clean
	-rm -f {BN,Blowfish,DES,DH,IDEA,MD,RAND,RC2,RC4,RSA,SHA}Lib.prc \
	    lib{bn,bf,des,dh,idea,md,rand,rc2,rc4,rsa,sha}.sa
	    



MDLib.prc: GLib0000.MDLib.grc data0000.MDLib.grc rloc0000.MDLib.grc
	build-prc -l MDLib.prc "MD Library" CrMD GLib0000.MDLib.grc \
	    data0000.MDLib.grc rloc0000.MDLib.grc

GLib0000.MDLib.grc: MDLib
	$(OBJRES) -l MDLib

data0000.MDLib.grc: GLib0000.MDLib.grc

rloc0000.MDLib.grc: GLib0000.MDLib.grc

MDLib: MDLib.S ../lib/libmd.a
	$(CC) -shared -o MDLib MDLib.S ../lib/libmd.a

libmd.sa: MDstub.o
	$(AR) rcs $@ $<

MDstub.c: MDLib.S

MDLib.S: md.exp
	$(STUBGEN) "MD Library" CrMD MDstub.c MDLib.S < $<

gen_md.exp: ../lib/libmd.a
	$(EXPORTLIST) $< > md.exp


SHALib.prc: GLib0000.SHALib.grc data0000.SHALib.grc rloc0000.SHALib.grc
	build-prc -l SHALib.prc "SHA Library" CrSH GLib0000.SHALib.grc \
	    data0000.SHALib.grc rloc0000.SHALib.grc

GLib0000.SHALib.grc: SHALib
	$(OBJRES) -l SHALib

data0000.SHALib.grc: GLib0000.SHALib.grc

rloc0000.SHALib.grc: GLib0000.SHALib.grc

SHALib: SHALib.S ../lib/libsha.a
	$(CC) -shared -o SHALib SHALib.S ../lib/libsha.a

libsha.sa: SHAstub.o
	$(AR) rcs $@ $<

SHAstub.c: SHALib.S

SHALib.S: sha.exp
	$(STUBGEN) "SHA Library" CrSH SHAstub.c SHALib.S < $<

gen_sha.exp: ../lib/libsha.a
	$(EXPORTLIST) $< > sha.exp


IDEALib.prc: GLib0000.IDEALib.grc data0000.IDEALib.grc rloc0000.IDEALib.grc
	build-prc -l IDEALib.prc "IDEA Library" CrID GLib0000.IDEALib.grc \
	    data0000.IDEALib.grc rloc0000.IDEALib.grc

GLib0000.IDEALib.grc: IDEALib
	$(OBJRES) -l IDEALib

data0000.IDEALib.grc: GLib0000.IDEALib.grc

rloc0000.IDEALib.grc: GLib0000.IDEALib.grc

IDEALib: IDEALib.S ../lib/libidea.a
	$(CC) -shared -o IDEALib IDEALib.S ../lib/libidea.a

libidea.sa: IDEAstub.o
	$(AR) rcs $@ $<

IDEAstub.c: IDEALib.S

IDEALib.S: idea.exp
	$(STUBGEN) "IDEA Library" CrID IDEAstub.c IDEALib.S < $<

gen_idea.exp: ../lib/libidea.a
	$(EXPORTLIST) $< > idea.exp


DESLib.prc: GLib0000.DESLib.grc data0000.DESLib.grc rloc0000.DESLib.grc
	build-prc -l DESLib.prc "DES Library" CrDS GLib0000.DESLib.grc \
	    data0000.DESLib.grc rloc0000.DESLib.grc

GLib0000.DESLib.grc: DESLib
	$(OBJRES) -l DESLib

data0000.DESLib.grc: GLib0000.DESLib.grc

rloc0000.DESLib.grc: GLib0000.DESLib.grc

DESLib: DESLib.S ../lib/libdes.a
	$(CC) -shared -o DESLib DESLib.S ../lib/libdes.a

libdes.sa: DESstub.o
	$(AR) rcs $@ $<

DESstub.c: DESLib.S

DESLib.S: des.exp
	$(STUBGEN) "DES Library" CrDS DESstub.c DESLib.S < $<

gen_des.exp: ../lib/libdes.a
	$(EXPORTLIST) $< > des.exp


RC2Lib.prc: GLib0000.RC2Lib.grc data0000.RC2Lib.grc rloc0000.RC2Lib.grc
	build-prc -l RC2Lib.prc "RC2 Library" CrR2 GLib0000.RC2Lib.grc \
	    data0000.RC2Lib.grc rloc0000.RC2Lib.grc

GLib0000.RC2Lib.grc: RC2Lib
	$(OBJRES) -l RC2Lib

data0000.RC2Lib.grc: GLib0000.RC2Lib.grc

rloc0000.RC2Lib.grc: GLib0000.RC2Lib.grc

RC2Lib: RC2Lib.S ../lib/librc2.a
	$(CC) -shared -o RC2Lib RC2Lib.S ../lib/librc2.a

librc2.sa: RC2stub.o
	$(AR) rcs $@ $<

RC2stub.c: RC2Lib.S

RC2Lib.S: rc2.exp
	$(STUBGEN) "RC2 Library" CrR2 RC2stub.c RC2Lib.S < $<

gen_rc2.exp: ../lib/librc2.a
	$(EXPORTLIST) $< > rc2.exp


RC4Lib.prc: GLib0000.RC4Lib.grc data0000.RC4Lib.grc rloc0000.RC4Lib.grc
	build-prc -l RC4Lib.prc "RC4 Library" CrR4 GLib0000.RC4Lib.grc \
	    data0000.RC4Lib.grc rloc0000.RC4Lib.grc

GLib0000.RC4Lib.grc: RC4Lib
	$(OBJRES) -l RC4Lib

data0000.RC4Lib.grc: GLib0000.RC4Lib.grc

rloc0000.RC4Lib.grc: GLib0000.RC4Lib.grc

RC4Lib: RC4Lib.S ../lib/librc4.a
	$(CC) -shared -o RC4Lib RC4Lib.S ../lib/librc4.a

librc4.sa: RC4stub.o
	$(AR) rcs $@ $<

RC4stub.c: RC4Lib.S

RC4Lib.S: rc4.exp
	$(STUBGEN) "RC4 Library" CrR4 RC4stub.c RC4Lib.S < $<

gen_rc4.exp: ../lib/librc4.a
	$(EXPORTLIST) $< > rc4.exp


BlowfishLib.prc: GLib0000.BlowfishLib.grc data0000.BlowfishLib.grc rloc0000.BlowfishLib.grc
	build-prc -l BlowfishLib.prc "Blowfish Library" CrBf GLib0000.BlowfishLib.grc \
	    data0000.BlowfishLib.grc rloc0000.BlowfishLib.grc

GLib0000.BlowfishLib.grc: BlowfishLib
	$(OBJRES) -l BlowfishLib

data0000.BlowfishLib.grc: GLib0000.BlowfishLib.grc

rloc0000.BlowfishLib.grc: GLib0000.BlowfishLib.grc

BlowfishLib: BlowfishLib.S ../lib/libbf.a
	$(CC) -shared -o BlowfishLib BlowfishLib.S ../lib/libbf.a

libbf.sa: Blowfishstub.o
	$(AR) rcs $@ $<

Blowfishstub.c: BlowfishLib.S

BlowfishLib.S: bf.exp
	$(STUBGEN) "Blowfish Library" CrBf Blowfishstub.c BlowfishLib.S < $<

gen_bf.exp: ../lib/libbf.a
	$(EXPORTLIST) $< > bf.exp


RANDLib.prc: GLib0000.RANDLib.grc data0000.RANDLib.grc rloc0000.RANDLib.grc
	build-prc -l RANDLib.prc "RAND Library" CrRN GLib0000.RANDLib.grc \
	    data0000.RANDLib.grc rloc0000.RANDLib.grc

GLib0000.RANDLib.grc: RANDLib
	$(OBJRES) -l RANDLib

data0000.RANDLib.grc: GLib0000.RANDLib.grc

rloc0000.RANDLib.grc: GLib0000.RANDLib.grc

RANDLib: RANDLib.S libsha.sa ../lib/librand.a
	$(CC) -shared -o RANDLib RANDLib.S ../lib/librand.a -L. -lsha

librand.sa: RANDstub.o
	$(AR) rcs $@ $<

RANDstub.c: RANDLib.S

RANDLib.S: rand.exp
	$(STUBGEN) "RAND Library" CrRN RANDstub.c RANDLib.S < $<

gen_rand.exp: ../lib/librand.a
	$(EXPORTLIST) $< > rand.exp


BNLib.prc: GLib0000.BNLib.grc data0000.BNLib.grc rloc0000.BNLib.grc
	build-prc -l BNLib.prc "Bignum Library" CrBN GLib0000.BNLib.grc \
	    data0000.BNLib.grc rloc0000.BNLib.grc

GLib0000.BNLib.grc: BNLib
	$(OBJRES) -l BNLib

data0000.BNLib.grc: GLib0000.BNLib.grc

rloc0000.BNLib.grc: GLib0000.BNLib.grc

BNLib: BNLib.S librand.sa ../lib/libbn.a
	$(CC) -shared -o BNLib BNLib.S ../lib/libbn.a -L. -lrand

libbn.sa: BNstub.o
	$(AR) rcs $@ $<

BNstub.c: BNLib.S

BNLib.S: bn.exp
	$(STUBGEN) "Bignum Library" CrBN BNstub.c BNLib.S < $<

gen_bn.exp: ../lib/libbn.a
	$(EXPORTLIST) $< > bn.exp


RSALib.prc: GLib0000.RSALib.grc data0000.RSALib.grc rloc0000.RSALib.grc
	build-prc -l RSALib.prc "RSA Library" CrRS GLib0000.RSALib.grc \
	    data0000.RSALib.grc rloc0000.RSALib.grc

GLib0000.RSALib.grc: RSALib
	$(OBJRES) -l RSALib

data0000.RSALib.grc: GLib0000.RSALib.grc

rloc0000.RSALib.grc: GLib0000.RSALib.grc

RSALib: RSALib.S librand.sa libbn.sa ../lib/librsa.a
	$(CC) -shared -o RSALib RSALib.S ../lib/librsa.a -L. -lrand -lbn

librsa.sa: RSAstub.o
	$(AR) rcs $@ $<

RSAstub.c: RSALib.S

RSALib.S: rsa.exp
	$(STUBGEN) "RSA Library" CrRS RSAstub.c RSALib.S < $<

gen_rsa.exp: ../lib/librsa.a
	$(EXPORTLIST) $< > rsa.exp


DHLib.prc: GLib0000.DHLib.grc data0000.DHLib.grc rloc0000.DHLib.grc
	build-prc -l DHLib.prc "D-H Library" CrDH GLib0000.DHLib.grc \
	    data0000.DHLib.grc rloc0000.DHLib.grc

GLib0000.DHLib.grc: DHLib
	$(OBJRES) -l DHLib

data0000.DHLib.grc: GLib0000.DHLib.grc

rloc0000.DHLib.grc: GLib0000.DHLib.grc

DHLib: DHLib.S libbn.sa ../lib/libdh.a
	$(CC) -shared -o DHLib DHLib.S ../lib/libdh.a -L. -lbn

libdh.sa: DHstub.o
	$(AR) rcs $@ $<

DHstub.c: DHLib.S

DHLib.S: dh.exp
	$(STUBGEN) "D-H Library" CrDH DHstub.c DHLib.S < $<

gen_dh.exp: ../lib/libdh.a
	$(EXPORTLIST) $< > dh.exp
