FILES_EBASH_COMMON = \
    ../Sources/brg_endian.h \
    ../Sources/KeccakSponge.c \
    ../Sources/KeccakNISTInterface.h \
    ../Sources/KeccakPermutationInterface.h \
    ../Sources/KeccakPermutationOptimized.macros

FILES_EBASH_OPT32 = \
    $(FILES_EBASH_COMMON) \
    ../Sources/KeccakPermutationOptimized32.c \
    ../Sources/KeccakF-1600-32.macros

FILES_EBASH_OPT64 = \
    $(FILES_EBASH_COMMON) \
    ../Sources/KeccakPermutationOptimized64.c \
    ../Sources/KeccakF-1600-64.macros

FILES_EBASH_SSE = \
    $(FILES_EBASH_COMMON) \
    ../Sources/KeccakPermutationOptimized64.c \
    ../Sources/KeccakF-1600-simd128.macros

FILES_EBASH_MMX = \
    $(FILES_EBASH_COMMON) \
    ../Sources/KeccakPermutationOptimized64.c \
    ../Sources/KeccakF-1600-simd64.macros

.PHONY: eBASH 

eBASH: keccak.tar.gz

keccak.tar.gz: keccak keccakc512
	tar -cvzf keccak.tar.gz crypto_hash/

// keccak = Keccak[]

.PHONY: keccak

keccak: keccak-opt32 keccak-opt64 keccak-sse keccak-mmx checksum-keccak
	cp -p checksum-keccak crypto_hash/keccak/checksum

.PHONY: keccak-opt32 keccak-opt64 keccak-sse keccak-mmx
.PHONY: keccak-opt32u24 keccak-opt32u12 keccak-opt32u6 keccak-opt32u4 keccak-opt32u2 keccak-opt32u6nit keccak-opt32u4nit keccak-opt32u2nit
.PHONY: keccak-opt64u24 keccak-opt64u12 keccak-opt64u6 keccak-opt64u4 keccak-opt64u2
.PHONY: keccak-sseu6 keccak-sseu2
.PHONY: keccak-mmxu6 keccak-mmxu2 keccak-mmxu1

keccak-opt32: keccak-opt32u6 keccak-opt32u2 keccak-opt32u2nit
#keccak-opt32u24 keccak-opt32u6nit

keccak-opt32u24: KeccakOpt32-settings-u24.h $(FILES_EBASH_OPT32) api-keccak.h
	mkdir -p crypto_hash/keccak/opt32u24
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccak/opt32u24/
	cp -p api-keccak.h crypto_hash/keccak/opt32u24/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt32u24/hash.c
	cp -p KeccakOpt32-settings-u24.h crypto_hash/keccak/opt32u24/KeccakOpt32-settings.h

keccak-opt32u12: KeccakOpt32-settings-u12.h $(FILES_EBASH_OPT32) api-keccak.h
	mkdir -p crypto_hash/keccak/opt32u12
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccak/opt32u12/
	cp -p api-keccak.h crypto_hash/keccak/opt32u12/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt32u12/hash.c
	cp -p KeccakOpt32-settings-u12.h crypto_hash/keccak/opt32u12/KeccakOpt32-settings.h

keccak-opt32u6: KeccakOpt32-settings-u6.h $(FILES_EBASH_OPT32) api-keccak.h
	mkdir -p crypto_hash/keccak/opt32u6
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccak/opt32u6/
	cp -p api-keccak.h crypto_hash/keccak/opt32u6/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt32u6/hash.c
	cp -p KeccakOpt32-settings-u6.h crypto_hash/keccak/opt32u6/KeccakOpt32-settings.h

keccak-opt32u4: KeccakOpt32-settings-u4.h $(FILES_EBASH_OPT32) api-keccak.h
	mkdir -p crypto_hash/keccak/opt32u4
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccak/opt32u4/
	cp -p api-keccak.h crypto_hash/keccak/opt32u4/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt32u4/hash.c
	cp -p KeccakOpt32-settings-u4.h crypto_hash/keccak/opt32u4/KeccakOpt32-settings.h

