mirror of
https://github.com/XRPLF/rippled.git
synced 2026-04-29 15:37:57 +00:00
fd65b0f src: refactor method parsing 678a9e2 test: Assert against correct error messages e2e467b Update http-parser to 2.6.1 4e382f9 readme: fix build status badge bee4817 Bump version to 2.6.0 777ba4e src: introduce `http_parser_url_init` 483eca7 doc: updated README.md to include multi-threading example e557b62 src: support LINK/UNLINK (RFC 2068, draft-snell-link-method) e01811e src: fixed compile error C2143 for vs2012 b36c2a9 header: treat Wine like MinGW eb5e992 src: support ACL (WebDAV, RFC3744, Section 8.1). 4f69be2 readme: update WebSocket link to RFC6455 b5bcca8 test: `SEARCH`, `PURGE` and `MKCALENDAR` 8b1d652 src: support BIND/REBIND/UNBIND (WebDAV, RFC5842) 7d75dd7 src: support IPv6 Zone ID as per RFC 6874 ab0b162 src: use ARRAY_SIZE instead of sizeof() 39ff097 src: remove double check f6f436a src: fix invalid memory access in http_parse_host 2896229 make: fix dynamic library extension for OS X 39c2c1e Bump version to 2.5.0 dff604d src: support body in Upgrade requests d767545 src: callbacks chunk boundaries: header/complete 2872cb7 test: regression test for incomplete/corrupted hdr 5d414fc makefile: add un/install targets d547f3b url_parser: remove mixed declarations 7ecf775 src: partially revert 959f4cb to fix nread value 7ba3123 header: fix field sizes 53063b7 Add function to initialize http_parser_settings 1b31580 Bump version to 2.4.2 59569f2 src: skip lws between `connection` values 36f107f Bump version to 2.4.1 280af69 src: fix build on MSVC 956c8a0 Bump version to 2.4.0 167dcdf readme: fix typo 3f7ef50 src: annotate with likely/unlikely 265f9d0 bench: add chunked bytes 091ebb8 src: simple Connection header multi-value parsing 959f4cb src: remove reexecute goto 0097de5 src: use memchr() in h_general header value c6097e1 src: faster general header value loop 2630060 src: less loads in header_value loop 0cb0ee6 src: tighten header field/value loops 6132d1f src: save progress 3f1a05a benchmark: initial 94a55d1 send travis irc notifications to #node-ci 5fd51fd Fix warning on test suite found by Clang Analyzer 0b43367 http_parser: Follow RFC-7230 Sec 3.2.4 11ecb42 Docs fix 7bbb774 doc: add very basic docs for `http_parser_execute` 17ed7de header: typo fix in a comment 5b951d7 src: fix clang warning 1317eec Added support for MKCALENDAR 08a2cc3 very minor spelling/grammar changes in README.md 158dd3b signing the CLA is no longer a requirement 8d9e5db fix typo in README comment d19e129 contrib: fixed resource leak in parsertrace 24e2d2d Allow HTTP_MAX_HEADER_SIZE to be defined externally 56f7ad0 Bump version to 2.3.0 76f0f16 Fix issues around multi-line headers 5d9c382 Include separating ws when folding header values git-subtree-dir: src/beast/beast/http/impl/http-parser git-subtree-split: fd65b0fbbdb405425a14d0e49f5366667550b1c2
150 lines
4.7 KiB
Makefile
150 lines
4.7 KiB
Makefile
# Copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
# of this software and associated documentation files (the "Software"), to
|
|
# deal in the Software without restriction, including without limitation the
|
|
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
# sell copies of the Software, and to permit persons to whom the Software is
|
|
# furnished to do so, subject to the following conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be included in
|
|
# all copies or substantial portions of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
# IN THE SOFTWARE.
|
|
|
|
PLATFORM ?= $(shell sh -c 'uname -s | tr "[A-Z]" "[a-z]"')
|
|
HELPER ?=
|
|
BINEXT ?=
|
|
ifeq (darwin,$(PLATFORM))
|
|
SONAME ?= libhttp_parser.2.6.1.dylib
|
|
SOEXT ?= dylib
|
|
else ifeq (wine,$(PLATFORM))
|
|
CC = winegcc
|
|
BINEXT = .exe.so
|
|
HELPER = wine
|
|
else
|
|
SONAME ?= libhttp_parser.so.2.6.1
|
|
SOEXT ?= so
|
|
endif
|
|
|
|
CC?=gcc
|
|
AR?=ar
|
|
|
|
CPPFLAGS ?=
|
|
LDFLAGS ?=
|
|
|
|
CPPFLAGS += -I.
|
|
CPPFLAGS_DEBUG = $(CPPFLAGS) -DHTTP_PARSER_STRICT=1
|
|
CPPFLAGS_DEBUG += $(CPPFLAGS_DEBUG_EXTRA)
|
|
CPPFLAGS_FAST = $(CPPFLAGS) -DHTTP_PARSER_STRICT=0
|
|
CPPFLAGS_FAST += $(CPPFLAGS_FAST_EXTRA)
|
|
CPPFLAGS_BENCH = $(CPPFLAGS_FAST)
|
|
|
|
CFLAGS += -Wall -Wextra -Werror
|
|
CFLAGS_DEBUG = $(CFLAGS) -O0 -g $(CFLAGS_DEBUG_EXTRA)
|
|
CFLAGS_FAST = $(CFLAGS) -O3 $(CFLAGS_FAST_EXTRA)
|
|
CFLAGS_BENCH = $(CFLAGS_FAST) -Wno-unused-parameter
|
|
CFLAGS_LIB = $(CFLAGS_FAST) -fPIC
|
|
|
|
LDFLAGS_LIB = $(LDFLAGS) -shared
|
|
|
|
INSTALL ?= install
|
|
PREFIX ?= $(DESTDIR)/usr/local
|
|
LIBDIR = $(PREFIX)/lib
|
|
INCLUDEDIR = $(PREFIX)/include
|
|
|
|
ifneq (darwin,$(PLATFORM))
|
|
# TODO(bnoordhuis) The native SunOS linker expects -h rather than -soname...
|
|
LDFLAGS_LIB += -Wl,-soname=$(SONAME)
|
|
endif
|
|
|
|
test: test_g test_fast
|
|
$(HELPER) ./test_g$(BINEXT)
|
|
$(HELPER) ./test_fast$(BINEXT)
|
|
|
|
test_g: http_parser_g.o test_g.o
|
|
$(CC) $(CFLAGS_DEBUG) $(LDFLAGS) http_parser_g.o test_g.o -o $@
|
|
|
|
test_g.o: test.c http_parser.h Makefile
|
|
$(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) -c test.c -o $@
|
|
|
|
http_parser_g.o: http_parser.c http_parser.h Makefile
|
|
$(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) -c http_parser.c -o $@
|
|
|
|
test_fast: http_parser.o test.o http_parser.h
|
|
$(CC) $(CFLAGS_FAST) $(LDFLAGS) http_parser.o test.o -o $@
|
|
|
|
test.o: test.c http_parser.h Makefile
|
|
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) -c test.c -o $@
|
|
|
|
bench: http_parser.o bench.o
|
|
$(CC) $(CFLAGS_BENCH) $(LDFLAGS) http_parser.o bench.o -o $@
|
|
|
|
bench.o: bench.c http_parser.h Makefile
|
|
$(CC) $(CPPFLAGS_BENCH) $(CFLAGS_BENCH) -c bench.c -o $@
|
|
|
|
http_parser.o: http_parser.c http_parser.h Makefile
|
|
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) -c http_parser.c
|
|
|
|
test-run-timed: test_fast
|
|
while(true) do time $(HELPER) ./test_fast$(BINEXT) > /dev/null; done
|
|
|
|
test-valgrind: test_g
|
|
valgrind ./test_g
|
|
|
|
libhttp_parser.o: http_parser.c http_parser.h Makefile
|
|
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_LIB) -c http_parser.c -o libhttp_parser.o
|
|
|
|
library: libhttp_parser.o
|
|
$(CC) $(LDFLAGS_LIB) -o $(SONAME) $<
|
|
|
|
package: http_parser.o
|
|
$(AR) rcs libhttp_parser.a http_parser.o
|
|
|
|
url_parser: http_parser.o contrib/url_parser.c
|
|
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) $^ -o $@
|
|
|
|
url_parser_g: http_parser_g.o contrib/url_parser.c
|
|
$(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) $^ -o $@
|
|
|
|
parsertrace: http_parser.o contrib/parsertrace.c
|
|
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) $^ -o parsertrace$(BINEXT)
|
|
|
|
parsertrace_g: http_parser_g.o contrib/parsertrace.c
|
|
$(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) $^ -o parsertrace_g$(BINEXT)
|
|
|
|
tags: http_parser.c http_parser.h test.c
|
|
ctags $^
|
|
|
|
install: library
|
|
$(INSTALL) -D http_parser.h $(INCLUDEDIR)/http_parser.h
|
|
$(INSTALL) -D $(SONAME) $(LIBDIR)/$(SONAME)
|
|
ln -s $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.$(SOEXT)
|
|
|
|
install-strip: library
|
|
$(INSTALL) -D http_parser.h $(INCLUDEDIR)/http_parser.h
|
|
$(INSTALL) -D -s $(SONAME) $(LIBDIR)/$(SONAME)
|
|
ln -s $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.$(SOEXT)
|
|
|
|
uninstall:
|
|
rm $(INCLUDEDIR)/http_parser.h
|
|
rm $(LIBDIR)/$(SONAME)
|
|
rm $(LIBDIR)/libhttp_parser.so
|
|
|
|
clean:
|
|
rm -f *.o *.a tags test test_fast test_g \
|
|
http_parser.tar libhttp_parser.so.* \
|
|
url_parser url_parser_g parsertrace parsertrace_g \
|
|
*.exe *.exe.so
|
|
|
|
contrib/url_parser.c: http_parser.h
|
|
contrib/parsertrace.c: http_parser.h
|
|
|
|
.PHONY: clean package test-run test-run-timed test-valgrind install install-strip uninstall
|