-
Notifications
You must be signed in to change notification settings - Fork 38
/
Makefile.linux
20 lines (18 loc) · 978 Bytes
/
Makefile.linux
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# the old makefile (before switching to cmake)
#
# it has a minor usefulness in still that it can generate the fsst_avx512_unrollX.inc files which we now just added to the repo
SHELL := /bin/bash
OPT=-O3 -march=native -DNDEBUG
all: fsst
clean:
-@rm -f libfsst.[oa] fsst_avx512.o fsst
fsst: fsst.cpp libfsst.a
g++ -std=c++17 -W -Wall -ofsst $(OPT) -g fsst.cpp -L. -lfsst -lpthread
libfsst.a: libfsst.cpp libfsst.hpp fsst.h fsst_avx512.o
g++ -std=c++17 -W -Wall -c $(OPT) -g libfsst.cpp
ar ru $@ libfsst.o fsst_avx512.o
ranlib $@
fsst_avx512_unroll%.inc: fsst_avx512.inc
awk '{ if ($$0 != '//') for(i=1;i<='$*';i++) {s=$$0; gsub(/X/,i,s); print s}}' fsst_avx512.inc > fsst_avx512_unroll$*.inc;
fsst_avx512.o: fsst_avx512.cpp fsst_avx512_unroll1.inc fsst_avx512_unroll2.inc fsst_avx512_unroll3.inc fsst_avx512_unroll4.inc
g++ -std=c++17 -W -Wall -g -O1 -march=native -c fsst_avx512.cpp # -O1: no constant propagation reduces register pressure and improves unrolling