This project does not have any commercial value due to licensing issues. Moreover it is way too big to be developed by a single person. The logical decision was to develop it with open sources so anyone may contribute to it. Currently it resides on SourceForge in the repository http://cloverefiboot.sourceforge.net.
Open source projets nevertheless have certain limitations, "licensing" so to say. In particular, this project uses GPL, developed for Linux application. There is a downside, however. Intel does not recommend its use.
Small digression - following points are necessary during the creation of such a big project:
The remaining developers and helpers are mentioned either way in the source code and in the installer.
I write this section in hope that there may be other volunteers willing to work on this project and for this you need to at least be able to compile.
To compile a project you need a compiler and libraries - it's a truism. What needs to be done in this particular case? The libraries are covered by the EDK2 environment from http://sourceforge.net/projects/edk2. Due to the fact that this project was created for a Hackintosh, focus will be set on the compilation process under Mac OS X. Nevertheless, this is not the only option. EDK2 was designed for a compilation on different systems like Windows, Linux, and others. Visual Studio 20xx is needed for Windows, Xcode Command Line Tools for Mac OS X, and gcc for Linux. The pre-bundled software are still not enough for a successful compilation under Mac. The recommendation is - same as for Linux - to build a new version of gcc using the script "buildgcc.sh" from Clover's directory. Why not clang? - It still does not produce any working code. Let's not give up hope, though.
Now to the real deal. A reader who came to this section cannot be a simple user by definition and thus it is not necessary to explain how to use a terminal.
Download the source code and prepare the environment
cd ~ mkdir src cd src svn co -r 18198 svn://svn.code.sf.net/p/edk2/code/trunk/edk2 edk2 cd edk2 make -C BaseTools/Source/C svn co svn://svn.code.sf.net/p/cloverefiboot/code Clover cd Clover
Building the compiler. gcc-4.9. This is the compiler that can do LTO optimization.
./buildgettext.sh ./buildgcc-4.9.sh ./buildnasm.sh
Adapting the EDK2 environment to our needs
./edksetup.sh cp -R Clover/Patches_for_EDK2/* ./
1-3a. In the case you already did all these steps and just want to update Clover then no need to repeat this steps. Just do:
cd Clover svn up
Now it is possible to build CloverEFI. For example like this:
Other compilation scripts are available and usually they are documented. Look, choose and decide for yourself, which one you want to use.
./ebuild.sh ./ebuild.sh -mc ./ebuild.sh --ia32
Small note: HFSPlus.efi is not available in the repository. There are two options: You can find it somewhere else or change the project definition files .fdf to use the open driver VboxHfs instead of the private one. It is a bit slower and has some downsides that will probably be corrected in future, but it is functional. Change:
# foreign file system support #INF Clover/VBoxFsDxe/VBoxHfs.inf INF RuleOverride=BINARY Clover/HFSPlus/HFSPlus.inf
# foreign file system support INF Clover/VBoxFsDxe/VBoxHfs.inf #INF RuleOverride=BINARY Clover/HFSPlus/HFSPlus.inf
This project does not stand still and that is why this instruction may become obsolete because of some small change. This project is for people who think and for those who can figure out what is wrong and what to do.
Building the installer package
cd ~/src/edk2/Clover/CloverPackage/ ./makepkg ./makeiso
That's all! Some steps can be left out if you do this process repeatedly. For example you can issue an "svn up" instead of re-downloading the whole project one more time, exclude the 32-bit compilation process and skip compiling.
New users can use automated scripts CloverGrower and its Pro version, however they should think about just using the pre-made installer package first.
And now, as everything is ready, you can do the installation.
Last edited by Sergey (SergeySlice), 2015-08-26 09:30:00