CC = m68k-palmos-coff-gcc
NM = m68k-palmos-coff-nm
AR = m68k-palmos-coff-ar
OBJRES = m68k-palmos-coff-obj-res
STUBGEN = perl stubgen

CFLAGS = -O5

all: BNLib.prc BlowfishLib.prc DESLib.prc DHLib.prc IDEALib.prc MDLib.prc \
     RANDLib.prc RC2Lib.prc RC4Lib.prc RSALib.prc SHALib.prc libbn_s.a \
     libbf_s.a libdes_s.a libdh_s.a libidea_s.a libmd_s.a librand_s.a \
     librc2_s.a librc4_s.a librsa_s.a libsha_s.a


./appl2GLib: appl2GLib.c
	gcc -o $@ -g $<

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

clean:
	-rm -f *.o *.bin bin.res *.grc appl2GLib \
	    {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}_s.a
	    



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

GLib0000.MDLib.grc: MDLib
	$(OBJRES) -rloc MDLib
	rm code0000.MDLib.grc pref0000.MDLib.grc
	mv code0001.MDLib.grc GLib0000.MDLib.grc

data0000.MDLib.grc: GLib0000.MDLib.grc

rloc0000.MDLib.grc: GLib0000.MDLib.grc

MDLib: MDLib.S
	$(CC) -shared -o MDLib MDLib.S -L../lib -lmd

libmd_s.a: MDstub.o
	$(AR) rcs $@ $<

MDstub.c: MDLib.S

MDLib.S: ../lib/libmd.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "MD Library" CrMD MDstub.c MDLib.S


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

GLib0000.SHALib.grc: SHALib
	$(OBJRES) -rloc SHALib
	rm code0000.SHALib.grc pref0000.SHALib.grc
	mv code0001.SHALib.grc GLib0000.SHALib.grc

data0000.SHALib.grc: GLib0000.SHALib.grc

rloc0000.SHALib.grc: GLib0000.SHALib.grc

SHALib: SHALib.S
	$(CC) -shared -o SHALib SHALib.S -L../lib -lsha

libsha_s.a: SHAstub.o
	$(AR) rcs $@ $<

SHAstub.c: SHALib.S

SHALib.S: ../lib/libsha.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "SHA Library" CrSH SHAstub.c SHALib.S


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

GLib0000.IDEALib.grc: IDEALib
	$(OBJRES) -rloc IDEALib
	rm code0000.IDEALib.grc pref0000.IDEALib.grc
	mv code0001.IDEALib.grc GLib0000.IDEALib.grc

data0000.IDEALib.grc: GLib0000.IDEALib.grc

rloc0000.IDEALib.grc: GLib0000.IDEALib.grc

IDEALib: IDEALib.S
	$(CC) -shared -o IDEALib IDEALib.S -L../lib -lidea

libidea_s.a: IDEAstub.o
	$(AR) rcs $@ $<

IDEAstub.c: IDEALib.S

IDEALib.S: ../lib/libidea.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "IDEA Library" CrID IDEAstub.c IDEALib.S


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

GLib0000.DESLib.grc: DESLib
	$(OBJRES) -rloc DESLib
	rm code0000.DESLib.grc pref0000.DESLib.grc
	mv code0001.DESLib.grc GLib0000.DESLib.grc

data0000.DESLib.grc: GLib0000.DESLib.grc

rloc0000.DESLib.grc: GLib0000.DESLib.grc

DESLib: DESLib.S
	$(CC) -shared -o DESLib DESLib.S -L../lib -ldes

libdes_s.a: DESstub.o
	$(AR) rcs $@ $<

DESstub.c: DESLib.S

DESLib.S: ../lib/libdes.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "DES Library" CrDS DESstub.c DESLib.S


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

GLib0000.RC2Lib.grc: RC2Lib
	$(OBJRES) -rloc RC2Lib
	rm code0000.RC2Lib.grc pref0000.RC2Lib.grc
	mv code0001.RC2Lib.grc GLib0000.RC2Lib.grc

data0000.RC2Lib.grc: GLib0000.RC2Lib.grc

rloc0000.RC2Lib.grc: GLib0000.RC2Lib.grc

RC2Lib: RC2Lib.S
	$(CC) -shared -o RC2Lib RC2Lib.S -L../lib -lrc2

librc2_s.a: RC2stub.o
	$(AR) rcs $@ $<

RC2stub.c: RC2Lib.S

RC2Lib.S: ../lib/librc2.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "RC2 Library" CrR2 RC2stub.c RC2Lib.S


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

