aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/libjson-c/Makefile
blob: d925ac750d6f0dece48204cc054c67585d4cdb6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#
# 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.16
PKG_RELEASE:=3

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-nodoc.tar.gz
PKG_SOURCE_URL:=https://s3.amazonaws.com/json-c_releases/releases/
PKG_HASH:=ac8a3dd6820daaca579b23fbc74664310fbc3d67f52f6707cda67d21dde5570f

PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
PKG_CPE_ID:=cpe:/a:json-c_project:json-c

HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/cmake.mk

CMAKE_HOST_OPTIONS += \
	-DDISABLE_EXTRA_LIBS=TRUE \
	-DBUILD_SHARED_LIBS=FALSE

CMAKE_OPTIONS += \
	-DDISABLE_EXTRA_LIBS=TRUE

define Package/libjson-c
  SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=javascript object notation
  URL:=https://json-c.github.io/json-c/
  ABI_VERSION:=5
endef

define Package/libjson-c/description
 This package contains a library for javascript object notation backends.
endef

define Build/InstallDev
	$(call Build/InstallDev/cmake,$(1))
	$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/json-c.pc
	$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/json-c.pc
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))
$(eval $(call HostBuild))
ass="o">.rjust(14, '0').encode('ascii') struct.pack_into('>14s', buf, 0x0, enc) else: enc = args.hw_version.rjust(8, '0').encode('ascii') struct.pack_into('>8s', buf, 0x0, enc) enc = binascii.hexlify(args.hw_id.encode()) struct.pack_into('>6s', buf, 0x8, enc) enc = args.sw_version.rjust(4, '0').encode('ascii') struct.pack_into('>4s', buf, 0x64, enc) if (args.extra_padd_size): tail = bytearray([PADDING_TAIL] * args.extra_padd_size) if (args.extra_padd_byte): struct.pack_into ('<i', tail, 0x0, args.extra_padd_byte) elif not args.hw_id: tail[0] = 0x0D tail[1] = 0x0A buf += tail return buf def main(): global args parser = argparse.ArgumentParser(description='This script \ generates firmware PID for the Sercomm-based devices') parser.add_argument('--hw-version', dest='hw_version', action='store', type=str, help='Sercomm hardware version') parser.add_argument('--hw-id', dest='hw_id', action='store', type=str, help='Sercomm hardware ID') parser.add_argument('--sw-version', dest='sw_version', action='store', type=str, help='Sercomm software version') parser.add_argument('--pid-file', dest='pid_file', action='store', type=str, help='Output PID file') parser.add_argument('--extra-padding-size', dest='extra_padd_size', action='store', type=auto_int, help='Size of extra NULL padding at the end of the file \ (optional)') parser.add_argument('--extra-padding-first-byte', dest='extra_padd_byte', action='store', type=auto_int, help='First byte of extra padding (optional)') args = parser.parse_args() if ((not args.hw_version) or (not args.sw_version) or (not args.pid_file)): parser.print_help() exit() create_pid_file(args) main()