Free Electron
|
OUTDATED.
This page still needs an overhaul.
This guide describes the process of creating a development environment for the Free Electron codebase, from scratch. Note that this is a *developer* setup guide, not a *user* setup guide. There are sections for each platform supported by Free Electron. The following assumptions are made regarding the state of the target system:
Please refer to the section associated with your system:
Variable | Value | Example | Description |
FE_ROOT | <path to local FE svn repo> | D:\projects\fe\subversion | A convenience variable leveraged by several others |
CODEGEN | buildtype [debug,optimize,profile] | debug | Used by Forge to dictate the nature of the build. |
FE_LIB | <path to desired lib directory for generated binaries> | D:\projects\fe | Instructs Forge to create and use a lib directory at the specified location for all generated libs. If not specified, Forge will use $FE_ROOT instead. |
Variable | Value | Example | Description |
PRETTY | anything | 1 | Used to colorize Forge's shell output. The value of this var doesn't matter, as Forge only checks whether or not it exists. |
CCACHE_DIR | <path to local ccache temp> | /usr/tmp/ccache | Instructs Forge to leverage ccache, and specifies the ccache temp directory. |
FE_E_ASSERT | non-zero value | 1 | Causes an assert to occur whenever an exception would have been thrown. |
FE_OBJ | <path to desired obj directory for generated object files> | D:\projects\fe | Instructs Forge to create and use a obj directory at the specified location for all generated object files. If not specified, Forge will use $FE_LIB instead. |
pending...
Variable | Value | Example | Description |
FE_PATH | <paths to local FE binaries> | %FE_ROOT%\bin;%FE_LIB%\lib\x86_win32_%CODEGEN%; %FE_LIB%\lib\x86_win32_%CODEGEN%\fe; |
A convenience variable used to make the generated binaries easy to execute. |
HASH_MAP_OVERRIDE | non zero value | 1 | Causes std::map to appear as ext::hash_map in the code. |
C:\Program Files\Microsoft Visual Studio\VC98\Bin
).
It's advised to run the version
of this file that exists on your system, as it will be configured correctly for the directories on your
system. Attempts to substitute for it, or use a custom env are beyond
the scope of this guide.
Variable | Value | Example | Description |
PYTHON_ROOT | <root directory of your python installation> | "C:\Program Files\Python22" | Used by scripts to locate python binaries, modules, etc.. |
PYTHON_VERSION | major.minor python version | 2.2 | The major.minor version number of the pyton installation. NOTE - it is very important that you DO NOT include the third version number (use 2.2 NOT 2.2.3) |
PYTHONPATH | <directory of your FE binaries> | %FE_PATH% | An additional set of directories that the Python interpreter considers as part of its $PATH. NOTE - if this variable already exists after you install Python, then just append the FE part to it. |
boost_1_31_0
directory. If that annoys you as much as it does me, just rename it to 'Boost'.
That way, if you were to upgrade boost, you wouldn't have to track down references to the version-ized
directory name. Whatever you call it, all subsequent directory references as relative to this root directory.
boost\tools\build\jam_src\build.bat
(this builds boost.jam, which is boost's build tool)
bin.ntx86
, which contains the boost.jam executables.
Add the path for these executables to your $PATH environment variable (or, if you don't care, you can just copy
the executables to somewhere that is already in the $PATH, such as your $WINDIR\system32 directory).
boost\boost\config\user.hpp
such that it contains: #define BOOST_THREAD_NO_LIB
C:\projects\boost_1_31_0
), and run the following command:bjam "-sTOOLS=vc7.1" --prefix=D:\projects\boost_1_31_0 install
Variable | Value | Example | Description |
BOOST_VERSION | specially formatted boost version number | 1_31 | Used by Forge to correctly identify boost binaries. NOTE -- this variable MUST NOT exist *BEFORE* you build boost, only afterwards. If you're rebuilding boost, delete this variable first, and then replace it after the boost build finishes. If you don't, boost installs itself using '1__1' which is bad. |
BOOST_INCLUDE | <directory of the boost header files> | D:\projects\Boost\include\boost-%BOOST_VERSION% | Used by Forge to allow the correct inclusion of boost header files. |
BOOST_LIB | <root directory of the generated boost binaries> | D:\projects\Boost\lib | Used by Forge to allow correct linking to the boost binaries. |
BOOST_STRUCTURE | installtype [install,bin-stage] | install | Used by Forge to allow correct usage of boost files. Not sure exactly what this does... |
Variable | Value | Example | Description |
DEVIL | <directory of the boost header files> | D:\projects\DevIL | Convenience variable leveraged when appending to some other env vars. |
SDL-1.2.7
directory. If that annoys you as much as it does me, just rename it to 'SDL'.
That way, if you were to upgrade SDL, you wouldn't have to track down references to the version-ized
directory name. Whatever you call it, all subsequent directory references as relative to this root directory.
$FE_ROOT
svn co https://imonk.com/svn/fe .
%DEVIL%\include
%DEVIL%\lib
%PYTHON_ROOT%
%PYTHONPATH%
%BOOST_LIB%
%DEVIL%\lib
%FE_PATH%
cd $FE_ROOT
forge.py -d [target]
(e.g.: forge.py -d root
)
forge.py -h
' to see a brief summary of forge.py command line usage.
cd $FE_ROOT\doc
doxygen
$FE_ROOT\doc\html\index.html
These are prliminary notes taken while trying to setup a Mac Mini OSX 10.4 Install Fink. This is technically not required, but makes life much easier. http://fink.sourceforge.net Install subversion (I did via the fink svn-client package...using dselect). Get FE source: svn co http://imonk.com/svn/fe/main Install boost. There is a fink package in 'unstable', but I did it from source.