-
Notifications
You must be signed in to change notification settings - Fork 158
/
Config
161 lines (127 loc) · 4.03 KB
/
Config
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# compiler executables --------------------------------------------------------
CC = gcc
CXX = g++
FC = gfortran
# language standard -----------------------------------------------------------
# CSTD = -std=c89
CSTD = -std=c99
CXXSTD = -std=c++98
# CXXSTD = -std=c++11
FSTD = -std=f2018 -ffree-form -Wno-c-binding-type
# common compiler options -----------------------------------------------------
OPTFLAGS = -O3
FLAGS = $(OPTFLAGS) -fPIC -pedantic -Wall -Wextra
LDFLAGS =
SOFLAGS =
# OpenMP compiler options -----------------------------------------------------
# do not comment out; use "make ZFP_WITH_OPENMP=0" to disable OpenMP
OMPFLAGS = -fopenmp
# Apple clang OpenMP options
# OMPFLAGS = -Xclang -fopenmp
# optional compiler macros ----------------------------------------------------
# use smaller bit stream word type for finer rate granularity;
# can bet set on command line, e.g., "make BIT_STREAM_WORD_TYPE=uint8"
# DEFS += -DBIT_STREAM_WORD_TYPE=uint8
# DEFS += -DBIT_STREAM_WORD_TYPE=uint16
# DEFS += -DBIT_STREAM_WORD_TYPE=uint32
# DEFS += -DBIT_STREAM_WORD_TYPE=uint64
# reduce bias and slack in errors; can be set on command line, e.g.,
# "make ZFP_ROUNDING_MODE=ZFP_ROUND_FIRST"
# DEFS += -DZFP_ROUNDING_MODE=ZFP_ROUND_NEVER
# DEFS += -DZFP_ROUNDING_MODE=ZFP_ROUND_FIRST
# DEFS += -DZFP_ROUNDING_MODE=ZFP_ROUND_LAST
# DEFS += -DZFP_WITH_TIGHT_ERROR
# treat subnormals as zero to avoid overflow; can be set on command line, e.g.,
# "make ZFP_WITH_DAZ=1"
# DEFS += -DZFP_WITH_DAZ
# use long long for 64-bit types
# DEFS += -DZFP_INT64='long long' -DZFP_INT64_SUFFIX='ll'
# DEFS += -DZFP_UINT64='unsigned long long' -DZFP_UINT64_SUFFIX='ull'
# cache alignment
# DEFS += -DZFP_CACHE_LINE_SIZE=256
# enable strided access for progressive zfp streams
# DEFS += -DBIT_STREAM_STRIDED
# use aligned memory allocation
# DEFS += -DZFP_WITH_ALIGNED_ALLOC
# use two-way skew-associative cache
# DEFS += -DZFP_WITH_CACHE_TWOWAY
# use faster but more collision prone hash function
# DEFS += -DZFP_WITH_CACHE_FAST_HASH
# count cache misses
# DEFS += -DZFP_WITH_CACHE_PROFILE
# build targets ---------------------------------------------------------------
# default targets
BUILD_CFP = 0
BUILD_ZFORP = 0
BUILD_UTILITIES = 1
BUILD_EXAMPLES = 0
BUILD_TESTING = 1
BUILD_SHARED_LIBS = 0
# build all targets?
ifdef BUILD_ALL
ifneq ($(BUILD_ALL),0)
BUILD_CFP = 1
BUILD_ZFORP = 1
BUILD_UTILITIES = 1
BUILD_EXAMPLES = 1
BUILD_TESTING = 1
endif
endif
# build shared libraries?
ifneq ($(BUILD_SHARED_LIBS),0)
LIBRARY = shared
LIBZFP = libzfp.so
LIBCFP = libcfp.so
else
LIBRARY = static
LIBZFP = libzfp.a
LIBCFP = libcfp.a
endif
# operating system and compiler dependent flags -------------------------------
# macOS configuration; compile with "make OS=mac"
ifeq ($(OS),mac)
SOFLAGS += -undefined dynamic_lookup
endif
# suppress unused function warnings when compiling C89
ifeq ($(CSTD),-std=c89)
FLAGS += -Wno-unused-function
endif
# process macros set on the command line --------------------------------------
# bit stream word type
ifdef BIT_STREAM_WORD_TYPE
DEFS += -DBIT_STREAM_WORD_TYPE=$(BIT_STREAM_WORD_TYPE)
endif
# enable OpenMP?
ifdef ZFP_WITH_OPENMP
ifneq ($(ZFP_WITH_OPENMP),0)
ifneq ($(ZFP_WITH_OPENMP),OFF)
FLAGS += $(OMPFLAGS)
endif
endif
endif
# treat subnormals as zero to avoid overflow
ifdef ZFP_WITH_DAZ
ifneq ($(ZFP_WITH_DAZ),0)
FLAGS += -DZFP_WITH_DAZ
endif
endif
# rounding mode and slack in error
ifdef ZFP_ROUNDING_MODE
FLAGS += -DZFP_ROUNDING_MODE=$(ZFP_ROUNDING_MODE)
ifneq ($(ZFP_ROUNDING_MODE),0)
# tight error bound requires round-first or round-last mode
ifdef ZFP_WITH_TIGHT_ERROR
ifneq ($(ZFP_WITH_TIGHT_ERROR),0)
FLAGS += -DZFP_WITH_TIGHT_ERROR
endif
endif
endif
endif
# chroma mode for ppm example
ifdef PPM_CHROMA
PPM_FLAGS += -DPPM_CHROMA=$(PPM_CHROMA)
endif
# compiler options ------------------------------------------------------------
CFLAGS = $(CSTD) $(FLAGS) $(DEFS)
CXXFLAGS = $(CXXSTD) $(FLAGS) $(DEFS)
FFLAGS = $(FSTD) $(FLAGS) $(DEFS)