.SUFFIXES:
.SUFFIXES: .cpp .o .c .h
PROC_AUTO:=$(shell uname -m)
PROCESSOR ?= $(PROC_AUTO)
ifeq ($(no_simd),1) #if no_simd is set
CFLAGS = -fPIC -std=c99 -O3 -Wall -Wextra -pedantic -Wshadow
else
ifeq ($(PROCESSOR), aarch64)
CFLAGS = -fPIC -std=c99 -O3 -Wall -Wextra -pedantic -Wshadow -D__ARM_NEON__
else ifeq ($(PROCESSOR), armv7l)
CFLAGS = -fPIC -std=c99 -O3 -Wall -Wextra -pedantic -Wshadow -mfpu=neon
else ifeq ($(PROCESSOR), x86_64)
CFLAGS = -fPIC -std=c99 -O3 -Wall -Wextra -pedantic -Wshadow -DSTREAMVBYTE_SSSE3=1 -mssse3
else
CFLAGS = -fPIC -std=c99 -O3 -Wall -Wextra -pedantic -Wshadow
endif
endif
LIBNAME=libstreamvbyte.so.0.0.1
LNLIBNAME=libstreamvbyte.so
STATICLIB=libstreamvbyte.a
all: $(STATICLIB)
SVB_HEADERS=./include/streamvbyte.h ./include/streamvbyte_zigzag.h
SVB_OBJECTS= streamvbyte_decode.o streamvbyte_encode.o streamvbyte_zigzag.o
streamvbyte_zigzag.o: ./src/streamvbyte_zigzag.c $(SVB_HEADERS)
$(CC) $(CFLAGS) -c ./src/streamvbyte_zigzag.c -Iinclude
streamvbyte_decode.o: ./src/streamvbyte_decode.c $(SVB_HEADERS)
$(CC) $(CFLAGS) -c ./src/streamvbyte_decode.c -Iinclude
streamvbyte_encode.o: ./src/streamvbyte_encode.c $(SVB_HEADERS)
$(CC) $(CFLAGS) -c ./src/streamvbyte_encode.c -Iinclude
$(STATICLIB): $(SVB_OBJECTS)
ar rcs $@ $^
clean:
rm -f unit *.o $(LIBNAME) $(LNLIBNAME) $(STATICLIB)