aboutsummaryrefslogtreecommitdiff
path: root/c/Makefile.testing
diff options
context:
space:
mode:
authorJack O'Connor <[email protected]>2020-07-20 09:45:20 -0400
committerJack O'Connor <[email protected]>2020-07-20 09:47:38 -0400
commite4703ac170c5852be5bd13f5e45f416b6ab492b3 (patch)
treeaea255e28829098c9eeb73c68c5782eb9c7e6e42 /c/Makefile.testing
parent7d0de7be14789924a4cfdb0e844eef3540237b2b (diff)
rename the C Makefile to Makefile.testing
Diffstat (limited to 'c/Makefile.testing')
-rw-r--r--c/Makefile.testing64
1 files changed, 64 insertions, 0 deletions
diff --git a/c/Makefile.testing b/c/Makefile.testing
new file mode 100644
index 0000000..18245c7
--- /dev/null
+++ b/c/Makefile.testing
@@ -0,0 +1,64 @@
+# This Makefile is only for testing. C callers should follow the instructions
+# in ./README.md to incorporate these C files into their existing build.
+
+NAME=blake3
+CC=gcc
+CFLAGS=-O3 -Wall -Wextra -std=c11 -pedantic
+TARGETS=
+ASM_TARGETS=
+EXTRAFLAGS=
+
+ifdef BLAKE3_NO_SSE41
+EXTRAFLAGS += -DBLAKE3_NO_SSE41
+else
+TARGETS += blake3_sse41.o
+ASM_TARGETS += blake3_sse41_x86-64_unix.S
+endif
+
+ifdef BLAKE3_NO_AVX2
+EXTRAFLAGS += -DBLAKE3_NO_AVX2
+else
+TARGETS += blake3_avx2.o
+ASM_TARGETS += blake3_avx2_x86-64_unix.S
+endif
+
+ifdef BLAKE3_NO_AVX512
+EXTRAFLAGS += -DBLAKE3_NO_AVX512
+else
+TARGETS += blake3_avx512.o
+ASM_TARGETS += blake3_avx512_x86-64_unix.S
+endif
+
+ifdef BLAKE3_USE_NEON
+EXTRAFLAGS += -DBLAKE3_USE_NEON
+TARGETS += blake3_neon.o
+endif
+
+all: blake3.c blake3_dispatch.c blake3_portable.c main.c $(TARGETS)
+ $(CC) $(CFLAGS) $(EXTRAFLAGS) $^ -o $(NAME)
+
+blake3_sse41.o: blake3_sse41.c
+ $(CC) $(CFLAGS) $(EXTRAFLAGS) -c $^ -o $@ -msse4.1
+
+blake3_avx2.o: blake3_avx2.c
+ $(CC) $(CFLAGS) $(EXTRAFLAGS) -c $^ -o $@ -mavx2
+
+blake3_avx512.o: blake3_avx512.c
+ $(CC) $(CFLAGS) $(EXTRAFLAGS) -c $^ -o $@ -mavx512f -mavx512vl
+
+blake3_neon.o: blake3_neon.c
+ $(CC) $(CFLAGS) $(EXTRAFLAGS) -c $^ -o $@
+
+test: CFLAGS += -DBLAKE3_TESTING -fsanitize=address,undefined
+test: all
+ ./test.py
+
+asm: blake3.c blake3_dispatch.c blake3_portable.c main.c $(ASM_TARGETS)
+ $(CC) $(CFLAGS) $(EXTRAFLAGS) $^ -o $(NAME)
+
+test_asm: CFLAGS += -DBLAKE3_TESTING -fsanitize=address,undefined
+test_asm: asm
+ ./test.py
+
+clean:
+ rm -f $(NAME) *.o