aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/libjson-c
diff options
context:
space:
mode:
Diffstat (limited to 'package/libs/libjson-c')
-rw-r--r--package/libs/libjson-c/Makefile55
-rw-r--r--package/libs/libjson-c/patches/000-libm.patch50
-rw-r--r--package/libs/libjson-c/patches/001-backport_compile_fix.patch23
3 files changed, 128 insertions, 0 deletions
diff --git a/package/libs/libjson-c/Makefile b/package/libs/libjson-c/Makefile
new file mode 100644
index 0000000..2b4c0a2
--- /dev/null
+++ b/package/libs/libjson-c/Makefile
@@ -0,0 +1,55 @@
+#
+# Copyright (C) 2006-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=json-c
+PKG_VERSION:=0.12
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://s3.amazonaws.com/json-c_releases/releases/
+PKG_MD5SUM:=3ca4bbb881dfc4017e8021b5e0a8c491
+
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=COPYING
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
+
+include $(INCLUDE_DIR)/package.mk
+
+TARGET_CFLAGS += $(FPIC)
+
+define Package/libjson-c
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=javascript object notation
+ URL:=http://oss.metaparadigm.com/json-c/
+endef
+
+define Package/libjson-c/description
+ This package contains a library for javascript object notation backends.
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/json-c $(1)/usr/include/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libjson-c.{a,so*} $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/json-c.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libjson-c/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libjson-c.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libjson-c))
diff --git a/package/libs/libjson-c/patches/000-libm.patch b/package/libs/libjson-c/patches/000-libm.patch
new file mode 100644
index 0000000..45adb05
--- /dev/null
+++ b/package/libs/libjson-c/patches/000-libm.patch
@@ -0,0 +1,50 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -43,12 +43,6 @@
+ AC_FUNC_MALLOC
+ AC_FUNC_REALLOC
+ AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open vsyslog strncasecmp setlocale)
+-AC_CHECK_DECLS([INFINITY], [], [], [[#include <math.h>]])
+-AC_CHECK_DECLS([nan], [], [], [[#include <math.h>]])
+-AC_CHECK_DECLS([isnan], [], [], [[#include <math.h>]])
+-AC_CHECK_DECLS([isinf], [], [], [[#include <math.h>]])
+-AC_CHECK_DECLS([_isnan], [], [], [[#include <float.h>]])
+-AC_CHECK_DECLS([_finite], [], [], [[#include <float.h>]])
+
+ #check if .section.gnu.warning accepts long strings (for __warn_references)
+ AC_LANG_PUSH([C])
+--- a/math_compat.h
++++ b/math_compat.h
+@@ -1,28 +1,9 @@
+ #ifndef __math_compat_h
+ #define __math_compat_h
+
+-/* Define isnan and isinf on Windows/MSVC */
+-
+-#ifndef HAVE_DECL_ISNAN
+-# ifdef HAVE_DECL__ISNAN
+-#include <float.h>
+-#define isnan(x) _isnan(x)
+-# endif
+-#endif
+-
+-#ifndef HAVE_DECL_ISINF
+-# ifdef HAVE_DECL__FINITE
+-#include <float.h>
+-#define isinf(x) (!_finite(x))
+-# endif
+-#endif
+-
+-#ifndef HAVE_DECL_NAN
+-#error This platform does not have nan()
+-#endif
+-
+-#ifndef HAVE_DECL_INFINITY
+-#error This platform does not have INFINITY
+-#endif
++#undef isnan
++#define isnan(x) __builtin_isnan(x)
++#undef isinf
++#define isinf(x) __builtin_isinf(x)
+
+ #endif
diff --git a/package/libs/libjson-c/patches/001-backport_compile_fix.patch b/package/libs/libjson-c/patches/001-backport_compile_fix.patch
new file mode 100644
index 0000000..e83f5d2
--- /dev/null
+++ b/package/libs/libjson-c/patches/001-backport_compile_fix.patch
@@ -0,0 +1,23 @@
+commit 3859e99f50abe11a8dade28efa9ea3d99dfaac11
+Author: Petar Koretić <petar.koretic@gmail.com>
+Date: Fri Apr 11 10:03:40 2014 +0200
+
+ Remove unused variable 'size'
+
+diff --git a/json_tokener.c b/json_tokener.c
+index 19de8ef..9a76293 100644
+--- a/json_tokener.c
++++ b/json_tokener.c
+@@ -352,12 +352,10 @@ struct json_object* json_tokener_parse_ex(struct json_tokener *tok,
+
+ case json_tokener_state_inf: /* aka starts with 'i' */
+ {
+- int size;
+ int size_inf;
+ int is_negative = 0;
+
+ printbuf_memappend_fast(tok->pb, &c, 1);
+- size = json_min(tok->st_pos+1, json_null_str_len);
+ size_inf = json_min(tok->st_pos+1, json_inf_str_len);
+ char *infbuf = tok->pb->buf;
+ if (*infbuf == '-')