keccak-opt32u2: KeccakOpt32-settings-u2.h $(FILES_EBASH_OPT32) api-keccak.h
	mkdir -p crypto_hash/keccak/opt32u2
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccak/opt32u2/
	cp -p api-keccak.h crypto_hash/keccak/opt32u2/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt32u2/hash.c
	cp -p KeccakOpt32-settings-u2.h crypto_hash/keccak/opt32u2/KeccakOpt32-settings.h

keccak-opt32u6nit: KeccakOpt32-settings-u6nit.h $(FILES_EBASH_OPT32) api-keccak.h
	mkdir -p crypto_hash/keccak/opt32u6nit
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccak/opt32u6nit/
	cp -p api-keccak.h crypto_hash/keccak/opt32u6nit/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt32u6nit/hash.c
	cp -p KeccakOpt32-settings-u6nit.h crypto_hash/keccak/opt32u6nit/KeccakOpt32-settings.h

keccak-opt32u4nit: KeccakOpt32-settings-u4nit.h $(FILES_EBASH_OPT32) api-keccak.h
	mkdir -p crypto_hash/keccak/opt32u4nit
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccak/opt32u4nit/
	cp -p api-keccak.h crypto_hash/keccak/opt32u4nit/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt32u4nit/hash.c
	cp -p KeccakOpt32-settings-u4nit.h crypto_hash/keccak/opt32u4nit/KeccakOpt32-settings.h

keccak-opt32u2nit: KeccakOpt32-settings-u2nit.h $(FILES_EBASH_OPT32) api-keccak.h
	mkdir -p crypto_hash/keccak/opt32u2nit
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccak/opt32u2nit/
	cp -p api-keccak.h crypto_hash/keccak/opt32u2nit/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt32u2nit/hash.c
	cp -p KeccakOpt32-settings-u2nit.h crypto_hash/keccak/opt32u2nit/KeccakOpt32-settings.h

keccak-opt64: keccak-opt64u24 keccak-opt64u6
#keccak-opt64u12

keccak-opt64u24: KeccakOpt64-settings-u24.h $(FILES_EBASH_OPT64) api-keccak.h
	mkdir -p crypto_hash/keccak/opt64u24
	cp -p $(FILES_EBASH_OPT64) crypto_hash/keccak/opt64u24/
	cp -p api-keccak.h crypto_hash/keccak/opt64u24/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt64u24/hash.c
	cp -p KeccakOpt64-settings-u24.h crypto_hash/keccak/opt64u24/KeccakOpt64-settings.h

keccak-opt64u12: KeccakOpt64-settings-u12.h $(FILES_EBASH_OPT64) api-keccak.h
	mkdir -p crypto_hash/keccak/opt64u12
	cp -p $(FILES_EBASH_OPT64) crypto_hash/keccak/opt64u12/
	cp -p api-keccak.h crypto_hash/keccak/opt64u12/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt64u12/hash.c
	cp -p KeccakOpt64-settings-u12.h crypto_hash/keccak/opt64u12/KeccakOpt64-settings.h

keccak-opt64u6: KeccakOpt64-settings-u6.h $(FILES_EBASH_OPT64) api-keccak.h
	mkdir -p crypto_hash/keccak/opt64u6
	cp -p $(FILES_EBASH_OPT64) crypto_hash/keccak/opt64u6/
	cp -p api-keccak.h crypto_hash/keccak/opt64u6/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt64u6/hash.c
	cp -p KeccakOpt64-settings-u6.h crypto_hash/keccak/opt64u6/KeccakOpt64-settings.h

keccak-opt64u4: KeccakOpt64-settings-u4.h $(FILES_EBASH_OPT64) api-keccak.h
	mkdir -p crypto_hash/keccak/opt64u4
	cp -p $(FILES_EBASH_OPT64) crypto_hash/keccak/opt64u4/
	cp -p api-keccak.h crypto_hash/keccak/opt64u4/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt64u4/hash.c
	cp -p KeccakOpt64-settings-u4.h crypto_hash/keccak/opt64u4/KeccakOpt64-settings.h

