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

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

【提交人】陈伟灿
parent c58400bb
...@@ -12,9 +12,10 @@ CFLAGS += -I$(TOP_DIR)/common/nanomsg/include ...@@ -12,9 +12,10 @@ CFLAGS += -I$(TOP_DIR)/common/nanomsg/include
CFLAGS += -I$(TOP_DIR)/common/ev/include CFLAGS += -I$(TOP_DIR)/common/ev/include
CFLAGS += -I$(TOP_DIR)/common/sqlite CFLAGS += -I$(TOP_DIR)/common/sqlite
LDFLAGS += -lapi_com -lkk_tsl LDFLAGS += -lapi_com -lkk_tsl
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -static -lnanomsg LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg
LDFLAGS += -L$(TOP_DIR)/common/ev -static -lev LDFLAGS += -L$(TOP_DIR)/common/ev -lev
LDFLAGS += -L$(TOP_DIR)/output/release/lib -static -lapi_com LDFLAGS += -L$(TOP_DIR)/output/release/lib -lapi_com
LDFLAGS += -liot_cjson -liot_mqtt -lsqlite -ldl -lm -lanl -lkk_hal 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_ #define _LOGDEF_H_
#include "zlog.h"
enum extern zlog_category_t *g_zlogC;
{
INFO,
WARNING,
ERROR,
ALL
};
#define DEBUG_LEVEL ERROR
#define INFO_PRINT(info,...) \ #define INFO_PRINT(info,...) zlog_info(g_zlogC, info, ##__VA_ARGS__)
do{ \ #define ERROR_PRINT(info,...) zlog_error(g_zlogC, info, ##__VA_ARGS__)
if(DEBUG_LEVEL>=INFO){ \ #define WARNING_PRINT(info,...) zlog_warn(g_zlogC, info, ##__VA_ARGS__)
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)
int kk_zlog_init(void);
#endif #endif
...@@ -63,6 +63,7 @@ int main(int argc, char* argv[]) ...@@ -63,6 +63,7 @@ int main(int argc, char* argv[])
int rc = 0; int rc = 0;
//KK_Data_Hdl_Init(); //KK_Data_Hdl_Init();
kk_zlog_init();
/*set the callback to get the device date to cloud*/ /*set the callback to get the device date to cloud*/
HAL_SetProduct_Type(PRODUCT_TPYE); HAL_SetProduct_Type(PRODUCT_TPYE);
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "kk_product.h" #include "kk_product.h"
#include "cJSON.h" #include "cJSON.h"
#include "com_api.h" #include "com_api.h"
#include "kcloud_log.h"
const char KK_URI_SYS_PREFIX[] = "/sys/%s/%s/#"; const char KK_URI_SYS_PREFIX[] = "/sys/%s/%s/#";
const char KK_URI_SYS_PREFIX_EX[] = "/sys/%s/%s/"; const char KK_URI_SYS_PREFIX_EX[] = "/sys/%s/%s/";
...@@ -53,12 +54,12 @@ int KK_Subdev_Subscribe(const cJSON *root) ...@@ -53,12 +54,12 @@ int KK_Subdev_Subscribe(const cJSON *root)
memset(url, 0, url_len); memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_OTA_PREFIX, productType->valuestring, productCode->valuestring); 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); res = KK_MQTT_SubTopic(url);
memset(url, 0, url_len); memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_SYS_PREFIX, productType->valuestring, productCode->valuestring); 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); res = KK_MQTT_SubTopic(url);
free(url); free(url);
return res; return res;
...@@ -70,7 +71,6 @@ static int _kk_client_subscribe(char productType[PRODUCT_TYPE_LEN], char product ...@@ -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 res = 0, index = 0, fail_count = 0;
int url_len = 0; int url_len = 0;
printf("[%s][%d] \n",__FUNCTION__,__LINE__);
url_len = strlen(KK_URI_OTA_PREFIX) + strlen(productType) + strlen(productCode) + 1; url_len = strlen(KK_URI_OTA_PREFIX) + strlen(productType) + strlen(productCode) + 1;
char *url = malloc(url_len); char *url = malloc(url_len);
if (url == NULL) { if (url == NULL) {
...@@ -79,13 +79,13 @@ static int _kk_client_subscribe(char productType[PRODUCT_TYPE_LEN], char product ...@@ -79,13 +79,13 @@ static int _kk_client_subscribe(char productType[PRODUCT_TYPE_LEN], char product
memset(url, 0, url_len); memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_OTA_PREFIX, productType, productCode); 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); res = KK_MQTT_SubTopic(url);
memset(url, 0, url_len); memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_SYS_PREFIX, productType, productCode); 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); res = KK_MQTT_SubTopic(url);
...@@ -225,7 +225,7 @@ char* KK_Make_Topic(cJSON *info) ...@@ -225,7 +225,7 @@ char* KK_Make_Topic(cJSON *info)
break; break;
} }
printf("[%s][%d] TOPIC:%s\n",__FUNCTION__,__LINE__,topic); INFO_PRINT("[%s][%d] TOPIC:%s\n",__FUNCTION__,__LINE__,topic);
cJSON_Delete(root); cJSON_Delete(root);
return topic; return topic;
errorreturn: errorreturn:
......
LIBA_TARGET := libzlog.a LIBSO_TARGET := libzlog.so
...@@ -12,5 +12,5 @@ CFLAGS += -I$(TOP_DIR)/common/zlog ...@@ -12,5 +12,5 @@ CFLAGS += -I$(TOP_DIR)/common/zlog
CFLAGS += -I$(TOP_DIR)/src/tsl/tsl_handle CFLAGS += -I$(TOP_DIR)/src/tsl/tsl_handle
LDFLAGS += -lapi_com -liot_cjson -lkk_tsl LDFLAGS += -lapi_com -liot_cjson -lkk_tsl
LDFLAGS += -lsqlite -ldl -lm LDFLAGS += -lsqlite -ldl -lm
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -static -lnanomsg -lanl LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg -lanl
LDFLAGS += -L$(TOP_DIR)/common/ev -static -lev -lkk_hal -lzlog LDFLAGS += -L$(TOP_DIR)/common/ev -lev -lkk_hal
\ No newline at end of file \ 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: ...@@ -70,6 +70,7 @@ one:
$(TOP_Q)$(foreach V,$(INFO_ENV_VARS),$(V)="$($(V))") \ $(TOP_Q)$(foreach V,$(INFO_ENV_VARS),$(V)="$($(V))") \
CFLAGS="$(subst ",,$(CFLAGS))" \ CFLAGS="$(subst ",,$(CFLAGS))" \
ALL_LIBS="$(strip $(foreach V,$(SUBDIRS),$(LIBA_TARGET_$(V))))" \ 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))))" \ ALL_PROG="$(strip $(foreach V,$(SUBDIRS) $(COMP_LIB_COMPONENTS),$(TARGET_$(V))))" \
COMP_LIB_OBJS="$(COMP_LIB_OBJS)" \ COMP_LIB_OBJS="$(COMP_LIB_OBJS)" \
bash $(RULE_DIR)/scripts/gen_one_makefile.sh bash $(RULE_DIR)/scripts/gen_one_makefile.sh
......
...@@ -59,6 +59,7 @@ SHOW_ENV_VARS := \ ...@@ -59,6 +59,7 @@ SHOW_ENV_VARS := \
LIBA_TARGET LIBSO_TARGET TARGET KMOD_TARGET \ LIBA_TARGET LIBSO_TARGET TARGET KMOD_TARGET \
SRCS OBJS LIB_SRCS LIB_OBJS LIB_HDRS_DIR LIB_HEADERS EXTRA_SRCS \ 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 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 \ INTERNAL_INCLUDES TOP_DIR PRJ_NAME PRJ_VERSION COMP_LIB_COMPONENTS \
IMPORT_DIR IMPORT_VDRDIR CONFIG_DIR PACKAGE_DIR EXTERNAL_INCLUDES \ IMPORT_DIR IMPORT_VDRDIR CONFIG_DIR PACKAGE_DIR EXTERNAL_INCLUDES \
CONFIG_LIB_EXPORT OBJCOPY_FLAGS CONFIG_VENDOR COVERAGE_PROGS COVERAGE_CMD \ CONFIG_LIB_EXPORT OBJCOPY_FLAGS CONFIG_VENDOR COVERAGE_PROGS COVERAGE_CMD \
......
...@@ -42,15 +42,8 @@ else ...@@ -42,15 +42,8 @@ else
) )
fi 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_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) ALL_BINS=$(for iter in ${ALL_PROG}; do echo -n "${OUTPUT_DIR}/usr/bin/${iter} "; done)
OUTPUT_D=$(basename ${OUTPUT_DIR}) OUTPUT_D=$(basename ${OUTPUT_DIR})
...@@ -78,7 +71,7 @@ ${CFLAGS} ...@@ -78,7 +71,7 @@ ${CFLAGS}
STAMP_LCOV := ${STAMP_LCOV} STAMP_LCOV := ${STAMP_LCOV}
.PHONY: all .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 \$(Q)cp -rf ${EXTRA_INSTALL_HDRS} ${OUTPUT_DIR}/usr/include 2>/dev/null || true
@rm -f *.gcda *.gcno \$\$(find ${RULE_DIR} -name "*.o") @rm -f *.gcda *.gcno \$\$(find ${RULE_DIR} -name "*.o")
...@@ -168,6 +161,31 @@ done) ...@@ -168,6 +161,31 @@ done)
EOB EOB
done 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 for i in ${ALL_PROG}; do
j=$(grep -w -m 1 "^SRCS_${i}" ${STAMP_BLD_VAR}|cut -d' ' -f3-) 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') 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 ...@@ -188,7 +206,7 @@ for i in ${ALL_PROG}; do
cat << EOB >> ${TARGET_FILE} cat << EOB >> ${TARGET_FILE}
${OUTPUT_DIR}/usr/bin/${i}: \\ ${OUTPUT_DIR}/usr/bin/${i}: \\
${EXTRA_SRCS} \\ ${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'; echo " ${m} \\"|sed 's!//*!/!g';
done) 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