5 FOR /F "tokens=1" %%I in ( "perl.exe" ) DO SET PERL_PATH=%%~$PATH:I
\r
7 IF NOT "%PERL_PATH%"=="" GOTO :PERL_OK
\r
8 ECHO Perl must be in your PATH. Please fix and rerun this script!
\r
13 IF "%CLOBBER_SOURCE%"=="" SET CLOBBER_SOURCE=false
\r
15 FOR /F "eol=# delims=| tokens=1-4" %%I in ( External-msvc ) DO SET URL_%%I=%%J& SET DIR_%%I=%%K& SET MKD_%%I=%%L
\r
18 FOR %%I IN ( %0 ) DO CD %%~dpI
\r
24 IF NOT EXIST %TOP_DIR%\depkgs-msvc\nul MD %TOP_DIR%\depkgs-msvc
\r
26 cd %TOP_DIR%\depkgs-msvc
\r
31 IF /I "%CLOBBER_SOURCE:~0,1%"=="y" SET CLOBBER_SOURCE=true
\r
32 IF /I "%CLOBBER_SOURCE:~0,1%"=="t" SET CLOBBER_SOURCE=true
\r
33 IF /I "%CLOBBER_SOURCE:~0,1%"=="1" SET CLOBBER_SOURCE=true
\r
35 SET PATH=%DEPPKG_DIR%\tools;%PATH%
\r
36 SET INCLUDE=%INCLUDE%;%DEPPKG_DIR%\include
\r
37 SET LIB=%LIB%;%DEPPKG_DIR%\lib
\r
39 IF NOT EXIST bin\nul MKDIR bin
\r
40 IF NOT EXIST src\nul MKDIR src
\r
41 IF NOT EXIST include\nul MKDIR include
\r
42 IF NOT EXIST lib\nul MKDIR lib
\r
46 COPY NUL parse_output.sed >nul 2>&1
\r
47 REM ECHO /\\$/N >>parse_output.sed
\r
48 REM ECHO s/\\\n// >>parse_output.sed
\r
49 ECHO s/\t\+/ /g >>parse_output.sed
\r
50 ECHO s/ \+/ /g >>parse_output.sed
\r
51 ECHO / [Ee]rror: /p >>parse_output.sed
\r
52 REM ECHO s;.*Entering directory[ ]\+.%DEPPKG_DIR%/\([^^ ]\+\).;Entering \1;p >>parse_output.sed
\r
53 REM ECHO s;.*Leaving directory[ ]\+.%DEPPKG_DIR%/\([^^ ]\+.\).;Leaving \1;p >>parse_output.sed
\r
54 ECHO /[Cc][Ll] \^|[Ll][Ii][Nn][Kk] \^|[Ll][Ii][Bb] /!d >>parse_output.sed
\r
55 ECHO s; \(\.\.\\\)\+; ;g >>parse_output.sed
\r
56 ECHO s; \.\\; ;g >>parse_output.sed
\r
57 ECHO s/.* \([^^ ]\+\(\.[Cc]\^|\.[Cc][Pp][Pp]\^|\.[Cc][Cc]\^|\.[Cc][Xx][Xx]\)\)\( .*\^|\)$/Compiling \1/p >>parse_output.sed
\r
58 ECHO s/.* \([^^ ]\+\.[Aa][Ss][Mm]\)\( .*\^|\)$/Assembling \1/p >>parse_output.sed
\r
59 ECHO s/.* \/[Oo][Uu][Tt]:\(\.\\\)*\(\.\.\\\)*\([^^ ]\+\)\( .*\^|\)$/Linking \3/p >>parse_output.sed
\r
60 REM ECHO s/.*[Ll][Ii][Bb] [^^ ]\+ \([^^ ]\+\)\(\( [^^ ]\+\.o\)\+\)/Updating \1 -\2/p >>parse_output.sed
\r
62 IF NOT "%1"=="" GOTO :ProcessArgs
\r
64 REM CALL :process_pcre
\r
65 CALL :process_pthreads
\r
66 CALL :process_openssl
\r
68 CALL :process_sqlite
\r
69 CALL :process_postgreSQL
\r
71 REM CALL :process_scons
\r
76 CALL :process_cmd_utils
\r
77 CALL :process_mkisofs
\r
78 CALL :process_dvd_rw_tools
\r
82 IF "%1"=="" GOTO :EOF
\r
91 SET MAKE_SRC_ENABLE=%3
\r
94 IF NOT "%SRC_DIR%"=="" GOTO :get_source_make_src
\r
95 FOR %%I IN ( %URL% ) DO (SET BASENAME=%%~nI& IF NOT "%%~xI"==".gz" IF NOT "%%~xI"==".bz2" SET SRC_DIR=%%~nI)
\r
96 IF "%SRC_DIR%"=="" FOR %%I IN ( %BASENAME% ) DO SET SRC_DIR=%%~nI
\r
98 :get_source_make_src
\r
100 IF /I "%MAKE_SRC_ENABLE:~0,1%"=="y" SET MAKE_SRC_DIR=true
\r
101 IF /I "%MAKE_SRC_ENABLE:~0,1%"=="t" SET MAKE_SRC_DIR=true
\r
102 IF /I "%MAKE_SRC_ENABLE:~0,1%"=="1" SET MAKE_SRC_DIR=true
\r
104 FOR %%I IN ( %URL% ) DO ( SET ARCHIVE=%%~nxI& SET ARCHIVE_EXT=%%~xI)
\r
106 CD %DEPPKG_DIR%\src
\r
108 IF EXIST %ARCHIVE% GOTO :get_source_check_srcdir
\r
109 ECHO Downloading %URL%
\r
110 wget -nv --passive-ftp "%URL%"
\r
111 IF NOT ERRORLEVEL 1 GOTO :get_source_extract
\r
112 ECHO Unable to download %ARCHIVE%
\r
115 :get_source_check_srcdir
\r
116 IF /I "%ARCHIVE_EXT%"==".exe" EXIT /B 0
\r
117 IF NOT EXIST %SRC_DIR%\nul GOTO :get_source_extract
\r
118 IF NOT "%CLOBBER_SOURCE%"=="true" GOTO :get_source_skipped
\r
119 IF EXIST %SRC_DIR%\nul RD /s /q "%SRC_DIR%"
\r
120 :get_source_extract
\r
121 IF /I "%ARCHIVE_EXT%"==".exe" EXIT /B 0
\r
123 FOR %%I IN ( "%ARCHIVE%" ) do IF "%%~xI"==".gz" SET TAR_ARCHIVE=%%~nI
\r
124 FOR %%I IN ( "%ARCHIVE%" ) do IF "%%~xI"==".bz2" SET TAR_ARCHIVE=%%~nI
\r
127 IF DEFINED MAKE_SRC_DIR IF NOT EXIST %SRC_DIR%\nul MKDIR %SRC_DIR%
\r
128 IF DEFINED MAKE_SRC_DIR SET TARGET_DIR=%SRC_DIR%
\r
130 ECHO Extracting %ARCHIVE%
\r
131 7z x -bd -y -o"%TARGET_DIR%" "%ARCHIVE%" 2>&1 > "%ARCHIVE%.log"
\r
132 IF ERRORLEVEL 1 EXIT /B 2
\r
133 IF NOT DEFINED TAR_ARCHIVE GOTO :get_source_done
\r
134 ECHO Extracting %TAR_ARCHIVE%
\r
135 7z x -bd -y -o"%TARGET_DIR%" "%TARGET_DIR%\%TAR_ARCHIVE%" & del /q "%TAR_ARCHIVE%" 2>&1 >> "%ARCHIVE%.log"
\r
141 :get_source_skipped
\r
146 CALL :get_source %URL_ZLIB% %DIR_ZLIB% %MKD_ZLIB%
\r
148 COPY /Y nul make.log
\r
149 REM XCOPY contrib\masmx86\gvmat32.asm . /Y
\r
150 REM XCOPY contrib\masmx86\gvmat32c.c . /Y
\r
151 REM XCOPY contrib\masmx86\inffas32.asm . /Y
\r
152 REM CALL :do_nmake win32\Makefile.msc AS=nasmw ASFLAGS= LOC="-D_CRT_SECURE_NO_DEPRECATE -DASMV -DASMINF" OBJA="gvmat32c.obj gvmat32.obj inffas32.obj" all
\r
153 CALL :do_nmake win32\Makefile.msc LOC="-D_CRT_SECURE_NO_DEPRECATE" all
\r
154 ECHO Installing zlib
\r
155 XCOPY zlib1.dll.manifest %DEPPKG_DIR%\bin\ /Y
\r
156 XCOPY zlib1.dll %DEPPKG_DIR%\bin\ /Y
\r
157 XCOPY zlib.lib %DEPPKG_DIR%\lib\ /Y
\r
158 XCOPY zdll.lib %DEPPKG_DIR%\lib\ /Y
\r
159 XCOPY zlib.h %DEPPKG_DIR%\include\ /Y
\r
160 XCOPY zconf.h %DEPPKG_DIR%\include\ /Y
\r
164 CALL :get_source %URL_PCRE% %DIR_PCRE% %MKD_PCRE%
\r
165 REM ECHO Patching PCRE
\r
166 REM COPY /Y nul patch.log
\r
167 REM do_patch pcre.patch
\r
168 ECHO Configuring PCRE
\r
169 ./configure CC_FOR_BUILD=gcc CXX_FOR_BUILD=g++ --host=mingw32 --prefix=%DEPPKG_DIR% --enable-utf8 --enable-unicode-properties 2>&1 > make.log
\r
171 do_make Makefile PREFIX=%DEPPKG_DIR% all
\r
172 ECHO Installing PCRE
\r
173 do_make Makefile PREFIX=%DEPPKG_DIR% install
\r
177 CALL :get_source %URL_PTHREADS% %DIR_PTHREADS% %MKD_PTHREADS%
\r
178 FOR %%I IN ( %URL_PTHREADS% ) DO (SET ARCHIVE=%%~nxI)
\r
179 IF EXIST %SRC_DIR%\nul GOTO :install_pthreads
\r
180 ECHO Extracting %ARCHIVE%
\r
181 7z x -bd -y -o"%DIR_PTHREADS%" "%ARCHIVE%" 2>&1 > "%ARCHIVE%.log"
\r
184 ECHO Installing pthreads
\r
185 XCOPY Pre-built\include\*.h %DEPPKG_DIR%\include\ /Y
\r
186 XCOPY Pre-built\lib\pthreadVCE.lib %DEPPKG_DIR%\lib\ /Y
\r
187 XCOPY Pre-built\lib\pthreadVCE.dll %DEPPKG_DIR%\bin\ /Y
\r
191 CALL :get_source %URL_OPENSSL% %DIR_OPENSSL% %MKD_OPENSSL%
\r
192 IF ERRORLEVEL 2 GOTO :OpenSSLError
\r
193 ECHO Configuring openssl
\r
194 perl Configure VC-WIN32 --prefix=%DEPPKG_DIR:\=/% > make.log
\r
195 ECHO Building openssl
\r
198 CALL :do_nmake ms\ntdll.mak
\r
200 ECHO Installing openssl
\r
201 CALL :do_nmake ms\ntdll.mak install
\r
204 ECHO Unable to download OpenSSL source from %URL_OPENSSL%
\r
208 CALL :get_source %URL_MYSQL% %DIR_MYSQL% %MKD_MYSQL%
\r
209 ECHO Installing mysql
\r
210 IF EXIST ..\..\include\mysql\nul RD /s /q ..\..\include\mysql
\r
211 XCOPY include\* ..\..\include\mysql\ /e/h/k/y 2>&1
\r
212 XCOPY lib\opt\libmysql.lib ..\..\lib\ /y
\r
213 XCOPY lib\opt\libmysql.dll ..\..\bin\ /y
\r
216 :process_postgreSQL
\r
217 CALL :get_source %URL_POSTGRESQL% %DIR_POSTGRESQL% %MKD_POSTGRESQL%
\r
218 IF ERRORLEVEL 2 GOTO :pstgreSQL_Error1
\r
219 CALL :get_source %URL_POSTGRESQL_SRC% %DIR_POSTGRESQL_SRC% %MKD_POSTGRESQL_SRC%
\r
220 IF ERRORLEVEL 2 GOTO :pstgreSQL_Error2
\r
221 REM ECHO Patching postgreSQL
\r
222 REM COPY /Y nul patch.log
\r
223 REM do_patch postgresql.patch
\r
224 ECHO Installing postgreSQL
\r
225 XCOPY ..\pgsql\include\libpq-fe.h ..\..\include\ /Y 2>&1
\r
226 XCOPY ..\pgsql\include\postgres_ext.h ..\..\include\ /Y 2>&1
\r
227 LIB /def:src\interfaces\libpq\libpqdll.def /out:..\..\lib\libpqdll.lib /machine:x86 /subsystem:console
\r
228 XCOPY ..\pgsql\bin\libpq.dll ..\..\bin\ /Y
\r
229 XCOPY ..\pgsql\bin\comerr32.dll ..\..\bin\ /Y
\r
230 XCOPY ..\pgsql\bin\krb5_32.dll ..\..\bin\ /Y
\r
231 XCOPY ..\pgsql\bin\libintl-2.dll ..\..\bin\ /Y
\r
232 XCOPY ..\pgsql\bin\libiconv-2.dll ..\..\bin\ /Y
\r
235 ECHO Unable to download postgreSQL binaries from %URL_POSTGRESQL%
\r
238 ECHO Unable to download postgreSQL source from %URL_POSTGRESQL_SRC%
\r
242 CALL :get_source %URL_SQLITE% %DIR_SQLITE% %MKD_SQLITE%
\r
243 IF ERRORLEVEL 2 GOTO :sqlite_error
\r
244 IF ERRORLEVEL 1 GOTO :sqlite_skip_patch
\r
245 ECHO Patching SQLite
\r
246 COPY /Y nul patch.log
\r
247 CALL :do_patch sqlite_msc.patch
\r
249 ECHO Configuring SQLite
\r
250 IF NOT EXIST bld/nul MKDIR bld
\r
252 ECHO Building SQLite
\r
253 COPY /Y nul make.log
\r
254 CALL :do_nmake ../Makefile.msvc clean all
\r
255 ECHO Installing SQLite
\r
256 COPY sqlite3.exe %DEPPKG_DIR%\bin
\r
257 COPY sqlite3.exe.manifest %DEPPKG_DIR%\bin
\r
258 COPY sqlite3.lib %DEPPKG_DIR%\lib
\r
259 COPY sqlite3.h %DEPPKG_DIR%\include
\r
262 ECHO Unable to download sqlite source from %URL_SQLITE%
\r
266 CALL :get_source %URL_WX% %DIR_WX% %MKD_WX%
\r
267 IF ERRORLEVEL 2 GOTO :wx_error
\r
268 REM IF ERRORLEVEL 1 GOTO :wx_skip_patch
\r
269 REM ECHO Patching wxWidgets
\r
270 REM COPY /Y nul patch.log
\r
271 REM do_patch wx1.patch -o build/msw/config.mingw32
\r
272 REM do_patch wx2.patch
\r
273 REM find . -name makefile.gcc -exec sh -c "sed -f %SCRIPT_DIR%/patches/wx.sed {% > \`ECHO {% | sed s/\.gcc$/\.mingw32/\`" \;
\r
274 ECHO Building wxWidgets
\r
276 COPY /Y nul make.log
\r
277 CALL :do_nmake makefile.vc BUILD=release SHARED=1 VENDOR=bacula DEBUG_INFO=1 CPPFLAGS=-D_USE_32BIT_TIME_T
\r
278 ECHO Installing wxWidgets
\r
280 IF EXIST ..\..\include\wx\nul RD /s /q ..\..\include\wx
\r
281 XCOPY include\wx ..\..\include\wx\ 2>&1
\r
282 XCOPY include\wx\generic ..\..\include\wx\generic\ /e 2>&1
\r
283 XCOPY include\wx\msw ..\..\include\wx\msw\ /e 2>&1
\r
284 XCOPY lib\vc_dll\*.dll ..\..\bin\ /y
\r
285 IF EXIST ..\..\lib\wx_dll\nul RD /s /q ..\..\lib\wx_dll
\r
286 XCOPY lib\vc_dll\*.lib ..\..\lib\wx_dll\
\r
287 XCOPY lib\vc_dll\msw ..\..\lib\wx_dll\msw\ /e 2>&1
\r
290 ECHO Unable to download wxWidgets source from %URL_MTX%
\r
294 CALL :get_source %URL_NSIS_BIN% %DIR_NSIS_BIN% %MKD_NSIS_BIN%
\r
296 IF EXIST ..\nsis\nul RD /s /q ..\nsis
\r
297 MOVE nsis-2.17 ..\nsis
\r
301 CALL :get_source %URL_MTX% %DIR_MTX% %MKD_MTX%
\r
302 IF ERRORLEVEL 2 GOTO :mtx_error
\r
303 IF ERRORLEVEL 1 GOTO :mtx_skip_patch
\r
305 COPY /Y config.h.in config.h
\r
306 COPY /Y Makefile.in Makefile
\r
307 COPY /Y nul patch.log
\r
308 CALL :do_patch mtx.patch
\r
309 CALL :do_patch mtx-msvc1.patch
\r
310 CALL :do_patch mtx-msvc2.patch
\r
313 CALL :do_nmake Makefile.msc PREFIX=%DEPPKG_DIR% all
\r
314 ECHO Installing mtx
\r
315 CALL :do_nmake Makefile.msc PREFIX=%DEPPKG_DIR% install
\r
318 ECHO Unable to download mtx source from %URL_MTX%
\r
322 CALL :get_source %URL_MT% %DIR_MT% %MKD_MT%
\r
323 IF ERRORLEVEL 2 GOTO :mt_error
\r
324 IF ERRORLEVEL 1 GOTO :mt_skip_patch
\r
326 COPY /Y nul patch.log
\r
327 CALL :do_patch mt.patch
\r
330 CALL :do_nmake Makefile.msc PREFIX=%DEPPKG_DIR% all
\r
332 CALL :do_nmake Makefile.msc PREFIX=%DEPPKG_DIR% install
\r
335 ECHO Unable to download mt source from %URL_MT%
\r
339 CALL :get_source %URL_SED% %DIR_SED% %MKD_SED%
\r
340 IF ERRORLEVEL 2 GOTO :sed_error
\r
341 IF ERRORLEVEL 1 GOTO :sed_skip_patch
\r
343 COPY /Y nul patch.log
\r
344 CALL :do_patch sed_msc.patch
\r
347 CALL :do_nmake Makefile.msc all
\r
348 ECHO Installing sed
\r
349 CALL :do_nmake Makefile.msc install
\r
352 ECHO Unable to download sed source from %URL_MT%
\r
356 CALL :get_source %URL_CMD_UTILS% %DIR_CMD_UTILS% %MKD_CMD_UTILS%
\r
357 IF ERRORLEVEL 2 GOTO :cmd_utils_error
\r
358 IF ERRORLEVEL 1 GOTO :cmd_utils_skip_patch
\r
359 REM ECHO Patching cmd-utils
\r
360 REM COPY /Y nul patch.log
\r
361 REM CALL :do_patch cmd_utils_msc.patch
\r
362 :cmd_utils_skip_patch
\r
363 ECHO Building cmd-utils
\r
364 vcbuild /nologo cmd-utils.sln "Release|WIN32" 2>&1 | tee -a make.log | sed -nf "%DEPPKG_DIR%\src\parse_output.sed"
\r
365 IF ERRORLEVEL 1 GOTO :cmd_utils_build_error
\r
366 ECHO Installing cmd-utils
\r
367 XCOPY Release\*.exe %DEPPKG_DIR%\bin
\r
369 :cmd_utils_build_error
\r
370 ECHO Make failed - Check %CD%\make.log > con
\r
373 ECHO Unable to download cmd-utils source from %URL_MT%
\r
377 CALL :get_source %URL_MKISOFS% %DIR_MKISOFS% %MKD_MKISOFS%
\r
378 IF ERRORLEVEL 2 GOTO :mkisofs_error
\r
379 ECHO Installing mkisofs
\r
380 FOR %%i IN ( %URL_MKISOFS% ) DO XCOPY %DEPPKG_DIR%\src\%%~nxi %DEPPKG_DIR%\bin /Y /Q >nul 2>&1
\r
383 ECHO Unable to download mkisofs source from %URL_MKISOFS%
\r
386 :process_dvd_rw_tools
\r
387 CALL :get_source %URL_DVD_RW_TOOLS% %DIR_DVD_RW_TOOLS% %MKD_DVD_RW_TOOLS%
\r
388 IF ERRORLEVEL 2 GOTO :dvd_rw_tools_error
\r
389 IF ERRORLEVEL 1 GOTO :dvd_rw_tools_skip_patch
\r
390 ECHO Patching dvd+rw-tools
\r
391 COPY /Y nul patch.log
\r
392 CALL :do_patch dvd+rw-tools.patch
\r
393 :dvd_rw_tools_skip_patch
\r
394 ECHO Building dvd+rw-tools
\r
395 IF NOT EXIST Release\nul MKDIR Release
\r
396 CALL :do_nmake Makefile.msc dvd+rw-tools
\r
397 ECHO Installing dvd+rw-tools
\r
398 CALL :do_nmake Makefile.msc prefix=%DEPPKG_DIR% install
\r
400 :dvd_rw_tools_error
\r
401 ECHO Unable to download dvd+rw-tools source from %URL_DVD_RW_TOOLS%
\r
405 SET PATCH_FILE=%SCRIPT_DIR%\patches\%1
\r
407 patch -f -p0 %2 %3 %4 %5 %6 %7 %8 %9 >>patch.log < %PATCH_FILE%
\r
408 IF NOT ERRORLEVEL 1 EXIT/B 0
\r
409 ECHO Patch failed - Check %CD%\patch.log > con
\r
413 nmake /nologo -f %* 2>&1 | tee -a make.log | sed -nf "%DEPPKG_DIR%\src\parse_output.sed"
\r
414 IF NOT ERRORLEVEL 1 EXIT /B 0
\r
415 ECHO Make failed - Check %CD%\make.log > con
\r
419 #Need to download from Microsoft
\r