Merge branch 'master' of git.ardour.org:ardour/ardour
[ardour.git] / tools / linux_packaging / package
1 #!/bin/bash
2
3 # package
4
5 # This will collect up the x86 and x86_64 bundles created by build
6 # and package them together with an installer script.
7
8 BUILDTYPE=""
9 SINGLE_ARCH="F"
10 X86_BUNDLE_OK="F"
11 X86_64_BUNDLE_OK="F"
12
13
14 if [ $# -eq 0 ] ; then
15         echo ""  
16         echo "ERROR - Please specify build type"
17         echo "    --public"
18         echo "    --sae"
19         echo ""  
20         exit 1
21 fi
22
23 while [ $# -gt 0 ] ; do
24         echo "arg = $1"
25         case $1 in
26
27         #
28         # top level build targets
29         #
30
31         --sae)
32                 APPNAME=Ardour ;
33                 shift ;;
34         --mixbus)
35                 APPNAME=Mixbus ;
36                 shift ;;
37         --public)
38                 APPNAME=Ardour ;
39                 shift ;;
40
41         --singlearch) SINGLE_ARCH="T" ; shift ;;
42
43         *)
44                 #catch all for unknown arguments
45                 echo ""
46                 echo "!!! ERROR !!! - Unknown argument $1"
47                 echo ""
48                 exit 1
49                 ;;
50         esac
51 done
52
53
54 # Figure out the Build Type
55 if grep -q "DEBUG = True" ../../build/c4che/_cache.py; then
56         DEBUG="T"
57 else
58         DEBUG="F"
59 fi
60
61 if [ x$DEBUG = xT ]; then
62         BUILDTYPE="dbg"
63 fi
64
65 release_version=`grep -m 1 '[^A-Za-z_]LINUX_VERSION = ' ../../wscript | awk '{print $3}' | sed "s/'//g"`
66 revision=`grep -m 1 'revision =' ../../libs/ardour/revision.cc | cut -d'"' -f 2 | sed -e "s/$release_version-//"`
67
68 X86_BUNDLE="${APPNAME}_x86-${release_version}-${revision}"
69 X86_64_BUNDLE="${APPNAME}_x86_64-${release_version}-${revision}"
70
71 if [ ! -z ${BUILDTYPE} ]; then
72         X86_BUNDLE="${X86_BUNDLE}-${BUILDTYPE}"
73         X86_64_BUNDLE="${X86_64_BUNDLE}-${BUILDTYPE}"
74 fi 
75
76
77 if [ ! -e ${X86_BUNDLE}.tar.bz2 ] ; then
78         echo ""
79         echo "Can't locate x86 bundle file ${X86_BUNDLE}.tar.bz2"
80         echo ""
81 elif [ ! -e ${X86_BUNDLE}.size ] ; then
82         echo ""
83         echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size"
84         echo ""
85 else
86         X86_BUNDLE_OK="T"
87 fi
88
89 if [ ! -e ${X86_64_BUNDLE}.tar.bz2 ]; then
90         echo ""
91         echo "Can't locate x86_64 bundle file ${X86_64_BUNDLE}.tar.bz2"
92         echo ""
93 elif [ ! -e ${X86_64_BUNDLE}.size ]; then
94         echo ""
95         echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size"
96         echo ""
97 else
98         X86_64_BUNDLE_OK="T"
99 fi
100
101
102 if [ "${X86_BUNDLE_OK}" = "F" ] || [ "${X86_64_BUNDLE_OK}" = "F" ]; then
103         if [ "${X86_BUNDLE_OK}" = "${X86_64_BUNDLE_OK}" ]; then
104                 echo ""
105                 echo "!!! ERROR !!! - Can't locate bundle files ${X86_BUNDLE} or ${X86_64_BUNDLE}"
106                 echo ""
107                 exit 1
108         elif [ "${SINGLE_ARCH}" = "T" ]; then
109                 echo ""
110                 echo "!!! Warning !!! - A single architecture package has been selected"
111                 echo ""
112         else
113                 echo ""
114                 echo "!!! ERROR !!! - Missing bundle files."
115                 echo ""
116                 exit 1
117         fi
118 fi
119
120
121
122 if [ -z ${BUILDTYPE} ]; then
123         if [ "${SINGLE_ARCH}" = "T" ]; then
124                 if [ "${X86_BUNDLE_OK}" = "T" ]; then
125                         PACKAGE="${APPNAME}_32bit-${release_version}-${revision}"
126                 else
127                         PACKAGE="${APPNAME}_64bit-${release_version}-${revision}"
128                 fi
129         else
130                 PACKAGE="${APPNAME}-${release_version}-${revision}"
131         fi
132 else
133         if [ "${SINGLE_ARCH}" = "T" ]; then
134                 if [ "${X86_BUNDLE_OK}" = "T" ]; then
135                         PACKAGE="${APPNAME}_32bit-${release_version}-${revision}-${BUILDTYPE}"
136                 else
137                         PACKAGE="${APPNAME}_64bit-${release_version}-${revision}-${BUILDTYPE}"
138                 fi
139         else
140                 PACKAGE="${APPNAME}-${release_version}-${revision}-${BUILDTYPE}"
141         fi
142 fi 
143
144
145 echo "Cleaning up any old package files for this build"
146 #Get rid of any old packages of this same name.
147 rm -f ${PACKAGE}.tar.bz2
148 rm -rf ${PACKAGE}
149
150
151 echo "Creating new package dir..."
152 mkdir ${PACKAGE}
153
154 if [ "${X86_BUNDLE_OK}" = "T" ]; then
155         mv ${X86_BUNDLE}.tar.bz2 ${PACKAGE}
156         mv ${X86_BUNDLE}.size ${PACKAGE}/.${X86_BUNDLE}.size
157 fi
158
159 if [ "${X86_64_BUNDLE_OK}" = "T" ]; then
160         mv ${X86_64_BUNDLE}.tar.bz2 ${PACKAGE}
161         mv ${X86_64_BUNDLE}.size ${PACKAGE}/.${X86_64_BUNDLE}.size
162 fi
163
164 cp install.sh ${PACKAGE}
165 cp stage2.run ${PACKAGE}/.stage2.run
166 cp README ${PACKAGE}
167
168 echo "Creating tarball..."
169 tar -cf ${PACKAGE}.tar ${PACKAGE}
170
171 echo "Clean up"
172 rm -rf ${PACKAGE}
173
174 echo ""
175 echo "Done"
176 echo ""