@echo off setlocal REM Adding Wix to the path. set PATH=%PATH;%@EXECSTR[cd]\wix set OLD_PATH=%PATH set OLD_EIFFEL_SRC=%EIFFEL_SRC set OLD_ISE_LIBRARY=%ISE_LIBRARY set OLD_ISE_SRC=%ISE_SRC set INIT_DIR=%@EXECSTR[cd] set TMP_ISE_EIFFEL=%ISE_EIFFEL call %~dp0inc\set_aliases.btm REM Create parent dir of %INSTALL_LOG if it does not exist. set_parent_dir_of PDIR %INSTALL_LOG% iff not isdir %PDIR then md /S %PDIR remtrace Create directory %PDIR endiff remtrace Set up the environment on break goto broken TIMER ON /1 >> NUL TIMER ON /2 >> NUL iff %@INDEX[%@LOWER[%$],h] ge 0 .or. %@INDEX[%@LOWER[%$],help] 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 - no_wizards: to discard wizards building echo - no_install: to generare only the delivery (but not the installation executable) echo (or nothing to fully regenerate the installation). CANCEL endiff iff %@INDEX[%@LOWER[%$],no_compil] 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_new_ec] ge 0 then set NO_NEW_EC="True" else unset /Q NO_NEW_EC endiff iff %@INDEX[%@LOWER[%$],enterprise] ge 0 then set BUILD_ENTERPRISE_ONLY="True" else unset /Q BUILD_ENTERPRISE_ONLY endiff iff %@INDEX[%@LOWER[%$],no_wizard] ge 0 then set NO_WIZARDS="True" else unset /Q NO_WIZARDS endiff set EIFFEL_SRC=%TMP_EIFFEL_SRC set ISE_LIBRARY=%TMP_EIFFEL_SRC set ISE_SRC=%TMP_EIFFEL_SRC cdd %INIT_DIR REM This is not a comment, it should create a 0-sized log file. REM > %INSTALL_LOG remtrace Approximative starting time: remtrace %_TIME call inc\check_environment.btm call inc\display_environment.btm call inc\get_environment_confirmation.btm if %ERRORLEVEL% == 0 CANCEL rem remtrace -------------------------------- rem remtrace Installation parameters are: rem remtrace - ISE_EIFFEL=%ISE_EIFFEL rem remtrace - ISE_PLATFORM=%ISE_PLATFORM rem remtrace - INSTALL_DIR=%INSTALL_DIR rem remtrace - STUDIO_DIR=%STUDIO_DIR rem 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 if exist %INSTALL_DIR nolog_fullrf %INSTALL_DIR iff exist %INSTALL_DIR then remtrace 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\help\defaults\unix fullrd studio\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\experimental safe_md %STUDIO_DIR\experimental\precomp safe_md %STUDIO_DIR\experimental\precomp\spec cd %STUDIO_DIR\experimental\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 %ISE_PLATFORM fullrf *-safe.ecf cdd ..\%ISE_PLATFORM-dotnet fullrf *-safe.ecf 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 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 cdd %STUDIO_DIR remtrace root exprt -N -r %PUBLIC_SVN_REVISION %DEFAULT_PUBLIC_SVN/Src/Delivery Delivery move Delivery\*.* . >>& %INSTALL_LOG 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 inc\make_libraries.btm %STUDIO_DIR library cdd %INIT_DIR call inc\make_libraries.btm %STUDIO_DIR\experimental experimental/library cdd %INIT_DIR call inc\make_other_libraries.btm %STUDIO_DIR remtrace Compile C code of Eiffel Software C libraries cdd %INIT_DIR call %INIT_DIR\inc\set_has_c_compiler HAS_VC140 VC140 iff defined ISE_C_COMPILER_VER .and. %ISE_C_COMPILER_VER% != "VC140" then call %INIT_DIR\inc\set_has_c_compiler HAS_C_COMP_VER %ISE_C_COMPILER_VER else set "HAS_C_COMP_VER=False" endiff iff %HAS_VC140% == "True" then call espawn -u:VC140 "%COMSPEC% /c inc\compile_c_libraries.btm %STUDIO_DIR msc_vc140" endiff iff %HAS_C_COMP_VER% == "True" then cdd %INIT_DIR call espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c inc\compile_c_libraries.btm %STUDIO_DIR msc" endiff cdd %INIT_DIR call inc\compile_c_libraries.btm %STUDIO_DIR mingw cdd %INIT_DIR iff %HAS_VC140% == "True" then call espawn -u:VC140 "%COMSPEC% /c inc\compile_c_libraries.btm %STUDIO_DIR\experimental msc_vc140" endiff iff %HAS_C_COMP_VER% == "True" then cdd %INIT_DIR espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c inc\compile_c_libraries.btm %STUDIO_DIR\experimental msc" endiff cdd %INIT_DIR call inc\compile_c_libraries.btm %STUDIO_DIR\experimental mingw remtrace Build the C libraries of non-Eiffel Software C libraries cdd %INIT_DIR iff %HAS_VC140% == "True" then espawn -u:VC140 "%COMSPEC% /c inc\compile_other_c_libraries.btm %STUDIO_DIR msc_vc140" endiff iff %HAS_C_COMP_VER% == "True" then cdd %INIT_DIR espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c inc\compile_other_c_libraries.btm %STUDIO_DIR msc" endiff cdd %INIT_DIR call inc\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 fullrd %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 remtrace ISE specific files cdd %EIFFEL_SRC co %DEFAULT_ISE_SVN/Src/library/keygen library/keygen cd tools co %DEFAULT_ISE_SVN/Src/tools/activation activation co %DEFAULT_ISE_SVN/Src/tools/estudio_enterprise estudio_enterprise remtrace Build the normal libraries cdd %INIT_DIR call inc\update_libraries.btm %EIFFEL_SRC remtrace Build the experimental libraries cdd %INIT_DIR call inc\update_libraries.btm %EIFFEL_SRC\experimental cdd %INIT_DIR give_time_to update libraries remtrace Generate needed executables of the bin directory call inc\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 inc\make_wizards.btm cdd %INIT_DIR give_time_to compile basic wizards remtrace Generate the COM wizard call inc\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 inc\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 cdd %INIT_DIR iff not defined NO_INSTALL then iff defined ISE_C_COMPILER_VER then call %INIT_DIR\inc\set_has_c_compiler HAS_C_COMP_VER %ISE_C_COMPILER_VER else set "HAS_C_COMP_VER=False" endiff iff defined ISE_C_COMPILER_VER .and. %HAS_C_COMP_VER% == "True" then espawn -u:%ISE_C_COMPILER_VER% "%COMSPEC% /c make_installations.btm" else espawn "%COMSPEC% /c make_installations.btm" endiff cdd %INIT_DIR endiff REM Finish remtrace final time: remtrace %_TIME remtrace total used time: remtrace %@TIMER[2] REM Error handling and normal ending :broken CANCEL