simdjson/Makefile

73 lines
2.6 KiB
Makefile
Raw Normal View History

2018-03-23 12:05:32 +08:00
.SUFFIXES:
#
.SUFFIXES: .cpp .o .c .h
.PHONY: clean cleandist
2018-08-21 02:45:51 +08:00
CXXFLAGS = -std=c++11 -O2 -march=native -Wall -Wextra -Wshadow -Iinclude -Iinclude/linux -Idependencies/double-conversion -Ldependencies/double-conversion/release
2018-07-29 09:17:54 +08:00
LIBFLAGS = -ldouble-conversion
2018-03-23 12:05:32 +08:00
EXECUTABLES=parse jsoncheck
2018-08-21 02:45:51 +08:00
HEADERS=include/common_defs.h include/jsonioutil.h include/linux/linux-perf-events.h include/simdjson_internal.h include/stage1_find_marks.h include/stage2_flatten.h include/stage3_ape_machine.h include/stage4_shovel_machine.h
LIBFILES=src/stage1_find_marks.cpp src/stage2_flatten.cpp src/stage3_ape_machine.cpp src/stage4_shovel_machine.cpp
2018-07-29 06:28:50 +08:00
EXTRA_EXECUTABLES=parsenocheesy parsenodep8
2018-03-23 12:05:32 +08:00
LIDDOUBLE:=dependencies/double-conversion/release/libdouble-conversion.a
2018-07-29 08:18:56 +08:00
LIBS=$(LIDDOUBLE)
2018-07-29 08:18:56 +08:00
all: $(LIBS) $(EXECUTABLES)
test: jsoncheck
./jsoncheck
2018-03-23 12:05:32 +08:00
$(LIDDOUBLE) : dependencies/double-conversion/README.md
2018-07-29 08:18:56 +08:00
cd dependencies/double-conversion/ && mkdir -p release && cd release && cmake .. && make
2018-08-21 02:45:51 +08:00
parse: benchmark/parse.cpp $(HEADERS) $(LIBFILES)
$(CXX) $(CXXFLAGS) -o parse $(LIBFILES) benchmark/parse.cpp $(LIBFLAGS)
jsoncheck:tests/jsoncheck.cpp $(HEADERS) $(LIBFILES)
$(CXX) $(CXXFLAGS) -o jsoncheck $(LIBFILES) tests/jsoncheck.cpp -I. $(LIBFLAGS)
2018-03-23 12:05:32 +08:00
2018-08-21 02:45:51 +08:00
parsehisto: benchmark/parse.cpp $(HEADERS) $(LIBFILES)
$(CXX) $(CXXFLAGS) -o parsehisto benchmark/parse.cpp $(LIBFILES) $(LIBFLAGS) -DBUILDHISTOGRAM
2018-07-30 01:09:47 +08:00
testflatten: parse parsenocheesy parsenodep8 parsenodep10 parsenodep12
2018-07-27 04:36:35 +08:00
for filename in jsonexamples/twitter.json jsonexamples/gsoc-2018.json jsonexamples/citm_catalog.json jsonexamples/canada.json ; do \
echo $$filename ; \
set -x; \
./parsenocheesy $$filename ; \
2018-07-29 06:28:50 +08:00
./parse $$filename ; \
2018-07-27 04:36:35 +08:00
./parsenodep8 $$filename ; \
2018-07-30 01:09:47 +08:00
./parsenodep10 $$filename ; \
./parsenodep12 $$filename ; \
2018-07-27 04:36:35 +08:00
set +x; \
done
2018-08-21 02:45:51 +08:00
parsenocheesy: benchmark/parse.cpp $(HEADERS) $(LIBFILES)
$(CXX) $(CXXFLAGS) -o parsenocheesy benchmark/parse.cpp $(LIBFILES) -DSUPPRESS_CHEESY_FLATTEN
2018-07-27 04:36:35 +08:00
2018-08-21 02:45:51 +08:00
parsenodep8: benchmark/parse.cpp $(HEADERS) $(LIBFILES)
$(CXX) $(CXXFLAGS) -o parsenodep8 benchmark/parse.cpp $(LIBFILES) -DNO_PDEP_PLEASE -DNO_PDEP_WIDTH=8
2018-07-27 04:36:35 +08:00
2018-08-21 02:45:51 +08:00
parsenodep10: benchmark/parse.cpp $(HEADERS) $(LIBFILES)
$(CXX) $(CXXFLAGS) -o parsenodep12 benchmark/parse.cpp $(LIBFILES) -DNO_PDEP_PLEASE -DNO_PDEP_WIDTH=10
2018-07-30 01:09:47 +08:00
2018-08-21 02:45:51 +08:00
parsenodep12: benchmark/parse.cpp $(HEADERS) $(LIBFILES)
$(CXX) $(CXXFLAGS) -o parsenodep12 benchmark/parse.cpp $(LIBFILES) -DNO_PDEP_PLEASE -DNO_PDEP_WIDTH=12
2018-07-30 01:09:47 +08:00
2018-07-29 08:18:56 +08:00
dependencies/double-conversion/README.md:
git pull && git submodule init && git submodule update && git submodule status
2018-03-23 12:05:32 +08:00
clean:
2018-07-29 06:28:50 +08:00
rm -f $(EXECUTABLES) $(EXTRA_EXECUTABLES)
2018-03-23 12:05:32 +08:00
cleandist:
2018-07-29 06:28:50 +08:00
rm -f $(EXECUTABLES) $(EXTRA_EXECUTABLES)