Small fix in make script.
[LameXP.git] / etc / Deployment / make.bat
blobfd0be1758f6b32e2aa8a6ca20a035d0cb5baff9d
1 @echo off
2 setlocal ENABLEDELAYEDEXPANSION
4 :: ---------------------------------------------------------------------------
5 :: SETUP ENVIRONMENT
6 :: ---------------------------------------------------------------------------
8 set "_LAMEXP_PATHS_INITIALIZED_="
10 call "%~dp0\_paths.bat"
11 call "%~dp0\_date.bat"
13 if "%LAMEXP_CONFIG%"=="" (
14         set "LAMEXP_CONFIG=Release"
17 if "%LAMEXP_PLATFORM%"=="" (
18         set "LAMEXP_PLATFORM=Win32"
21 if not "%LAMEXP_REDIST%"=="0" (
22         set "LAMEXP_REDIST=1"
25 :: ---------------------------------------------------------------------------
26 :: SETUP PATHS
27 :: ---------------------------------------------------------------------------
29 set "BIN_PATH=%~dp0\..\..\bin\%LAMEXP_PLATFORM%\%LAMEXP_CONFIG%"
30 set "TMP_PATH=%TEMP%\~LameXP.%LAMEXP_CONFIG%.%ISO_DATE%.%RANDOM%.tmp"
32 if "%LAMEXP_SKIP_BUILD%"=="YES" (
33         goto SkipBuildThisTime
36 :: ---------------------------------------------------------------------------
37 :: CLEAN UP
38 :: ---------------------------------------------------------------------------
40 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
41 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Cleaning up..."
42 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
44 for %%i in (bin,obj,tmp,ipch) do (
45         del /Q /S /F "%~dp0\..\..\%%i\*.*"
48 :: ---------------------------------------------------------------------------
49 :: UPDATE LANGUAGE FILES AND DCOS
50 :: ---------------------------------------------------------------------------
52 call "%~dp0\_mkdocs.bat"
53 call "%~dp0\_lupdate.bat"
55 :: ---------------------------------------------------------------------------
56 :: BUILD THE BINARIES
57 :: ---------------------------------------------------------------------------
59 call "%~dp0\_build.bat" "%~dp0\..\..\%PATH_VCPROJ%" "%LAMEXP_PLATFORM%" "%LAMEXP_CONFIG%"
61 :SkipBuildThisTime
63 :: ---------------------------------------------------------------------------
64 :: READ VERSION INFO
65 :: ---------------------------------------------------------------------------
67 call "%~dp0\_version.bat"
68 call "%~dp0\_revision.bat"
70 :: ---------------------------------------------------------------------------
71 :: GENERATE OUTPUT FILE NAME
72 :: ---------------------------------------------------------------------------
74 mkdir "%~dp0\..\..\out" 2> NUL
75 set "OUT_NAME=%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%"
76 set "OUT_FILE=%~dp0\..\..\out\!OUT_NAME!"
77 for /L %%n in (1, 1, 99) do (
78         if exist "!OUT_FILE!.exe" set "OUT_NAME=%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%.Update-%%n"
79         if exist "!OUT_FILE!.zip" set "OUT_NAME=%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%.Update-%%n"
80         set "OUT_FILE=%~dp0\..\..\out\!OUT_NAME!"
83 :: ---------------------------------------------------------------------------
84 :: DELETE OLD OUTPUT FILE
85 :: ---------------------------------------------------------------------------
87 for %%i in (exe,sfx,zip,txt) do (
88         del "%OUT_FILE%.%%i" 2> NUL
89         if exist "%OUT_FILE%.%%i" (
90                 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to delete existing output file^!\n"
91                 pause && exit
92         )
95 :: ---------------------------------------------------------------------------
96 :: COPY BINARY FILES AND REDIST
97 :: ---------------------------------------------------------------------------
99 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
100 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Copying binary files..."
101 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
103 rd /S /Q "%TMP_PATH%" 2> NUL
104 mkdir "%TMP_PATH%"
106 if %PATH_VCTOOL% GEQ 142 (
107         set "PATH_REDIST_QT=%~dp0\..\..\..\Prerequisites\Qt4\v%PATH_VCTOOL%"
108         set "PATH_REDIST_VC=%~dp0\..\..\..\Prerequisites\MSVC\redist\vc\v%PATH_VCTOOL%"
109 ) else (
110         set "PATH_REDIST_QT=%~dp0\..\..\..\Prerequisites\Qt4\v%PATH_VCTOOL%_xp"
111         set "PATH_REDIST_VC=%~dp0\..\..\..\Prerequisites\MSVC\redist\vc\v%PATH_VCTOOL%_xp"
114 call "%~dp0\_copy.bat" "%BIN_PATH%\LameXP.exe" "%TMP_PATH%"
115 call "%~dp0\_copy.bat" "%~dp0\..\..\etc\Manifest\VisualElements.xml" "%TMP_PATH%\LameXP.VisualElementsManifest.xml"
117 if "%LAMEXP_REDIST%"=="1" (
118         call "%~dp0\_copy.bat" "%BIN_PATH%\LameXP.rcc" "%TMP_PATH%"
119         call "%~dp0\_copy.bat" "%BIN_PATH%\MUtils32-?.dll" "%TMP_PATH%"
120         mkdir "%TMP_PATH%\imageformats"
121         for %%i in (Core,Gui,Network,Xml,Svg) do (
122                 call "%~dp0\_copy.bat" "%PATH_REDIST_QT%\Shared\bin\Qt%%i4.dll" "%TMP_PATH%"
123         )
124         for %%i in (gif,ico,jpeg,mng,svg,tga,tiff) do (
125                 call "%~dp0\_copy.bat" "%PATH_REDIST_QT%\Shared\plugins\imageformats\q%%i4.dll" "%TMP_PATH%\imageformats"
126         )
127         for %%i in ("%PATH_REDIST_VC%\x86\*.dll") do call "%~dp0\_copy.bat" "%%~i" "%TMP_PATH%"
128         if %PATH_VCTOOL% GEQ 140 (
129                 for %%i in ("%~dp0\..\..\..\Prerequisites\MSVC\redist\ucrt\DLLs\x86\*.dll") do (
130                         call "%~dp0\_copy.bat" "%%~i" "%TMP_PATH%"
131                 )
132         )
135 for %%x in (exe,dll) do (
136         for %%f in ("%TMP_PATH%\*.%%x") do (
137                 "%~dp0\..\..\..\Prerequisites\RichHeaderEraser\rchhdrrsr.exe" "%%~ff"
138         )
141 for %%e in (LameXP,Qt,MUtils) do (
142         for %%x in (exe,dll) do (
143                 for %%f in ("%TMP_PATH%\%%e*.%%x") do (
144                         "%~dp0\..\..\..\Prerequisites\UPX\upx.exe" --best "%%~ff"
145                 )
146         )
149 call "%~dp0\_copy.bat" "%~dp0\..\..\ReadMe.txt"           "%TMP_PATH%"
150 call "%~dp0\_copy.bat" "%~dp0\..\..\License.txt"          "%TMP_PATH%"
151 call "%~dp0\_copy.bat" "%~dp0\..\..\Copying.txt"          "%TMP_PATH%"
152 call "%~dp0\_copy.bat" "%~dp0\..\..\doc\Changelog.html"   "%TMP_PATH%"
153 call "%~dp0\_copy.bat" "%~dp0\..\..\doc\Translate.html"   "%TMP_PATH%"
154 call "%~dp0\_copy.bat" "%~dp0\..\..\doc\Manual.html"      "%TMP_PATH%"
156 mkdir "%TMP_PATH%\img\lamexp"
157 for %%f in ("%~dp0\..\..\doc\img\lamexp\*.png") do (
158         call "%~dp0\_copy.bat" "%%~f" "%TMP_PATH%\img\lamexp"
161 if not "%VER_LAMEXP_TYPE%" == "Final" (
162         if not "%VER_LAMEXP_TYPE%" == "Hotfix" (
163                 call "%~dp0\_copy.bat" "%~dp0\..\..\doc\PRE_RELEASE_INFO.txt" "%TMP_PATH%"
164         )
167 if exist "%~dp0\_postproc.bat" (
168         call "%~dp0\_postproc.bat" "%TMP_PATH%"
171 echo Release: %VER_LAMEXP_MAJOR%.%VER_LAMEXP_MINOR_HI%%VER_LAMEXP_MINOR_LO%.%VER_LAMEXP_BUILD%> "%TMP_PATH%\LameXP.tag"
172 echo Git-%GIT_REV_NAME%-r%GIT_REV_NMBR%-%GIT_REV_HASH% [%GIT_REV_DATE%] [%GIT_REV_TIME%]>>      "%TMP_PATH%\LameXP.tag"
174 attrib +R "%TMP_PATH%\*.txt"
175 attrib +R "%TMP_PATH%\*.html"
176 attrib +R "%TMP_PATH%\*.exe"
177 attrib +R "%TMP_PATH%\*.dll"
178 attrib +R "%TMP_PATH%\*.tag"
179 attrib +R "%TMP_PATH%\*.xml"
181 :: ---------------------------------------------------------------------------
182 :: CREATE TAG
183 :: ---------------------------------------------------------------------------
185 echo LameXP - Audio Encoder Front-End> "%OUT_FILE%.txt"
186 echo Version %VER_LAMEXP_MAJOR%.%VER_LAMEXP_MINOR_HI%%VER_LAMEXP_MINOR_LO% %VER_LAMEXP_TYPE%-%VER_LAMEXP_PATCH%, Build #%VER_LAMEXP_BUILD% [%ISO_DATE%] [%ISO_TIME%]>> "%OUT_FILE%.txt"
187 echo Git-%GIT_REV_NAME%-r%GIT_REV_NMBR%-%GIT_REV_HASH% [%GIT_REV_DATE%] [%GIT_REV_TIME%]>> "%OUT_FILE%.txt"
188 echo.>> "%OUT_FILE%.txt"
190 echo ------------------------------------------------------------------------------>> "%OUT_FILE%.txt"
191 echo README.TXT>> "%OUT_FILE%.txt"
192 echo ------------------------------------------------------------------------------>> "%OUT_FILE%.txt"
193 echo.>> "%OUT_FILE%.txt"
194 "%~dp0\..\..\..\Prerequisites\MSYS\1.0\bin\cat.exe" "%~dp0\..\..\ReadMe.txt" >> "%OUT_FILE%.txt"
195 echo.>> "%OUT_FILE%.txt"
197 echo ------------------------------------------------------------------------------>> "%OUT_FILE%.txt"
198 echo LICENSE.TXT>> "%OUT_FILE%.txt"
199 echo ------------------------------------------------------------------------------>> "%OUT_FILE%.txt"
200 echo.>> "%OUT_FILE%.txt"
201 "%~dp0\..\..\..\Prerequisites\MSYS\1.0\bin\cat.exe" "%~dp0\..\..\License.txt" >> "%OUT_FILE%.txt"
202 echo.>> "%OUT_FILE%.txt"
204 :: ---------------------------------------------------------------------------
205 :: BUILD INSTALLER
206 :: ---------------------------------------------------------------------------
208 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
209 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Creating release packages..."
210 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
212 pushd "%TMP_PATH%"
213 "%~dp0\..\..\..\Prerequisites\InfoZip\zip.exe" -r -9 -z "%OUT_FILE%.zip" "*.*" < "%OUT_FILE%.txt"
214 popd
216 "%~dp0\..\..\..\Prerequisites\NSIS\makensis.exe" "/DLAMEXP_DATE=%ISO_DATE%" "/DLAMEXP_VERSION=%VER_LAMEXP_MAJOR%.%VER_LAMEXP_MINOR_HI%%VER_LAMEXP_MINOR_LO%" "/DLAMEXP_BUILD=%VER_LAMEXP_BUILD%" "/DLAMEXP_INSTTYPE=%VER_LAMEXP_TYPE%" "/DLAMEXP_PATCH=%VER_LAMEXP_PATCH%" "/DLAMEXP_OUTPUT_FILE=%OUT_FILE%.sfx" "/DLAMEXP_SOURCE_PATH=%TMP_PATH%" "%~dp0\..\NSIS\setup.nsi"
217 if %ERRORLEVEL% NEQ 0 (
218         "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
219         pause && exit
222 "%~dp0\..\..\..\Prerequisites\NSIS\peheader.exe" "%OUT_FILE%.sfx"
223 if %ERRORLEVEL% NEQ 0 (
224         "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
225         pause && exit
228 call "%~dp0\..\..\..\Prerequisites\SevenZip\7zSDex.cmd" "%OUT_FILE%.sfx" "%OUT_FILE%.exe" "LameXP Setup" "LameXP-Setup-r%VER_LAMEXP_BUILD%"
229 if %ERRORLEVEL% NEQ 0 (
230         "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
231         pause && exit
234 set "VER_FILEVER=%VER_LAMEXP_MAJOR%.%VER_LAMEXP_MINOR_HI%.%VER_LAMEXP_MINOR_LO%.%VER_LAMEXP_PATCH%"
235 set "VER_PRODUCT=LameXP - Audio Encoder Front-End"
236 "%~dp0\..\..\..\Prerequisites\VerPatch\verpatch.exe" "%OUT_FILE%.exe" "%VER_FILEVER%" /pv "%VER_FILEVER%" /fn /s desc "%VER_PRODUCT%" /s product "%VER_PRODUCT%" /s title "LameXP Installer SFX" /s copyright "Copyright (C) LoRd_MuldeR" /s company "Free Software Foundation" /sc "Git-%GIT_REV_NAME%-r%GIT_REV_NMBR%-%GIT_REV_HASH% [%GIT_REV_DATE%] [%GIT_REV_TIME%]"
237 if %ERRORLEVEL% NEQ 0 (
238         "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
239         pause && exit
242 "%~dp0\..\..\..\Prerequisites\NSIS\peheader.exe" "%OUT_FILE%.exe"
243 if %ERRORLEVEL% NEQ 0 (
244         "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
245         pause && exit
248 :: ---------------------------------------------------------------------------
249 :: CLEAN UP
250 :: ---------------------------------------------------------------------------
252 attrib -R "%TMP_PATH%\*.txt"
253 attrib -R "%TMP_PATH%\*.html"
254 attrib -R "%TMP_PATH%\*.exe"
255 rd /S /Q "%TMP_PATH%"
257 for %%i in (zip,exe) do (
258         if not exist "%OUT_FILE%.%%i" (
259                 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to create release packages^!\n"
260                 pause && exit
261         )
264 attrib +R "%OUT_FILE%.zip"
265 attrib +R "%OUT_FILE%.sfx"
266 attrib +R "%OUT_FILE%.exe"
268 :: ---------------------------------------------------------------------------
269 :: SIGN OUTPUT FILE
270 :: ---------------------------------------------------------------------------
272 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
273 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Signing output file..."
274 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
276 "%~dp0\..\..\..\Prerequisites\GnuPG\bin\gpg.exe" -v -u 0x6CF3FA22 -a -o "%OUT_FILE%.exe.sig"  --detach-sign "%OUT_FILE%.exe"
277 "%~dp0\..\..\..\Prerequisites\GnuPG\bin\gpg.exe" -v -u 0x5F57E03F -a -o "%OUT_FILE%.exe.sig2" --detach-sign "%OUT_FILE%.exe"
278 "%~dp0\..\..\..\Prerequisites\GnuPG\bin\gpg.exe" -v -u 0x5F57E03F -a -o "%OUT_FILE%.zip.sig2" --detach-sign "%OUT_FILE%.zip"
280 attrib +R "%OUT_FILE%.exe.sig"
281 attrib +R "%OUT_FILE%.exe.sig2"
282 attrib +R "%OUT_FILE%.zip.sig2"
284 :: ---------------------------------------------------------------------------
285 :: COMPLETED
286 :: ---------------------------------------------------------------------------
288 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" green "\n==========================================================================="
289 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" green "Completed successfully :-)"
290 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" green "===========================================================================\n"
292 pause