Skip to content

Commit 8a0122b

Browse files
committed
.
1 parent ea57389 commit 8a0122b

File tree

1 file changed

+36
-46
lines changed

1 file changed

+36
-46
lines changed

Diff for: makefile

+36-46
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,35 @@ CXX ?= g++
77
#NCHECK=1
88
#uncomment for full base64 checking (default=partial checking, detect allmost all errors)
99
#FULLCHECK=1
10-
#RDTSC=1
10+
#uncomment for use memcpy instead of unaligned loads
11+
#UAMEMCPY=1
12+
1113
#NAVX512=1
14+
#NAVX2=1
15+
#NSSE=1
16+
#NAVX=1
1217

18+
#RDTSC=1
19+
#XBASE64=1
20+
21+
#CC=aarch64-linux-gnu-gcc
1322
#CC=powerpc64le-linux-gnu-gcc
14-
#DEFS=$(DEBUG)
15-
#CFLAGS=$(DEBUG)
16-
#UAMEMCPY=1
1723

18-
#DEFS+=-DDEBUG -g
19-
DEFS+=-DNDEBUG
24+
#CFLAGS+=-DDEBUG -g
25+
CFLAGS+=-DNDEBUG
2026

2127
#------- OS/ARCH -------------------
2228
ifneq (,$(filter Windows%,$(OS)))
2329
OS := Windows
24-
# CC=gcc
25-
# CXX=g++
2630
ARCH=x86_64
2731
else
2832
OS := $(shell uname -s)
2933
ARCH := $(shell uname -m)
3034

3135
ifneq (,$(findstring aarch64,$(CC)))
3236
ARCH = aarch64
37+
else ifneq (,$(findstring arm64,$(ARCH)))
38+
ARCH = aarch64
3339
else ifneq (,$(findstring powerpc64le,$(CC)))
3440
ARCH = ppc64le
3541
endif
@@ -47,15 +53,9 @@ else
4753
endif
4854
MSSE=-march=armv8-a
4955
else ifeq ($(ARCH),$(filter $(ARCH),x86_64 ppc64le))
50-
CFLAGS=-march=native
5156
MSSE=-mssse3
5257
endif
5358

54-
ifeq (,$(findstring clang, $(CC)))
55-
DEFS+=-falign-loops -fstrict-aliasing
56-
endif
57-
#$(info ARCH="$(ARCH)")
58-
5959
ifeq ($(OS),$(filter $(OS),Linux GNU/kFreeBSD GNU OpenBSD FreeBSD DragonFly NetBSD MSYS_NT Haiku))
6060
LDFLAGS+=-lrt
6161
endif
@@ -65,8 +65,9 @@ LDFLAGS+=-static
6565
endif
6666

6767
FPIC=-fPIC
68-
69-
all: tb64app libtb64.so libtb64.a
68+
ifeq (,$(findstring clang, $(CC)))
69+
CFLAGS+=-falign-loops
70+
endif
7071

7172
ifeq ($(NCHECK),1)
7273
DEFS+=-DNB64CHECK
@@ -84,53 +85,42 @@ ifeq ($(UAMEMCPY),1)
8485
DEFS+=-DUA_MEMCPY
8586
endif
8687

87-
turbob64c.o: turbob64c.c
88-
$(CC) -O3 $(MARCH) $(DEFS) $(FPIC) -fstrict-aliasing $< -c -o $@
89-
90-
tb64app.o: tb64app.c
91-
$(CC) -O3 $(DEFS) $< -c -o $@
92-
93-
turbob64d.o: turbob64d.c
94-
$(CC) -O3 $(MARCH) $(DEFS) $(FPIC) -fstrict-aliasing $< -c -o $@
88+
ifeq ($(XBASE64),1)
89+
include xtb64.mak
90+
endif
9591

96-
turbob64v128.o: turbob64v128.c
97-
$(CC) -O3 $(MSSE) $(DEFS) $(FPIC) -fstrict-aliasing $< -c -o $@
92+
all: tb64app libtb64.so libtb64.a
9893

