Fix for tgz script (whitespace broke it)
[blender.git] / build_files / utils / build_tgz.sh
1 #!/bin/sh
2
3 # This script can run from any location,
4 # output is created in the $CWD
5
6 BASE_DIR="$PWD"
7
8 blender_srcdir=$(dirname -- $0)/../..
9 blender_version=$(grep "BLENDER_VERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
10 blender_version_char=$(grep "BLENDER_VERSION_CHAR\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
11 blender_version_cycle=$(grep "BLENDER_VERSION_CYCLE\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
12 blender_subversion=$(grep "BLENDER_SUBVERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
13
14 if [ "$blender_version_cycle" = "release" ] ; then
15         VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)$blender_version_char
16 else
17         VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)_$blender_subversion
18 fi
19
20 MANIFEST="blender-$VERSION-manifest.txt"
21 TARBALL="blender-$VERSION.tar.gz"
22
23 cd "$blender_srcdir"
24
25 # Build master list
26 echo -n "Building manifest of files:  \"$BASE_DIR/$MANIFEST\" ..."
27 git ls-files > $BASE_DIR/$MANIFEST
28
29 # Enumerate submodules
30 for lcv in $(git submodule | awk '{print $2}'); do
31         cd "$BASE_DIR"
32         cd "$blender_srcdir/$lcv"
33         git ls-files | awk '$0="'"$lcv"/'"$0' >> $BASE_DIR/$MANIFEST
34         cd "$BASE_DIR"
35 done
36 echo "OK"
37
38
39 # Create the tarball
40 cd "$blender_srcdir"
41 echo -n "Creating archive:            \"$BASE_DIR/$TARBALL\" ..."
42 GZIP=-9 tar --transform "s,^,blender-$VERSION/,g" -zcf "$BASE_DIR/$TARBALL" -T "$BASE_DIR/$MANIFEST"
43 echo "OK"
44
45
46 # Create checksum file
47 cd "$BASE_DIR"
48 echo -n "Createing checksum:          \"$BASE_DIR/$TARBALL.md5sum\" ..."
49 md5sum "$TARBALL" > "$TARBALL.md5sum"
50 echo "OK"
51
52
53 # Cleanup
54 echo -n "Cleaning up ..."
55 rm "$BASE_DIR/$MANIFEST"
56 echo "OK"
57
58 echo "Done!"