66
77.PHONY : clean cleandist
88
9- CXXFLAGS = -std=c++11 -march=native -Wall -Wextra -Wshadow -Iinclude -Ibenchmark/linux -Idependencies/rapidjson/include -Idependencies/sajson/include -Idependencies/json11 -Idependencies/fastjson/src -Idependencies/fastjson/include
10-
9+ DEPSINCLUDE = -Idependencies/rapidjson/include -Idependencies/sajson/include -Idependencies/json11 -Idependencies/fastjson/src -Idependencies/fastjson/include -Idependencies/gason/src -Idependencies/ujson4c/3rdparty -Idependencies/ujson4c/src
10+ CXXFLAGS = -std=c++11 -march=native -Wall -Wextra -Wshadow -Iinclude -Ibenchmark/linux $(DEPSINCLUDE )
11+ CFLAGS = -march=native -Idependencies/ujson4c/3rdparty -Idependencies/ujson4c/src
1112ifeq ($(SANITIZE ) ,1)
1213 CXXFLAGS += -g3 -O0 -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined
14+ CFLAGS += -g3 -O0 -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined
1315else
1416 CXXFLAGS += -O3
17+ CFLAGS += -O3
1518endif
1619
1720EXECUTABLES =parse jsoncheck numberparsingcheck stringparsingcheck minifiercompetition parsingcompetition minify allparserscheckfile
@@ -26,9 +29,11 @@ RAPIDJSON_INCLUDE:=dependencies/rapidjson/include
2629SAJSON_INCLUDE: =dependencies/sajson/include
2730JSON11_INCLUDE: =dependencies/json11/json11.hpp
2831FASTJSON_INCLUDE: =dependencies/include/fastjson/fastjson.h
32+ GASON_INCLUDE: =dependencies/gason/src/gason.h
33+ UJSON4C_INCLUDE: =dependencies/ujson4c/src/ujdecode.c
2934
30- LIBS =$(RAPIDJSON_INCLUDE ) $(SAJSON_INCLUDE )
31-
35+ LIBS =$(RAPIDJSON_INCLUDE ) $(SAJSON_INCLUDE ) $( JSON11_INCLUDE ) $( FASTJSON_INCLUDE ) $( GASON_INCLUDE ) $( UJSON4C_INCLUDE )
36+ OBJECTS =ujdecode.o
3237all : $(LIBS ) $(EXECUTABLES )
3338
3439test : jsoncheck numberparsingcheck stringparsingcheck
@@ -53,6 +58,12 @@ $(JSON11_INCLUDE):
5358$(FASTJSON_INCLUDE ) :
5459 git submodule update --init --recursive
5560
61+ $(GASON_INCLUDE ) :
62+ git submodule update --init --recursive
63+
64+ $(UJSON4C_INCLUDE ) :
65+ git submodule update --init --recursive
66+
5667bench : benchmarks/bench.cpp $(RAPIDJSON_INCLUDE ) $(HEADERS )
5768 $(CXX ) -std=c++11 -O3 -o $@ benchmarks/bench.cpp -I$(RAPIDJSON_INCLUDE ) -Iinclude -march=native -lm -Wall -Wextra -Wno-narrowing
5869
@@ -77,8 +88,11 @@ minifiercompetition: benchmark/minifiercompetition.cpp $(HEADERS) $(MINIFIERHEAD
7788minify : tools/minify.cpp $(HEADERS ) $(MINIFIERHEADERS ) $(LIBFILES ) $(MINIFIERLIBFILES )
7889 $(CXX ) $(CXXFLAGS ) -o minify $(MINIFIERLIBFILES ) $(LIBFILES ) tools/minify.cpp -I.
7990
80- parsingcompetition : benchmark/parsingcompetition.cpp $(HEADERS ) $(LIBFILES )
81- $(CXX ) $(CXXFLAGS ) -o parsingcompetition $(LIBFILES ) benchmark/parsingcompetition.cpp -I. $(LIBFLAGS )
91+ ujdecode.o : $(UJSON4C_INCLUDE )
92+ $(CC ) $(CFLAGS ) -c dependencies/ujson4c/src/ujdecode.c
93+
94+ parsingcompetition : benchmark/parsingcompetition.cpp $(HEADERS ) $(LIBFILES ) $(OBJECTS )
95+ $(CXX ) $(CXXFLAGS ) -o parsingcompetition $(LIBFILES ) benchmark/parsingcompetition.cpp ujdecode.o -I. $(LIBFLAGS )
8296
8397allparserscheckfile : tests/allparserscheckfile.cpp $(HEADERS ) $(LIBFILES )
8498 $(CXX ) $(CXXFLAGS ) -o allparserscheckfile $(LIBFILES ) tests/allparserscheckfile.cpp -I. $(LIBFLAGS )
@@ -87,7 +101,7 @@ parsehisto: benchmark/parse.cpp $(HEADERS) $(LIBFILES)
87101 $(CXX ) $(CXXFLAGS ) -o parsehisto benchmark/parse.cpp $(LIBFILES ) $(LIBFLAGS ) -DBUILDHISTOGRAM
88102
89103clean :
90- rm -f $(EXECUTABLES ) $(EXTRA_EXECUTABLES )
104+ rm -f $(OBJECTS ) $( EXECUTABLES ) $(EXTRA_EXECUTABLES )
91105
92106cleandist :
93- rm -f $(EXECUTABLES ) $(EXTRA_EXECUTABLES )
107+ rm -f $(OBJECTS ) $( EXECUTABLES ) $(EXTRA_EXECUTABLES )
0 commit comments