GLib0000.RC4Lib.grc: RC4Lib
	$(OBJRES) -rloc RC4Lib
	rm code0000.RC4Lib.grc pref0000.RC4Lib.grc
	mv code0001.RC4Lib.grc GLib0000.RC4Lib.grc

data0000.RC4Lib.grc: GLib0000.RC4Lib.grc

rloc0000.RC4Lib.grc: GLib0000.RC4Lib.grc

RC4Lib: RC4Lib.S
	$(CC) -shared -o RC4Lib RC4Lib.S -L../lib -lrc4

librc4_s.a: RC4stub.o
	$(AR) rcs $@ $<

RC4stub.c: RC4Lib.S

RC4Lib.S: ../lib/librc4.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "RC4 Library" CrR4 RC4stub.c RC4Lib.S


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

GLib0000.BlowfishLib.grc: BlowfishLib
	$(OBJRES) -rloc BlowfishLib
	rm code0000.BlowfishLib.grc pref0000.BlowfishLib.grc
	mv code0001.BlowfishLib.grc GLib0000.BlowfishLib.grc

data0000.BlowfishLib.grc: GLib0000.BlowfishLib.grc

rloc0000.BlowfishLib.grc: GLib0000.BlowfishLib.grc

BlowfishLib: BlowfishLib.S
	$(CC) -shared -o BlowfishLib BlowfishLib.S -L../lib -lbf

libbf_s.a: Blowfishstub.o
	$(AR) rcs $@ $<

Blowfishstub.c: BlowfishLib.S

BlowfishLib.S: ../lib/libbf.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "Blowfish Library" CrBf Blowfishstub.c BlowfishLib.S


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

GLib0000.RANDLib.grc: RANDLib
	$(OBJRES) -rloc RANDLib
	rm code0000.RANDLib.grc pref0000.RANDLib.grc
	mv code0001.RANDLib.grc GLib0000.RANDLib.grc

data0000.RANDLib.grc: GLib0000.RANDLib.grc

rloc0000.RANDLib.grc: GLib0000.RANDLib.grc

RANDLib: RANDLib.S libmd_s.a
	$(CC) -shared -o RANDLib RANDLib.S -L../lib -lrand -L. -lmd_s

librand_s.a: RANDstub.o
	$(AR) rcs $@ $<

RANDstub.c: RANDLib.S

RANDLib.S: ../lib/librand.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "RAND Library" CrRN RANDstub.c RANDLib.S


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

GLib0000.BNLib.grc: BNLib
	$(OBJRES) -rloc BNLib
	rm code0000.BNLib.grc pref0000.BNLib.grc
	mv code0001.BNLib.grc GLib0000.BNLib.grc

data0000.BNLib.grc: GLib0000.BNLib.grc

rloc0000.BNLib.grc: GLib0000.BNLib.grc

BNLib: BNLib.S librand_s.a
	$(CC) -shared -o BNLib BNLib.S -L../lib -lbn -L. -lrand_s

libbn_s.a: BNstub.o
	$(AR) rcs $@ $<

BNstub.c: BNLib.S

BNLib.S: ../lib/libbn.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "Bignum Library" CrBN BNstub.c BNLib.S


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

GLib0000.RSALib.grc: RSALib
	$(OBJRES) -rloc RSALib
	rm code0000.RSALib.grc pref0000.RSALib.grc
	mv code0001.RSALib.grc GLib0000.RSALib.grc

data0000.RSALib.grc: GLib0000.RSALib.grc

rloc0000.RSALib.grc: GLib0000.RSALib.grc

RSALib: RSALib.S librand_s.a libbn_s.a
	$(CC) -shared -o RSALib RSALib.S -L../lib -lrsa -L. -lrand_s -lbn_s

librsa_s.a: RSAstub.o
	$(AR) rcs $@ $<

RSAstub.c: RSALib.S

RSALib.S: ../lib/librsa.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "RSA Library" CrRS RSAstub.c RSALib.S


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

GLib0000.DHLib.grc: DHLib
	$(OBJRES) -rloc DHLib
	rm code0000.DHLib.grc pref0000.DHLib.grc
	mv code0001.DHLib.grc GLib0000.DHLib.grc

data0000.DHLib.grc: GLib0000.DHLib.grc

rloc0000.DHLib.grc: GLib0000.DHLib.grc

DHLib: DHLib.S libbn_s.a
	$(CC) -shared -o DHLib DHLib.S -L../lib -ldh -L. -lbn_s

libdh_s.a: DHstub.o
	$(AR) rcs $@ $<

DHstub.c: DHLib.S

DHLib.S: ../lib/libdh.a
	$(NM) $< | grep ' T ' | cut -c12- | sort -u | \
	    $(STUBGEN) "D-H Library" CrDH DHstub.c DHLib.S