94+
tb64app.o: CFLAGS+=$(XDEFS) $(MARCH)
95+
turbob64c.o: CFLAGS+=$(DEFS) $(FPIC) -fstrict-aliasing $(MARCH)
96+
turbob64d.o: CFLAGS+=$(DEFS) $(FPIC) -fstrict-aliasing $(MARCH)
97+
turbob64v128.o: CFLAGS+=$(DEFS) $(FPIC) -fstrict-aliasing $(MSSE)
98+
turbob64v256.o: CFLAGS+=$(DEFS) $(FPIC) -fstrict-aliasing -march=haswell
99+
turbob64v512.o: CFLAGS+=$(DEFS) $(FPIC) -fstrict-aliasing -march=skylake-avx512 -mavx512vbmi
99100
turbob64v128a.o: turbob64v128.c
100-
$(CC) -O3 $(DEFS) $(FPIC) -march=corei7-avx -mtune=corei7-avx -mno-aes -fstrict-aliasing $< -c -o turbob64v128a.o
101-
102-
turbob64v256.o: turbob64v256.c
103-
$(CC) -O3 $(FPIC) $(DEFS) -march=haswell -fstrict-aliasing -falign-loops $< -c -o $@
101+
$(CC) -O3 $(CFLAGS) $(DEFS) $(FPIC) -fstrict-aliasing -march=corei7-avx -mtune=corei7-avx -mno-aes $< -c -o turbob64v128a.o
104102

105-
turbob64v512.o: turbob64v512.c
106-
$(CC) -O3 $(FPIC) -march=skylake-avx512 -mavx512vbmi -fstrict-aliasing -falign-loops $< -c -o $@
107-
108-
_tb64.o: _tb64.c
109-
$(CC) -O3 $(FPIC) -I/usr/include/python2.7 $< -c -o $@
103+
#_tb64.o: _tb64.c
104+
# $(CC) -O3 $(FPIC) -I/usr/include/python2.7 $< -c -o $@
110105

111106
LIB=turbob64c.o turbob64d.o turbob64v128.o
112107
ifeq ($(ARCH),x86_64)
113108
LIB+=turbob64v128a.o turbob64v256.o
114-
endif
115-
116-
ifeq ($(BASE64),1)
117-
include xtb64make
118-
endif
119-
120109
ifneq ($(NAVX512),1)
121110
LIB+=turbob64v512.o
122111
else
123112
DEFS+=-DNAVX512
124113
endif
114+
endif
125115

126116
#_tb64.so: _tb64.o
127-
# gcc -shared $^ -o $@
117+
# $(CC) -shared $^ -o $@
128118

129119
libtb64.a: $(LIB)
130120
ar cr $@ $+
131121

132122
libtb64.so: $(LIB)
133-
gcc -shared $^ -o $@
123+
$(CC) -shared $^ -o $@
134124

135125
install:
136126
cp libtb64.so ~/.local/lib/
@@ -139,8 +129,8 @@ install:
139129
# ./python/tb64/build.py
140130
# cp _tb64.so ~/.local/lib/
141131

142-
tb64app: $(LIB) tb64app.o
143-
$(CC) -O3 $(LIB) tb64app.o $(LDFLAGS) -o tb64app
132+
tb64app: $(LIB) $(XLIB) tb64app.o
133+
$(CC) -O3 $(LIB) $(XLIB) $(XDEFS) tb64app.o $(LDFLAGS) -o tb64app
144134

145135
tb64bench: $(LIB) tb64bench.o
146136
$(CC) -O3 $(LIB) tb64bench.o $(LDFLAGS) -o tb64bench
@@ -149,7 +139,7 @@ tb64test: $(LIB) tb64test.o
149139
$(CC) -O3 $(LIB) tb64test.o $(LDFLAGS) -o tb64test
150140

151141
.c.o:
152-
$(CC) -O3 $(CFLAGS) $(MARCH) $< -c -o $@
142+
$(CC) -O3 $(CFLAGS) $< -c -o $@
153143

154144
ifeq ($(OS),Windows)
155145
clean:

0 commit comments

Comments
 (0)