4 URL_ZLIB=http://www.zlib.net/zlib-1.2.3.tar.gz
5 #URL_ZLIB=http://superb-west.dl.sourceforge.net/sourceforge/libpng/zlib-1.2.3.tar.gz
7 URL_PCRE=http://superb-west.dl.sourceforge.net/sourceforge/pcre/pcre-6.3.tar.bz2
9 URL_PTHREADS=ftp://sources.redhat.com/pub/pthreads-win32/pthreads-snap-2004-06-22.tar.gz
11 URL_OPENSSL=http://www.openssl.org/source/openssl-0.9.8b.tar.gz
13 URL_MYSQL=http://mirror.x10.com/mirror/mysql/Downloads/MySQL-5.0/mysql-noinstall-5.0.22-win32.zip
14 DIR_MYSQL=mysql-5.0.22-win32
15 URL_POSTGRESQL=ftp://ftp2.us.postgresql.org/postgresql/source/v8.1.4/postgresql-base-8.1.4.tar.bz2
16 DIR_POSTGRESQL=postgresql-8.1.4
17 URL_SQLITE=http://www.sqlite.org/sqlite-3.3.6.tar.gz
19 URL_WX=http://superb-west.dl.sourceforge.net/sourceforge/wxwindows/wxWidgets-2.6.3.tar.gz
21 URL_SCONS=http://superb-west.dl.sourceforge.net/sourceforge/scons/scons-0.96.92.tar.gz
23 URL_NSIS_BIN=http://superb-west.dl.sourceforge.net/sourceforge/nsis/nsis-2.17.zip
25 URL_NSIS_SRC=http://superb-west.dl.sourceforge.net/sourceforge/nsis/nsis-2.17-src.tar.bz2
35 if [ ! -e ${TOP_DIR}/cross-tools/mingw32/bin/mingw32-gcc ]
37 echo The GCC cross compiler isn\'t installed.
38 echo You must run build-win32-cross-tools first
42 cd ${TOP_DIR}/cross-tools/mingw32/bin
45 [ ! -e ${TOP_DIR}/depkgs-mingw32 ] && mkdir ${TOP_DIR}/depkgs-mingw32
46 cd ${TOP_DIR}/depkgs-mingw32
51 y*|t*) VERBOSE=true ;;
52 n*|f*) VERBOSE=false ;;
57 y*|t*) OVERWRITE=true ;;
58 n*|f*) OVERWRITE=false ;;
62 export PATH=${BIN_DIR}:${PATH}
64 [ ! -e bin ] && mkdir bin
65 [ ! -e src ] && mkdir src
66 [ ! -e include ] && mkdir include
67 [ ! -e lib ] && mkdir lib
73 ARCHIVE=`basename ${URL}`
76 *.tar.gz) ARCHIVER="tar xzf"; [ -z "${SRC_DIR}" ] && SRC_DIR=`expr "${ARCHIVE}" : '\(.*\)\.tar\.gz'`;;
77 *.tar.bz2) ARCHIVER="tar xjf"; [ -z "${SRC_DIR}" ] && SRC_DIR=`expr "${ARCHIVE}" : '\(.*\)\.tar\.bz2'`;;
78 *.zip) ARCHIVER="unzip -q"; [ -z "${SRC_DIR}" ] && SRC_DIR=`expr "${ARCHIVE}" : '\(.*\)\.zip'`;;
79 *) echo Unsupported archive type - $ARCHIVE; exit 1;;
84 if [ ! -e "${ARCHIVE}" ]
86 echo Downloading "${URL}"
87 if wget --passive-ftp "${URL}"
91 echo Unable to download ${ARCHIVE}
96 if [ ! -e "${SRC_DIR}" -o "${OVERWRITE}" = "true" ]
99 echo Extracting ${ARCHIVE}
100 ${ARCHIVER} ${ARCHIVE} &> ${ARCHIVE}.log
111 if [ "${VERBOSE}" = "true" ]
115 sed -ne '/\\$/N' -e 's/\\\n//' -e 's/\t\+/ /g' -e 's/ \+/ /g' \
117 -e "s%.*Entering directory[ ]\\+.${DEPPKG_DIR}/\\([^ ]\+\).%Entering \\1%p" \
118 -e "s%.*Leaving directory[ ]\\+.${DEPPKG_DIR}/\\([^ ]\+.\).%Leaving \\1%p" \
119 -e '/gcc \|g\+\+ \|ar /!d' \
120 -e 's/ \(\.\.\/\)\+/ /g' \
121 -e 's/.* \([^ ]\+\(\.c\|\.cpp\|\.cc\|\.cxx\)\)\( .*\|\)$/Compiling \1/p' \
122 -e 's/.* \([^ ]\+\.s\)\( .*\|\)$/Assembling \1/p' \
123 -e 's/.*ar [^ ]\+ \([^ ]\+\)\(\( [^ ]\+\.o\)\+\)/Updating \1 -\2/p' \
124 -e 's/.* -o \([^ ]\+\)\( .*\|\)$/Linking \1/p'
130 PATCH_FILE=${SCRIPT_DIR}/patches/$1; shift
132 if patch -f -p0 "$@" >patch.log < ${PATCH_FILE}
136 echo Patch failed - Check `pwd`/patch.log > /dev/tty
147 echo Make failed - Check `pwd`/make.log > /dev/tty
149 fi | tee -a make.log | parse_output
154 if get_source "${URL_ZLIB}" "${DIR_ZLIB}"
161 do_make win32/Makefile.mingw32 PREFIX=${DEPPKG_DIR} all
163 do_make win32/Makefile.mingw32 PREFIX=${DEPPKG_DIR} install
168 if get_source "${URL_PCRE}" "${DIR_PCRE}"
173 echo Configuring PCRE
174 ./configure CC_FOR_BUILD=gcc CXX_FOR_BUILD=g++ --host=mingw32 --prefix=${DEPPKG_DIR} --enable-utf8 --enable-unicode-properties &>make.log
176 do_make Makefile PREFIX=${DEPPKG_DIR} all
178 do_make Makefile PREFIX=${DEPPKG_DIR} install
183 if get_source "${URL_PTHREADS}" "${DIR_PTHREADS}"
185 echo Patching pthreads
186 do_patch pthreads.patch
188 echo Building pthreads
190 do_make GNUmakefile GCE
191 echo Installing pthreads
192 rm -rf ${DEPPKG_DIR}/include/pthreads
193 mkdir ${DEPPKG_DIR}/include/pthreads
194 cp -p *.h ${DEPPKG_DIR}/include/pthreads
195 cp -p *.dll ${DEPPKG_DIR}/bin
196 cp -p *.a ${DEPPKG_DIR}/lib
201 if get_source "${URL_OPENSSL}" "${DIR_OPENSSL}"
203 echo Patching openssl
204 do_patch openssl.patch
206 echo Configuring openssl
207 ./Configure --prefix=${DEPPKG_DIR} shared zlib-dynamic threads --with-zlib-include=${DEPPKG_DIR}/include mingw32 &> make.log
208 echo Building openssl
209 perl util/mkdef.pl 32 libeay no-static-engine >ms/libeay32.def
210 perl util/mkdef.pl 32 ssleay >ms/ssleay32.def
212 echo Installing openssl
213 do_make Makefile install_sw
218 get_source "${URL_MYSQL}" "${DIR_MYSQL}"
219 echo Converting mysql lib file
220 ${BIN_DIR}/../mingw32/bin/reimp --dlltool ${BIN_DIR}/mingw32-dlltool --as ${BIN_DIR}/mingw32-as lib/opt/libmysql.lib
221 echo Installing mysql
222 cp -p liblibmysql.a ../../lib/libmysql.a
223 rm -rf ../../include/mysql
224 mkdir ../../include/mysql
225 cp -p include/* ../../include/mysql 2>&1 | grep -v 'omitting directory'
226 cp -p lib/opt/libmysql.dll ../../bin
231 if get_source "${URL_POSTGRESQL}" "${DIR_POSTGRESQL}"
233 echo Patching postgreSQL
234 do_patch postgresql.patch
236 echo Configuring postgreSQL
237 ./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
238 echo Building postgreSQL
239 if [ -e /usr/sbin/zic ]; then ZIC=/usr/sbin/zic
240 elif [ -e /sbin/zic ]; then ZIC=/sbin/zic
241 elif [ -e /usr/bin/zic ]; then ZIC=/usr/bin/zic
242 elif [ -e /bin/zic ]; then ZIC=/bin/zic
245 do_make Makefile AR=mingw32-ar DLLTOOL=mingw32-dlltool DLLWRAP=mingw32-dllwrap WINDRES=mingw32-windres PTHREAD_LIBS=-lpthreadGCE ZIC=${ZIC} clean all
246 echo Installing postgreSQL
247 do_make Makefile AR=mingw32-ar DLLTOOL=mingw32-dlltool DLLWRAP=mingw32-dllwrap WINDRES=mingw32-windres PTHREAD_LIBS=-lpthreadGCE ZIC=${ZIC} install
252 if get_source "${URL_SQLITE}" "${DIR_SQLITE}"
255 do_patch sqlite.patch
257 echo Configuring SQLite
258 [ ! -e bld ] && mkdir bld
262 do_make ../Makefile.mingw32 CROSSTOOLS=${BIN_DIR} TLIBS="-L${DEPPKG_DIR}/lib" TCL_FLAGS="-I${DEPPKG_DIR}/include" clean all
263 echo Installing SQLite
264 cp -p sqlite3.exe ${DEPPKG_DIR}/bin
265 cp -p libsqlite3.a ${DEPPKG_DIR}/lib
266 cp -p sqlite3.h ${DEPPKG_DIR}/include
271 if get_source "${URL_WX}" "${DIR_WX}"
273 echo Patching wxWidgets
274 do_patch wx.patch -o build/msw/config.mingw32
275 find . -name makefile.gcc -exec sh -c "sed -f ${SCRIPT_DIR}/patches/wx.sed {} > \`echo {} | sed s/\.gcc$/\.mingw32/\`" \;
277 echo Building wxWidgets
280 do_make makefile.mingw32 SHARED=1 VENDOR=bacula
281 echo Installing wxWidgets
283 rm -rf ../../include/wx
284 mkdir ../../include/wx
285 cp -p include/wx/* ../../include/wx 2>&1 | grep -v 'omitting directory'
286 mkdir ../../include/wx/generic
287 cp -p include/wx/generic/* ../../include/wx/generic 2>&1 | grep -v 'omitting directory'
288 mkdir ../../include/wx/msw
289 cp -p include/wx/msw/* ../../include/wx/msw 2>&1 | grep -v 'omitting directory'
290 cp -p lib/gcc_dll/*.dll ../../bin
291 rm -rf ../../lib/wx_dll
292 mkdir ../../lib/wx_dll
293 cp -p lib/gcc_dll/*.a ../../lib/wx_dll
294 mkdir ../../lib/wx_dll/msw
295 cp -p lib/gcc_dll/msw/* ../../lib/wx_dll/msw 2>&1 | grep -v 'omitting directory'
296 mkdir ../../lib/wx_dll/msw/wx
297 cp -p lib/gcc_dll/msw/wx/* ../../lib/wx_dll/msw/wx 2>&1 | grep -v 'omitting directory'
298 mkdir ../../lib/wx_dll/msw/wx/msw
299 cp -p lib/gcc_dll/msw/wx/msw/* ../../lib/wx_dll/msw/wx/msw 2>&1 | grep -v 'omitting directory'
304 get_source "${URL_SCONS}" "${DIR_SCONS}"
305 echo Installing scons
306 if python setup.py install --prefix=${DEPPKG_DIR}/scons &> make.log
310 echo Make failed - Check `pwd`/make.log
317 get_source "${URL_NSIS_BIN}" "${DIR_NSIS_BIN}"
321 if get_source "${URL_NSIS_SRC}" "${DIR_NSIS_SRC}"
327 if ../../scons/bin/scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all \
328 PREFIX=${DEPPKG_DIR}/nsis PREFIX_BIN=${DEPPKG_DIR}/nsis/Bin \
329 PREFIX_CONF=${DEPPKG_DIR}/nsis PREFIX_DATA=${DEPPKG_DIR}/nsis \
330 PREFIX_DOC=${DEPPKG_DIR}/nsis/Docs 2>&1 | tee make.log | parse_output
334 echo Scons failed - Check `pwd`/make.log
338 cp -p build/release/makensis/makensis ../../nsis
354 for dependency in "$@"
356 eval "process_${dependency}"
361 #Need to download from Microsoft