Compiling

Scott Draves edited this page Apr 21, 2017 · 10 revisions

Building on Linux

  • sudo apt-get install subversion autoconf libtool libgtk2.0-dev libgl1-mesa-dev libavcodec-dev libavformat-dev libswscale-dev liblua5.1-0-dev libcurl4-openssl-dev libxml2-dev libjpeg8-dev libgtop2-dev libboost-dev libboost-filesystem-dev libboost-thread-dev libtinyxml-dev freeglut3-dev glee-dev
  • install wxWidgets 3.0
  • install from flam3 (./configure; make; sudo make install), and then:
  • Checkout client source and then ./autogen.sh; ./configure; make; sudo make install

For gentoo, see #44. For fedora, see #46.

Building on Mac OS X

  • Open client_generic/MacBuild/ElectricSheep-Xcode3.xcodeproj into Xcode 3.1.X (you need at least 10.5 for running it)
  • Or Open client_generic/MacBuild/ElectricSheep.xcodeproj into Xcode 4 (this will not build for macos 10.4)
  • Target "ElectricSheepTestingApp" builds standalone application and "Screen Saver" one builds (wait for it...) screen saver module.
  • execute this command: "cp -r MacBuild/build/Debug/proximus.bundle ~/Library/Screen\ Savers/"
  • with Xcode 4, open the organizer to find the location of your derived data, and copy the proximus.bundle into place.
  • Choose Build from Build Menu
  • For Debug Active Build configuration the Screen Saver target will be built directly in ~/Library/Screen Savers folder so you can debug it directly
  • For Release Configuration it will be build directly in the build folder at the same level as a project
  • The all 32-bit targets are build using 10.4u SDK as a minimum system. 64-bit ones for 10.6 will be 10.6 minimum (64-bit screen saver exists only there).

Building on MS-Windows

Install TortoiseSVN.
Checkout ES svn to c:\esmsvc (https://electricsheep.svn.sourceforge.net/svnroot/electricsheep/trunk/client_generic)
Install Microsoft DirectX SDK (February 2010)
Install MSVC 2010 Express

Download wxWidgets 2.9.0 source. Unpack to c:\wxwidgets-2.9.0
Download latest libpng and zlib, replace all code files in c:\wxwidgets\src\libpng and c:\wxwidgets\src\zlib, respectively.
Modify .vcproj files to use /MT and /MTd instead of default /MD and /MDd (use notepad++ mass rename function - easiest)
use C:\wxWidgets-2.9.0\build\msw\wx_vc9.sln to build unicode release and unicode debug targets.
Copy wxzlib.lib and wxzlibd.lib to c:\wxwidgets\src\zlib to build libcurl later.

boost 1.43.0
open vcvars from start menu (visual studio 2010 command prompt)
cd c:\boost_1_43_0
Run bootstrap.bat to build bjam
Run bjam full build - requires ~5GB of space:
bjam --build-type=complete stage

Download libcurl and unpack it to folder c:\esmsvc\curl.
Use Curl 7.52.1. Latest version is 7.53.1 and this version cases troubles.

Edit file c:\esmsvc\curl\lib\makefile.vc9:
ZLIBLIBS = zlib.lib
replace with:
ZLIBLIBS = wxzlib.lib
ZLIBLIBSD = wxzlibd.lib

Modify target debug-zlib to use ZLIBLIBSD
Use visual studio 2010 command prompt and go to folder c:\esmsvc\curl\lib then type:
set ZLIB_PATH=c:\wxwidgets-2.9.0\src\zlib
nmake -f makefile.vc9 CFG=release-zlib RTLIBCFG=static
nmake -f makefile.vc9 CFG=debug-zlib RTLIBCFG=static

Build lua from svn using C:\esmsvc\lua5.1\mak.vs2005\lua5.1.sln
Build tinyxml from svn using C:\esmsvc\tinyXml\tinyxml.sln

Build ffmpeg under mingw/msys (see http://ffmpeg.arrozcru.org/forum/ for tips or if you want to build it another way)
Download necessary files from: http://sourceforge.net/projects/mingw/files/
Install MSYS-1.0.11.exe to c:\msys
Checkout ffmpeg svn to C:\msys\home\?your?login?\ffmpeg\svn
Download gnu binutils (2.20.1) and unpack+overwrite to C:\msys\mingw
Overwrite files using gcc bin, mingwrt dev and mingwrt dll package in c:\msys\mingw folder
Depending on current gcc version you will also need dlls for mpc, mpfr and gmp packages (4.5.0).

Run msys environment and go to ffmpeg folder:
cd ffmpeg

Create build folder and enter it:
cd build

Type:

../svn/configure --enable-memalign-hack --enable-gpl --enable-swscale --enable-w32threads --disable-encoders --disable-muxers --disable-demuxers --disable-doc --disable-ffplay --disable-ffserver --disable-network --enable-runtime-cpudetect --enable-version3 --enable-demuxer=avi --enable-hwaccel=h264_dxva2 --disable-decoders --enable-decoder=h264 --disable-parsers --disable-bsfs --enable-parser=h264 --cpu=i686 --disable-debug --disable-protocols --disable-filters --enable-protocol=file --target-os=mingw32
Use j4 if you have 4 cores:
make -j2
make install

Successful build creates C:\msys\local\include and C:\msys\local\lib
Create folder c:\esmsvc\ffmpeg\ffmpeg-static\lib and c:\esmsvc\ffmpeg\ffmpeg-static\include (copy C:\msys\local\include here).
Copy files from msys/mingw folders (C:\msys\mingw\lib, C:\msys\mingw\lib\gcc\mingw32\4.5.0): libgcc.a, libmingwex.a, libmoldname.a to c:\msys\local\lib folder.
Use .bat script (http://electricsheep.org/prepare_libs.bat) to create .lib files (it will copy libs to ffmpeg-static\lib folder automatically).

Now you can build C:\esmsvc\MSVC\electricsheep.sln (main program) and/or C:\esmsvc\MSVC\SettingsGUI\SettingsGUI.sln (settings gui)
Using installer from C:\esmsvc\InstallerMSVC will build installer package, after you copy appropriate files from DirectX SDK redist folder.
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.