winlin

add comments for depends

  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 '!';