正在显示
1 个修改的文件
包含
40 行增加
和
13 行删除
| 1 | +# generate the module info to Makefile | ||
| 2 | +# | ||
| 1 | # params: | 3 | # params: |
| 2 | -# $SRS_OBJS the objs directory. ie. objs | ||
| 3 | -# $SRS_MAKEFILE the makefile name. ie. Makefile | ||
| 4 | -# $MODULE_DIR the module dir. ie. src/os/linux | ||
| 5 | -# $MODULE_ID the id of module. ie. CORE | ||
| 6 | -# $MODULE_DEPENDS array, the denpend MODULEs id. ie. (CORE OS) | ||
| 7 | -# $ModuleLibIncs array, the depend 3rdpart library includes. ie. (objs/st-1.9/obj objs/libx264/obj) | ||
| 8 | -# $MODULE_FILES array, the head/cpp files of modules. ie. (public log) | ||
| 9 | -# | 4 | +# $SRS_OBJS the objs directory. ie. objs |
| 5 | +# $SRS_MAKEFILE the makefile name. ie. Makefile | ||
| 6 | +# | ||
| 7 | +# $MODULE_DIR the module dir. ie. src/os/linux | ||
| 8 | +# $MODULE_ID the id of module. ie. CORE | ||
| 9 | +# $MODULE_DEPENDS array, the denpend MODULEs id. ie. (CORE OS) | ||
| 10 | +# $ModuleLibIncs array, the depend 3rdpart library includes. ie. (objs/st-1.9/obj objs/libx264/obj) | ||
| 11 | +# $MODULE_FILES array, the head/cpp files of modules. ie. (public log) | ||
| 12 | +# | ||
| 10 | # returns: | 13 | # returns: |
| 11 | -# $MODULE_OBJS array, the objects of the modules. | 14 | +# $MODULE_OBJS array, the objects of the modules, used for link the binary |
| 12 | 15 | ||
| 13 | FILE=${SRS_OBJS}/${SRS_MAKEFILE} | 16 | FILE=${SRS_OBJS}/${SRS_MAKEFILE} |
| 17 | +echo "#####################################################################################" >> ${FILE} | ||
| 18 | +echo "# the ${MODULE_ID} module." >> ${FILE} | ||
| 19 | +echo "#####################################################################################" >> ${FILE} | ||
| 20 | +echo >> ${FILE} | ||
| 14 | 21 | ||
| 15 | # INCS | 22 | # INCS |
| 16 | -INCS_NAME="${MODULE_ID}_INCS" | ||
| 17 | -echo "# the ${MODULE_ID} module." >> ${FILE} | 23 | +echo "# INCS for ${MODULE_ID}, headers of module and its depends to compile" >> ${FILE} |
| 24 | +# | ||
| 25 | +# the public include files, for example: | ||
| 26 | +# CORE_MODULE_INCS = -Isrc/core | ||
| 18 | echo "${MODULE_ID}_MODULE_INCS = -I${MODULE_DIR} " >> ${FILE} | 27 | echo "${MODULE_ID}_MODULE_INCS = -I${MODULE_DIR} " >> ${FILE} |
| 28 | +# | ||
| 29 | +# the private include files, for example: | ||
| 30 | +# CORE_INCS = -Isrc/core -Iobjs/st -Iobjs -Iobjs/hp -Iobjs | ||
| 31 | +# MAIN_INCS = -Isrc/main $(CORE_MODULE_INCS) -Iobjs/st -Iobjs | ||
| 32 | +# where the public will be used for other modules which depends on it. | ||
| 33 | +INCS_NAME="${MODULE_ID}_INCS" | ||
| 34 | +# | ||
| 35 | +# current module header files | ||
| 19 | echo -n "${INCS_NAME} = -I${MODULE_DIR} " >> ${FILE} | 36 | echo -n "${INCS_NAME} = -I${MODULE_DIR} " >> ${FILE} |
| 37 | +# | ||
| 38 | +# depends module header files | ||
| 20 | for item in ${MODULE_DEPENDS[*]}; do | 39 | for item in ${MODULE_DEPENDS[*]}; do |
| 21 | DEP_INCS_NAME="${item}_INCS"do | 40 | DEP_INCS_NAME="${item}_INCS"do |
| 22 | DEP_INCS_NAME="${item}_MODULE_INCS" | 41 | DEP_INCS_NAME="${item}_MODULE_INCS" |
| 23 | echo -n "\$(${DEP_INCS_NAME}) " >> ${FILE} | 42 | echo -n "\$(${DEP_INCS_NAME}) " >> ${FILE} |
| 24 | done | 43 | done |
| 44 | +# | ||
| 45 | +# depends library header files | ||
| 25 | for item in ${ModuleLibIncs[*]}; do | 46 | for item in ${ModuleLibIncs[*]}; do |
| 26 | echo -n "-I${item} " >> ${FILE} | 47 | echo -n "-I${item} " >> ${FILE} |
| 27 | done | 48 | done |
| 28 | -echo "" >> ${FILE} | 49 | +echo "" >> ${FILE}; echo "" >> ${FILE} |
| 29 | 50 | ||
| 30 | # DEPS | 51 | # DEPS |
| 52 | +echo "# DEPS for ${MODULE_ID}, the depends of make schema" >> ${FILE} | ||
| 53 | +# depends on headers of self module, for example: | ||
| 54 | +# CORE_DEPS = src/core/srs_core.hpp | ||
| 31 | DEPS_NAME="${MODULE_ID}_DEPS" | 55 | DEPS_NAME="${MODULE_ID}_DEPS" |
| 32 | echo -n "${DEPS_NAME} = " >> ${FILE} | 56 | echo -n "${DEPS_NAME} = " >> ${FILE} |
| 33 | for item in ${MODULE_FILES[*]}; do | 57 | for item in ${MODULE_FILES[*]}; do |
| @@ -36,6 +60,8 @@ for item in ${MODULE_FILES[*]}; do | @@ -36,6 +60,8 @@ for item in ${MODULE_FILES[*]}; do | ||
| 36 | echo -n " ${HEADER_FILE}" >> ${FILE} | 60 | echo -n " ${HEADER_FILE}" >> ${FILE} |
| 37 | fi | 61 | fi |
| 38 | done | 62 | done |
| 63 | +# depends on other modules, for example: | ||
| 64 | +# MAIN_DEPS = $(CORE_DEPS) | ||
| 39 | for item in ${MODULE_DEPENDS[*]}; do | 65 | for item in ${MODULE_DEPENDS[*]}; do |
| 40 | DEP_DEPS_NAME="${item}_DEPS" | 66 | DEP_DEPS_NAME="${item}_DEPS" |
| 41 | echo -n " \$(${DEP_DEPS_NAME}) " >> ${FILE} | 67 | echo -n " \$(${DEP_DEPS_NAME}) " >> ${FILE} |
| @@ -43,6 +69,7 @@ done | @@ -43,6 +69,7 @@ done | ||
| 43 | echo "" >> ${FILE}; echo "" >> ${FILE} | 69 | echo "" >> ${FILE}; echo "" >> ${FILE} |
| 44 | 70 | ||
| 45 | # OBJ | 71 | # OBJ |
| 72 | +echo "# OBJ for ${MODULE_ID}, each object file" >> ${FILE} | ||
| 46 | MODULE_OBJS=() | 73 | MODULE_OBJS=() |
| 47 | for item in ${MODULE_FILES[*]}; do | 74 | for item in ${MODULE_FILES[*]}; do |
| 48 | CPP_FILE="${MODULE_DIR}/${item}.cpp" | 75 | CPP_FILE="${MODULE_DIR}/${item}.cpp" |
| @@ -56,7 +83,7 @@ for item in ${MODULE_FILES[*]}; do | @@ -56,7 +83,7 @@ for item in ${MODULE_FILES[*]}; do | ||
| 56 | done | 83 | done |
| 57 | echo "" >> ${FILE} | 84 | echo "" >> ${FILE} |
| 58 | 85 | ||
| 59 | -# Makefile | 86 | +# parent Makefile, to create module output dir before compile it. |
| 60 | echo " mkdir -p ${SRS_OBJS}/${MODULE_DIR}" >> ${SRS_MAKEFILE} | 87 | echo " mkdir -p ${SRS_OBJS}/${MODULE_DIR}" >> ${SRS_MAKEFILE} |
| 61 | 88 | ||
| 62 | echo -n "generate module ${MODULE_ID} ok"; echo '!'; | 89 | echo -n "generate module ${MODULE_ID} ok"; echo '!'; |
-
请 注册 或 登录 后发表评论