keccak-opt64u2: KeccakOpt64-settings-u2.h $(FILES_EBASH_OPT64) api-keccak.h
	mkdir -p crypto_hash/keccak/opt64u2
	cp -p $(FILES_EBASH_OPT64) crypto_hash/keccak/opt64u2/
	cp -p api-keccak.h crypto_hash/keccak/opt64u2/api.h
	cp -p hash-keccak.c crypto_hash/keccak/opt64u2/hash.c
	cp -p KeccakOpt64-settings-u2.h crypto_hash/keccak/opt64u2/KeccakOpt64-settings.h

keccak-sse: keccak-sseu6 keccak-sseu2

keccak-sseu6: KeccakOpt64-settings-sseu6.h $(FILES_EBASH_SSE) api-keccak.h
	mkdir -p crypto_hash/keccak/sseu6
	cp -p $(FILES_EBASH_SSE) crypto_hash/keccak/sseu6/
	cp -p api-keccak.h crypto_hash/keccak/sseu6/api.h
	cp -p hash-keccak.c crypto_hash/keccak/sseu6/hash.c
	cp -p KeccakOpt64-settings-sseu6.h crypto_hash/keccak/sseu6/KeccakOpt64-settings.h

keccak-sseu2: KeccakOpt64-settings-sseu2.h $(FILES_EBASH_SSE) api-keccak.h
	mkdir -p crypto_hash/keccak/sseu2
	cp -p $(FILES_EBASH_SSE) crypto_hash/keccak/sseu2/
	cp -p api-keccak.h crypto_hash/keccak/sseu2/api.h
	cp -p hash-keccak.c crypto_hash/keccak/sseu2/hash.c
	cp -p KeccakOpt64-settings-sseu2.h crypto_hash/keccak/sseu2/KeccakOpt64-settings.h

keccak-mmx: keccak-mmxu1
#keccak-mmxu2

keccak-mmxu6: KeccakOpt64-settings-mmxu6.h $(FILES_EBASH_MMX) api-keccak.h
	mkdir -p crypto_hash/keccak/mmxu6
	cp -p $(FILES_EBASH_MMX) crypto_hash/keccak/mmxu6/
	cp -p api-keccak.h crypto_hash/keccak/mmxu6/api.h
	cp -p hash-keccak.c crypto_hash/keccak/mmxu6/hash.c
	cp -p KeccakOpt64-settings-mmxu6.h crypto_hash/keccak/mmxu6/KeccakOpt64-settings.h

keccak-mmxu2: KeccakOpt64-settings-mmxu2.h $(FILES_EBASH_MMX) api-keccak.h
	mkdir -p crypto_hash/keccak/mmxu2
	cp -p $(FILES_EBASH_MMX) crypto_hash/keccak/mmxu2/
	cp -p api-keccak.h crypto_hash/keccak/mmxu2/api.h
	cp -p hash-keccak.c crypto_hash/keccak/mmxu2/hash.c
	cp -p KeccakOpt64-settings-mmxu2.h crypto_hash/keccak/mmxu2/KeccakOpt64-settings.h

keccak-mmxu1: KeccakOpt64-settings-mmxu1.h $(FILES_EBASH_MMX) api-keccak.h
	mkdir -p crypto_hash/keccak/mmxu1
	cp -p $(FILES_EBASH_MMX) crypto_hash/keccak/mmxu1/
	cp -p api-keccak.h crypto_hash/keccak/mmxu1/api.h
	cp -p hash-keccak.c crypto_hash/keccak/mmxu1/hash.c
	cp -p KeccakOpt64-settings-mmxu1.h crypto_hash/keccak/mmxu1/KeccakOpt64-settings.h

// keccakc512 = Keccak[r=1088,c=512]

.PHONY: keccakc512

keccakc512: keccakc512-opt32 keccakc512-opt64 keccakc512-sse keccakc512-mmx checksum-keccakc512
	cp -p checksum-keccakc512 crypto_hash/keccakc512/checksum

.PHONY: keccakc512-opt32 keccakc512-opt64 keccakc512-sse keccakc512-mmx
.PHONY: keccakc512-opt32u24 keccakc512-opt32u12 keccakc512-opt32u6 keccakc512-opt32u4 keccakc512-opt32u2 keccakc512-opt32u6nit keccakc512-opt32u4nit keccakc512-opt32u2nit
.PHONY: keccakc512-opt64u24 keccakc512-opt64u12 keccakc512-opt64u6 keccakc512-opt64u4 keccakc512-opt64u2
.PHONY: keccakc512-sseu6 keccakc512-sseu2
.PHONY: keccakc512-mmxu6 keccakc512-mmxu2 keccakc512-mmxu1

