Signed-off-by: Viktar Palstsiuk <[email protected]> --- lang/luagps/Makefile | 50 ++++++++++++++++ .../001-add_compatibility_with_old_gpsd_api.patch | 62 ++++++++++++++++++++ 2 files changed, 112 insertions(+), 0 deletions(-) create mode 100644 lang/luagps/Makefile create mode 100644 lang/luagps/patches/001-add_compatibility_with_old_gpsd_api.patch
diff --git a/lang/luagps/Makefile b/lang/luagps/Makefile new file mode 100644 index 0000000..268e826 --- /dev/null +++ b/lang/luagps/Makefile @@ -0,0 +1,50 @@ +# +# Copyright (C) 2012 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:=luagps +PKG_REV:=2d3dd6b1cc7b87891af19857bfedd2e1845d2e3b +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_REV).tar.bz2 +PKG_SOURCE_SUBDIR:=$(PKG_NAME) +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=git://github.com/jdegges/lua-gps.git +PKG_SOURCE_VERSION:=$(PKG_REV) + +include $(INCLUDE_DIR)/package.mk + +define Package/luagps + SUBMENU:=Lua + SECTION:=lang + CATEGORY:=Languages + TITLE:=Lua bindings for libgps + URL:=https://github.com/jdegges/lua-gps + DEPENDS:=+lua +gpsd +endef + +define Package/luagps/description + Lua bindings for libgps. +endef + +define Build/Configure +endef + +TARGET_CFLAGS += $(FPIC) -shared -g -W -Wall -I$(STAGING_DIR)/usr/include/ +TARGET_LDFLAGS += -lgps + +define Build/Compile + $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) $(PKG_BUILD_DIR)/lgps.c -o $(PKG_BUILD_DIR)/gps.so +endef + +define Package/luagps/install + $(INSTALL_DIR) $(1)/usr/lib/lua + $(INSTALL_BIN) $(PKG_BUILD_DIR)/gps.so $(1)/usr/lib/lua/ +endef + +$(eval $(call BuildPackage,luagps)) diff --git a/lang/luagps/patches/001-add_compatibility_with_old_gpsd_api.patch b/lang/luagps/patches/001-add_compatibility_with_old_gpsd_api.patch new file mode 100644 index 0000000..63a7f3d --- /dev/null +++ b/lang/luagps/patches/001-add_compatibility_with_old_gpsd_api.patch @@ -0,0 +1,62 @@ +--- a/lgps.c 2012-04-05 11:19:27.000000000 +0300 ++++ b/lgps.c 2012-04-05 12:28:17.000000000 +0300 +@@ -30,7 +30,6 @@ + static int + lgps_open (lua_State *L) + { +- int top = lua_gettop (L); + struct gps_data_t *ud = NULL; + const char *server = luaL_checkstring (L, 1); + const char *port = luaL_checkstring (L, 2); +@@ -39,8 +38,13 @@ + if (NULL == ud) + print_error ("out of memory"); + ++#if (GPSD_API_MAJOR_VERSION > 4) + if (0 != gps_open (server, port, ud)) + print_error ("no gpsd running or network error: %d, %s", errno, gps_errstr (errno)); ++#else ++ if (0 != gps_open_r (server, port, ud)) ++ print_error ("no gpsd running or network error: %d, %s", errno, gps_errstr (errno)); ++#endif + + luaL_getmetatable (L, MT_GPS); + lua_setmetatable (L, -2); +@@ -86,9 +90,13 @@ + lgps_waiting (lua_State *L) + { + struct gps_data_t *ud = luaL_checkudata (L, 1, MT_GPS); +- lua_Integer timeout = luaL_checkinteger (L, 2); + ++#if (GPSD_API_MAJOR_VERSION > 4) ++ lua_Integer timeout = luaL_checkinteger (L, 2); + lua_pushboolean (L, gps_waiting (ud, timeout)); ++#else ++ lua_pushboolean (L, gps_waiting (ud)); ++#endif + + return 1; + } +@@ -108,7 +116,12 @@ + int count; + int i; + ++#if (GPSD_API_MAJOR_VERSION > 4) + count = gps_read (ud); ++#else ++ count = gps_poll (ud) + 1; ++#endif ++ + if (count <= 0) + print_error ("either no data or error reading data"); + +@@ -247,7 +260,9 @@ + SET_CONST_INT (WATCH_RARE); + SET_CONST_INT (WATCH_RAW); + SET_CONST_INT (WATCH_SCALED); ++#if (GPSD_API_MAJOR_VERSION > 4) + SET_CONST_INT (WATCH_TIMING); ++#endif + SET_CONST_INT (WATCH_DEVICE); + SET_CONST_INT (WATCH_NEWSTYLE); + SET_CONST_INT (WATCH_OLDSTYLE); -- 1.7.9.1 _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
