6 FOR /F "eol=# delims=| tokens=1-4" %%I in ( External-msvc ) DO SET URL_%%I=%%J & SET DIR_%%I=%%K & SET MKD_%%I=%%L
9 FOR %%I IN ( %0 ) DO CD %%~dpI
15 cd %TOP_DIR%/depkgs-win32
20 IF /I "%CLOBBER_SOURCE:~0,1%"=="y" SET CLOBBER_SOURCE=true
21 IF /I "%CLOBBER_SOURCE:~0,1%"=="t" SET CLOBBER_SOURCE=true
22 IF /I "%CLOBBER_SOURCE:~0,1%"=="1" SET CLOBBER_SOURCE=true
24 SET PATH=%DEPPKG_DIR%\tools;%PATH%
25 SET INCLUDE=%INCLUDE%;%DEPPKG_DIR%\include
26 SET LIB=%LIB%;%DEPPKG_DIR%\lib
28 IF NOT EXIST bin\nul MKDIR bin
29 IF NOT EXIST src\nul MKDIR src
30 IF NOT EXIST include\nul MKDIR include
31 IF NOT EXIST lib\nul MKDIR lib
35 COPY NUL parse_output.sed
36 REM ECHO /\\$/N >>parse_output.sed
37 REM ECHO s/\\\n// >>parse_output.sed
38 ECHO s/\t\+/ /g >>parse_output.sed
39 ECHO s/ \+/ /g >>parse_output.sed
40 ECHO / [Ee]rror: /p >>parse_output.sed
41 REM ECHO s;.*Entering directory[ ]\+.%DEPPKG_DIR%/\([^^ ]\+\).;Entering \1;p >>parse_output.sed
42 REM ECHO s;.*Leaving directory[ ]\+.%DEPPKG_DIR%/\([^^ ]\+.\).;Leaving \1;p >>parse_output.sed
43 ECHO /[Cc][Ll] \^|[Ll][Ii][Nn][Kk] \^|[Ll][Ii][Bb] /!d >>parse_output.sed
44 ECHO s; \(\.\.\\\)\+; ;g >>parse_output.sed
45 ECHO s; \.\\; ;g >>parse_output.sed
46 ECHO s/.* \([^^ ]\+\(\.[Cc]\^|\.[Cc][Pp][Pp]\^|\.[Cc][Cc]\^|\.[Cc][Xx][Xx]\)\)\( .*\^|\)$/Compiling \1/p >>parse_output.sed
47 ECHO s/.* \([^^ ]\+\.[Aa][Ss][Mm]\)\( .*\^|\)$/Assembling \1/p >>parse_output.sed
48 ECHO s/.* \/[Oo][Uu][Tt]:\(\.\\\)*\(\.\.\\\)*\([^^ ]\+\)\( .*\^|\)$/Linking \3/p >>parse_output.sed
49 REM ECHO s/.*[Ll][Ii][Bb] [^^ ]\+ \([^^ ]\+\)\(\( [^^ ]\+\.o\)\+\)/Updating \1 -\2/p >>parse_output.sed
51 IF NOT "%1"=="" GOTO :ProcessArgs
53 REM CALL :process_pcre
54 CALL :process_pthreads
57 REM CALL :process_sqlite
58 CALL :process_postgreSQL
59 CALL :process_wxWidgets
60 REM CALL :process_scons
76 SET MAKE_SRC_ENABLE=%3
79 IF NOT %2=="" GOTO :get_source_make_src
80 FOR %%I IN ( %URL% ) DO (SET BASENAME=%%~nI & IF NOT "%%~xI"==".gz" IF NOT "%%~xI"==".bz2" SET SRC_DIR=%%~nI)
81 IF %SRC_DIR%=="" FOR %%I IN ( %BASENAME% ) DO SET SRC_DIR=%%~nI
85 IF /I "%MAKE_SRC_ENABLE:~0,1%"=="y" SET MAKE_SRC_DIR=true
86 IF /I "%MAKE_SRC_ENABLE:~0,1%"=="t" SET MAKE_SRC_DIR=true
87 IF /I "%MAKE_SRC_ENABLE:~0,1%"=="1" SET MAKE_SRC_DIR=true
89 FOR %%I IN ( %URL% ) DO SET ARCHIVE=%%~nxI
93 IF EXIST %ARCHIVE% GOTO :get_source_check_srcdir
94 ECHO Downloading %URL%
95 wget -nv --passive-ftp "%URL%"
96 IF NOT ERRORLEVEL 1 GOTO :get_source_extract
97 ECHO Unable to download %ARCHIVE%
100 :get_source_check_srcdir
101 IF NOT EXIST %SRC_DIR%\nul GOTO :get_source_extract
102 IF NOT "%CLOBBER_SOURCE%"=="true" GOTO :get_source_skipped
103 IF EXIST "%SRC_DIR%\nul" RD /s /q "%SRC_DIR%"
106 FOR %%I IN ( "%ARCHIVE%" ) do IF "%%~xI"==".gz" SET TAR_ARCHIVE=%%~nI
107 FOR %%I IN ( "%ARCHIVE%" ) do IF "%%~xI"==".bz2" SET TAR_ARCHIVE=%%~nI
110 IF DEFINED MAKE_SRC_DIR IF NOT EXIST "%SRC_DIR%\nul" MKDIR %SRC_DIR%
111 IF DEFINED MAKE_SRC_DIR SET TARGET_DIR=%SRC_DIR%
113 ECHO Extracting %ARCHIVE%
114 7z x -bd -y -o"%TARGET_DIR%" "%ARCHIVE%" 2>&1 > "%ARCHIVE%.log"
115 IF ERRORLEVEL 1 EXIT /B 2
116 IF NOT DEFINED TAR_ARCHIVE GOTO :get_source_done
117 ECHO Extracting %TAR_ARCHIVE%
118 7z x -bd -y -o"%TARGET_DIR%" "%TARGET_DIR%\%TAR_ARCHIVE%" & del /q "%TAR_ARCHIVE%" 2>&1 >> "%ARCHIVE%.log"
129 CALL :get_source %URL_ZLIB% %DIR_ZLIB% %MKD_ZLIB%
132 REM XCOPY contrib\masmx86\gvmat32.asm . /Y
133 REM XCOPY contrib\masmx86\gvmat32c.c . /Y
134 REM XCOPY contrib\masmx86\inffas32.asm . /Y
135 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
136 CALL :do_nmake win32\Makefile.msc LOC="-D_CRT_SECURE_NO_DEPRECATE" all
138 XCOPY zlib1.dll.manifest %DEPPKG_DIR%\bin\ /Y
139 XCOPY zlib1.dll %DEPPKG_DIR%\bin\ /Y
140 XCOPY zlib.lib %DEPPKG_DIR%\lib\ /Y
141 XCOPY zdll.lib %DEPPKG_DIR%\lib\ /Y
142 XCOPY zlib.h %DEPPKG_DIR%\include\ /Y
146 CALL :get_source %URL_PCRE% %DIR_PCRE% %MKD_PCRE%
147 REM ECHO Patching PCRE
148 REM COPY /Y nul patch.log
149 REM do_patch pcre.patch
150 ECHO Configuring PCRE
151 ./configure CC_FOR_BUILD=gcc CXX_FOR_BUILD=g++ --host=mingw32 --prefix=%DEPPKG_DIR% --enable-utf8 --enable-unicode-properties 2>&1 > make.log
153 do_make Makefile PREFIX=%DEPPKG_DIR% all
155 do_make Makefile PREFIX=%DEPPKG_DIR% install
159 CALL :get_source %URL_PTHREADS% %DIR_PTHREADS% %MKD_PTHREADS%
160 ECHO Installing pthreads
161 XCOPY Pre-built\include\*.h %DEPPKG_DIR%\include\ /Y
162 XCOPY Pre-built\lib\pthreadVCE.lib %DEPPKG_DIR%\lib\ /Y
163 XCOPY Pre-built\lib\pthreadVCE.dll %DEPPKG_DIR%\bin\ /Y
167 CALL :get_source %URL_OPENSSL% %DIR_OPENSSL% %MKD_OPENSSL%
168 IF ERRORLEVEL 2 GOTO :OpenSSLError
169 ECHO Configuring openssl
170 perl Configure VC-WIN32 --prefix=%DEPPKG_DIR:\=/% > make.log
171 ECHO Building openssl
174 CALL :do_nmake ms\ntdll.mak
176 ECHO Installing openssl
177 CALL :do_nmake ms\ntdll.mak install
180 ECHO Unable to download OpenSSL source from %URL_OPENSSL%
184 CALL :get_source %URL_MYSQL% %DIR_MYSQL% %MKD_MYSQL%
185 ECHO Installing mysql
186 IF EXIST ..\..\include\mysql\nul RD /s /q ..\..\include\mysql
187 XCOPY include\* ..\..\include\mysql\ /e/h/k/y 2>&1
188 XCOPY lib\opt\libmysql.lib ..\..\lib\ /y
189 XCOPY lib\opt\libmysql.dll ..\..\bin\ /y
193 CALL :get_source %URL_POSTGRESQL% %DIR_POSTGRESQL% %MKD_POSTGRESQL%
194 IF ERRORLEVEL 2 GOTO :pstgreSQL_Error1
195 CALL :get_source %URL_POSTGRESQL_SRC% %DIR_POSTGRESQL_SRC% %MKD_POSTGRESQL_SRC%
196 IF ERRORLEVEL 2 GOTO :pstgreSQL_Error2
197 REM ECHO Patching postgreSQL
198 REM COPY /Y nul patch.log
199 REM do_patch postgresql.patch
200 ECHO Installing postgreSQL
201 XCOPY ..\pgsql\include\libpq-fe.h ..\..\include\ /Y 2>&1
202 dlltool -l ..\..\lib\libpgsql.lib -D libpgsql.dll -d src/interfaces/libpq/libpqdll.def
203 XCOPY ..\pgsql\lib\libpq.dll ..\..\bin\ /Y
204 XCOPY ..\pgsql\lib\libintl-2.dll ..\..\bin\ /Y
205 XCOPY ..\pgsql\lib\libiconv-2.dll ..\..\bin\ /Y
208 ECHO Unable to download postgreSQL binaries from %URL_POSTGRESQL%
211 ECHO Unable to download postgreSQL source from %URL_POSTGRESQL_SRC%
215 CALL :get_source %URL_SQLITE% %DIR_SQLITE% %MKD_SQLITE%
216 CALL :get_source %URL_SQLITE_WINSRC% %DIR_SQLITE_WINSRC% %MKD_SQLITE_WINSRC%
217 REM ECHO Patching SQLite
218 REM COPY /Y nul patch.log
219 REM do_patch sqlite.patch
220 ECHO Configuring SQLite
221 IF NOT EXIST bld/nul MKDIR bld
225 do_make ../Makefile.mingw32 CROSSTOOLS=%BIN_DIR% TLIBS="-L%DEPPKG_DIR%/lib" TCL_FLAGS="-I%DEPPKG_DIR%/include" clean all
226 ECHO Installing SQLite
227 cp -p sqlite3.exe %DEPPKG_DIR%/bin
228 cp -p libsqlite3.a %DEPPKG_DIR%/lib
229 cp -p sqlite3.h %DEPPKG_DIR%/include
233 CALL :get_source %URL_WX% %DIR_WX% %MKD_WX%
234 IF ERRORLEVEL 2 GOTO :wxWidgets_error
235 REM IF ERRORLEVEL 1 GOTO :wxWidgets_skip_patch
236 REM ECHO Patching wxWidgets
237 REM COPY /Y nul patch.log
238 REM do_patch wx1.patch -o build/msw/config.mingw32
239 REM do_patch wx2.patch
240 REM find . -name makefile.gcc -exec sh -c "sed -f %SCRIPT_DIR%/patches/wx.sed {% > \`ECHO {% | sed s/\.gcc$/\.mingw32/\`" \;
241 ECHO Building wxWidgets
244 CALL :do_nmake makefile.vc BUILD=release SHARED=1 VENDOR=bacula DEBUG_INFO=1
245 ECHO Installing wxWidgets
247 IF EXIST ..\..\include\wx\nul RD /s /q ..\..\include\wx
248 XCOPY include\wx ..\..\include\wx\ 2>&1
249 XCOPY include\wx\generic ..\..\include\wx\generic\ 2>&1
250 XCOPY include\wx\msw ..\..\include\wx\msw\ 2>&1
251 XCOPY lib\vc_dll\*.dll ..\..\bin\ /y
252 IF EXIST ..\..\lib\wx_dll\nul RD /s /q ..\..\lib\wx_dll
253 XCOPY lib\vc_dll\*.lib ..\..\lib\wx_dll\
254 XCOPY lib\vc_dll\msw ..\..\lib\wx_dll\msw\ /e 2>&1
257 ECHO Unable to download wxWidgets source from %URL_MTX%
261 CALL :get_source %URL_NSIS_BIN% %DIR_NSIS_BIN% %MKD_NSIS_BIN%
263 IF EXIST ..\nsis\nul RD /s /q ..\nsis
264 MOVE nsis-2.17 ..\nsis
268 CALL :get_source %URL_MTX% %DIR_MTX% %MKD_MTX%
269 IF ERRORLEVEL 2 GOTO :mtx_error
270 IF ERRORLEVEL 1 GOTO :mtx_skip_patch
272 COPY /Y config.h.in config.h
273 COPY /Y Makefile.in Makefile
274 COPY /Y nul patch.log
275 CALL :do_patch mtx.patch
276 CALL :do_patch mtx-msvc1.patch
277 CALL :do_patch mtx-msvc2.patch
280 CALL :do_nmake Makefile.msc PREFIX=%DEPPKG_DIR% all
282 CALL :do_nmake Makefile.msc PREFIX=%DEPPKG_DIR% install
285 ECHO Unable to download mtx source from %URL_MTX%
289 CALL :get_source %URL_MT% %DIR_MT% %MKD_MT%
290 IF ERRORLEVEL 2 GOTO :mt_error
291 IF ERRORLEVEL 1 GOTO :mt_skip_patch
293 COPY /Y nul patch.log
294 CALL :do_patch mt.patch
297 CALL :do_nmake Makefile.msc PREFIX=%DEPPKG_DIR% all
299 CALL :do_nmake Makefile.msc PREFIX=%DEPPKG_DIR% install
302 ECHO Unable to download mt source from %URL_MT%
306 SET PATCH_FILE=%SCRIPT_DIR%\patches\%1
308 patch -f -p0 %2 %3 %4 %5 %6 %7 %8 %9 >>patch.log < %PATCH_FILE%
309 IF NOT ERRORLEVEL 1 EXIT/B 0
310 ECHO Patch failed - Check %CD%\patch.log > con
314 nmake /nologo -f %* 2>&1 | tee -a make.log | sed -nf "%DEPPKG_DIR%\src\parse_output.sed"
315 IF NOT ERRORLEVEL 1 EXIT/B 0
316 ECHO Make failed - Check %CD%\make.log > con
320 #Need to download from Microsoft