SRC_DIRS = ./ ../../ allcodecs/
VPATH = $(SRC_DIRS)
CPPFLAGS += $(addprefix -I ,$(SRC_DIRS))
CFLAGS += -Wall -Wextra -Wconversion \
-std=c99
CXXFLAGS += -Wall -Wextra -Wconversion \
-std=c++11
LDFLAGS += -pthread
TESTHASHES = 110000000
HASH_SRC := $(sort $(wildcard allcodecs/*.c allcodecs/*.cc))
HASH_OBJ := $(patsubst %.c,%.o,$(HASH_SRC))
.PHONY: default
default: release
.PHONY: all
all: release
collisionsTest: main.o pool.o threading.o sort.o $(HASH_OBJ)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $^ $(LDFLAGS) -o $@
main.o: hashes.h xxhash.h
release: CXXFLAGS += -O3
release: CFLAGS += -O3
release: collisionsTest
debug: CXXFLAGS += -g3 -O0 -DDEBUG
debug: CFLAGS += -g3 -O0 -DDEBUG
debug: collisionsTest
.PHONY: check
check: test
.PHONY: test
test: debug
@echo ""
@echo "## $(TESTHASHES) hashes with original and 0 threads"
@time ./collisionsTest --nbh=$(TESTHASHES)
@echo ""
@echo "## $(TESTHASHES) hashes with original and 4 threads"
@time ./collisionsTest --nbh=$(TESTHASHES) --threadlog=2
@echo ""
.PHONY: clean
clean:
$(RM) *.o allcodecs/*.o
$(RM) collisionsTest