keccakc512-opt32: keccakc512-opt32u6 keccakc512-opt32u2 keccakc512-opt32u2nit
#keccakc512-opt32u24 keccakc512-opt32u6nit

keccakc512-opt32u24: KeccakOpt32-settings-u24.h $(FILES_EBASH_OPT32) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt32u24
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccakc512/opt32u24/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt32u24/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt32u24/hash.c
	cp -p KeccakOpt32-settings-u24.h crypto_hash/keccakc512/opt32u24/KeccakOpt32-settings.h

keccakc512-opt32u12: KeccakOpt32-settings-u12.h $(FILES_EBASH_OPT32) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt32u12
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccakc512/opt32u12/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt32u12/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt32u12/hash.c
	cp -p KeccakOpt32-settings-u12.h crypto_hash/keccakc512/opt32u12/KeccakOpt32-settings.h

keccakc512-opt32u6: KeccakOpt32-settings-u6.h $(FILES_EBASH_OPT32) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt32u6
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccakc512/opt32u6/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt32u6/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt32u6/hash.c
	cp -p KeccakOpt32-settings-u6.h crypto_hash/keccakc512/opt32u6/KeccakOpt32-settings.h

keccakc512-opt32u4: KeccakOpt32-settings-u4.h $(FILES_EBASH_OPT32) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt32u4
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccakc512/opt32u4/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt32u4/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt32u4/hash.c
	cp -p KeccakOpt32-settings-u4.h crypto_hash/keccakc512/opt32u4/KeccakOpt32-settings.h

keccakc512-opt32u2: KeccakOpt32-settings-u2.h $(FILES_EBASH_OPT32) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt32u2
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccakc512/opt32u2/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt32u2/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt32u2/hash.c
	cp -p KeccakOpt32-settings-u2.h crypto_hash/keccakc512/opt32u2/KeccakOpt32-settings.h

keccakc512-opt32u6nit: KeccakOpt32-settings-u6nit.h $(FILES_EBASH_OPT32) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt32u6nit
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccakc512/opt32u6nit/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt32u6nit/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt32u6nit/hash.c
	cp -p KeccakOpt32-settings-u6nit.h crypto_hash/keccakc512/opt32u6nit/KeccakOpt32-settings.h

keccakc512-opt32u4nit: KeccakOpt32-settings-u4nit.h $(FILES_EBASH_OPT32) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt32u4nit
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccakc512/opt32u4nit/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt32u4nit/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt32u4nit/hash.c
	cp -p KeccakOpt32-settings-u4nit.h crypto_hash/keccakc512/opt32u4nit/KeccakOpt32-settings.h

keccakc512-opt32u2nit: KeccakOpt32-settings-u2nit.h $(FILES_EBASH_OPT32) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt32u2nit
	cp -p $(FILES_EBASH_OPT32) crypto_hash/keccakc512/opt32u2nit/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt32u2nit/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt32u2nit/hash.c
	cp -p KeccakOpt32-settings-u2nit.h crypto_hash/keccakc512/opt32u2nit/KeccakOpt32-settings.h

keccakc512-opt64: keccakc512-opt64u24 keccakc512-opt64u6
#keccakc512-opt64u12

keccakc512-opt64u24: KeccakOpt64-settings-u24.h $(FILES_EBASH_OPT64) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt64u24
	cp -p $(FILES_EBASH_OPT64) crypto_hash/keccakc512/opt64u24/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt64u24/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt64u24/hash.c
	cp -p KeccakOpt64-settings-u24.h crypto_hash/keccakc512/opt64u24/KeccakOpt64-settings.h

keccakc512-opt64u12: KeccakOpt64-settings-u12.h $(FILES_EBASH_OPT64) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt64u12
	cp -p $(FILES_EBASH_OPT64) crypto_hash/keccakc512/opt64u12/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt64u12/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt64u12/hash.c
	cp -p KeccakOpt64-settings-u12.h crypto_hash/keccakc512/opt64u12/KeccakOpt64-settings.h

