merge fix for tempo branch
[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 MAKESELF=""
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         --makeself)
43                 MAKESELF=`which makeself`;
44                 shift ;;
45
46         --singlearch) SINGLE_ARCH="T" ; shift ;;
47
48         *)
49                 #catch all for unknown arguments
50                 echo ""
51                 echo "!!! ERROR !!! - Unknown argument $1"
52                 echo ""
53                 exit 1
54                 ;;
55         esac
56 done
57
58 . ../define_versions.sh
59
60 if [ x$DEBUG = xT ]; then
61         BUILDTYPE="dbg"
62 fi
63
64 X86_BUNDLE="${APPNAME}_x86-${release_version}"
65 X86_64_BUNDLE="${APPNAME}_x86_64-${release_version}"
66
67 if [ ! -z ${BUILDTYPE} ]; then
68         X86_BUNDLE="${X86_BUNDLE}-${BUILDTYPE}"
69         X86_64_BUNDLE="${X86_64_BUNDLE}-${BUILDTYPE}"
70 fi 
71
72 if [ ! -e ${X86_BUNDLE}.tar.bz2 ] ; then
73         echo ""
74         echo "Can't locate x86 bundle file ${X86_BUNDLE}.tar.bz2"
75         echo ""
76 elif [ ! -e ${X86_BUNDLE}.size ] ; then
77         echo ""
78         echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size"
79         echo ""
80 else
81         X86_BUNDLE_OK="T"
82 fi
83
84 if [ ! -e ${X86_64_BUNDLE}.tar.bz2 ]; then
85         echo ""
86         echo "Can't locate x86_64 bundle file ${X86_64_BUNDLE}.tar.bz2"
87         echo ""
88 elif [ ! -e ${X86_64_BUNDLE}.size ]; then
89         echo ""
90         echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size"
91         echo ""
92 else
93         X86_64_BUNDLE_OK="T"
94 fi
95
96
97 if [ "${X86_BUNDLE_OK}" = "F" ] || [ "${X86_64_BUNDLE_OK}" = "F" ]; then
98         if [ "${X86_BUNDLE_OK}" = "${X86_64_BUNDLE_OK}" ]; then
99                 echo ""
100                 echo "!!! ERROR !!! - Can't locate bundle files ${X86_BUNDLE} or ${X86_64_BUNDLE}"
101                 echo ""
102                 exit 1
103         elif [ "${SINGLE_ARCH}" = "T" ]; then
104                 echo ""
105                 echo "!!! Warning !!! - A single architecture package has been selected"
106                 echo ""
107         else
108                 echo ""
109                 echo "!!! ERROR !!! - Missing bundle files."
110                 echo ""
111                 exit 1
112         fi
113 fi
114
115
116
117 if [ -z ${BUILDTYPE} ]; then
118         if [ "${SINGLE_ARCH}" = "T" ]; then
119                 if [ "${X86_BUNDLE_OK}" = "T" ]; then
120                         PACKAGE="${APPNAME}_32bit-${release_version}"
121                 else
122                         PACKAGE="${APPNAME}_64bit-${release_version}"
123                 fi
124         else
125                 PACKAGE="${APPNAME}-${release_version}"
126         fi
127 else
128         if [ "${SINGLE_ARCH}" = "T" ]; then
129                 if [ "${X86_BUNDLE_OK}" = "T" ]; then
130                         PACKAGE="${APPNAME}_32bit-${release_version}-${BUILDTYPE}"
131                 else
132                         PACKAGE="${APPNAME}_64bit-${release_version}-${BUILDTYPE}"
133                 fi
134         else
135                 PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}"
136         fi
137 fi 
138
139
140 echo "Cleaning up any old package files for this build"
141 #Get rid of any old packages of this same name.
142 rm -f ${PACKAGE}.tar.bz2
143 rm -rf ${PACKAGE}
144
145
146 echo "Creating new package dir..."
147 mkdir ${PACKAGE}
148
149 if [ "${X86_BUNDLE_OK}" = "T" ]; then
150         mv ${X86_BUNDLE}.tar.bz2 ${PACKAGE}
151         mv ${X86_BUNDLE}.size ${PACKAGE}/.${X86_BUNDLE}.size
152 fi
153
154 if [ "${X86_64_BUNDLE_OK}" = "T" ]; then
155         mv ${X86_64_BUNDLE}.tar.bz2 ${PACKAGE}
156         mv ${X86_64_BUNDLE}.size ${PACKAGE}/.${X86_64_BUNDLE}.size
157 fi
158
159 cp install.sh ${PACKAGE}
160 cp stage2.run ${PACKAGE}/.stage2.run
161 cp README ${PACKAGE}
162
163 if test -n "$MAKESELF"; then
164         echo "Creating self-extracting installer"
165         $MAKESELF --nocomp ${PACKAGE}/ ${PACKAGE}.run ${APPNAME} ./install.sh
166 else
167         echo "Creating tarball..."
168         tar -cf ${PACKAGE}.tar ${PACKAGE}
169 fi
170
171 echo "Clean up"
172 rm -rf ${PACKAGE}
173 rm -f stage2.run
174
175 echo ""
176 echo "Done"
177 echo ""