Open Enclave is available from GitHub. Use the following command to download the source distribution.
# git clone https://github.com/Microsoft/openenclave
This creates a source tree under the directory called openenclave.
The files and directories in the top-level directory are described as follows.
- LICENSE - The Open Enclave license
- README.md - This README file
- 3rdparty - Contains third-party software packages
- cmake - Contains CMake scripts for building Open Enclave.
- common - Contains sources that work in the enclave and the host
- docs - Contains documentation
- core - Contains the source for the oecore library
- enclave - Contains the source for the oeenclave library
- host - Contains source for the oehost library
- idl - Contains source for the oeidl library
- include - Contains C header files
- libc - Contains sources for the oelibc enclave library
- libcxx - Contains logic for building the oelibcxx library
- prereqs - Contains scripts for installing prerequisite software
- samples - Contains enclave-development sample sources
- scripts - Contains Shell scripts
- tests - Contains all test programs, which may also serve as samples
- tools - Contains command-line tools (oesgx, oesign, oegen)
The following are prerequisites for building and running Open Enclave.
- Ubuntu Desktop-16.04-LTS 64bits
- Various packages: build-essential, ocaml, automake, autoconf, libtool, wget, python, libssl-dev, libcurl4-openssl-dev, protobuf-compiler, libprotobuf-dev, build-essential, python, libssl-dev, libcurl4-openssl-dev, libprotobuf-dev, uuid-dev, libxml2-dev, cmake, pkg-config
Execute the following commands from the root of the source tree to install above prerequisites for you
$ cd openenclave
$ sudo ./scripts/install-prereqs