keccakc512-opt64u6: KeccakOpt64-settings-u6.h $(FILES_EBASH_OPT64) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt64u6
	cp -p $(FILES_EBASH_OPT64) crypto_hash/keccakc512/opt64u6/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt64u6/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt64u6/hash.c
	cp -p KeccakOpt64-settings-u6.h crypto_hash/keccakc512/opt64u6/KeccakOpt64-settings.h

keccakc512-opt64u4: KeccakOpt64-settings-u4.h $(FILES_EBASH_OPT64) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt64u4
	cp -p $(FILES_EBASH_OPT64) crypto_hash/keccakc512/opt64u4/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt64u4/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt64u4/hash.c
	cp -p KeccakOpt64-settings-u4.h crypto_hash/keccakc512/opt64u4/KeccakOpt64-settings.h

keccakc512-opt64u2: KeccakOpt64-settings-u2.h $(FILES_EBASH_OPT64) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/opt64u2
	cp -p $(FILES_EBASH_OPT64) crypto_hash/keccakc512/opt64u2/
	cp -p api-keccakc512.h crypto_hash/keccakc512/opt64u2/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/opt64u2/hash.c
	cp -p KeccakOpt64-settings-u2.h crypto_hash/keccakc512/opt64u2/KeccakOpt64-settings.h

keccakc512-sse: keccakc512-sseu6 keccakc512-sseu2

keccakc512-sseu6: KeccakOpt64-settings-sseu6.h $(FILES_EBASH_SSE) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/sseu6
	cp -p $(FILES_EBASH_SSE) crypto_hash/keccakc512/sseu6/
	cp -p api-keccakc512.h crypto_hash/keccakc512/sseu6/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/sseu6/hash.c
	cp -p KeccakOpt64-settings-sseu6.h crypto_hash/keccakc512/sseu6/KeccakOpt64-settings.h

keccakc512-sseu2: KeccakOpt64-settings-sseu2.h $(FILES_EBASH_SSE) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/sseu2
	cp -p $(FILES_EBASH_SSE) crypto_hash/keccakc512/sseu2/
	cp -p api-keccakc512.h crypto_hash/keccakc512/sseu2/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/sseu2/hash.c
	cp -p KeccakOpt64-settings-sseu2.h crypto_hash/keccakc512/sseu2/KeccakOpt64-settings.h

keccakc512-mmx: keccakc512-mmxu1
#keccakc512-mmxu2

keccakc512-mmxu6: KeccakOpt64-settings-mmxu6.h $(FILES_EBASH_MMX) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/mmxu6
	cp -p $(FILES_EBASH_MMX) crypto_hash/keccakc512/mmxu6/
	cp -p api-keccakc512.h crypto_hash/keccakc512/mmxu6/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/mmxu6/hash.c
	cp -p KeccakOpt64-settings-mmxu6.h crypto_hash/keccakc512/mmxu6/KeccakOpt64-settings.h

keccakc512-mmxu2: KeccakOpt64-settings-mmxu2.h $(FILES_EBASH_MMX) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/mmxu2
	cp -p $(FILES_EBASH_MMX) crypto_hash/keccakc512/mmxu2/
	cp -p api-keccakc512.h crypto_hash/keccakc512/mmxu2/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/mmxu2/hash.c
	cp -p KeccakOpt64-settings-mmxu2.h crypto_hash/keccakc512/mmxu2/KeccakOpt64-settings.h

keccakc512-mmxu1: KeccakOpt64-settings-mmxu1.h $(FILES_EBASH_MMX) api-keccakc512.h
	mkdir -p crypto_hash/keccakc512/mmxu1
	cp -p $(FILES_EBASH_MMX) crypto_hash/keccakc512/mmxu1/
	cp -p api-keccakc512.h crypto_hash/keccakc512/mmxu1/api.h
	cp -p hash-keccakc512.c crypto_hash/keccakc512/mmxu1/hash.c
	cp -p KeccakOpt64-settings-mmxu1.h crypto_hash/keccakc512/mmxu1/KeccakOpt64-settings.h

