diff --git a/makefile b/makefile old mode 100644 new mode 100755 index 5711bd6..ad08db3 --- a/makefile +++ b/makefile @@ -1,9 +1,15 @@ -# powturbo (c) Copyright 2013-2018 +# powturbo (c) Copyright 2013-2018 # ----------- Downloading + Compiling ---------------------- -# git clone --recursive git://github.com/powturbo/TurboPFor.git +# Download or clone TurboPFor: +# git clone git://github.com/powturbo/TurboPFor.git # make # -# Minimum make: "make NCODEC1=1 NCODEC2=1 NTRANFORM=1" to compile only TurboPFor +# To compile icapp with LZ4 and BITSHUFFLE. (lz4+Bitshuffle muss be in directory ext) +# make icapp LZ4=1 or make LZ4=1 BITSHUFFLE=1 +# +# To benchmark external libraries also: +# git clone --recursive git://github.com/powturbo/TurboPFor.git +# make: "make CODEC1=1 CODEC2=1" # Linux: "export CC=clang" "export CXX=clang". windows mingw: "set CC=gcc" "set CXX=g++" or uncomment the CC,CXX lines CC ?= gcc @@ -26,10 +32,7 @@ MARCH=-march=native ifeq ($(NSIMD),1) DEFS+=-DNSIMD -NCODEC1=1 -NCODEC2=1 else -NSIMD=0 CFLAGS+=-DUSE_SSE -mssse3 CXXFLAGS+=-DUSE_SSE endif @@ -71,22 +74,13 @@ endif endif #---------------------- make args -------------------------- -ifeq ($(NCODEC1),1) -DEFS+=-DNCODEC1 -else -NCODEC1=0 +ifeq ($(CODEC1),1) +DEFS+=-DCODEC1=1 +CFLAGS+=-Iext/lz4/lib -Iext/simdcomp/include -Iext/MaskedVByte/include -Iext/LittleIntPacker/include -Iext/streamvbyte/include endif -ifeq ($(NCODEC2),1) -DEFS+=-DNCODEC2 -else -NCODEC2=0 -endif - -ifeq ($(NTRANFORM),1) -DEFS+=-DNTRANSFORM -else -NTRANSFORM=0 +ifeq ($(CODEC2),1) +DEFS+=-DCODEC2=1 endif ifeq ($(BLOSC),1) @@ -99,7 +93,15 @@ else CXXFLAGS+=-std=gnu++0x endif -CFLAGS+=$(DDEBUG) -w -Wall -std=gnu99 -DUSE_THREADS -fstrict-aliasing -Iext -Iext/lz4/lib -Iext/simdcomp/include -Iext/MaskedVByte/include -Iext/LittleIntPacker/include -Iext/streamvbyte/include $(DEFS) +ifeq ($(LZ4),1) +CFLAGS+=-DLZ4 -Ilz4/lib +endif + +ifeq ($(BITSHUFFLE),1) +CFLAGS+=-DBITSHUFFLE -Iext/bitshuffle/lz4 +endif + +CFLAGS+=$(DDEBUG) -w -Wall -std=gnu99 -DUSE_THREADS -fstrict-aliasing -Iext $(DEFS) CXXFLAGS+=$(DDEBUG) -w -fpermissive -Wall -fno-rtti -Iext/FastPFor/headers $(DEFS) all: icbench idxcr idxqry idxseg icapp @@ -175,7 +177,7 @@ varintg8iu.o: ext/varintg8iu.c ext/varintg8iu.h $(CC) -O2 $(CFLAGS) $(MARCH) -c -std=c99 ext/varintg8iu.c #------------------------------------------------------------------- -ifeq ($(NCODEC1), 0) +ifeq ($(CODEC1), 1) OB+=ext/streamvbyte/src/streamvbyte.o ext/streamvbyte/src/streamvbytedelta.o OB+=ext/MaskedVByte/src/varintencode.o ext/MaskedVByte/src/varintdecode.o OB+=ext/simdcomp/src/simdintegratedbitpacking.o ext/simdcomp/src/simdcomputil.o ext/simdcomp/src/simdbitpacking.o ext/simdcomp/src/simdpackedselect.o @@ -196,10 +198,13 @@ OB+=ext/JASSv2/source/compress_integer_qmx_improved.o ext/JASSv2/source/asserts. endif OB+=ext/varintg8iu.o OB+=ext/rc.o +OB+=ext/lz4/lib/lz4hc.o ext/lz4/lib/lz4.o +LZ4=1 +BITSHUFFLE=1 endif #---------------------------------------- -ifeq ($(NCODEC2), 0) +ifeq ($(CODEC2), 1) ext/polycom/optpfd.o: ext/polycom/optpfd.c $(CC) -O2 $(MARCH) $(CFLAGS) $< -c -o $@ @@ -221,8 +226,6 @@ else #OB+=$(ZD)adler32.o $(ZD)crc32.o $(ZD)compress.o $(ZD)deflate.o $(ZD)infback.o $(ZD)inffast.o $(ZD)inflate.o $(ZD)inftrees.o $(ZD)trees.o $(ZD)uncompr.o $(ZD)zutil.o endif -OB+=ext/lz4/lib/lz4hc.o ext/lz4/lib/lz4.o - ifeq ($(BLOSC),1) LDFLAGS+=-lpthread #ext/c-blosc/blosc/libblosc.a @@ -240,7 +243,7 @@ else ifeq ($(AVX2),1) #CFLAGS+=-DUSEAVX2 endif -OB+=ext/bitshuffle/src/bitshuffle.o ext/bitshuffle/src/iochain.o ext/bitshuffle/src/bitshuffle_core.o +OB+=ext/bitshuffle/src/bitshuffle.o ext/bitshuffle/src/iochain.o ext/bitshuffle/src/bitshuffle_core.o endif endif @@ -250,17 +253,28 @@ DEFS+=-DLZTURBO OB+=../dev/lz/lz8c.o ../dev/lz/lzbc.o endif - OB+=eliasfano.o vsimple.o $(TRANSP) transpose.o transpose_sse.o ifeq ($(AVX2),1) OB+=transpose_avx2.o endif #------------------------ -ICLIB=bitpack.o bitpack_sse.o bitunpack.o bitunpack_sse.o vp4c.o vp4c_sse.o vp4d.o vp4d_sse.o bitutil.o fp.o vint.o vsimple.o +ICLIB=bitpack.o bitpack_sse.o bitunpack.o bitunpack_sse.o vp4c.o vp4c_sse.o vp4d.o vp4d_sse.o bitutil.o fp.o vint.o vsimple.o transpose.o transpose_sse.o ext/trlec.o ext/trled.o + +ifeq ($(LZ4),1) +ICLIB+=ext/lz4/lib/lz4hc.o ext/lz4/lib/lz4.o +endif + +ifeq ($(BITSHUFFLE),1) +ICLIB+=ext/bitshuffle/src/bitshuffle.o ext/bitshuffle/src/iochain.o ext/bitshuffle/src/bitshuffle_core.o +ifeq ($(LZ4),1) +else +ICLIB+=ext/bitshuffle/lz4/lz4.o +endif +endif ifeq ($(AVX2),1) -ICLIB+=bitpack_avx2.o bitunpack_avx2.o vp4c_avx2.o vp4d_avx2.o +ICLIB+=bitpack_avx2.o bitunpack_avx2.o vp4c_avx2.o vp4d_avx2.o transpose_avx2.o endif ifeq ($(SIMDH),1)