Difference between revisions of "CDDHowtoRollARelease"

(Update version number)
 
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:CDD]]
 
[[Category:CDD]]
 +
== Update version number ==
 +
* geant -b $EIFFEL_SRC/Src/scripts/geant/build.eant set_ec_version
 +
* geant -b $EIFFEL_SRC/Src/scripts/geant/build.eant set_esbuilder_version
 +
 +
== List of CDD specific files ==
 +
The following files have to be overwritten or added to a stock EiffelStudio release:
 +
* ec(.exe) -> $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
 +
* Src/library/base/ise/support/cdd -> $ISE_EIFFEL/library/base/ise/support/cdd
 +
* Src/examples/cdd -> $ISE_EIFFEL/examples/cdd
 +
* Delivery/studio/help/defaults -> $ISE_EIFFEL/studio/help/defaults
 +
* Delivery/studio/bitmaps/png/16x16.png -> $ISE_EIFFEL/studio/bitmaps/png/16x16.png
 +
* Delivery/studio/bitmaps/png/splash_shadow.png -> $ISE_EIFFEL/studio/bitmaps/png/splash_shadow.png
 +
* Delivery/studio/bitmaps/png/splash.png -> $ISE_EIFFEL/studio/bitmaps/png/splash.png
 +
* [For Windows Only] estudio.exe -> $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
 +
RUNTIME patch
 +
* eif_except.h, eif_types.h: Src/C/run-time -> $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include/
 +
* Windows: finalized.lib, mtfinalized.lib, mtwkbench.lib, wkbench.lib: Src/C/run-time/LIB -> $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib(/msc)/
 +
* Linux: libfinalized.a, libmtfinalized.a, libmtwkbench.a, libwkbench.a: Src/C/run-time/ -> $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib/
 +
(NOTE: the libs mentioned above can be build with the geant script, geant -b %EIFFEL_SRC%/build.eant prepare)
 +
 +
== How to roll a release on Windows ==
 
* prepare some directory <INSTALL_DIR> like this:
 
* prepare some directory <INSTALL_DIR> like this:
** INSTALL_DIR/EiffelStudio : contains the complete delivery without the ec.exe binaries (there are several ways to do this, one is take the official release version and simply add/replace the new cdd files. Currently for 6.0 these are: cdd base library classes -> library/base/ise/support/cdd, the manual_test_class.cls file -> studio/help/defaults, the new 16x16.png -> studio/bitmaps/png/, the cdd examples folder -> /examples)
+
** create 3 subdirectories <INSTALL_DIR>/EiffelStudio, <INSTALL_DIR>/gcc, <INSTALL_DIR>/releases. Fill them according to the following description
** INSTALL_DIR/gcc: the gcc directory (check out $EIFFEL_SRC/free_add_ons/gcc 'as' this)
+
*** [<INSTALL_DIR>/EiffelStudio] has to contain a complete delivery without the ec.exe binaries. Without a working delivery script, this can be achieved by "patching" an official installation:
** INSTALL_DIR/releases/gpl_version/ec.exe (the cdd version exe, obviously)
+
**** copy the contents of the installation directory of a fresh offcial installation into <INSTALL_DIR>/EiffelStudio (fresh = NO EIFGENs produced. To be sure, uninstall the official version if alrady existing, manually delete the remains in the installation directory, and reinstall it WITHOUT building any precompilations)
** INSTALL_DIR/releases/enterprise_version/ec.exe (take the same ec.exe, it's a dummy for script and won't be used)
+
**** Remove the ec.exe from  <INSTALL_DIR>/EiffelStudio/studio/spec/windows/bin
 +
**** Replace/Add the cdd specific files (see list above). Watch out for the proper place to add/replace them (the above list is svn-specific)
 +
*** [<INSTALL_DIR>/gcc] needs to contain content of <svn-eiffel-branch>/free_add_ons/gcc
 +
*** [<INSTALL_DIR>/releases] needs to contain the ec.exe binaries (the cdd versions of course)
 +
**** <INSTALL_DIR>/releases/gpl_version/ needs to contain ec.exe
 +
