Add some lua scripts
[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 GCC5ABI="F"
13 MAKESELF=""
14 BUILD_ROOT=../../build
15
16 if [ $# -eq 0 ] ; then
17         echo ""  
18         echo "ERROR - Please specify build type"
19         echo "    --public"
20         echo "    --sae"
21         echo ""  
22         exit 1
23 fi
24
25 while [ $# -gt 0 ] ; do
26         echo "arg = $1"
27         case $1 in
28
29         #
30         # top level build targets
31         #
32
33         --sae)
34                 APPNAME=Ardour ;
35                 shift ;;
36         --mixbus)
37                 APPNAME=Mixbus ;
38                 shift ;;
39         --public)
40                 APPNAME=Ardour ;
41                 shift ;;
42
43         --makeself)
44                 MAKESELF=`which makeself`;
45                 shift ;;
46
47         --singlearch) SINGLE_ARCH="T" ; shift ;;
48
49         --gcc5abi) GCC5ABI="T" ; shift ;;
50
51         *)
52                 #catch all for unknown arguments
53                 echo ""
54                 echo "!!! ERROR !!! - Unknown argument $1"
55                 echo ""
56                 exit 1
57                 ;;
58         esac
59 done
60
61 . ../define_versions.sh
62
63 if [ x$DEBUG = xT ]; then
64         BUILDTYPE="dbg"
65 fi
66
67 X86_BUNDLE="${APPNAME}_x86-${release_version}"
68 X86_64_BUNDLE="${APPNAME}_x86_64-${release_version}"
69
70 if [ ! -z ${BUILDTYPE} ]; then
71         X86_BUNDLE="${X86_BUNDLE}-${BUILDTYPE}"
72         X86_64_BUNDLE="${X86_64_BUNDLE}-${BUILDTYPE}"
73 fi 
74
75 if [ ! -e ${X86_BUNDLE}.tar.bz2 ] ; then
76         echo ""
77         echo "Can't locate x86 bundle file ${X86_BUNDLE}.tar.bz2"
78         echo ""
79 elif [ ! -e ${X86_BUNDLE}.size ] ; then
80         echo ""
81         echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size"
82         echo ""
83 else
84         X86_BUNDLE_OK="T"
85 fi
86
87 if [ ! -e ${X86_64_BUNDLE}.tar.bz2 ]; then
88         echo ""
89         echo "Can't locate x86_64 bundle file ${X86_64_BUNDLE}.tar.bz2"
90         echo ""
91 elif [ ! -e ${X86_64_BUNDLE}.size ]; then
92         echo ""
93         echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size"
94         echo ""
95 else
96         X86_64_BUNDLE_OK="T"
97 fi
98
99
100 if [ "${X86_BUNDLE_OK}" = "F" ] || [ "${X86_64_BUNDLE_OK}" = "F" ]; then
101         if [ "${X86_BUNDLE_OK}" = "${X86_64_BUNDLE_OK}" ]; then
102                 echo ""
103                 echo "!!! ERROR !!! - Can't locate bundle files ${X86_BUNDLE} or ${X86_64_BUNDLE}"
104                 echo ""
105                 exit 1
106         elif [ "${SINGLE_ARCH}" = "T" ]; then
107                 echo ""
108                 echo "!!! Warning !!! - A single architecture package has been selected"
109                 echo ""
110         else
111                 echo ""
112                 echo "!!! ERROR !!! - Missing bundle files."
113                 echo ""
114                 exit 1
115         fi
116 fi
117
118
119
120 if [ -z ${BUILDTYPE} ]; then
121         if [ "${SINGLE_ARCH}" = "T" ]; then
122                 if [ "${X86_BUNDLE_OK}" = "T" ]; then
123                         PACKAGE="${APPNAME}_32bit-${release_version}"
124                 else
125                         PACKAGE="${APPNAME}_64bit-${release_version}"
126                 fi
127         else
128                 PACKAGE="${APPNAME}-${release_version}"
129         fi
130 else
131         if [ "${SINGLE_ARCH}" = "T" ]; then
132                 if [ "${X86_BUNDLE_OK}" = "T" ]; then
133                         PACKAGE="${APPNAME}_32bit-${release_version}-${BUILDTYPE}"
134                 else
135                         PACKAGE="${APPNAME}_64bit-${release_version}-${BUILDTYPE}"
136                 fi
137         else
138                 PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}"
139         fi
140 fi 
141
142 if [ "$GCC5ABI" = "T" ]; then
143         PACKAGE="${PACKAGE}-gcc5"
144 fi
145
146 echo "Cleaning up any old package files for this build"
147 #Get rid of any old packages of this same name.
148 rm -f ${PACKAGE}.tar.bz2
149 rm -rf ${PACKAGE}
150
151
152 echo "Creating new package dir..."
153 mkdir ${PACKAGE}
154
155 if [ "${X86_BUNDLE_OK}" = "T" ]; then
156         mv ${X86_BUNDLE}.tar.bz2 ${PACKAGE}
157         mv ${X86_BUNDLE}.size ${PACKAGE}/.${X86_BUNDLE}.size
158 fi
159
160 if [ "${X86_64_BUNDLE_OK}" = "T" ]; then
161         mv ${X86_64_BUNDLE}.tar.bz2 ${PACKAGE}
162         mv ${X86_64_BUNDLE}.size ${PACKAGE}/.${X86_64_BUNDLE}.size
163 fi
164
165 cp install.sh ${PACKAGE}
166 cp stage2.run ${PACKAGE}/.stage2.run
167 cp README ${PACKAGE}
168
169 # gcc4/5 ABI test tool
170 if [ -e $BUILD_ROOT/tools/gccabicheck/gcc-glibmm-abi-check ]; then
171         cp $BUILD_ROOT/tools/gccabicheck/gcc-glibmm-abi-check ${PACKAGE}/.gcc-glibmm-abi-check
172 else
173         echo "!!!ERROR !!! gcc-glibmm-abi-check program is missing. packager will exit without being complete"
174         rm -rf ${PACKAGE}
175         rm -f stage2.run
176         exit 1
177 fi
178
179 if test -n "$MAKESELF"; then
180         echo "Creating self-extracting installer"
181         $MAKESELF --nocomp ${PACKAGE}/ ${PACKAGE}.run ${APPNAME} ./install.sh
182 else
183         echo "Creating tarball..."
184         tar -cf ${PACKAGE}.tar ${PACKAGE}
185 fi
186
187 echo "Clean up"
188 rm -rf ${PACKAGE}
189 rm -f stage2.run
190
191 echo ""
192 echo "Done"
193 echo ""