| 1 | #!/bin/sh | 
|---|
| 2 |  | 
|---|
| 3 | VERSION_FILE=$1 | 
|---|
| 4 | OUTPUT_FILE=$2 | 
|---|
| 5 |  | 
|---|
| 6 | if test -z "$VERSION_FILE";then | 
|---|
| 7 | VERSION_FILE="VERSION" | 
|---|
| 8 | fi | 
|---|
| 9 |  | 
|---|
| 10 | if test -z "$OUTPUT_FILE";then | 
|---|
| 11 | OUTPUT_FILE="version.h" | 
|---|
| 12 | fi | 
|---|
| 13 |  | 
|---|
| 14 | SOURCE_DIR=$3 | 
|---|
| 15 |  | 
|---|
| 16 | SAMBA_VERSION_MAJOR=`sed -n 's/^SAMBA_VERSION_MAJOR=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 17 | SAMBA_VERSION_MINOR=`sed -n 's/^SAMBA_VERSION_MINOR=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 18 | SAMBA_VERSION_RELEASE=`sed -n 's/^SAMBA_VERSION_RELEASE=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 19 |  | 
|---|
| 20 | SAMBA_VERSION_REVISION=`sed -n 's/^SAMBA_VERSION_REVISION=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 21 |  | 
|---|
| 22 | SAMBA_VERSION_TP_RELEASE=`sed -n 's/^SAMBA_VERSION_TP_RELEASE=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 23 | SAMBA_VERSION_ALPHA_RELEASE=`sed -n 's/^SAMBA_VERSION_ALPHA_RELEASE=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 24 | SAMBA_VERSION_PRE_RELEASE=`sed -n 's/^SAMBA_VERSION_PRE_RELEASE=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 25 | SAMBA_VERSION_RC_RELEASE=`sed -n 's/^SAMBA_VERSION_RC_RELEASE=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 26 |  | 
|---|
| 27 | SAMBA_VERSION_IS_GIT_SNAPSHOT=`sed -n 's/^SAMBA_VERSION_IS_GIT_SNAPSHOT=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 28 |  | 
|---|
| 29 | SAMBA_VERSION_RELEASE_NICKNAME=`sed -n 's/^SAMBA_VERSION_RELEASE_NICKNAME=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 30 |  | 
|---|
| 31 | SAMBA_VERSION_VENDOR_SUFFIX=`sed -n 's/^SAMBA_VERSION_VENDOR_SUFFIX=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 32 | SAMBA_VERSION_VENDOR_PATCH=`sed -n 's/^SAMBA_VERSION_VENDOR_PATCH=//p' $SOURCE_DIR$VERSION_FILE` | 
|---|
| 33 |  | 
|---|
| 34 | echo "/* Autogenerated by script/mkversion.sh */" > $OUTPUT_FILE | 
|---|
| 35 |  | 
|---|
| 36 | echo "#define SAMBA_VERSION_MAJOR ${SAMBA_VERSION_MAJOR}" >> $OUTPUT_FILE | 
|---|
| 37 | echo "#define SAMBA_VERSION_MINOR ${SAMBA_VERSION_MINOR}" >> $OUTPUT_FILE | 
|---|
| 38 | echo "#define SAMBA_VERSION_RELEASE ${SAMBA_VERSION_RELEASE}" >> $OUTPUT_FILE | 
|---|
| 39 |  | 
|---|
| 40 |  | 
|---|
| 41 | ## | 
|---|
| 42 | ## start with "3.0.22" | 
|---|
| 43 | ## | 
|---|
| 44 | SAMBA_VERSION_STRING="${SAMBA_VERSION_MAJOR}.${SAMBA_VERSION_MINOR}.${SAMBA_VERSION_RELEASE}" | 
|---|
| 45 |  | 
|---|
| 46 |  | 
|---|
| 47 | ## | 
|---|
| 48 | ## maybe add "3.0.22a" or "4.0.0tp11" or "4.0.0alpha1" or "3.0.22pre1" or "3.0.22rc1" | 
|---|
| 49 | ## We do not do pre or rc version on patch/letter releases | 
|---|
| 50 | ## | 
|---|
| 51 | if test -n "${SAMBA_VERSION_REVISION}";then | 
|---|
| 52 | SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING}${SAMBA_VERSION_REVISION}" | 
|---|
| 53 | echo "#define SAMBA_VERSION_REVISION \"${SAMBA_VERSION_REVISION}\"" >> $OUTPUT_FILE | 
|---|
| 54 | elif test -n "${SAMBA_VERSION_TP_RELEASE}";then | 
|---|
| 55 | SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING}tp${SAMBA_VERSION_TP_RELEASE}" | 
|---|
| 56 | echo "#define SAMBA_VERSION_TP_RELEASE ${SAMBA_VERSION_TP_RELEASE}" >> $OUTPUT_FILE | 
|---|
| 57 | elif test -n "${SAMBA_VERSION_ALPHA_RELEASE}";then | 
|---|
| 58 | SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING}alpha${SAMBA_VERSION_ALPHA_RELEASE}" | 
|---|
| 59 | echo "#define SAMBA_VERSION_ALPHA_RELEASE ${SAMBA_VERSION_ALPHA_RELEASE}" >> $OUTPUT_FILE | 
|---|
| 60 | elif test -n "${SAMBA_VERSION_PRE_RELEASE}";then | 
|---|
| 61 | ## maybe add "3.0.22pre2" | 
|---|
| 62 | SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING}pre${SAMBA_VERSION_PRE_RELEASE}" | 
|---|
| 63 | echo "#define SAMBA_VERSION_PRE_RELEASE ${SAMBA_VERSION_PRE_RELEASE}" >> $OUTPUT_FILE | 
|---|
| 64 | elif test -n "${SAMBA_VERSION_RC_RELEASE}";then | 
|---|
| 65 | SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING}rc${SAMBA_VERSION_RC_RELEASE}" | 
|---|
| 66 | echo "#define SAMBA_VERSION_RC_RELEASE ${SAMBA_VERSION_RC_RELEASE}" >> $OUTPUT_FILE | 
|---|
| 67 | fi | 
|---|
| 68 |  | 
|---|
| 69 | ## | 
|---|
| 70 | ## GIT commit details | 
|---|
| 71 | ## | 
|---|
| 72 | if test x"${SAMBA_VERSION_IS_GIT_SNAPSHOT}" = x"yes";then | 
|---|
| 73 | _SAVE_LANG=${LANG} | 
|---|
| 74 | LANG="C" | 
|---|
| 75 | HAVEVER="no" | 
|---|
| 76 |  | 
|---|
| 77 | if test x"${HAVEVER}" != x"yes" -a -d "${SOURCE_DIR}../.git";then | 
|---|
| 78 | HAVEGIT=no | 
|---|
| 79 | GIT_INFO=`git show --pretty=format:"%h%n%ct%n%H%n%cd" --stat HEAD 2>/dev/null` | 
|---|
| 80 | GIT_COMMIT_ABBREV=`printf %s "${GIT_INFO}" | sed -n 1p` | 
|---|
| 81 | GIT_COMMIT_TIME=`printf %s "${GIT_INFO}" | sed -n 2p` | 
|---|
| 82 | GIT_COMMIT_FULLREV=`printf %s "${GIT_INFO}" | sed -n 3p` | 
|---|
| 83 | GIT_COMMIT_DATE=`printf %s "${GIT_INFO}" | sed -n 4p` | 
|---|
| 84 | if test -n "${GIT_COMMIT_ABBREV}";then | 
|---|
| 85 | HAVEGIT=yes | 
|---|
| 86 | HAVEVER=yes | 
|---|
| 87 | fi | 
|---|
| 88 | fi | 
|---|
| 89 |  | 
|---|
| 90 | if test x"${HAVEGIT}" = x"yes";then | 
|---|
| 91 | SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING}-GIT-${GIT_COMMIT_ABBREV}" | 
|---|
| 92 |  | 
|---|
| 93 | echo "#define SAMBA_VERSION_GIT_COMMIT_ABBREV \"${GIT_COMMIT_ABBREV}\"" >> $OUTPUT_FILE | 
|---|
| 94 | echo "#define SAMBA_VERSION_GIT_COMMIT_TIME ${GIT_COMMIT_TIME}" >> $OUTPUT_FILE | 
|---|
| 95 | echo "#define SAMBA_VERSION_GIT_COMMIT_FULLREV \"${GIT_COMMIT_FULLREV}\"" >> $OUTPUT_FILE | 
|---|
| 96 | echo "#define SAMBA_VERSION_GIT_COMMIT_DATE \"${GIT_COMMIT_DATE}\"" >> $OUTPUT_FILE | 
|---|
| 97 | else | 
|---|
| 98 | SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING}-GIT-UNKNOWN" | 
|---|
| 99 | fi | 
|---|
| 100 | LANG=${_SAVE_LANG} | 
|---|
| 101 | fi | 
|---|
| 102 |  | 
|---|
| 103 | echo "#define SAMBA_VERSION_OFFICIAL_STRING \"${SAMBA_VERSION_STRING}\"" >> $OUTPUT_FILE | 
|---|
| 104 |  | 
|---|
| 105 | ## | 
|---|
| 106 | ## Add the vendor string if present | 
|---|
| 107 | ## | 
|---|
| 108 | if test -n "${SAMBA_VERSION_VENDOR_SUFFIX}";then | 
|---|
| 109 | echo "#define SAMBA_VERSION_VENDOR_SUFFIX ${SAMBA_VERSION_VENDOR_SUFFIX}" >> $OUTPUT_FILE | 
|---|
| 110 | SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING}-${SAMBA_VERSION_VENDOR_SUFFIX}" | 
|---|
| 111 | if test -n "${SAMBA_VERSION_VENDOR_PATCH}";then | 
|---|
| 112 | echo "#define SAMBA_VERSION_VENDOR_PATCH ${SAMBA_VERSION_VENDOR_PATCH}" >> $OUTPUT_FILE | 
|---|
| 113 | SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING}-${SAMBA_VERSION_VENDOR_PATCH}" | 
|---|
| 114 | fi | 
|---|
| 115 | fi | 
|---|
| 116 |  | 
|---|
| 117 | echo "/* Version for mkrelease.sh: " >> $OUTPUT_FILE | 
|---|
| 118 | echo "SAMBA_VERSION_STRING=$SAMBA_VERSION_STRING" >> $OUTPUT_FILE | 
|---|
| 119 | echo "*/" >> $OUTPUT_FILE | 
|---|
| 120 |  | 
|---|
| 121 | ## | 
|---|
| 122 | ## Add a release nickname | 
|---|
| 123 | ## | 
|---|
| 124 | if test -n "${SAMBA_VERSION_RELEASE_NICKNAME}";then | 
|---|
| 125 | echo "#define SAMBA_VERSION_RELEASE_NICKNAME ${SAMBA_VERSION_RELEASE_NICKNAME}" >> $OUTPUT_FILE | 
|---|
| 126 | SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING} (${SAMBA_VERSION_RELEASE_NICKNAME})" | 
|---|
| 127 | fi | 
|---|
| 128 |  | 
|---|
| 129 | echo "#define SAMBA_VERSION_STRING \"${SAMBA_VERSION_STRING}\"" >> $OUTPUT_FILE | 
|---|
| 130 |  | 
|---|
| 131 | echo "$0: '$OUTPUT_FILE' created for Samba(\"${SAMBA_VERSION_STRING}\")" | 
|---|
| 132 |  | 
|---|
| 133 | exit 0 | 
|---|