#!/bin/sh _int_module="ffmpegsource" _glb_home=$(kread wrk_dir ${_config_}) _glb_cwd=$(pwd) _mod_conf=${_glb_home}/$(kread conf_${_int_module} ${_config_}) _mod_home=${_glb_home}/$(kread work_dir ${_mod_conf}) cd ${_mod_home} function ffmpegsource_default { echo "[FFMPEGSOURCE] commands:" } function ffmpegsource_update_source { local _src=$(kread sources ${_mod_conf}) local _updater=$(kread update_source_script ${_config_}) ${_updater} ${_src} return $? } function ffmpegsource_update_work { local _src=$(kread sources ${_mod_conf}) [[ -d ./src ]] && rm -rf ./src cp -rfp ${_src} ./ mv "./$(basename $_src)" "./src" return $? } function ffmpegsource_test { return } function ffmpegsource_update_work_if_old { local _src_dir="$(kread sources ${_mod_conf})" local _dst_dir="${_mod_home}/src" [[ ! -d ${_src_dir} ]] && { wr_log "\"${_src_dir}\" not found..." return 1 } local _src_ver="$(get_src_ver ${_src_dir})" wr_log "SRC:[$_src_dir]" wr_log "SRC:[$_src_ver]" local _dst_ver="$(get_src_ver ${_dst_dir})" wr_log "DST:[$_dst_dir]" wr_log "DST:[$_dst_ver]" [[ ! "$_src_ver" = "$_dst_ver" ]] && { wr_log "Updating..." ${_int_module}_update_work return 0 } wr_log "Nothing to update." return $? } function ffmpegsource_cc_prepare { ${_int_module}_update_work cd src # return 0 local p_dir="${_mod_home}/$(kread patch_dir ${_mod_conf})" local pp="$(kread patches ${_mod_conf})" for i in ${pp}; do local _p_=$(kread "p_$i" ${_mod_conf}) wr_log "Use patch: ${p_dir}/$_p_ ${dryrun}" [[ -r ${p_dir}/$_p_ ]] && { patch --dry-run -u -l -p 1 -f -i "${p_dir}/$_p_" >/dev/null if [[ $? -gt 0 ]]; then wr_log "Error while patching [${p_dir}/$_p_]... Exit." exit 1 else patch -u -l -p 1 -f -i "${p_dir}/$_p_" fi } done cd ${_mod_home} [[ -d wrk ]] && rm -rf wrk mkdir wrk && cd wrk cd ../src autoreconf -if return 0 } function ffmpegsource_cc_config { wr_log "[${_int_module}_cc_config] begin" [[ -d wrk ]] && rm -rf wrk mkdir wrk && cd wrk _bits=${1:-"32"} source ${_my_dir_}/cc_set.sh wr_log "[${_int_module}_cc_config] _bits=${_bits}; _prx=${_prx}; _idir=${_idir}; _ldir=${_ldir}; _cf=${_cf}; _lf=${_lf}" [[ "x${_bits}" = "x32" ]] && _cross="i686-w64-mingw32" [[ "x${_bits}" = "x64" ]] && _cross="x86_64-w64-mingw32" CC="$_CC" \ CXX="$_CXX" \ LIBAV_LIBS="-lswscale -lavformat -lavcodec -lavutil -lm -lbz2 -lz -lpthread -lpsapi -ladvapi32 -lshell32" \ LIBAV_CFLAGS="-I${_idir}" \ CFLAGS="${_cf} -I${_idir} -Wno-deprecated-declarations" \ CXXFLAGS="${_cf} -I${_idir} -Wno-deprecated-declarations" \ LDFLAGS="${_lf} -L${_ldir}" \ ../src/configure \ --prefix=${_prx} \ --build="i686-w64-mingw32" \ --host=${_cross} \ --enable-static \ --disable-shared if [[ -f src/config/config.h ]]; then mv src/config/config.h src/config/config.h.original sed -e "s/#define WITH_AVRESAMPLE 1/\/* #define WITH_AVRESAMPLE 1 *\//" src/config/config.h.original >src/config/config.h fi #define WITH_AVRESAMPLE 1 wr_log "[${_int_module}_cc_config] done" return $? } function ffmpegsource_cc_make { wr_log "[${_int_module}_cc_make] begin" # cd wrk && make -j5 cd wrk && make -j1 wr_log "[${_int_module}_cc_make] done" return $? } function ffmpegsource_cc_install { wr_log "[${_int_module}_cc_install] begin" cd wrk && make install wr_log "[${_int_module}_cc_install] done" return $? } function ffmpegsource_cc_post_install { wr_log "[${_int_module}_cc_post_install] begin" _bits=${1:-"32"} source ${_my_dir_}/cc_set.sh local _dst_dir="${_mod_home}/src" local _dst_ver="$(get_src_ver ${_dst_dir})" # local _prx=$(kread "_CC_PREFIX_${_bits}" ${_config_}) local _tag_file=${_prx}/${_int_module}.tag mkdir -p `dirname ${_tag_file}` echo "FFMPEGSOURCE: ${_dst_ver}" >${_tag_file} wr_log "[${_int_module}_cc_post_install] done" return $? } function ffmpegsource_cc_clean { wr_log "[${_int_module}_cc_clean] begin" [[ -d wrk ]] && rm -rf wrk wr_log "[${_int_module}_cc_clean] done" return $? }