diff options
author | Srikant Patnaik | 2015-01-13 15:08:24 +0530 |
---|---|---|
committer | Srikant Patnaik | 2015-01-13 15:08:24 +0530 |
commit | 97327692361306d1e6259021bc425e32832fdb50 (patch) | |
tree | fe9088f3248ec61e24f404f21b9793cb644b7f01 /drivers/net/wireless/bcmdhd.1.88.45.x.cn/include/epivers.sh | |
parent | 2d05a8f663478a44e088d122e0d62109bbc801d0 (diff) | |
parent | a3a8b90b61e21be3dde9101c4e86c881e0f06210 (diff) | |
download | FOSSEE-netbook-kernel-source-97327692361306d1e6259021bc425e32832fdb50.tar.gz FOSSEE-netbook-kernel-source-97327692361306d1e6259021bc425e32832fdb50.tar.bz2 FOSSEE-netbook-kernel-source-97327692361306d1e6259021bc425e32832fdb50.zip |
dirty fix to merging
Diffstat (limited to 'drivers/net/wireless/bcmdhd.1.88.45.x.cn/include/epivers.sh')
-rwxr-xr-x | drivers/net/wireless/bcmdhd.1.88.45.x.cn/include/epivers.sh | 332 |
1 files changed, 332 insertions, 0 deletions
diff --git a/drivers/net/wireless/bcmdhd.1.88.45.x.cn/include/epivers.sh b/drivers/net/wireless/bcmdhd.1.88.45.x.cn/include/epivers.sh new file mode 100755 index 00000000..4fb12cc5 --- /dev/null +++ b/drivers/net/wireless/bcmdhd.1.88.45.x.cn/include/epivers.sh @@ -0,0 +1,332 @@ +#! /bin/bash +# +# Create the epivers.h file from epivers.h.in +# +# Epivers.h version support svn/sparse/gclient workspaces +# +# $Id: epivers.sh 363310 2012-10-17 03:37:57Z $ +# +# Version generation works off of svn property HeadURL, if +# not set it keys its versions from current svn workspace or +# via .gclient_info deps contents +# +# GetCompVer.py return value and action needed +# i. trunk => use current date as version string +# ii. local => use SVNURL expanded by HeadURL keyword +# iii. <tag> => use it as as is +# (some components can override and say give me native ver) +# iv. empty => +# a) If TAG is specified use it +# a) If no TAG is specified use date +# +# Contact: Prakash Dhavali +# Contact: hnd-software-scm-list +# + +# If the version header file already exists, increment its build number. +# Otherwise, create a new file. +if [ -f epivers.h ]; then + + # If REUSE_VERSION is set, epivers iteration is not incremented + # This can be used precommit and continuous integration projects + if [ -n "$REUSE_VERSION" ]; then + echo "Previous epivers.h exists. Skipping version increment" + exit 0 + fi + + build=$(grep EPI_BUILD_NUMBER epivers.h | sed -e "s,.*BUILD_NUMBER[ ]*,,") + build=$(expr ${build} + 1) + echo build=${build} + sed -e "s,.*_BUILD_NUMBER.*,#define EPI_BUILD_NUMBER ${build}," \ + < epivers.h > epivers.h.new + cp -p epivers.h epivers.h.prev + mv epivers.h.new epivers.h + exit 0 + +else # epivers.h doesn't exist + + NULL="/dev/null" + svncmd="svn --non-interactive" + SRCBASE=${SRCBASE:-..} + + # Check for the in file, if not there we're in the wrong directory + if [ ! -f epivers.h.in ]; then + echo "ERROR: No epivers.h.in found" + exit 1 + fi + + # Following SVNURL should be expanded on checkout + SVNURL='$HeadURL: http://svn.sj.broadcom.com/svn/wlansvn/proj/tags/DHD/DHD_REL_1_88_45/src/include/epivers.sh $' + + # .gclient_info is created by gclient checkout/sync steps + # and contains "DEPS='<deps-url1> <deps-url2> ..." entry + GCLIENT_INFO=${GCLIENT_INFO:-${SRCBASE}/../.gclient_info} + + # In gclient, derive SVNURL from gclient_info file + if [ -s "${GCLIENT_INFO}" ]; then + source ${GCLIENT_INFO} + if [ -z "$DEPS" ]; then + echo "ERROR: DEPS entry missing in $GCLIENT_INFO" + exit 1 + else + for dep in $DEPS; do + SVNURL=${SVNURL:-$dep} + # Set SVNURL to first DEPS with /tags/ (if any) + if [[ $dep == */tags/* ]]; then + SVNURL=$dep + echo "INFO: Found gclient DEPS: $SVNURL" + break + fi + done + fi + elif [ -f "${GCLIENT_INFO}" ]; then + echo "ERROR: $GCLIENT_INFO exists, but it is empty" + exit 1 + fi + + # If SVNURL isn't expanded, extract it from svn info + if echo "$SVNURL" | egrep -vq 'HeadURL.*epivers.sh.*|http://.*/DEPS'; then + [ -n "$VERBOSE" ] && \ + echo "DBG: SVN URL ($SVNURL) wasn't expanded. Getting it from svn info" + SVNURL=$($svncmd info epivers.sh 2> $NULL | egrep "^URL:") + fi + + if echo "${TAG}" | grep -q "_BRANCH_\|_TWIG_"; then + branchtag=$TAG + else + branchtag="" + fi + + # If this is a tagged build, use the tag to supply the numbers + # Tag should be in the form + # <NAME>_REL_<MAJ>_<MINOR> + # or + # <NAME>_REL_<MAJ>_<MINOR>_RC<RCNUM> + # or + # <NAME>_REL_<MAJ>_<MINOR>_RC<RCNUM>_<INCREMENTAL> + + MERGERLOG=${SRCBASE}/../merger_sources.log + GETCOMPVER=getcompver.py + GETCOMPVER_NET=/projects/hnd_software/gallery/src/tools/build/$GETCOMPVER + GETCOMPVER_NET_WIN=Z:${GETCOMPVER_NET} + + # + # If there is a local copy GETCOMPVER use it ahead of network copy + # + if [ -s "$GETCOMPVER" ]; then + GETCOMPVER_PATH="$GETCOMPVER" + elif [ -s "${SRCBASE}/../src/tools/build/$GETCOMPVER" ]; then + GETCOMPVER_PATH="${SRCBASE}/../src/tools/build/$GETCOMPVER" + elif [ -s "$GETCOMPVER_NET" ]; then + GETCOMPVER_PATH="$GETCOMPVER_NET" + elif [ -s "$GETCOMPVER_NET_WIN" ]; then + GETCOMPVER_PATH="$GETCOMPVER_NET_WIN" + fi + + # + # If $GETCOMPVER isn't found, fetch it from SVN + # (this should be very rare) + # + if [ ! -s "$GETCOMPVER_PATH" ]; then + [ -n "$VERBOSE" ] && \ + echo "DBG: Fetching $GETCOMPVER from trunk" + + $svncmd export -q \ + ^/proj/trunk/src/tools/build/${GETCOMPVER} \ + ${GETCOMPVER} 2> $NULL + + GETCOMPVER_PATH=$GETCOMPVER + fi + + # Now get tag for src/include from automerger log + [ -n "$VERBOSE" ] && \ + echo "DBG: python $GETCOMPVER_PATH $MERGERLOG src/include" + + COMPTAG=$(python $GETCOMPVER_PATH $MERGERLOG src/include 2> $NULL | sed -e 's/[[:space:]]*//g') + + echo "DBG: Component Tag String Derived = $COMPTAG" + + # Process COMPTAG values + # Rule: + # If trunk is returned, use date as component tag + # If LOCAL_COMPONENT is returned, use SVN URL to get native tag + # If component is returned or empty, assign it to SVNTAG + # GetCompVer.py return value and action needed + # i. trunk => use current date as version string + # ii. local => use SVNURL expanded by HeadURL keyword + # iii. <tag> => use it as as is + # iv. empty => + # a) If TAG is specified use it + # a) If no TAG is specified use SVNURL from HeadURL + + SVNURL_VER=false + + if [ "$COMPTAG" == "" ]; then + SVNURL_VER=true + elif [ "$COMPTAG" == "LOCAL_COMPONENT" ]; then + SVNURL_VER=true + elif [ "$COMPTAG" == "trunk" ]; then + SVNTAG=$(date '+TRUNKCOMP_REL_%Y_%m_%d') + else + SVNTAG=$COMPTAG + fi + + # Given SVNURL path conventions or naming conventions, derive SVNTAG + # TO-DO: SVNTAG derivation logic can move to a central common API + # TO-DO: ${SRCBASE}/tools/build/svnurl2tag.sh + if [ "$SVNURL_VER" == "true" ]; then + case "${SVNURL}" in + *_BRANCH_*) + SVNTAG=$(echo $SVNURL | tr '/' '\n' | awk '/_BRANCH_/{printf "%s",$1}') + ;; + *_TWIG_*) + SVNTAG=$(echo $SVNURL | tr '/' '\n' | awk '/_TWIG_/{printf "%s",$1}') + ;; + *_REL_*) + SVNTAG=$(echo $SVNURL | tr '/' '\n' | awk '/_REL_/{printf "%s",$1}') + ;; + */branches/*) + SVNTAG=${SVNURL#*/branches/} + SVNTAG=${SVNTAG%%/*} + ;; + */proj/tags/*|*/deps/tags/*) + SVNTAG=${SVNURL#*/tags/*/} + SVNTAG=${SVNTAG%%/*} + ;; + */trunk/*) + SVNTAG=$(date '+TRUNKURL_REL_%Y_%m_%d') + ;; + *) + SVNTAG=$(date '+OTHER_REL_%Y_%m_%d') + ;; + esac + echo "DBG: Native Tag String Derived from URL: $SVNTAG" + else + echo "DBG: Native Tag String Derived: $SVNTAG" + fi + + TAG=${SVNTAG} + + # Normalize the branch name portion to "D11" in case it has underscores in it + branch_name=$(expr match "$TAG" '\(.*\)_\(BRANCH\|TWIG\|REL\)_.*') + TAG=$(echo $TAG | sed -e "s%^$branch_name%D11%") + + # Split the tag into an array on underbar or whitespace boundaries. + IFS="_ " tag=(${TAG}) + unset IFS + + tagged=1 + if [ ${#tag[*]} -eq 0 ]; then + tag=($(date '+TOT REL %Y %m %d 0 %y')); + # reconstruct a TAG from the date + TAG=${tag[0]}_${tag[1]}_${tag[2]}_${tag[3]}_${tag[4]}_${tag[5]} + tagged=0 + fi + + # Allow environment variable to override values. + # Missing values default to 0 + # + maj=${EPI_MAJOR_VERSION:-${tag[2]:-0}} + min=${EPI_MINOR_VERSION:-${tag[3]:-0}} + rcnum=${EPI_RC_NUMBER:-${tag[4]:-0}} + + # If increment field is 0, set it to date suffix if on TOB + if [ -n "$branchtag" ]; then + [ "${tag[5]:-0}" -eq 0 ] && echo "Using date suffix for incr" + today=${EPI_DATE_STR:-$(date '+%Y%m%d')} + incremental=${EPI_INCREMENTAL_NUMBER:-${tag[5]:-${today:-0}}} + else + incremental=${EPI_INCREMENTAL_NUMBER:-${tag[5]:-0}} + fi + origincr=${EPI_INCREMENTAL_NUMBER:-${tag[5]:-0}} + build=${EPI_BUILD_NUMBER:-0} + + # Strip 'RC' from front of rcnum if present + rcnum=${rcnum/#RC/} + + # strip leading zero off the number (otherwise they look like octal) + maj=${maj/#0/} + min=${min/#0/} + rcnum=${rcnum/#0/} + incremental=${incremental/#0/} + origincr=${origincr/#0/} + build=${build/#0/} + + # some numbers may now be null. replace with with zero. + maj=${maj:-0} + min=${min:-0} + + rcnum=${rcnum:-0} + incremental=${incremental:-0} + origincr=${origincr:-0} + build=${build:-0} + + if [ -n "$EPI_VERSION_NUM" ]; then + vernum=$EPI_VERSION_NUM + elif [ ${tagged} -eq 1 ]; then + # vernum is 32chars max + vernum=$(printf "0x%02x%02x%02x%02x" ${maj} ${min} ${rcnum} ${origincr}) + else + vernum=$(printf "0x00%02x%02x%02x" ${tag[7]} ${min} ${rcnum}) + fi + + # make sure the size of vernum is under 32 bits. + # Otherwise, truncate. The string will keep full information. + vernum=${vernum:0:10} + + # build the string directly from the tag, irrespective of its length + # remove the name , the tag type, then replace all _ by . + tag_ver_str=${TAG/${tag[0]}_} + tag_ver_str=${tag_ver_str/${tag[1]}_} + tag_ver_str=${tag_ver_str//_/.} + + # record tag type + tagtype= + + if [ "${tag[1]}" = "BRANCH" -o "${tag[1]}" = "TWIG" ]; then + tagtype=" (TOB)" + echo "tag type: $tagtype" + fi + + echo "Effective version string: $tag_ver_str" + + if [ "$(uname -s)" == "Darwin" ]; then + # Mac does not like 2-digit numbers so convert the number to single + # digit. 5.100 becomes 5.1 + if [ $min -gt 99 ]; then + minmac=$(expr $min / 100) + else + minmac=$min + fi + epi_ver_dev="${maj}.${minmac}.0" + else + epi_ver_dev="${maj}.${min}.${rcnum}" + fi + + # Finally get version control revision number of <SRCBASE> (if any) + vc_version_num=$($svncmd info ${SRCBASE} 2> $NULL | awk -F': ' '/^Last Changed Rev: /{printf "%s", $2}') + + # OK, go do it + echo "maj=${maj}, min=${min}, rc=${rcnum}, inc=${incremental}, build=${build}" + + sed \ + -e "s;@EPI_MAJOR_VERSION@;${maj};" \ + -e "s;@EPI_MINOR_VERSION@;${min};" \ + -e "s;@EPI_RC_NUMBER@;${rcnum};" \ + -e "s;@EPI_INCREMENTAL_NUMBER@;${incremental};" \ + -e "s;@EPI_BUILD_NUMBER@;${build};" \ + -e "s;@EPI_VERSION@;${maj}, ${min}, ${rcnum}, ${incremental};" \ + -e "s;@EPI_VERSION_STR@;${tag_ver_str};" \ + -e "s;@EPI_VERSION_TYPE@;${tagtype};" \ + -e "s;@VERSION_TYPE@;${tagtype};" \ + -e "s;@EPI_VERSION_NUM@;${vernum};" \ + -e "s;@EPI_VERSION_DEV@;${epi_ver_dev};" \ + -e "s;@VC_VERSION_NUM@;r${vc_version_num};" \ + < epivers.h.in > epivers.h + + # In shared workspaces across different platforms, ensure that + # windows generated file is made platform neutral without CRLF + if uname -s | egrep -i -q "cygwin"; then + dos2unix epivers.h > $NULL 2>&1 + fi +fi # epivers.h |