1# Makefile for zlib
2# Copyright (C) 1995-2013 Jean-loup Gailly, Mark Adler
3# For conditions of distribution and use, see copyright notice in zlib.h
4
5CC=
6CFLAGS=
7SFLAGS=
8INCLUDES=
9SUFFIX=
10
11AVX512FLAG=-mavx512f -mavx512dq -mavx512vl -mavx512bw
12AVX512VNNIFLAG=-mavx512vnni
13AVX2FLAG=-mavx2
14SSE2FLAG=-msse2
15SSSE3FLAG=-mssse3
16SSE41FLAG=-msse4.1
17SSE42FLAG=-msse4.2
18PCLMULFLAG=-mpclmul
19VPCLMULFLAG=-mvpclmulqdq
20NOLTOFLAG=
21
22SRCDIR=.
23SRCTOP=../..
24TOPDIR=$(SRCTOP)
25
26all: \
27	x86_features.o x86_features.lo \
28	adler32_avx2.o adler32_avx2.lo \
29	adler32_avx512.o adler32_avx512.lo \
30	adler32_avx512_vnni.o adler32_avx512_vnni.lo \
31	adler32_sse42.o adler32_sse42.lo \
32	adler32_ssse3.o adler32_ssse3.lo \
33	chunkset_avx.o chunkset_avx.lo \
34	chunkset_sse2.o chunkset_sse2.lo \
35	chunkset_sse41.o chunkset_sse41.lo \
36	compare256_avx2.o compare256_avx2.lo \
37	compare256_sse2.o compare256_sse2.lo \
38	insert_string_sse42.o insert_string_sse42.lo \
39	crc32_fold_pclmulqdq.o crc32_fold_pclmulqdq.lo \
40	crc32_fold_vpclmulqdq.o crc32_fold_vpclmulqdq.lo \
41	slide_hash_avx2.o slide_hash_avx2.lo \
42	slide_hash_sse2.o slide_hash_sse2.lo
43
44x86_features.o:
45	$(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/x86_features.c
46
47x86_features.lo:
48	$(CC) $(SFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/x86_features.c
49
50chunkset_avx.o:
51	$(CC) $(CFLAGS) $(AVX2FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/chunkset_avx.c
52
53chunkset_avx.lo:
54	$(CC) $(SFLAGS) $(AVX2FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/chunkset_avx.c
55
56chunkset_sse2.o:
57	$(CC) $(CFLAGS) $(SSE2FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/chunkset_sse2.c
58
59chunkset_sse2.lo:
60	$(CC) $(SFLAGS) $(SSE2FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/chunkset_sse2.c
61
62chunkset_sse41.o:
63	$(CC) $(CFLAGS) $(SSE41FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/chunkset_sse41.c
64
65chunkset_sse41.lo:
66	$(CC) $(SFLAGS) $(SSE41FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/chunkset_sse41.c
67
68compare256_avx2.o:
69	$(CC) $(CFLAGS) $(AVX2FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/compare256_avx2.c
70
71compare256_avx2.lo:
72	$(CC) $(SFLAGS) $(AVX2FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/compare256_avx2.c
73
74compare256_sse2.o:
75	$(CC) $(CFLAGS) $(SSE2FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/compare256_sse2.c
76
77compare256_sse2.lo:
78	$(CC) $(SFLAGS) $(SSE2FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/compare256_sse2.c
79
80insert_string_sse42.o:
81	$(CC) $(CFLAGS) $(SSE42FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/insert_string_sse42.c
82
83insert_string_sse42.lo:
84	$(CC) $(SFLAGS) $(SSE42FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/insert_string_sse42.c
85
86crc32_fold_pclmulqdq.o:
87	$(CC) $(CFLAGS) $(PCLMULFLAG) $(SSE42FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/crc32_fold_pclmulqdq.c
88
89crc32_fold_pclmulqdq.lo:
90	$(CC) $(SFLAGS) $(PCLMULFLAG) $(SSE42FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/crc32_fold_pclmulqdq.c
91
92crc32_fold_vpclmulqdq.o:
93	$(CC) $(CFLAGS) $(VPCLMULFLAG) $(AVX512FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/crc32_fold_vpclmulqdq.c
94
95crc32_fold_vpclmulqdq.lo:
96	$(CC) $(SFLAGS) $(VPCLMULFLAG) $(AVX512FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/crc32_fold_vpclmulqdq.c
97
98slide_hash_avx2.o:
99	$(CC) $(CFLAGS) $(AVX2FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/slide_hash_avx2.c
100
101slide_hash_avx2.lo:
102	$(CC) $(SFLAGS) $(AVX2FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/slide_hash_avx2.c
103
104slide_hash_sse2.o:
105	$(CC) $(CFLAGS) $(SSE2FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/slide_hash_sse2.c
106
107slide_hash_sse2.lo:
108	$(CC) $(SFLAGS) $(SSE2FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/slide_hash_sse2.c
109
110adler32_avx2.o: $(SRCDIR)/adler32_avx2.c
111	$(CC) $(CFLAGS) $(AVX2FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_avx2.c
112
113adler32_avx2.lo: $(SRCDIR)/adler32_avx2.c
114	$(CC) $(SFLAGS) $(AVX2FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_avx2.c
115
116adler32_avx512.o: $(SRCDIR)/adler32_avx512.c
117	$(CC) $(CFLAGS) $(AVX512FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_avx512.c
118
119adler32_avx512.lo: $(SRCDIR)/adler32_avx512.c
120	$(CC) $(SFLAGS) $(AVX512FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_avx512.c
121
122adler32_avx512_vnni.o: $(SRCDIR)/adler32_avx512_vnni.c
123	$(CC) $(CFLAGS) $(AVX512VNNIFLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_avx512_vnni.c
124
125adler32_avx512_vnni.lo: $(SRCDIR)/adler32_avx512_vnni.c
126	$(CC) $(SFLAGS) $(AVX512VNNIFLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_avx512_vnni.c
127
128adler32_ssse3.o: $(SRCDIR)/adler32_ssse3.c
129	$(CC) $(CFLAGS) $(SSSE3FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_ssse3.c
130
131adler32_ssse3.lo: $(SRCDIR)/adler32_ssse3.c
132	$(CC) $(SFLAGS) $(SSSE3FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_ssse3.c
133
134adler32_sse42.o: $(SRCDIR)/adler32_sse42.c
135	$(CC) $(CFLAGS) $(SSE42FLAG) $(NOLTOFLAG) $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_sse42.c
136
137adler32_sse42.lo: $(SRCDIR)/adler32_sse42.c
138	$(CC) $(SFLAGS) $(SSE42FLAG) $(NOLTOFLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_sse42.c
139
140mostlyclean: clean
141clean:
142	rm -f *.o *.lo *~
143	rm -rf objs
144	rm -f *.gcda *.gcno *.gcov
145
146distclean:
147	rm -f Makefile
148