6 URL_ZLIB=http://www.zlib.net/zlib-1.2.3.tar.gz
7 #URL_ZLIB=http://superb-west.dl.sourceforge.net/sourceforge/libpng/zlib-1.2.3.tar.gz
9 URL_PCRE=http://superb-west.dl.sourceforge.net/sourceforge/pcre/pcre-6.3.tar.bz2
11 URL_PTHREADS=ftp://sources.redhat.com/pub/pthreads-win32/pthreads-snap-2004-06-22.tar.gz
13 URL_OPENSSL=http://www.openssl.org/source/openssl-0.9.8b.tar.gz
15 URL_MYSQL=http://mirror.x10.com/mirror/mysql/Downloads/MySQL-5.0/mysql-noinstall-5.0.22-win32.zip
16 DIR_MYSQL=mysql-5.0.22-win32
17 URL_POSTGRESQL=ftp://ftp2.us.postgresql.org/postgresql/source/v8.1.4/postgresql-base-8.1.4.tar.bz2
18 DIR_POSTGRESQL=postgresql-8.1.4
19 URL_SQLITE=http://www.sqlite.org/sqlite-3.3.6.tar.gz
21 URL_WX=http://superb-west.dl.sourceforge.net/sourceforge/wxwindows/wxWidgets-2.6.3.tar.gz
23 URL_SCONS=http://superb-west.dl.sourceforge.net/sourceforge/scons/scons-0.96.92.tar.gz
25 URL_NSIS_BIN=http://superb-west.dl.sourceforge.net/sourceforge/nsis/nsis-2.17.zip
27 URL_NSIS_SRC=http://superb-west.dl.sourceforge.net/sourceforge/nsis/nsis-2.17-src.tar.bz2
29 URL_MTX=http://superb-west.dl.sourceforge.net/sourceforge/mtx/mtx-1.3.9.tar.gz
31 URL_MT=ftp://ftp.ibiblio.org/pub/linux/system/backup/mt-st-0.9b.tar.gz
41 if [ -e ${TOP_DIR}/cross-tools/mingw32/bin/mingw32-gcc ]
43 cd ${TOP_DIR}/cross-tools/mingw32/bin
45 elif [ -e /mingw/bin/mingw32-gcc ]
49 echo The GCC cross compiler isn\'t installed.
50 echo You must run build-win32-cross-tools first
54 [ ! -e ${TOP_DIR}/depkgs-mingw32 ] && mkdir ${TOP_DIR}/depkgs-mingw32
55 cd ${TOP_DIR}/depkgs-mingw32
60 y*|t*) VERBOSE=true ;;
61 n*|f*) VERBOSE=false ;;
66 y*|t*) OVERWRITE=true ;;
67 n*|f*) OVERWRITE=false ;;
71 export PATH=${BIN_DIR}:${PATH}
73 [ ! -e bin ] && mkdir bin
74 [ ! -e src ] && mkdir src
75 [ ! -e include ] && mkdir include
76 [ ! -e lib ] && mkdir lib
82 ARCHIVE=`basename ${URL}`
85 *.tar.gz) ARCHIVER="tar xzf"; [ -z "${SRC_DIR}" ] && SRC_DIR=`expr "${ARCHIVE}" : '\(.*\)\.tar\.gz'`;;
86 *.tar.bz2) ARCHIVER="tar xjf"; [ -z "${SRC_DIR}" ] && SRC_DIR=`expr "${ARCHIVE}" : '\(.*\)\.tar\.bz2'`;;
87 *.zip) ARCHIVER="unzip -q"; [ -z "${SRC_DIR}" ] && SRC_DIR=`expr "${ARCHIVE}" : '\(.*\)\.zip'`;;
88 *) echo Unsupported archive type - $ARCHIVE; exit 1;;
93 if [ ! -e "${ARCHIVE}" ]
95 echo Downloading "${URL}"
96 if wget --passive-ftp "${URL}"
100 echo Unable to download ${ARCHIVE}
105 if [ ! -e "${SRC_DIR}" -o "${OVERWRITE}" = "true" ]
108 echo Extracting ${ARCHIVE}
109 ${ARCHIVER} ${ARCHIVE} &> ${ARCHIVE}.log
120 if [ "${VERBOSE}" = "true" ]
124 sed -ne '/\\$/N' -e 's/\\\n//' -e 's/\t\+/ /g' -e 's/ \+/ /g' \
126 -e "s%.*Entering directory[ ]\\+.${DEPPKG_DIR}/\\([^ ]\+\).%Entering \\1%p" \
127 -e "s%.*Leaving directory[ ]\\+.${DEPPKG_DIR}/\\([^ ]\+.\).%Leaving \\1%p" \
128 -e '/gcc \|g\+\+ \|ar /!d' \
129 -e 's/ \(\.\.\/\)\+/ /g' \
130 -e 's/.* \([^ ]\+\(\.c\|\.cpp\|\.cc\|\.cxx\)\)\( .*\|\)$/Compiling \1/p' \
131 -e 's/.* \([^ ]\+\.s\)\( .*\|\)$/Assembling \1/p' \
132 -e 's/.*ar [^ ]\+ \([^ ]\+\)\(\( [^ ]\+\.o\)\+\)/Updating \1 -\2/p' \
133 -e 's/.* -o \([^ ]\+\)\( .*\|\)$/Linking \1/p'
139 PATCH_FILE=${SCRIPT_DIR}/patches/$1; shift
141 if patch -f -p0 "$@" >patch.log < ${PATCH_FILE}
145 echo Patch failed - Check `pwd`/patch.log > /dev/tty
156 echo Make failed - Check `pwd`/make.log > /dev/tty
158 fi | tee -a make.log | parse_output
163 if get_source "${URL_ZLIB}" "${DIR_ZLIB}"
170 do_make win32/Makefile.mingw32 PREFIX=${DEPPKG_DIR} all
172 do_make win32/Makefile.mingw32 PREFIX=${DEPPKG_DIR} install
177 if get_source "${URL_PCRE}" "${DIR_PCRE}"
182 echo Configuring PCRE
183 ./configure CC_FOR_BUILD=gcc CXX_FOR_BUILD=g++ --host=mingw32 --prefix=${DEPPKG_DIR} --enable-utf8 --enable-unicode-properties &>make.log
185 do_make Makefile PREFIX=${DEPPKG_DIR} all
187 do_make Makefile PREFIX=${DEPPKG_DIR} install
192 if get_source "${URL_PTHREADS}" "${DIR_PTHREADS}"
194 echo Patching pthreads
195 do_patch pthreads.patch
197 echo Building pthreads
199 do_make GNUmakefile GCE
200 echo Installing pthreads
201 rm -rf ${DEPPKG_DIR}/include/pthreads
202 mkdir ${DEPPKG_DIR}/include/pthreads
203 cp -p *.h ${DEPPKG_DIR}/include/pthreads
204 cp -p *.dll ${DEPPKG_DIR}/bin
205 cp -p *.a ${DEPPKG_DIR}/lib
210 if get_source "${URL_OPENSSL}" "${DIR_OPENSSL}"
212 echo Patching openssl
213 do_patch openssl.patch
215 echo Configuring openssl
216 ./Configure --prefix=${DEPPKG_DIR} shared zlib-dynamic threads --with-zlib-include=${DEPPKG_DIR}/include mingw32 &> make.log
217 echo Building openssl
218 perl util/mkdef.pl 32 libeay no-static-engine >ms/libeay32.def
219 perl util/mkdef.pl 32 ssleay >ms/ssleay32.def
221 echo Installing openssl
222 do_make Makefile install_sw
227 get_source "${URL_MYSQL}" "${DIR_MYSQL}"
228 echo Converting mysql lib file
229 if [ -e ${BIN_DIR}/reimp ]
231 reimp --dlltool ${BIN_DIR}/mingw32-dlltool --as ${BIN_DIR}/mingw32-as lib/opt/libmysql.lib
233 ${BIN_DIR}/../mingw32/bin/reimp --dlltool ${BIN_DIR}/mingw32-dlltool --as ${BIN_DIR}/mingw32-as lib/opt/libmysql.lib
235 echo Installing mysql
236 cp -p liblibmysql.a ../../lib/libmysql.a
237 rm -rf ../../include/mysql
238 mkdir ../../include/mysql
239 cp -p include/* ../../include/mysql 2>&1 | grep -v 'omitting directory'
240 cp -p lib/opt/libmysql.dll ../../bin
245 if get_source "${URL_POSTGRESQL}" "${DIR_POSTGRESQL}"
247 echo Patching postgreSQL
248 do_patch postgresql.patch
250 echo Configuring postgreSQL
251 ./configure --host=mingw32 --enable-shared --enable-thread-safety --prefix=${DEPPKG_DIR} --with-includes=${DEPPKG_DIR}/include:${DEPPKG_DIR}/include/pthreads --with-libraries=${DEPPKG_DIR}/lib &> make.log
252 echo Building postgreSQL
253 if [ -e /usr/sbin/zic ]; then ZIC=/usr/sbin/zic
254 elif [ -e /sbin/zic ]; then ZIC=/sbin/zic
255 elif [ -e /usr/bin/zic ]; then ZIC=/usr/bin/zic
256 elif [ -e /bin/zic ]; then ZIC=/bin/zic
259 do_make Makefile AR=mingw32-ar DLLTOOL=mingw32-dlltool DLLWRAP=mingw32-dllwrap WINDRES=mingw32-windres PTHREAD_LIBS=-lpthreadGCE ZIC=${ZIC} clean all
260 echo Installing postgreSQL
261 do_make Makefile AR=mingw32-ar DLLTOOL=mingw32-dlltool DLLWRAP=mingw32-dllwrap WINDRES=mingw32-windres PTHREAD_LIBS=-lpthreadGCE ZIC=${ZIC} install
266 if get_source "${URL_SQLITE}" "${DIR_SQLITE}"
269 do_patch sqlite.patch
271 echo Configuring SQLite
272 [ ! -e bld ] && mkdir bld
276 do_make ../Makefile.mingw32 CROSSTOOLS=${BIN_DIR} TLIBS="-L${DEPPKG_DIR}/lib" TCL_FLAGS="-I${DEPPKG_DIR}/include" clean all
277 echo Installing SQLite
278 cp -p sqlite3.exe ${DEPPKG_DIR}/bin
279 cp -p libsqlite3.a ${DEPPKG_DIR}/lib
280 cp -p sqlite3.h ${DEPPKG_DIR}/include
285 if get_source "${URL_WX}" "${DIR_WX}"
287 echo Patching wxWidgets
288 do_patch wx.patch -o build/msw/config.mingw32
289 find . -name makefile.gcc -exec sh -c "sed -f ${SCRIPT_DIR}/patches/wx.sed {} > \`echo {} | sed s/\.gcc$/\.mingw32/\`" \;
291 echo Building wxWidgets
294 do_make makefile.mingw32 SHARED=1 VENDOR=bacula DEBUG_INFO=1
295 echo Installing wxWidgets
297 rm -rf ../../include/wx
298 mkdir ../../include/wx
299 cp -p include/wx/* ../../include/wx 2>&1 | grep -v 'omitting directory'
300 mkdir ../../include/wx/generic
301 cp -p include/wx/generic/* ../../include/wx/generic 2>&1 | grep -v 'omitting directory'
302 mkdir ../../include/wx/msw
303 cp -p include/wx/msw/* ../../include/wx/msw 2>&1 | grep -v 'omitting directory'
304 cp -p lib/gcc_dll/*.dll ../../bin
305 rm -rf ../../lib/wx_dll
306 mkdir ../../lib/wx_dll
307 cp -p lib/gcc_dll/*.a ../../lib/wx_dll
308 mkdir ../../lib/wx_dll/msw
309 cp -p lib/gcc_dll/msw/* ../../lib/wx_dll/msw 2>&1 | grep -v 'omitting directory'
310 mkdir ../../lib/wx_dll/msw/wx
311 cp -p lib/gcc_dll/msw/wx/* ../../lib/wx_dll/msw/wx 2>&1 | grep -v 'omitting directory'
312 mkdir ../../lib/wx_dll/msw/wx/msw
313 cp -p lib/gcc_dll/msw/wx/msw/* ../../lib/wx_dll/msw/wx/msw 2>&1 | grep -v 'omitting directory'
318 get_source "${URL_SCONS}" "${DIR_SCONS}"
319 echo Installing scons
320 if python setup.py install --prefix=${DEPPKG_DIR}/scons &> make.log
324 echo Make failed - Check `pwd`/make.log
331 get_source "${URL_NSIS_BIN}" "${DIR_NSIS_BIN}"
335 if get_source "${URL_NSIS_SRC}" "${DIR_NSIS_SRC}"
341 if ../../scons/bin/scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all \
342 PREFIX=${DEPPKG_DIR}/nsis PREFIX_BIN=${DEPPKG_DIR}/nsis/Bin \
343 PREFIX_CONF=${DEPPKG_DIR}/nsis PREFIX_DATA=${DEPPKG_DIR}/nsis \
344 PREFIX_DOC=${DEPPKG_DIR}/nsis/Docs 2>&1 | tee make.log | parse_output
348 echo Scons failed - Check `pwd`/make.log
352 cp -p build/release/makensis/makensis ../../nsis
357 if get_source "${URL_MTX}" "${DIR_MTX}"
360 # We can't run configure in a cross-compile environment so we
361 # patch the files to the correct values
362 cp -f config.h.in config.h
363 cp -f Makefile.in Makefile
368 do_make Makefile prefix=${DEPPKG_DIR} all
370 do_make Makefile prefix=${DEPPKG_DIR} install
375 if get_source "${URL_MT}" "${DIR_MT}"
381 do_make Makefile PREFIX=${DEPPKG_DIR} all
383 do_make Makefile PREFIX=${DEPPKG_DIR} install
401 for dependency in "$@"
403 eval "process_${dependency}"
408 #Need to download from Microsoft