package/libhttpparser: New package

http-parser provides a simple C API to parse HTTP responses and
requests.

This packaging uses the official Joyent repository.

[Thomas:
 - since we're always building the shared library, depend on
   !BR2_STATIC_LIBS in Config.in. We could build only the static
   library, but then we would have to do all the lib installation
   manually.
 - indent using tabs in Config.in
 - use 'make install' instead of handcoding the library installation.
 - use $(TARGET_CONFIGURE_OPTS) instead of just CC= and LD=.
 - use tabs for indentation in commands instead of spaces
 - add patch to fix reinstallation.]

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Renaud AUBIN 2015-08-27 22:54:56 +02:00 committed by Thomas Petazzoni
parent 0d83de3832
commit ba1b3a5f39
4 changed files with 78 additions and 0 deletions

View File

@ -979,6 +979,7 @@ menu "Networking"
source "package/libeXosip2/Config.in"
source "package/libfcgi/Config.in"
source "package/libgsasl/Config.in"
source "package/libhttpparser/Config.in"
source "package/libidn/Config.in"
source "package/libiscsi/Config.in"
source "package/libmbus/Config.in"

View File

@ -0,0 +1,34 @@
From d9dfeca8736318eaad5cd4554cbae059469decde Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Fri, 28 Aug 2015 19:02:11 +0200
Subject: [PATCH] Use -f option when calling ln at install time
This allows "make install; make install" to work properly.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 373709c..6206b09 100644
--- a/Makefile
+++ b/Makefile
@@ -113,12 +113,12 @@ tags: http_parser.c http_parser.h test.c
install: library
$(INSTALL) -D http_parser.h $(INCLUDEDIR)/http_parser.h
$(INSTALL) -D $(SONAME) $(LIBDIR)/$(SONAME)
- ln -s $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.so
+ ln -sf $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.so
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.so
+ ln -sf $(LIBDIR)/$(SONAME) $(LIBDIR)/libhttp_parser.so
uninstall:
rm $(INCLUDEDIR)/http_parser.h
--
2.5.0

View File

@ -0,0 +1,17 @@
config BR2_PACKAGE_LIBHTTPPARSER
bool "libhttpparser"
depends on !BR2_STATIC_LIBS
help
This is a parser for HTTP messages written in C. It
parses both requests and responses. The parser is
designed to be used in performance HTTP applications.
It does not make any syscalls nor allocations, it does
not buffer data, it can be interrupted at anytime.
Depending on your architecture, it only requires about
40 bytes of data per message stream (in a web server
that is per connection).
https://github.com/joyent/http-parser
comment "libhttpparser needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS

View File

@ -0,0 +1,26 @@
################################################################################
#
# libhttpparser
#
################################################################################
LIBHTTPPARSER_VERSION = v2.5.0
LIBHTTPPARSER_SITE = $(call github,joyent,http-parser,$(LIBHTTPPARSER_VERSION))
LIBHTTPPARSER_INSTALL_STAGING = YES
LIBHTTPPARSER_LICENSE = MIT
LIBHTTPPARSER_LICENSE_FILES = LICENSE-MIT
define LIBHTTPPARSER_BUILD_CMDS
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) library package
endef
define LIBHTTPPARSER_INSTALL_STAGING_CMDS
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) PREFIX=$(STAGING_DIR)/usr install
$(INSTALL) -D -m 0644 $(@D)/libhttp_parser.a $(STAGING_DIR)/usr/lib/libhttp_parser.a
endef
define LIBHTTPPARSER_INSTALL_TARGET_CMDS
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) PREFIX=$(TARGET_DIR)/usr install
endef
$(eval $(generic-package))