From 1cb2992808cb7e0b2b9dc5dacd6978c63286c4e3 Mon Sep 17 00:00:00 2001 From: winlin Date: Mon, 23 Mar 2015 17:49:45 +0800 Subject: [PATCH] refine build for modules, add defines. --- trunk/auto/modules.sh | 3 ++- trunk/configure | 2 ++ trunk/modules/readme.txt | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/trunk/auto/modules.sh b/trunk/auto/modules.sh index ed91b611e..1088e71b6 100755 --- a/trunk/auto/modules.sh +++ b/trunk/auto/modules.sh @@ -10,6 +10,7 @@ # $MODULE_DEPENDS array, the denpend MODULEs id. ie. (CORE OS) # $ModuleLibIncs array, the depend 3rdpart library includes. ie. (objs/st-1.9/obj objs/libx264/obj) # $MODULE_FILES array, the head/cpp files of modules. ie. (public log) +# $DEFINES string, the build macro defines. ie. "-DMY_SRS" # # returns: # $MODULE_OBJS array, the objects of the modules, used for link the binary @@ -78,7 +79,7 @@ for item in ${MODULE_FILES[*]}; do MODULE_OBJS="${MODULE_OBJS[@]} ${CPP_FILE}" if [ -f ${CPP_FILE} ]; then echo "${OBJ_FILE}: \$(${DEPS_NAME}) ${CPP_FILE} " >> ${FILE} - echo " \$(CXX) -c \$(CXXFLAGS) \$(${INCS_NAME})\\" >> ${FILE} + echo " \$(CXX) -c \$(CXXFLAGS) ${DEFINES} \$(${INCS_NAME})\\" >> ${FILE} echo " -o ${OBJ_FILE} ${CPP_FILE}" >> ${FILE} fi done diff --git a/trunk/configure b/trunk/configure index 9de822b99..14108d178 100755 --- a/trunk/configure +++ b/trunk/configure @@ -175,10 +175,12 @@ if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then "srs_app_kbps" "srs_app_heartbeat" "srs_app_empty" "srs_app_http_client" "srs_app_recv_thread" "srs_app_security" "srs_app_statistic" "srs_app_hds" "srs_app_mpegts_udp" "srs_app_rtsp" "srs_app_listener") + DEFINES="" # add each modules for app for SRS_MODULE in $SRS_MODULES; do . $SRS_MODULE/config MODULE_FILES+=($SRS_MODULE_APP) + DEFINES="${DEFINES} ${SRS_MODULE_DEFINES}" done APP_INCS="src/app"; MODULE_DIR=${APP_INCS} . auto/modules.sh APP_OBJS="${MODULE_OBJS[@]}" diff --git a/trunk/modules/readme.txt b/trunk/modules/readme.txt index 18be774ed..dd2f9b4e5 100644 --- a/trunk/modules/readme.txt +++ b/trunk/modules/readme.txt @@ -7,5 +7,6 @@ SRS模块规则: 1. SRS_MODULE_NAME:模块名称,用来做Makefile的phony以及执行binary文件名。 2. SRS_MODULE_MAIN:模块的main函数所在的cpp文件,在src/main目录。 3. SRS_MODULE_APP:模块在src/app目录的源文件列表。 +4. SRS_MODULE_DEFINES: 模块编译时的额外宏定义。 winlin, 2015.3