53 lines
2.4 KiB
Markdown
53 lines
2.4 KiB
Markdown
### Linux:
|
|
Pre:
|
|
```
|
|
gcc -c -O3 -m64 exts\blake3_sse2_x86-64_windows_gnu.S -o exts\blake3_sse2.obj
|
|
gcc -c -O3 -m64 exts\blake3_sse41_x86-64_windows_gnu.S -o exts\blake3_sse41.obj
|
|
gcc -c -O3 -m64 exts\blake3_avx2_x86-64_windows_gnu.S -o exts\blake3_avx2.obj
|
|
gcc -c -O3 -m64 exts\blake3_avx512_x86-64_windows_gnu.S -o exts\blake3_avx512.obj
|
|
gcc -c -O3 exts\blake3.c -o exts\blake3.obj
|
|
gcc -c -O3 exts\blake3_dispatch.c -o exts\blake3_dispatch.obj
|
|
gcc -c -O3 exts\blake3_portable.c -o exts\blake3_portable.obj
|
|
```
|
|
|
|
Compile CMD's:
|
|
static lib
|
|
```
|
|
ldc2 -c -O3 -release -boundscheck=off -unittest=0 main.d
|
|
llvm-ar rcs libthreefish512.a main.o exts/blake3.o exts/blake3_dispatch.o exts/blake3_portable.o exts/blake3_sse2.o exts/blake3_sse41.o exts/blake3_avx2.o exts/blake3_avx512.o
|
|
```
|
|
so
|
|
`ldc2 -O3 -release -boundscheck=off -unittest=0 -shared -fPIC main.d exts/blake3.o exts/blake3_dispatch.o exts/blake3_portable.o exts/blake3_sse2.o exts/blake3_sse41.o exts/blake3_avx2.o exts/blake3_avx512.o -of=libthreefish512.so`
|
|
|
|
**for the test_vec:**
|
|
```
|
|
gcc -O3 test_vec.c -L. -lthreefish512 -o test_vec -lpthread -lm
|
|
gcc -O3 test_vec.c -L. -lthreefish512 -o test_vec -Wl,-rpath=. -lpthread -lm
|
|
```
|
|
|
|
|
|
### Windows:
|
|
Pre:
|
|
```
|
|
gcc -c -O3 -m64 exts\blake3_sse2_x86-64_windows_gnu.S -o exts\blake3_sse2.obj
|
|
gcc -c -O3 -m64 exts\blake3_sse41_x86-64_windows_gnu.S -o exts\blake3_sse41.obj
|
|
gcc -c -O3 -m64 exts\blake3_avx2_x86-64_windows_gnu.S -o exts\blake3_avx2.obj
|
|
gcc -c -O3 -m64 exts\blake3_avx512_x86-64_windows_gnu.S -o exts\blake3_avx512.obj
|
|
gcc -c -O3 exts\blake3.c -o exts\blake3.obj
|
|
gcc -c -O3 exts\blake3_dispatch.c -o exts\blake3_dispatch.obj
|
|
gcc -c -O3 exts\blake3_portable.c -o exts\blake3_portable.obj
|
|
```
|
|
|
|
Compile CMD's:
|
|
static lib
|
|
```
|
|
ldc2 -c -O3 -release -boundscheck=off -unittest=0 -shared main.d
|
|
llvm-ar rcs threefish512.lib main.obj exts\blake3.obj exts\blake3_dispatch.obj exts\blake3_portable.obj exts/blake3_sse2.obj exts/blake3_sse41.obj exts/blake3_avx2.obj exts/blake3_avx512.obj exts/blake3.obj exts/blake3_dispatch.obj exts/blake3_portable.obj
|
|
```
|
|
dll&static lib (direct ldc2)
|
|
`ldc2 -O3 -release -boundscheck=off -unittest=0 -shared main.d exts\blake3.obj exts\blake3_dispatch.obj exts\blake3_portable.obj exts\blake3_sse2.obj exts\blake3_sse41.obj exts\blake3_avx2.obj
|
|
exts\blake3_avx512.obj`
|
|
|
|
**for the test_vec:** (compile in MSVC x64 IMPORTANT it must be x64 developer command prompt)
|
|
`cl /O2 test_vec.c main.lib` (or threefish512.lib, whatever you prefer)
|