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