Root > Recompilation (Enterprise) > Recompilation


Previous pageReturn to chapter overviewNext page   

Please read these articles first:


EurekaLog Enterprise comes with full source code, which you can use to recompile EurekaLog. EurekaLog Enterprise contains additional \Projects folder, which contains project files to compile EurekaLog. There are project files for run-time package, design-time packages (IDE expert, component registration) and command-line compiler (ecc32/emake). There are no special projects for EurekaLog itself, because EurekaLog is not application, but library.


To recompile EurekaLog, you first must delete existing .dcu/.obj files. We recommend to rename all \Lib\<platform> folders (please, keep \Lib\Obj\ and \Lib\Common untouched) to remove them from search path, so IDE will not be able to find and use them. That way you will be able to restore original files at any time.


The next step depends on what you want to recompile.



Packages and compilers

1. To recompile packages and/or compilers you must either run your IDE under administrator account (this should be done only once - only for recompilation) or to change file permissions for EurekaLog folder in Program Files to allow modifications by limited user accounts.
2. Then you should open corresponding project file from Projects folder. Please, select project corresponding to your IDE. You can verify it here. You can also open project group to load all 3 projects (run-time package, design-time package and command-line compiler).
3. (Optionally) Change settings of project(s) as you desire.
4. Compile projects. Compiled executables will be placed to Packages folder. Compiled units will be placed to corresponding folder under Lib folder (make sure output paths exist).
5. Copy run-time package (EurekaLogCore) files into Windows\System32 folder of corresponding bitness.


Note: alternatively, you may change output path setting of run-time package (EurekaLogCore) project to Windows\System32 folder.


Important note: be sure to compile all packages with exact same settings. I.e. do not compile Core package with Release profile, but Expert package - with Debug profile. Usually, Debug profile contains DEBUG_EL_CODE conditional symbols, which enables various "{$IFDEF DEBUG_EL_CODE} if EL_Debug then DebugDump('ApplicationShowExceptionHandler'); {$ENDIF}" constructs, which allows you to diagnose EurekaLog without source code. See more about this feature here. So, if you compile packages with different settings - it may cause "unit is different version" errors, as well as "entry point not found" errors.



EurekaLog files

A) Total recompilation

EurekaLog files which are used for your applications are located in \Source and \Source\Common folders. The simplest way to re-create all .dcu/.obj files for these files - is to compile run-time package (EurekaLogCore) as explained above. This will create set of precompiled files in corresponding subfolder under \Lib folder. In some cases you can not use package project for recompilation. Then you just need to create empty project, set it properties as you like and add all .pas files from \Source folder. Recompiling this project will rebuild all units.


B) Recompilation on demand

If you do not want one-time recompilation, but want to constantly use actual .pas files (so you recompile EurekaLog each time you compile your project(s)) - then you can add a path to Source folder to Library/Search paths. You can do this either automatically or manually.


Automatic way:

1. Run "Start/Programs/EurekaLog/Manage EurekaLog in IDEs" tool.
2. Find your IDE in the list and expand it.
3. Click on "(Ent. only) Install EurekaLog 7 for development".
4. Restart your IDE.


Manual way:

1. (Optional) Remove existing .dcu/.obj files for EurekaLog (as explained above) and for your project(s).
2. Add \Source, \Source\Common and \Lib\Obj\Win32 (or Win64) folders to library search paths of your project (or IDE - to make this change global for all projects). You should add these folders to library search paths, not to browsing search path (as it's by default).
3. Compile your project. This will use .pas files from Source folder. EurekaLog will be recompiled each time you compiled your project. .dcu/.obj files will be placed to units output folder of your project (as set in its options).


This method can be used to constantly recompile EurekaLog when you changes its source code a lot (i.e. you develop your project and make changes in EurekaLog at the same time).


Note: we highly recommend to set specific unit output folder for your project (see Project/Options/Directories/Unit output folder). The exact location doesn't matter. But it should be writable. That way you will be able to compile EurekaLog's .pas files even under limited user account. Alternative is to change file permissions for EurekaLog installation folder to allow modifications for limited user accounts.



Final notes

EurekaLog does not contain source code for ZLib library. To recompile .obj files from \Lib\Obj folder - you must obtain source code for ZLib library. It's open-source cross-platform freeware library written in C. See official web-site.


EurekaLog contains only Delphi source code (.pas). C++ Builder support is implemented as compilation of Delphi files with C++ Builder. There are no .cpp/.hpp files. All shipped .obj/.hpp/.lib/.bpi files are auto-generated from .pas files. All EurekaLog projects have "Generate C++ files" option turned on.


Emake compiler is the same as ecc32. You can compile ecc32 and rename it to emake. EurekaLog uses the same ecc32 file for all IDE versions and personalities.


EurekaLog Viewer Tool uses DevExpress components. DevExpress suite is not included with EurekaLog. To recompile Viewer you must have DevExpress components installed. Viewer uses Express QuantumGrid, Express Printing System and ExpressBars.

Send feedback... Build date: 2018-11-27
Last edited: 2018-06-14
The documentation team uses the feedback submitted to improve the EurekaLog documentation. We do not use your e-mail address for any other purpose. We will remove your e-mail address from our system after the issue you are reporting has been resolved. While we are working to resolve this issue, we may send you an e-mail message to request more information about your feedback. After the issues have been addressed, we may send you an email message to let you know that your feedback has been addressed.

Permanent link to this article: