Blame view

trunk/auto/libs.sh 1.8 KB
winlin authored
1 2 3
# generate the library for static link.
#
# params:
4 5
#     $SRS_OBJS the objs directory to store the Makefile. ie. ./objs
#     $SRS_OBJS_DIR the objs directory for Makefile. ie. objs
winlin authored
6 7 8 9 10 11 12 13
#     $SRS_MAKEFILE the makefile name. ie. Makefile
#
#     $BUILD_KEY a string indicates the build key for Makefile. ie. dump
#     $LIB_NAME the app name to output. ie. smart_server
#     $MODULE_OBJS array, the objects to compile the app.

FILE=${SRS_OBJS}/${SRS_MAKEFILE}
14
LIB_TARGET="${SRS_OBJS_DIR}/${LIB_NAME}"
winlin authored
15 16 17 18 19 20
LIB_TAGET_STATIC="${LIB_TARGET}.a"

echo "generate lib ${LIB_NAME} depends..."

echo "" >> ${FILE}
echo "# archive library ${LIB_TAGET_STATIC}" >> ${FILE}
winlin authored
21
echo "${BUILD_KEY}: ${LIB_TAGET_STATIC}" >> ${FILE}
winlin authored
22 23

# build depends
winlin authored
24
echo -n "${LIB_TAGET_STATIC}: " >> ${FILE}
winlin authored
25 26 27 28 29 30 31 32
for item in ${MODULE_OBJS[*]}; do
    FILE_NAME=`basename $item`
    FILE_NAME=${FILE_NAME%.*}
    
    if [ ! -f ${item} ]; then
        continue;
    fi
    
33
    OBJ_FILE=${SRS_OBJS_DIR}/$item
winlin authored
34 35 36 37 38 39
    OBJ_FILE="${OBJ_FILE%.*}.o"
    echo -n "${OBJ_FILE} " >> ${FILE}
done
echo "" >> ${FILE}

# build header file
40
echo -n "	@bash auto/generate_header.sh ${SRS_OBJS_DIR}" >> ${FILE}
winlin authored
41 42 43 44 45 46 47 48 49 50 51 52
echo "" >> ${FILE}

# archive librtmp.a
echo -n "	\$(AR) -rs ${LIB_TAGET_STATIC} " >> ${FILE}
for item in ${MODULE_OBJS[*]}; do
    FILE_NAME=`basename $item`
    FILE_NAME=${FILE_NAME%.*}
    
    if [ ! -f ${item} ]; then
        continue;
    fi
    
53
    OBJ_FILE=${SRS_OBJS_DIR}/$item
winlin authored
54 55 56 57 58
    OBJ_FILE="${OBJ_FILE%.*}.o"
    echo -n "${OBJ_FILE} " >> ${FILE}
done
echo "" >> ${FILE}
59
# parent Makefile, to create module output dir before compile it.
60 61
echo "	mkdir -p ${SRS_OBJS_DIR}/include" >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
echo "	mkdir -p ${SRS_OBJS_DIR}/lib" >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
62
winlin authored
63
echo -n "generate lib ${LIB_NAME} ok"; echo '!';