Commit 8a8c252c authored by chen.weican's avatar chen.weican

【修改内容】增加支持动态库的编译

【提交人】陈伟灿
parent c58400bb
......@@ -12,9 +12,10 @@ CFLAGS += -I$(TOP_DIR)/common/nanomsg/include
CFLAGS += -I$(TOP_DIR)/common/ev/include
CFLAGS += -I$(TOP_DIR)/common/sqlite
LDFLAGS += -lapi_com -lkk_tsl
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -static -lnanomsg
LDFLAGS += -L$(TOP_DIR)/common/ev -static -lev
LDFLAGS += -L$(TOP_DIR)/output/release/lib -static -lapi_com
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg
LDFLAGS += -L$(TOP_DIR)/common/ev -lev
LDFLAGS += -L$(TOP_DIR)/output/release/lib -lapi_com
LDFLAGS += -liot_cjson -liot_mqtt -lsqlite -ldl -lm -lanl -lkk_hal
#include "kcloud_log.h"
zlog_category_t *g_zlogC;
int kk_zlog_init(void)
{
int rc;
rc = zlog_init("test.conf");
if (rc) {
printf("init failed\n");
return -1;
}
g_zlogC = zlog_get_category("my_kcloud");
if (!g_zlogC) {
printf("get cat fail\n");
zlog_fini();
return -2;
}
//zlog_info(c, "hello, zlog");
//zlog_debug(c, "debug hello, zlog");
//zlog_fini();
return 0;
}
#ifndef _LOGDEF_H_
#ifndef _LOGDEF_H_
#define _LOGDEF_H_
#include "zlog.h"
enum
{
INFO,
WARNING,
ERROR,
ALL
};
#define DEBUG_LEVEL ERROR
extern zlog_category_t *g_zlogC;
#define INFO_PRINT(info,...) \
do{ \
if(DEBUG_LEVEL>=INFO){ \
printf("Info %s,%s,%d:"info"",__FILE__,__FUNCTION__,__LINE__,##__VA_ARGS__);}\
}while(0)
#define WARNING_PRINT(warning,...) \
do{ \
if(DEBUG_LEVEL>=WARNING){ \
printf("warning %s,%s,%d:"warning"",__FILE__,__FUNCTION__,__LINE__,##__VA_ARGS__);}\
}while(0)
#define ERROR_PRINT(error,...) \
do{ \
if(DEBUG_LEVEL>=ERROR){ \
printf("error %s,%s,%d:"error"",__FILE__,__FUNCTION__,__LINE__,##__VA_ARGS__);}\
}while(0)
#define INFO_PRINT(info,...) zlog_info(g_zlogC, info, ##__VA_ARGS__)
#define ERROR_PRINT(info,...) zlog_error(g_zlogC, info, ##__VA_ARGS__)
#define WARNING_PRINT(info,...) zlog_warn(g_zlogC, info, ##__VA_ARGS__)
int kk_zlog_init(void);
#endif
......@@ -63,6 +63,7 @@ int main(int argc, char* argv[])
int rc = 0;
//KK_Data_Hdl_Init();
kk_zlog_init();
/*set the callback to get the device date to cloud*/
HAL_SetProduct_Type(PRODUCT_TPYE);
......
......@@ -5,6 +5,7 @@
#include "kk_product.h"
#include "cJSON.h"
#include "com_api.h"
#include "kcloud_log.h"
const char KK_URI_SYS_PREFIX[] = "/sys/%s/%s/#";
const char KK_URI_SYS_PREFIX_EX[] = "/sys/%s/%s/";
......@@ -53,12 +54,12 @@ int KK_Subdev_Subscribe(const cJSON *root)
memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_OTA_PREFIX, productType->valuestring, productCode->valuestring);
printf("ota [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
INFO_PRINT("ota [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
res = KK_MQTT_SubTopic(url);
memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_SYS_PREFIX, productType->valuestring, productCode->valuestring);
printf("sys [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
INFO_PRINT("sys [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
res = KK_MQTT_SubTopic(url);
free(url);
return res;
......@@ -70,7 +71,6 @@ static int _kk_client_subscribe(char productType[PRODUCT_TYPE_LEN], char product
int res = 0, index = 0, fail_count = 0;
int url_len = 0;
printf("[%s][%d] \n",__FUNCTION__,__LINE__);
url_len = strlen(KK_URI_OTA_PREFIX) + strlen(productType) + strlen(productCode) + 1;
char *url = malloc(url_len);
if (url == NULL) {
......@@ -79,13 +79,13 @@ static int _kk_client_subscribe(char productType[PRODUCT_TYPE_LEN], char product
memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_OTA_PREFIX, productType, productCode);
printf("ota [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
INFO_PRINT("ota [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
res = KK_MQTT_SubTopic(url);
memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_SYS_PREFIX, productType, productCode);
printf("sys [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
INFO_PRINT("sys [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
res = KK_MQTT_SubTopic(url);
......@@ -225,7 +225,7 @@ char* KK_Make_Topic(cJSON *info)
break;
}
printf("[%s][%d] TOPIC:%s\n",__FUNCTION__,__LINE__,topic);
INFO_PRINT("[%s][%d] TOPIC:%s\n",__FUNCTION__,__LINE__,topic);
cJSON_Delete(root);
return topic;
errorreturn:
......
LIBA_TARGET := libzlog.a
LIBSO_TARGET := libzlog.so
......@@ -12,5 +12,5 @@ CFLAGS += -I$(TOP_DIR)/common/zlog
CFLAGS += -I$(TOP_DIR)/src/tsl/tsl_handle
LDFLAGS += -lapi_com -liot_cjson -lkk_tsl
LDFLAGS += -lsqlite -ldl -lm
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -static -lnanomsg -lanl
LDFLAGS += -L$(TOP_DIR)/common/ev -static -lev -lkk_hal -lzlog
\ No newline at end of file
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg -lanl
LDFLAGS += -L$(TOP_DIR)/common/ev -lev -lkk_hal
\ No newline at end of file
[global]
strict init = true
buffer min = 1024
buffer max = 2MB
rotate lock file = /tmp/zlog.lock
default format = "%d.%us %-6V (%c:%F:%L) - %m%n"
file perms = 600
[levels]
TRACE = 10
CRIT = 130, LOG_CRIT
[formats]
simple = "%m%n"
normal = "%d %m%n"
[rules]
my_.INFO >stdout; normal
*.* "/home/kk/share/%c.log", 1MB*2; normal
......@@ -70,6 +70,7 @@ one:
$(TOP_Q)$(foreach V,$(INFO_ENV_VARS),$(V)="$($(V))") \
CFLAGS="$(subst ",,$(CFLAGS))" \
ALL_LIBS="$(strip $(foreach V,$(SUBDIRS),$(LIBA_TARGET_$(V))))" \
ALL_LIBSO="$(strip $(foreach V,$(SUBDIRS),$(LIBSO_TARGET_$(V))))" \
ALL_PROG="$(strip $(foreach V,$(SUBDIRS) $(COMP_LIB_COMPONENTS),$(TARGET_$(V))))" \
COMP_LIB_OBJS="$(COMP_LIB_OBJS)" \
bash $(RULE_DIR)/scripts/gen_one_makefile.sh
......
......@@ -59,6 +59,7 @@ SHOW_ENV_VARS := \
LIBA_TARGET LIBSO_TARGET TARGET KMOD_TARGET \
SRCS OBJS LIB_SRCS LIB_OBJS LIB_HDRS_DIR LIB_HEADERS EXTRA_SRCS \
$(foreach M,$(LIBA_TARGET),LIB_SRCS_$(subst .a,,$(subst lib,,$(M)))) \
$(foreach N,$(LIBSO_TARGET),LIB_SRCS_$(subst .so,,$(subst lib,,$(N)))) \
INTERNAL_INCLUDES TOP_DIR PRJ_NAME PRJ_VERSION COMP_LIB_COMPONENTS \
IMPORT_DIR IMPORT_VDRDIR CONFIG_DIR PACKAGE_DIR EXTERNAL_INCLUDES \
CONFIG_LIB_EXPORT OBJCOPY_FLAGS CONFIG_VENDOR COVERAGE_PROGS COVERAGE_CMD \
......
......@@ -42,15 +42,8 @@ else
)
fi
ETC_OBJS=$(
for i in ${ALL_LIBS}; do
j=$(grep "${i}$" ${STAMP_BLD_VAR} | cut -d' ' -f1 | sed 's|LIBA_TARGET_|LIB_OBJS_|g')
k=$(grep "${j}" ${STAMP_BLD_VAR} | cut -d' ' -f3-)
for l in ${k}; do
echo "${j//LIB_OBJS_/}/${l}"
done
done)
ALL_LIBS=$(for iter in ${ALL_LIBS}; do echo -n "${OUTPUT_DIR}/usr/lib/${iter} "; done)
ALL_LIBSO=$(for iter in ${ALL_LIBSO}; do echo -n "${OUTPUT_DIR}/usr/lib/${iter} "; done)
ALL_BINS=$(for iter in ${ALL_PROG}; do echo -n "${OUTPUT_DIR}/usr/bin/${iter} "; done)
OUTPUT_D=$(basename ${OUTPUT_DIR})
......@@ -78,7 +71,7 @@ ${CFLAGS}
STAMP_LCOV := ${STAMP_LCOV}
.PHONY: all
all: ${OUTPUT_DIR}/usr/lib/${COMP_LIB} ${ALL_LIBS} ${ALL_BINS}
all: ${OUTPUT_DIR}/usr/lib/${COMP_LIB} ${ALL_LIBS} ${ALL_LIBSO} ${ALL_BINS}
\$(Q)cp -rf ${EXTRA_INSTALL_HDRS} ${OUTPUT_DIR}/usr/include 2>/dev/null || true
@rm -f *.gcda *.gcno \$\$(find ${RULE_DIR} -name "*.o")
......@@ -168,6 +161,31 @@ done)
EOB
done
for i in ${ALL_LIBSO}; do
n=$(basename ${i})
j=$(grep "${n}$" ${STAMP_BLD_VAR}|cut -d' ' -f1|sed 's:LIBSO_TARGET_::1')
k=$(echo 'LIB_OBJS_'"${j}")
k=$(grep -m 1 "^${k}" ${STAMP_BLD_VAR}|cut -d' ' -f3-)
k=$(for l in ${k}; do echo -n "${OUTPUT_DIR}/${j}/${l} "; done)
for m in ${k}; do
echo "sinclude ${m/.o/.d}" >> ${TARGET_FILE}
done
echo "" >> ${TARGET_FILE}
cat << EOB >> ${TARGET_FILE}
${OUTPUT_DIR}/usr/lib/${n}: \\
$(for m in ${k}; do
echo " ${m} \\";
done)
\$(Q)mkdir -p \$\$(dirname \$@)
\$(Q)\$(call Brief_Log,"SO",\$\$(basename \$@),"...")
\$(Q)${CC} -fPIC -shared \$^ -o \$@
EOB
done
for i in ${ALL_PROG}; do
j=$(grep -w -m 1 "^SRCS_${i}" ${STAMP_BLD_VAR}|cut -d' ' -f3-)
k=$(grep -w -m 1 "TARGET_.* = .*${i}" ${STAMP_BLD_VAR}|cut -d' ' -f1|sed 's:TARGET_::1')
......@@ -188,7 +206,7 @@ for i in ${ALL_PROG}; do
cat << EOB >> ${TARGET_FILE}
${OUTPUT_DIR}/usr/bin/${i}: \\
${EXTRA_SRCS} \\
$(for m in ${j} ${OUTPUT_DIR}/usr/lib/${COMP_LIB} ${ALL_LIBS}; do
$(for m in ${j} ${OUTPUT_DIR}/usr/lib/${COMP_LIB} ${ALL_LIBS} ${ALL_LIBSO}; do
echo " ${m} \\"|sed 's!//*!/!g';
done)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment