@echo off setlocal REM Save previous environment REM FIXME: is it still needed with use of setlocal? set OLD_PATH=%PATH set OLD_EIFFEL_SRC=%EIFFEL_SRC set OLD_ISE_LIBRARY=%ISE_LIBRARY set OLD_ISE_SRC=%ISE_SRC set TMP_ISE_EIFFEL=%ISE_EIFFEL REM clear previous cache del /syeqxz %~dp0_cache REM load initialization call %~dp0init.btm remtrace Set up the environment on break goto broken TIMER ON /1 >> NUL TIMER ON /2 >> NUL iff %@INDEX[%@LOWER[%$],h] ge 0 then echo Installation for ISE Eiffel . echo Parameters are echo - no_compile: to discard any compilation echo - no_new_ec: to avoid compiling a new version of EiffelStudio echo - enterprise: to build only the enterprise version of EiffelStudio echo - standard: to build only the Standard version of EiffelStudio echo - no_wizards: to discard wizards building echo - no_install: to generare only the delivery (but not the installation executable) echo - no_msi: exclude .msi building echo - no_reuse: do not reuse executable previously compiled echo (or nothing to fully regenerate the installation). CANCEL endiff iff %@INDEX[%@LOWER[%$],no_compile] ge 0 then set NO_COMPILE="True" else unset /Q NO_COMPILE endiff iff %@INDEX[%@LOWER[%$],no_install] ge 0 then set NO_INSTALL="True" else unset /Q NO_INSTALL endiff iff %@INDEX[%@LOWER[%$],no_msi] ge 0 then set NO_MSI="True" ::else :: unset /Q NO_MSI endiff iff %@INDEX[%@LOWER[%$],no_new_ec] ge 0 then set NO_NEW_EC="True" else unset /Q NO_NEW_EC endiff iff %@INDEX[%@LOWER[%$],no_reuse] ge 0 then set NO_REUSE="True" else unset /Q NO_REUSE endiff iff %@INDEX[%@LOWER[%$],enterprise] ge 0 then set NO_STANDARD_BUILD="True" endiff iff %@INDEX[%@LOWER[%$],standard] ge 0 then set NO_ENTERPRISE_BUILD="True" unset /Q BUILD_ENTERPRISE set BUILD_STANDARD="True" endiff iff %@INDEX[%@LOWER[%$],no_wizard] ge 0 then set NO_WIZARDS="True" ::else :: unset /Q NO_WIZARDS endiff cdd %INIT_DIR call check_environment.btm call inc\display_environment.btm call inc\get_environment_confirmation.btm REM This is not a comment, it should create a 0-sized log file. REM > %INSTALL_LOG% REM > %ERROR_LOG% remtrace Approximative starting time: remtrace %_TIME remtrace -------------------------------- remtrace Installation parameters are: remtrace - ISE_EIFFEL=%ISE_EIFFEL% remtrace - ISE_PLATFORM=%ISE_PLATFORM% remtrace - ISE_C_COMPILER=%ISE_C_COMPILER% remtrace - ISE_C_COMPILER_VER=%ISE_C_COMPILER_VER% remtrace - INSTALL_DIR=%INSTALL_DIR% remtrace - STUDIO_DIR=%STUDIO_DIR% remtrace -------------------------------- cdd %INIT_DIR give_time_to warm up remtrace Retrieve and organize the delivery remtrace Remove %INSTALL_DIR if isdir %INSTALL_DIR nolog_fullrd %INSTALL_DIR >>& %INSTALL_LOG if exist %INSTALL_DIR nolog_fullrf %INSTALL_DIR >>& %INSTALL_LOG iff exist %INSTALL_DIR then echo Cannot delete %INSTALL_DIR! CANCEL endiff md %INSTALL_DIR md %STUDIO_DIR cdd %STUDIO_DIR remtrace studio exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/studio studio fullrd studio\bitmaps\src fullrf studio\bitmaps\png\icons_16x16.png fullrf studio\bitmaps\png\small_12x12.png fullrf studio\bitmaps\png\mini_10x10.png fullrd studio\help\defaults\unix fullrd studio\spec\unix fullrd tools\spec\unix cdd %STUDIO_DIR\studio\spec move windows\compile_library.bat %ISE_PLATFORM\bin\ move windows\mkdir.bat %ISE_PLATFORM\bin\ iff "windows"=="%ISE_PLATFORM" then fullrd win64 else fullrd windows endiff cdd %STUDIO_DIR\studio\config if not "windows"=="%ISE_PLATFORM" ren windows %ISE_PLATFORM cdd %STUDIO_DIR\studio\config\%ISE_PLATFORM%\ xcopy msc msc_vc140 /E /I safe_md %STUDIO_DIR\tools cdd %STUDIO_DIR\tools exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/tools/iron/delivery/iron iron cdd %STUDIO_DIR\tools\iron\spec if not "windows"=="%ISE_PLATFORM" ren windows %ISE_PLATFORM fullrd unix cdd %STUDIO_DIR\studio\lang fullrd po_files fullrd script cdd %STUDIO_DIR remtrace esbuilder exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/esbuilder esbuilder remtrace vision2 tour exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/vision2_demo vision2_demo remtrace examples exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/examples examples cd examples fullrd obsolete fullrd eiffeltest fullrd iphone fullrd libevent fullrd math fullrd matisse fullrd store\matisse fullrd old_com fullrd old_matisse fullrd vision fullrd build cd dotnet fullrd envision fullrd winforms\data\simple_binding cd .. cd vision2 fullrd Boxes fullrd drawing_area fullrd ev_list fullrd fake_event fullrd figure fullrd hello_world fullrd menu fullrd multicolumn_list fullrd pixmap fullrd split_area fullrd test_all_widgets fullrd test_events fullrd tests fullrd tutorial fullrd widget_test cd .. cd .. remtrace precomp safe_md %STUDIO_DIR\precomp safe_md %STUDIO_DIR\precomp\spec cd %STUDIO_DIR\precomp\spec exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/precomp/spec/platform %ISE_PLATFORM exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/precomp/spec/dotnet %ISE_PLATFORM-dotnet cdd %STUDIO_DIR remtrace wizards exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery/wizards wizards fullrf %STUDIO_DIR\studio\wizards\new_projects\wizard.dsc fullrd %STUDIO_DIR\studio\wizards\new_projects\wizard exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/help/wizards/ewf/rootdir %STUDIO_DIR\studio\wizards\new_projects\ewf move %STUDIO_DIR\studio\wizards\new_projects\ewf\ewf.dsc %STUDIO_DIR\studio\wizards\new_projects\ewf.dsc exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/help/wizards/library/rootdir %STUDIO_DIR\studio\wizards\new_projects\library move %STUDIO_DIR\studio\wizards\new_projects\library\library.dsc %STUDIO_DIR\studio\wizards\new_projects\library.dsc exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/help/wizards/wrapc/rootdir %STUDIO_DIR\studio\wizards\new_projects\wrapc move %STUDIO_DIR\studio\wizards\new_projects\wrapc\wrapc.dsc %STUDIO_DIR\studio\wizards\new_projects\wrapc.dsc remtrace C_library safe_md %STUDIO_DIR\C_library cdd %STUDIO_DIR\C_library exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/C_library/libpng libpng exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/C_library/zlib zlib exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/C_library/curl curl safe_md openssl exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/C_library/openssl/clibs_openssl.ecf openssl exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/C_library/openssl/include openssl/include cdd %STUDIO_DIR remtrace root exprt -N -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery Delivery move Delivery\*.* . >>& %INSTALL_LOG give_time_to move Delivery files. fullrd Delivery >>& %INSTALL_LOG fullrf INSTALL README make_install compile_libraries remtrace eweasel (just the necessary) exprt -N -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/eweasel eweasel exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/eweasel/bin eweasel/bin exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/eweasel/control eweasel/control fullrf %STUDIO_DIR\eweasel\INSTALL remtrace MinGW files cdd %STUDIO_DIR safe_md gcc cd gcc exprt -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/free_add_ons/gcc/%ISE_PLATFORM% %ISE_PLATFORM% remtrace Create directories cdd %STUDIO_DIR safe_md %STUDIO_DIR\studio\spec safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM safe_md %STUDIO_DIR\esbuilder\spec safe_md %STUDIO_DIR\esbuilder\spec\%ISE_PLATFORM safe_md %STUDIO_DIR\esbuilder\spec\%ISE_PLATFORM\bin safe_md %STUDIO_DIR\vision2_demo\spec safe_md %STUDIO_DIR\vision2_demo\spec\%ISE_PLATFORM safe_md %STUDIO_DIR\vision2_demo\spec\%ISE_PLATFORM\bin safe_md %STUDIO_DIR\wizards safe_md %STUDIO_DIR\wizards\com safe_md %STUDIO_DIR\wizards\com\config safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\include safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\msc safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\msc_vc140 safe_md %STUDIO_DIR\studio\spec\%ISE_PLATFORM\lib\mingw safe_md %STUDIO_DIR\rb give_time_to organize the delivery and to start filling it remtrace Checkout all the libraries cdd %INIT_DIR call make_libraries.btm %STUDIO_DIR library cdd %INIT_DIR call make_other_libraries.btm %STUDIO_DIR :clibs remtrace Compile C code of Eiffel Software C libraries remtrace HAS_VC_MSC=%HAS_VC_MSC% remtrace HAS_VC_MSC_VC140=%HAS_VC_MSC_VC140% remtrace HAS_C_COMP_VER=%HAS_C_COMP_VER% : ISE_C_COMPILER_VER=%ISE_C_COMPILER_VER% (ISE_C_COMPILER=%ISE_C_COMPILER%) iff "%HAS_VC_MSC%" == "True" then cdd %INIT_DIR remtrace Build the C libraries of non-Eiffel Software C libraries for msc (%ISE_VC_MSC%) call espawn -u:%ISE_VC_MSC% "%COMSPEC% /c compile_c_libraries.btm %STUDIO_DIR% msc" endiff iff "%HAS_VC_MSC_VC140%" == "True" then cdd %INIT_DIR remtrace Build the C libraries of non-Eiffel Software C libraries for msc_vc140 (%ISE_VC_MSC_VC140%) call espawn -u:%ISE_VC_MSC_VC140% "%COMSPEC% /c compile_c_libraries.btm %STUDIO_DIR% msc_vc140" endiff cdd %INIT_DIR remtrace Build the C libraries of non-Eiffel Software C libraries for mingw call compile_c_libraries.btm %STUDIO_DIR% mingw remtrace Build other C libraries iff "%HAS_VC_MSC%" == "True" then remtrace Build the other C libraries of non-Eiffel Software C libraries for msc (%ISE_VC_MSC%) cdd %INIT_DIR espawn -u:%ISE_VC_MSC% "%COMSPEC% /c compile_other_c_libraries.btm %STUDIO_DIR msc" endiff iff "%HAS_VC_MSC_VC140%" == "True" then remtrace Build the other C libraries of non-Eiffel Software C libraries for msc_vc140 (%ISE_VC_MSC_VC140%) cdd %INIT_DIR espawn -u:%ISE_VC_MSC_VC140% "%COMSPEC% /c compile_other_c_libraries.btm %STUDIO_DIR msc_vc140" endiff remtrace Build the other C libraries of non-Eiffel Software C libraries for mingw cdd %INIT_DIR call compile_other_c_libraries.btm %STUDIO_DIR mingw cdd %INIT_DIR REM Fill directories iff not defined NO_COMPILE then remtrace Update all libraries iff isdir %EIFFEL_SRC then remtrace Delete %EIFFEL_SRC rename %EIFFEL_SRC% %EIFFEL_SRC%-deleting fullrd %EIFFEL_SRC%-deleting give_time_to remove %EIFFEL_SRC% endiff safe_md %EIFFEL_SRC REM Clean up the files remtrace Update all source files. cdd %EIFFEL_SRC\.. co -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src %EIFFEL_SRC set SVN_VERSION=%@EXECSTR[set_version %EIFFEL_SRC] remtrace Building the revision %SVN_VERSION% echo %STUDIO_VERSION_MAJOR_MINOR% %SVN_VERSION% > %WORK_DIR%\%STUDIO_VERSION_MAJOR_MINOR%_%SVN_VERSION%.txt iff not defined NO_ENTERPRISE_BUILD then remtrace ISE specific files cdd %EIFFEL_SRC iff EXIST %INIT_DIR%\isesvn\library\keygen then xcopy %INIT_DIR%\isesvn\library\keygen library\keygen /E /I /Y else co -r %ISE_SVN_REVISION% %DEFAULT_ISE_SVN%/Src/library/keygen library/keygen endiff cd tools iff EXIST %INIT_DIR%\isesvn\tools\activation then xcopy %INIT_DIR%\isesvn\tools\activation activation /E /I /Y else co -r %ISE_SVN_REVISION% %DEFAULT_ISE_SVN%/Src/tools/activation activation endiff iff EXIST %INIT_DIR%\isesvn\tools\estudio_enterprise then xcopy %INIT_DIR%\isesvn\tools\estudio_enterprise estudio_enterprise /E /I /Y else co -r %ISE_SVN_REVISION% %DEFAULT_ISE_SVN%/Src/tools/estudio_enterprise estudio_enterprise endiff endiff remtrace Build the normal libraries cdd %INIT_DIR call update_libraries.btm %EIFFEL_SRC cdd %INIT_DIR give_time_to update libraries remtrace Generate needed executables of the bin directory call make_exes.btm cdd %INIT_DIR give_time_to compile exes iff not defined NO_WIZARDS then remtrace Generate the precompilation and the "new project" wizards call make_wizards.btm cdd %INIT_DIR give_time_to compile basic wizards remtrace Generate the COM wizard call make_com_wizard.btm cdd %INIT_DIR give_time_to compile the COM wizard else quick_move /s studio\wizards quick_move /s wizards endiff cdd %INIT_DIR remtrace Generate Resource Bench call make_rb.btm cdd %INIT_DIR give_time_to compile Resource Bench else remtrace Copy executable files from the old delivery quick_move /s studio\spec quick_move /s studio\wizards quick_move /s rb quick_move /s wizards cdd %STUDIO_DIR give_time_to copy executables from the old delivery endiff call %INIT_DIR%\call_make_installations.btm cdd %INIT_DIR% REM Finish remtrace final time: remtrace %_TIME remtrace total used time: remtrace %@TIMER[2] REM Error handling and normal ending :broken CANCEL