<?xml version="1.0"?> <!-- K12 based on the eXtended Keccak Code Package (XKCP) https://github.com/XKCP/XKCP KangarooTwelve, designed by Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche, Ronny Van Keer and Benoît Viguier. Implementation by Gilles Van Assche and Ronny Van Keer, hereby denoted as "the implementer". For more information, feedback or questions, please refer to the Keccak Team website: https://keccak.team/ To the extent possible under law, the implementer has waived all copyright and related or neighboring rights to the source code in this file. http://creativecommons.org/publicdomain/zero/1.0/ --> <build xmlns:xi="http://www.w3.org/2001/XInclude"> <fragment name="optimized"> <gcc>-fomit-frame-pointer</gcc> <gcc>-O2</gcc> <gcc>-g0</gcc> </fragment> <!-- Keccak-p[1600] --> <fragment name="inplace32bi" inherits="optimized"> <c>lib/Inplace32BI/KeccakP-1600-inplace32BI.c</c> <h>lib/Inplace32BI/KeccakP-1600-SnP.h</h> </fragment> <fragment name="optimized64" inherits="optimized"> <c>lib/Optimized64/KeccakP-1600-opt64.c</c> <h>lib/Optimized64/KeccakP-1600-SnP.h</h> <s>lib/Optimized64/KeccakP-1600-AVX2.s</s> <s>lib/Optimized64/KeccakP-1600-AVX512.s</s> <c gcc="-mssse3">lib/Optimized64/KeccakP-1600-timesN-SSSE3.c</c> <c gcc="-mavx2">lib/Optimized64/KeccakP-1600-timesN-AVX2.c</c> <c gcc="-mavx512f -mavx512vl">lib/Optimized64/KeccakP-1600-timesN-AVX512.c</c> <c>lib/Optimized64/KeccakP-1600-runtimeDispatch.c</c> </fragment> <fragment name="optimized64noAsm" inherits="optimized"> <c>lib/Optimized64/KeccakP-1600-opt64.c</c> <c gcc="-mavx512f -mavx512vl">lib/Optimized64/KeccakP-1600-AVX512-plainC.c</c> <h>lib/Optimized64/KeccakP-1600-SnP.h</h> <c gcc="-mssse3">lib/Optimized64/KeccakP-1600-timesN-SSSE3.c</c> <c gcc="-mavx2">lib/Optimized64/KeccakP-1600-timesN-AVX2.c</c> <c gcc="-mavx512f -mavx512vl">lib/Optimized64/KeccakP-1600-timesN-AVX512.c</c> <c>lib/Optimized64/KeccakP-1600-runtimeDispatch.c</c> <define>KeccakP1600_noAssembly</define> </fragment> <fragment name="optimized64plain" inherits="optimized"> <c>lib/Optimized64/KeccakP-1600-opt64.c</c> <c>lib/Plain64/KeccakP-1600-plain64.c</c> <h>lib/Plain64/KeccakP-1600-SnP.h</h> </fragment> <fragment name="ARMv8Asha3" inherits="optimized"> <c gcc="-march=armv8.4-a+sha3">lib/ARMv8Asha3/KeccakP-1600-opt64.c</c> <s gcc="-march=armv8.4-a+sha3">lib/ARMv8Asha3/KeccakP-1600-ARMv8Asha3.S</s> <h>lib/ARMv8Asha3/KeccakP-1600-SnP.h</h> </fragment> <!-- KangarooTwelve --> <fragment name="KangarooTwelve"> <h>lib/align.h</h> <c>lib/KangarooTwelve.c</c> <h>lib/KangarooTwelve.h</h> </fragment> <!-- For the name of the targets, please see the end of this file. --> <fragment name="common"> <h>lib/align.h</h> <h>lib/brg_endian.h</h> </fragment> <!-- To run many tests --> <fragment name="K12Tests" inherits="common KangarooTwelve"> <c>tests/main.c</c> <c>tests/testPerformance.c</c> <c>tests/timing.c</c> <h>tests/timing.h</h> <h>tests/testPerformance.h</h> <c>tests/testKangarooTwelve.c</c> <h>tests/testKangarooTwelve.h</h> <gcc>-lm</gcc> <define>KeccakP1600_enable_simd_options</define> </fragment> <!-- To make a library --> <fragment name="libk12.a" inherits="KangarooTwelve"/> <fragment name="libk12.so" inherits="KangarooTwelve"/> <fragment name="libk12.dylib" inherits="KangarooTwelve"/> <!-- Generically optimized 32-bit implementation --> <fragment name="generic32" inherits="inplace32bi"/> <!-- Generically optimized 64-bit implementation, including SSSE3, AVX2 and AVX512 --> <fragment name="generic64" inherits="optimized64"/> <!-- Same, but without the assembly file (for MS Visual Studio) --> <fragment name="generic64noAsm" inherits="optimized64noAsm"/> <!-- Plain C optimized 64-bit implementation only --> <fragment name="plain64" inherits="optimized64plain"/> <!-- Target names are of the form x/y where x is taken from the first set and y from the second set. --> <group all="all"> <product delimiter="/"> <factor set="generic32 generic64 generic64noAsm plain64 ARMv8Asha3"/> <factor set="K12Tests libk12.a libk12.so libk12.dylib"/> </product> </group> </build>