forked from aklomp/base64
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
37 lines (28 loc) · 1.13 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
LIBTOOL = libtool
UNAME_S=$(shell uname -s)
CFLAGS += -O3 -Wall -Wextra -pedantic
SSSE3_CFLAGS = -mssse3
AVX2_CFLAGS = -mavx2
NEON_CFLAGS =
NEON64_CFLAGS =
all: base64 libbase64.a
base64: main.c base64.c base64_std.c base64_ssse3.c base64_avx2.c base64_neon.c base64_neon64.c cpufeatures.c
$(CC) $(CFLAGS) -o $@ $^
libbase64.a: main.c base64.c base64_std.c base64_ssse3.c base64_avx2.c base64_neon.c base64_neon64.c cpufeatures.c
$(CC) $(CFLAGS) -c base64.c
$(CC) $(CFLAGS) -c base64_std.c
$(CC) $(CFLAGS) $(SSSE3_CFLAGS) -c base64_ssse3.c
$(CC) $(CFLAGS) $(AVX2_CFLAGS) -c base64_avx2.c
$(CC) $(CFLAGS) $(NEON_CFLAGS) -c base64_neon.c
$(CC) $(CFLAGS) $(NEON64_CFLAGS) -c base64_neon64.c
$(CC) $(CFLAGS) -c cpufeatures.c
ifeq ($(UNAME_S),Darwin)
$(LIBTOOL) -static base64.o base64_std.o base64_ssse3.o base64_avx2.o base64_neon.o base64_neon64.o cpufeatures.o -o libbase64.a
else
$(AR) -r libbase64.a base64.o base64_std.o base64_ssse3.o base64_avx2.o base64_neon.o base64_neon64.o cpufeatures.o
endif
.PHONY: clean analyze
analyze: clean
scan-build --use-analyzer=`which clang` --status-bugs make
clean:
rm -f base64 libbase64.a *.o