**** <INSTALL_DIR>/releases/enterprise_version/ needs to contain ec.exe (take the same ec.exe, it's a dummy for using the scripts later on)
  
* let env variable INSTALL_DIR point to this <INSTALL_DIR>
+
* let env variable %INSTALL_DIR% point to the <INSTALL_DIR>
* let env variable INIT_DIR point to your Delivery/scripts/windows folder (i checked out trunk)
+
* let env variable %INIT_DIR% point to the <svn-eiffel-branch>/Delivery/scripts/windows folder
* finalize the "hallow" tool (Src/tools/hallow/hallow.ecf)
+
* finalize the "hallow" tool (<svn-eiffel-branch>/Src/tools/hallow/hallow.ecf)
* create if not exists directory INIT_DIR/install/bin
+
* create if not exists directory %INIT_DIR%/install/bin
* copy content of Src/tools/hallow/EIFGENs/hallow/F_code to INIT_DIR/install/bin
+
* copy content of <svn-eiffel-branch>/Src/tools/hallow/EIFGENs/hallow/F_code to INIT_DIR/install/bin
* get a proper setup.dll (from manus probably) and put it into INIT_DIR/install/binaries/x86/
+
* create if not exists directory %INIT_DIR%/install/binaries/x86
* (create directories that don't exist)
+
* get a proper setup.dll (from manus probably, or build yourself, instructions for this will be added soon) and put it into %INIT_DIR%/install/binaries/x86/
* start command line, go to INIT_DIR/install/content/eiffelstudio and run:
+
* start command line, go to %INIT_DIR%/install/content/eiffelstudio and run:
 
** nmake /nologo clean
 
** nmake /nologo clean
 
** nmake /nologo
 
** nmake /nologo
 
** nmake /nologo gpl_x86
 
** nmake /nologo gpl_x86
 
* wait some minutes .... and pray :-)
 
* wait some minutes .... and pray :-)

Latest revision as of 09:58, 15 July 2014

Update version number

  • geant -b $EIFFEL_SRC/Src/scripts/geant/build.eant set_ec_version
  • geant -b $EIFFEL_SRC/Src/scripts/geant/build.eant set_esbuilder_version

List of CDD specific files

The following files have to be overwritten or added to a stock EiffelStudio release:

  • ec(.exe) -> $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
  • Src/library/base/ise/support/cdd -> $ISE_EIFFEL/library/base/ise/support/cdd
  • Src/examples/cdd -> $ISE_EIFFEL/examples/cdd
  • Delivery/studio/help/defaults -> $ISE_EIFFEL/studio/help/defaults
  • Delivery/studio/bitmaps/png/16x16.png -> $ISE_EIFFEL/studio/bitmaps/png/16x16.png
  • Delivery/studio/bitmaps/png/splash_shadow.png -> $ISE_EIFFEL/studio/bitmaps/png/splash_shadow.png
  • Delivery/studio/bitmaps/png/splash.png -> $ISE_EIFFEL/studio/bitmaps/png/splash.png
  • [For Windows Only] estudio.exe -> $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin

RUNTIME patch

  • eif_except.h, eif_types.h: Src/C/run-time -> $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include/
  • Windows: finalized.lib, mtfinalized.lib, mtwkbench.lib, wkbench.lib: Src/C/run-time/LIB -> $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib(/msc)/
  • Linux: libfinalized.a, libmtfinalized.a, libmtwkbench.a, libwkbench.a: Src/C/run-time/ -> $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib/

(NOTE: the libs mentioned above can be build with the geant script, geant -b %EIFFEL_SRC%/build.eant prepare)

How to roll a release on Windows

  • prepare some directory <INSTALL_DIR> like this:
    • create 3 subdirectories <INSTALL_DIR>/EiffelStudio, <INSTALL_DIR>/gcc, <INSTALL_DIR>/releases. Fill them according to the following description
      • [<INSTALL_DIR>/EiffelStudio] has to contain a complete delivery without the ec.exe binaries. Without a working delivery script, this can be achieved by "patching" an official installation:
        • copy the contents of the installation directory of a fresh offcial installation into <INSTALL_DIR>/EiffelStudio (fresh = NO EIFGENs produced. To be sure, uninstall the official version if alrady existing, manually delete the remains in the installation directory, and reinstall it WITHOUT building any precompilations)
        • Remove the ec.exe from <INSTALL_DIR>/EiffelStudio/studio/spec/windows/bin
        • Replace/Add the cdd specific files (see list above). Watch out for the proper place to add/replace them (the above list is svn-specific)
      • [<INSTALL_DIR>/gcc] needs to contain content of <svn-eiffel-branch>/free_add_ons/gcc
      • [<INSTALL_DIR>/releases] needs to contain the ec.exe binaries (the cdd versions of course)
        • <INSTALL_DIR>/releases/gpl_version/ needs to contain ec.exe
        • <INSTALL_DIR>/releases/enterprise_version/ needs to contain ec.exe (take the same ec.exe, it's a dummy for using the scripts later on)
  • let env variable %INSTALL_DIR% point to the <INSTALL_DIR>
  • let env variable %INIT_DIR% point to the <svn-eiffel-branch>/Delivery/scripts/windows folder
  • finalize the "hallow" tool (<svn-eiffel-branch>/Src/tools/hallow/hallow.ecf)
  • create if not exists directory %INIT_DIR%/install/bin
  • copy content of <svn-eiffel-branch>/Src/tools/hallow/EIFGENs/hallow/F_code to INIT_DIR/install/bin
  • create if not exists directory %INIT_DIR%/install/binaries/x86
  • get a proper setup.dll (from manus probably, or build yourself, instructions for this will be added soon) and put it into %INIT_DIR%/install/binaries/x86/
  • start command line, go to %INIT_DIR%/install/content/eiffelstudio and run:
    • nmake /nologo clean
    • nmake /nologo
    • nmake /nologo gpl_x86
  • wait some minutes .... and pray :-)