refine makefile to switch gcc version

This commit is contained in:
gozfree
2020-07-12 13:59:11 +08:00
parent 2bd0884995
commit 882c11dbcc
47 changed files with 442 additions and 654 deletions

View File

@@ -27,9 +27,9 @@ PLATFORM="[linux|pi|android|ios]"
#basic libraries
BASIC_LIBS="libmacro libtime liblog libdarray libgevent libworkq libdict libhash libsort \
librbtree libringbuffer libthread libvector libbase64 libmedia-io libposix \
libdebug libfile libuvc libmp4parser libqueue libplugin libhal libsubmask"
libdebug libfile libconfig libuvc libmp4parser libqueue libplugin libhal libsubmask"
FRAMEWORK_LIBS="libipc"
NETWORK_LIBS="libskt librpc "
NETWORK_LIBS="libskt librpc librtsp librtmpc"
usage()
{

View File

@@ -1,4 +1,4 @@
#### android.conf
#### android
CROSS_PREFIX := arm-linux-androideabi-
OUTPUT := `pwd`/../output/android/
@@ -30,3 +30,9 @@ ANDROID_LDFLAGS := -L$(PLATFORM_LIB) \
MAKEDIR_OUTPUT := @mkdir -p $(OUTPUT)/include -p $(OUTPUT)/lib
android_CFLAGS := $(ANDROID_CFLAGS)
android_LDFLAGS := $(ANDROID_LDFLAGS)
CC := $(CROSS_PREFIX)gcc
CXX := $(CROSS_PREFIX)g++
LD := $(CROSS_PREFIX)ld
AR := $(CROSS_PREFIX)ar
STRIP := $(CROSS_PREFIX)strip

View File

@@ -1,7 +1,13 @@
#### arm.conf
#### arm
CROSS_PREFIX := arm-linux-gnueabihf-
OUTPUT := `pwd`/../output/arm/
TOOLCHAINS_ROOT := `$(CROSS_PREFIX)gcc -print-sysroot`
PLATFORM_LIB := $(TOOLCHAINS_ROOT)/usr/lib
MAKEDIR_OUTPUT := @mkdir -p $(OUTPUT)/lib -p $(OUTPUT)/include
CC := $(CROSS_PREFIX)gcc
CXX := $(CROSS_PREFIX)g++
LD := $(CROSS_PREFIX)ld
AR := $(CROSS_PREFIX)ar
STRIP := $(CROSS_PREFIX)strip

View File

@@ -92,7 +92,7 @@ cat > ${MAKEFILE} <<!
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := ${S}(shell pwd)/../build/
BUILD_DIR := ${S}(shell pwd)/../../build/
ARCH_INC := ${S}(BUILD_DIR)/${S}(ARCH).inc
COLOR_INC := ${S}(BUILD_DIR)/color.inc

View File

@@ -1,4 +1,7 @@
#color define
#### color define
#COLOR 0: disable color; 1: enable color
COLOR = 1
NC = "\033[0m"
BRED = "\033[1;31m"
@@ -18,15 +21,6 @@ CYAN = "\033[36m"
WHITE = "\033[37m"
#COLOR 0: disable color; 1: enable color
COLOR = 1
CC_V = $(CC_$(COLOR))
CXX_V = $(CXX_$(COLOR))
LD_V = $(LD_$(COLOR))
AR_V = $(AR_$(COLOR))
CP_V = $(CP_$(COLOR))
RM_V = $(RM_$(COLOR))
CC_0 = $(CC)
CC_1 = @printf '%b\t%b\t%b\n' $(CYAN)$(ARCH) CC $@$(NC); $(CC)
CXX_0 = $(CXX)
@@ -40,4 +34,9 @@ CP_1 = @printf '%b\t%b\n' $(BGREEN)$(ARCH) install$(NC); cp
RM_0 = rm
RM_1 = @printf '%b\t%b\n' $(BGREEN)$(ARCH) clean$(NC); rm
CC_V = $(CC_$(COLOR))
CXX_V = $(CXX_$(COLOR))
LD_V = $(LD_$(COLOR))
AR_V = $(AR_$(COLOR))
CP_V = $(CP_$(COLOR))
RM_V = $(RM_$(COLOR))

View File

@@ -1,7 +1,13 @@
#### x86.conf
#### linux
CROSS_PREFIX :=
#OUTPUT := `pwd`/../output/x86/
#OUTPUT := `pwd`/../output/linux/
TOOLCHAINS_ROOT := `$(CROSS_PREFIX)gcc -print-sysroot`
PLATFORM_LIB := $(TOOLCHAINS_ROOT)/usr/lib
MAKEDIR_OUTPUT :=
CC := $(CROSS_PREFIX)gcc
CXX := $(CROSS_PREFIX)g++
LD := $(CROSS_PREFIX)ld
AR := $(CROSS_PREFIX)ar
STRIP := $(CROSS_PREFIX)strip

View File

@@ -7,3 +7,9 @@ PLATFORM_LIB := $(TOOLCHAINS_ROOT)/usr/lib
MAKEDIR_OUTPUT :=
INC_DIR := /usr/x86_64-w64-mingw32/include
LIB_DIR := /usr/x86_64-w64-mingw32/lib
CC := $(CROSS_PREFIX)gcc
CXX := $(CROSS_PREFIX)g++
LD := $(CROSS_PREFIX)ld
AR := $(CROSS_PREFIX)ar
STRIP := $(CROSS_PREFIX)strip

View File

@@ -1,35 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -13,12 +13,6 @@ ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else

View File

@@ -48,6 +48,7 @@ OBJS_LIB = \
src/crypto.o \
src/debug.o \
src/json.o \
src/mdnsresponder.o \
src/pairing.o \
src/port.o \
src/query_params.o \

View File

@@ -12,18 +12,24 @@
*/
#if 0
#include <espressif/esp_common.h>
#include <espressif/esp_wifi.h>
#endif
#include <string.h>
#include <stdio.h>
#include <stdbool.h>
#if 0
#include <etstimer.h>
#include <esplibs/libmain.h>
#include <FreeRTOS.h>
#include <task.h>
#include <semphr.h>
#endif
#if 0
#include <lwip/err.h>
#include <lwip/sockets.h>
#include <lwip/sys.h>
@@ -34,12 +40,15 @@
#include <lwip/udp.h>
#include <lwip/igmp.h>
#include <lwip/netif.h>
#endif
#include "mdnsresponder.h"
#if 0
#if !LWIP_IGMP
#error "LWIP_IGMP needs to be defined in lwipopts.h"
#endif
#endif
// #define qDebugLog // Log activity generally
// #define qLogIncoming // Log all arriving multicast packets
@@ -55,6 +64,56 @@
# include "arch/bpstruct.h"
#endif
/* DNS field TYPE used for "Resource Records" */
#define DNS_RRTYPE_A 1 /* a host address */
#define DNS_RRTYPE_NS 2 /* an authoritative name server */
#define DNS_RRTYPE_MD 3 /* a mail destination (Obsolete - use MX) */
#define DNS_RRTYPE_MF 4 /* a mail forwarder (Obsolete - use MX) */
#define DNS_RRTYPE_CNAME 5 /* the canonical name for an alias */
#define DNS_RRTYPE_SOA 6 /* marks the start of a zone of authority */
#define DNS_RRTYPE_MB 7 /* a mailbox domain name (EXPERIMENTAL) */
#define DNS_RRTYPE_MG 8 /* a mail group member (EXPERIMENTAL) */
#define DNS_RRTYPE_MR 9 /* a mail rename domain name (EXPERIMENTAL) */
#define DNS_RRTYPE_NULL 10 /* a null RR (EXPERIMENTAL) */
#define DNS_RRTYPE_WKS 11 /* a well known service description */
#define DNS_RRTYPE_PTR 12 /* a domain name pointer */
#define DNS_RRTYPE_HINFO 13 /* host information */
#define DNS_RRTYPE_MINFO 14 /* mailbox or mail list information */
#define DNS_RRTYPE_MX 15 /* mail exchange */
#define DNS_RRTYPE_TXT 16 /* text strings */
#define DNS_RRTYPE_AAAA 28 /* IPv6 address */
#define DNS_RRTYPE_SRV 33 /* service location */
#define DNS_RRTYPE_ANY 255 /* any type */
/* DNS field CLASS used for "Resource Records" */
#define DNS_RRCLASS_IN 1 /* the Internet */
#define DNS_RRCLASS_CS 2 /* the CSNET class (Obsolete - used only for examples in some obsolete RFCs) */
#define DNS_RRCLASS_CH 3 /* the CHAOS class */
#define DNS_RRCLASS_HS 4 /* Hesiod [Dyer 87] */
#define DNS_RRCLASS_ANY 255 /* any class */
#define DNS_RRCLASS_FLUSH 0x800 /* Flush bit */
/* DNS protocol flags */
#define DNS_FLAG1_RESPONSE 0x80
#define DNS_FLAG1_OPCODE_STATUS 0x10
#define DNS_FLAG1_OPCODE_INVERSE 0x08
#define DNS_FLAG1_OPCODE_STANDARD 0x00
#define DNS_FLAG1_AUTHORATIVE 0x04
#define DNS_FLAG1_TRUNC 0x02
#define DNS_FLAG1_RD 0x01
#define DNS_FLAG2_RA 0x80
#define DNS_FLAG2_ERR_MASK 0x0f
#define DNS_FLAG2_ERR_NONE 0x00
#define DNS_FLAG2_ERR_NAME 0x03
#define DNS_HDR_GET_OPCODE(hdr) ((((hdr)->flags1) >> 3) & 0xF)
#define PACK_STRUCT_BEGIN
#define PACK_STRUCT_END
#define PACK_STRUCT_FIELD(x) x
#define PACK_STRUCT_STRUCT __attribute__((packed))
PACK_STRUCT_BEGIN
/** DNS message header */
struct mdns_hdr {
@@ -126,13 +185,31 @@ typedef struct mdns_rsrc {
// at rData[rKeySize]
} mdns_rsrc;
#define PP_HTONS(x) ((u16_t)((((x) & (u16_t)0x00ffU) << 8) | (((x) & (u16_t)0xff00U) >> 8)))
#define PP_NTOHS(x) PP_HTONS(x)
#define PP_HTONL(x) ((((x) & (u32_t)0x000000ffUL) << 24) | \
(((x) & (u32_t)0x0000ff00UL) << 8) | \
(((x) & (u32_t)0x00ff0000UL) >> 8) | \
(((x) & (u32_t)0xff000000UL) >> 24))
#define PP_NTOHL(x) PP_HTONL(x)
#define LWIP_MAKEU32(a,b,c,d) (((u32_t)((a) & 0xff) << 24) | \
((u32_t)((b) & 0xff) << 16) | \
((u32_t)((c) & 0xff) << 8) | \
(u32_t)((d) & 0xff))
#define IPADDR4_INIT(u32val) { u32val }
#define IPADDR4_INIT_BYTES(a,b,c,d) IPADDR4_INIT(PP_HTONL(LWIP_MAKEU32(a,b,c,d)))
#define DNS_MQUERY_IPV4_GROUP_INIT IPADDR4_INIT_BYTES(224,0,0,251)
static struct udp_pcb* gMDNS_pcb = NULL;
static const ip_addr_t gMulticastV4Addr = DNS_MQUERY_IPV4_GROUP_INIT;
#if LWIP_IPV6
#include "lwip/mld6.h"
static const ip_addr_t gMulticastV6Addr = DNS_MQUERY_IPV6_GROUP_INIT;
#endif
#if 0
static SemaphoreHandle_t gDictMutex = NULL;
#endif
static mdns_rsrc* gDictP = NULL; // RR database, linked list
//---------------------- Debug/logging utilities -------------------------
@@ -426,18 +503,24 @@ static u8_t* mdns_get_question(u8_t* hdrP, u8_t* qp, char* qStr, uint16_t* qClas
//---------------------------------------------------------------------------
static void mdns_announce_netif(struct netif *netif, const ip_addr_t *addr);
#if 0
static ETSTimer announce_timer;
static ETSTimer network_monitor_timer;
#endif
static bool network_down = true;
static ETSTimer network_monitor_timer;
void mdns_clear() {
#if 0
sdk_os_timer_disarm(&announce_timer);
sdk_os_timer_disarm(&network_monitor_timer);
#endif
#if 0
if (!xSemaphoreTake(gDictMutex, portMAX_DELAY))
return;
#endif
mdns_rsrc *rsrc = gDictP;
gDictP = NULL;
@@ -448,7 +531,9 @@ void mdns_clear() {
rsrc = next;
}
#if 0
xSemaphoreGive(gDictMutex);
#endif
}
@@ -495,11 +580,13 @@ static void mdns_add_response(const char* vKey, u16_t vType, u32_t ttl, const vo
memcpy(rsrcP->rData, vKey, keyLen);
memcpy(&rsrcP->rData[keyLen], dataP, vDataSize);
#if 0
if (xSemaphoreTake(gDictMutex, portMAX_DELAY)) {
rsrcP->rNext = gDictP;
gDictP = rsrcP;
xSemaphoreGive(gDictMutex);
}
#endif
#ifdef qDebugLog
printf("mDNS added RR '%s' %s, %d bytes\n", vKey, mdns_qrtype(vType), vDataSize);
@@ -555,7 +642,9 @@ void mdns_add_AAAA(const char* rKey, u32_t ttl, const ip6_addr_t *addr)
#endif
void mdns_announce() {
#if 0
struct netif *netif = sdk_system_get_netif(STATION_IF);
#endif
#if LWIP_IPV4
mdns_announce_netif(netif, &gMulticastV4Addr);
#endif
@@ -619,8 +708,10 @@ void mdns_add_facility( const char* instanceName, // Friendly name, need not b
if (sdk_wifi_station_get_connect_status() == STATION_GOT_IP)
mdns_announce();
#if 0
sdk_os_timer_arm(&announce_timer, ttl * 1000, 1);
sdk_os_timer_arm(&network_monitor_timer, HOMEKIT_MDNS_NETWORK_CHECK_PERIOD, 1);
#endif
}
static mdns_rsrc* mdns_match(const char* qstr, u16_t qType)
@@ -742,6 +833,7 @@ static void mdns_reply(const ip_addr_t *addr, struct mdns_hdr* hdrP)
qp = qBase + SIZEOF_DNS_HDR;
nquestions = htons(hdrP->numquestions);
#if 0
if (xSemaphoreTake(gDictMutex, portMAX_DELAY)) {
for (i = 0; i < nquestions; i++) {
@@ -809,6 +901,7 @@ static void mdns_reply(const ip_addr_t *addr, struct mdns_hdr* hdrP)
xSemaphoreGive(gDictMutex);
}
#endif
if (respLen > SIZEOF_DNS_HDR) {
if (extra) {
@@ -849,6 +942,7 @@ static void mdns_announce_netif(struct netif *netif, const ip_addr_t *addr)
int respLen = SIZEOF_DNS_HDR;
#if 0
if (xSemaphoreTake(gDictMutex, portMAX_DELAY)) {
mdns_rsrc *rsrcP = gDictP;
while (rsrcP) {
@@ -895,6 +989,7 @@ static void mdns_announce_netif(struct netif *netif, const ip_addr_t *addr)
xSemaphoreGive(gDictMutex);
}
#endif
if (respLen > SIZEOF_DNS_HDR) {
mdns_send_mcast(addr, mdns_response, respLen);
@@ -959,8 +1054,10 @@ static void mdns_check_network() {
// If we are in station mode and have an IP address, start a multicast UDP receive
void mdns_init()
{
#if 0
sdk_os_timer_setfn(&announce_timer, mdns_announce, NULL);
sdk_os_timer_setfn(&network_monitor_timer, mdns_check_network, NULL);
#endif
err_t err;
@@ -983,6 +1080,7 @@ void mdns_init()
}
}
#if 0
gDictMutex = xSemaphoreCreateBinary();
if (!gDictMutex) {
printf(">>> mDNS_init: failed to initialize mutex\n");
@@ -990,6 +1088,7 @@ void mdns_init()
return;
}
xSemaphoreGive(gDictMutex);
#endif
gMDNS_pcb = udp_new_ip_type(IPADDR_TYPE_ANY);
if (!gMDNS_pcb) {

View File

@@ -14,13 +14,44 @@
#ifndef __MDNSRESPONDER_H__
#define __MDNSRESPONDER_H__
#include <stdint.h>
#if 0
#include <lwip/ip_addr.h>
#endif
/* The default maximum reply size, increase as necessary. */
#ifndef MDNS_RESPONDER_REPLY_SIZE
#define MDNS_RESPONDER_REPLY_SIZE 1460
#endif
#define u8_t uint8_t
#define u16_t uint16_t
#define u32_t uint32_t
struct ip4_addr {
u32_t addr;
};
typedef struct ip4_addr ip4_addr_t;
struct ip6_addr {
u32_t addr[4];
#if LWIP_IPV6_SCOPES
u8_t zone;
#endif /* LWIP_IPV6_SCOPES */
};
/** IPv6 address */
typedef struct ip6_addr ip6_addr_t;
typedef struct ip_addr {
union {
ip6_addr_t ip6;
ip4_addr_t ip4;
} u_addr;
/** @ref lwip_ip_addr_type */
u8_t type;
} ip_addr_t;
// Starts the mDNS responder task, call first
void mdns_init();

View File

@@ -3247,7 +3247,7 @@ void homekit_server_close_clients(homekit_server_t *server) {
static void homekit_run_server(homekit_server_t *server)
{
DEBUG("Staring HTTP server");
INFO("Staring HTTP server");
struct sockaddr_in serv_addr;
server->listen_fd = socket(AF_INET, SOCK_STREAM, 0);
@@ -3515,7 +3515,10 @@ void homekit_server_init(homekit_server_config_t *config) {
}
#else
pthread_t tid;
pthread_create(&tid, NULL, homekit_server_task, server);
int ret = pthread_create(&tid, NULL, homekit_server_task, server);
if (ret) {
ERROR("pthread_create homekit_server_task failed!\n");
}
#endif
ERROR("homekit_server_init done");

View File

@@ -1,34 +1,22 @@
##############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -3,32 +3,20 @@
###############################################################################
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -13,12 +13,6 @@ ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../build/
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,32 +1,21 @@
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
########
LIBNAME = librbtree

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -3236,9 +3236,9 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
}
if (r->Link.protocol & RTMP_FEATURE_WRITE)
{
for (int i = 0; i < r->Link.nStreams; i++)
for (i = 0; i < r->Link.nStreams; i++)
SendReleaseStream(r, i);
for (int i = 0; i < r->Link.nStreams; i++)
for (i = 0; i < r->Link.nStreams; i++)
SendFCPublish(r, i);
}
else
@@ -3247,7 +3247,7 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
RTMP_SendCtrl(r, 3, 0, 300);
}
for (int i = 0; i < r->Link.nStreams; i++)
for (i = 0; i < r->Link.nStreams; i++)
RTMP_SendCreateStream(r);
if (!(r->Link.protocol & RTMP_FEATURE_WRITE))
@@ -3260,7 +3260,7 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
SendFCSubscribe(r, &r->Link.subscribepath);
else if (r->Link.lFlags & RTMP_LF_LIVE)
{
for (int i = 0; i < r->Link.nStreams; i++)
for (i = 0; i < r->Link.nStreams; i++)
SendFCSubscribe(r, &r->Link.streams[i].playpath);
}
}
@@ -4435,11 +4435,11 @@ RTMP_Serve(RTMP *r)
void
RTMP_Close(RTMP *r)
{
int i;
int i, idx;
if (RTMP_IsConnected(r))
{
for (int idx = 0; idx < r->Link.nStreams; idx++)
for (idx = 0; idx < r->Link.nStreams; idx++)
{
if (r->Link.streams[idx].id > 0)
{
@@ -4460,7 +4460,7 @@ RTMP_Close(RTMP *r)
RTMPSockBuf_Close(&r->m_sb);
}
for (int idx = 0; idx < r->Link.nStreams; idx++)
for (idx = 0; idx < r->Link.nStreams; idx++)
r->Link.streams[idx].id = -1;
r->m_stream_id = -1;
@@ -4537,7 +4537,7 @@ RTMP_Close(RTMP *r)
#if defined(CRYPTO) || defined(USE_ONLY_MD5)
if (!(r->Link.protocol & RTMP_FEATURE_WRITE) || (r->Link.pFlags & RTMP_PUB_CLEAN))
{
for (int idx = 0; idx < r->Link.nStreams; idx++)
for (idx = 0; idx < r->Link.nStreams; idx++)
{
free(r->Link.streams[idx].playpath.av_val);
r->Link.streams[idx].playpath.av_val = NULL;

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -59,7 +59,8 @@ static void item_free_hook(void *data)
static inline const uint8_t* h264_find_start_code(const uint8_t* ptr, const uint8_t* end)
{
for (const uint8_t *p = ptr; p + 3 < end; p++) {
const uint8_t *p;
for (p = ptr; p + 3 < end; p++) {
if (0x00 == p[0] && 0x00 == p[1] && (0x01 == p[2] || (0x00==p[2] && 0x01==p[3]))) {
return p;
}

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,38 +1,28 @@
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
########
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
LIBNAME = libsort
VERSION_SH = $(shell pwd)/version.sh $(LIBNAME)
TGT_LIB_H = $(LIBNAME).h
TGT_LIB_A = $(LIBNAME).a
TGT_LIB_SO = $(LIBNAME).so
TGT_LIB_SO_VER = $(TGT_LIB_SO).${VER}
TGT_UNIT_TEST = test_$(LIBNAME)
OBJS_LIB = $(LIBNAME).o
@@ -91,11 +81,12 @@ clean:
install:
$(MAKEDIR_OUTPUT)
if [ "$(MODE)" = "release" ];then $(STRIP) $(TGT); fi
$(CP_V) -r $(TGT_LIB_H) $(OUTPUT)/include
$(CP_V) -r $(TGT_LIB_A) $(OUTLIBPATH)/lib
$(CP_V) -r $(TGT_LIB_SO) $(OUTLIBPATH)/lib
$(CP_V) -r $(TGT_LIB_H) $(OUTPUT)/include/gear-lib
$(CP_V) -r $(TGT_LIB_A) $(OUTLIBPATH)/lib/gear-lib
$(CP_V) -r $(TGT_LIB_SO) $(OUTLIBPATH)/lib/gear-lib
uninstall:
cd $(OUTPUT)/include/ && rm -f $(TGT_LIB_H)
$(RM_V) -f $(OUTLIBPATH)/lib/$(TGT_LIB_A)
$(RM_V) -f $(OUTLIBPATH)/lib/$(TGT_LIB_SO)
cd $(OUTPUT)/include/gear-lib/ && rm -f $(TGT_LIB_H)
$(RM_V) -f $(OUTLIBPATH)/lib/gear-lib/$(TGT_LIB_A)
$(RM_V) -f $(OUTLIBPATH)/lib/gear-lib/$(TGT_LIB_SO)
$(RM_V) -f $(OUTLIBPATH)/lib/gear-lib/$(TGT_LIB_SO_VER)

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../build/
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -151,6 +151,8 @@ int thread_set_name(struct thread *t, const char *name)
}
strncpy(t->name, name, strlen(name));
return 0;
#else
return 0;
#endif
}

View File

@@ -22,6 +22,7 @@
#ifndef LIBTHREAD_H
#define LIBTHREAD_H
#include <gear-lib/libposix.h>
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
@@ -29,10 +30,6 @@
#define _GNU_SOURCE
#include <pthread.h>
#include <semaphore.h>
#elif defined (__WIN32__) || defined (WIN32) || defined (_MSC_VER)
#include "libposix4win.h"
#elif defined (FREERTOS)
#include "libposix4rtos/libposix4rtos.h"
#endif
#ifdef __cplusplus

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/win
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -3,32 +3,20 @@
###############################################################################
#ARCH: linux/pi/android/ios/
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object

View File

@@ -1,34 +1,22 @@
###############################################################################
# common
###############################################################################
#ARCH: linux/pi/android/ios/
#ARCH: linux/arm/android/ios/
ARCH ?= linux
CROSS_PREFIX ?=
OUTPUT ?= /usr/local
BUILD_DIR := $(shell pwd)/../../build/
ARCH_INC := $(BUILD_DIR)/$(ARCH).inc
COLOR_INC := $(BUILD_DIR)/color.inc
ifeq ($(ARCH_INC), $(wildcard $(ARCH_INC)))
include $(ARCH_INC)
endif
CC = $(CROSS_PREFIX)gcc
CXX = $(CROSS_PREFIX)g++
LD = $(CROSS_PREFIX)ld
AR = $(CROSS_PREFIX)ar
STRIP = $(CROSS_PREFIX)strip
ifeq ($(COLOR_INC), $(wildcard $(COLOR_INC)))
include $(COLOR_INC)
else
CC_V = $(CC)
CXX_V = $(CXX)
LD_V = $(LD)
AR_V = $(AR)
CP_V = $(CP)
RM_V = $(RM)
endif
CC_V ?= $(CC)
CXX_V ?= $(CXX)
LD_V ?= $(LD)
AR_V ?= $(AR)
CP_V ?= $(CP)
RM_V ?= $(RM)
###############################################################################
# target and object