PKG_NAME:=crtmpserver
PKG_SOURCE_DATE:=2015-10-04
PKG_SOURCE_VERSION:=b866fffca37c3b967a8878499cd2b91aa2587f34
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/shiretu/crtmpserver/tar.gz/$(PKG_SOURCE_VERSION)?
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
-PKG_LICENSE:=GPL-3.0
+PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=LICENSE
-PKG_BUILD_PARALLEL:=1
+CMAKE_INSTALL:=1
+CMAKE_SOURCE_SUBDIR:=builders/cmake
+PKG_BUILD_PARALLEL:=0
+include $(INCLUDE_DIR)/uclibc++.mk
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/crtmpserver
SECTION:=multimedia
CATEGORY:=Multimedia
- DEPENDS:=+libstdcpp +libopenssl +liblua
+ DEPENDS:=$(CXX_DEPENDS) +libopenssl +liblua
TITLE:=C++ RTMP Server
+ URL:=https://github.com/shiretu/crtmpserver
endef
define Package/crtmpserver/description
/etc/crtmpserver.lua
endef
-# XXX: this hack handles the usr/bin vs bin difference of backfire and trunk
-TS_BASE:=$(wildcard $(TOOLCHAIN_DIR)/bin/$(TARGET_CC))
-TS_BASE:=$(dir $(if $(TS_BASE),$(TS_BASE),$(wildcard $(TOOLCHAIN_DIR)/usr/bin/$(TARGET_CC))))
+CMAKE_OPTIONS += \
+ -DCRTMPSERVER_INSTALL_PREFIX="$(CMAKE_INSTALL_PREFIX)" \
+ -DDL_INCLUDE_PATH="$(TOOLCHAIN_DIR)/include" \
+ -DLUA_INCLUDE_PATH_="$(STAGING_DIR)/usr/include" \
+ -DLUA_LIBRARY_PATH_="$(STAGING_DIR)/usr/lib/liblua.so" \
+ -DOPENSSL_INCLUDE_PATH="$(STAGING_DIR)/usr/include" \
-define Build/Configure
- (cd $(PKG_BUILD_DIR)/builders/make; \
- cp linux.mk linux-openwrt-uclibc.mk; \
- $(SED) 's,^TOOLCHAIN_BASE[[:space:]]*=.*,TOOLCHAIN_BASE=$(TS_BASE),' \
- -e 's,^TOOLCHAIN_PREFIX[[:space:]]*=.*,TOOLCHAIN_PREFIX=$(TARGET_CROSS),' \
- -e 's,^CCOMPILER[[:space:]]*=.*,CCOMPILER=$(TARGET_CC),' \
- -e 's,^CXXCOMPILER[[:space:]]*=.*,CXXCOMPILER=$(TARGET_CXX) -std=gnu++03,' \
- -e 's,^OPTIMIZATIONS[[:space:]]*=.*,OPTIMIZATIONS=-O2,' \
- -e 's,^SSL_BASE[[:space:]]*=.*,SSL_BASE=$(STAGING_DIR)/usr,' \
- linux-openwrt-uclibc.mk)
- (cd $(PKG_BUILD_DIR)/sources/common/include/; \
- echo '#define CRTMPSERVER_VERSION_RELEASE_NUMBER "$(PKG_VERSION)\n"' > version.h; \
- echo '#define CRTMPSERVER_VERSION_CODE_NAME "Git\n"' >> version.h)
-endef
-
-define Build/Compile
- +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/builders/make \
- PLATFORM=linux-openwrt-uclibc -Wno-error -j6
-endef
+TARGET_CXXFLAGS +=-std=c++11 -ffunction-sections -fdata-sections
+TARGET_LDFLAGS +=-Wl,--gc-sections,--as-needed
define Package/crtmpserver/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/builders/make/output/dynamic/crtmpserver $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/crtmpserver $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib/crtmpserver
- $(CP) $(PKG_BUILD_DIR)/builders/make/output/dynamic/*.so $(1)/usr/lib/crtmpserver/
- $(foreach app,flvplayback samplefactory admin stresstest appselector vptests applestreamingclient proxypublish, \
+ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/crtmpserver/lib* $(1)/usr/lib/crtmpserver
+ $(foreach app,flvplayback samplefactory admin stresstest appselector vptests proxypublish, \
$(INSTALL_DIR) $(1)/usr/lib/crtmpserver/$(app); \
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/builders/make/output/dynamic/applications/$(app)/lib$(app).so \
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/crtmpserver/applications/$(app)/lib$(app).so \
$(1)/usr/lib/crtmpserver/$(app)/; \
)
$(INSTALL_DIR) $(1)/etc
- $(INSTALL_CONF) $(PKG_BUILD_DIR)/builders/make/output/dynamic/crtmpserver.lua $(1)/etc/
+ $(INSTALL_CONF) $(PKG_INSTALL_DIR)/usr/etc/crtmpserver.lua.sample $(1)/etc/
$(INSTALL_DIR) $(1)/usr/share/crtmpserver/appselector
$(INSTALL_DIR) $(1)/usr/share/crtmpserver/media
$(INSTALL_DIR) $(1)/etc/init.d
--- /dev/null
+--- a/builders/cmake/CMakeLists.txt
++++ b/builders/cmake/CMakeLists.txt
+@@ -140,8 +124,6 @@ ADD_DEFINITIONS(-DHAS_LUA)
+ #ADD_DEFINITIONS(-DUSE_MEM_POOL)
+ #ADD_DEFINITIONS(-DDEBUG_MEM_POOL)
+
+-SET(GENERIC_FLAGS "-Wall -Werror")
+-
+ #add 64 bit support for 32 but platforms
+ ADD_DEFINITIONS(-D__USE_FILE_OFFSET64)
+ ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64)
+--- a/sources/thelib/src/streaming/streamcapabilities.cpp
++++ b/sources/thelib/src/streaming/streamcapabilities.cpp
+@@ -28,7 +28,7 @@
+
+ #define CHECK_BA_LIMITS(name,length) \
+ if(ba.AvailableBits()<length) { \
+- FATAL("Unable to read `"name"` value. Not enough bits. Wanted: %u; Have: %u", \
++ FATAL("Unable to read \"name\" value. Not enough bits. Wanted: %u; Have: %u", \
+ (uint32_t)length, ba.AvailableBits()); \
+ return false; \
+ }
+@@ -43,7 +43,7 @@ if(ba.AvailableBits()<length) { \
+ { \
+ uint64_t ___value___=0; \
+ if(!ba.ReadExpGolomb(___value___)) { \
+- FATAL("Unable to read `"name"` value"); \
++ FATAL("Unable to read \"name\" value"); \
+ return false; \
+ } \
+ v[name]=(type)___value___; \