===== Persistent Memory Library: pmlib ===== This is the project page for the persistent memory library **pmlib**. ==== Getting Started ==== To compile the project you will need the following: - A posix file-system - git: distributed version control system - CMake: build system - A decent C compiler (e.g. gcc, clang) In principle, you can compile the source with any C compiler. However, we use and recommend the use of clang. - Clang: a C language family frontend for LLVM === Setting up access to the gitlab === To get a copy of the code, you first need to get access to our gitlab server. Once you have an account and access to this project, then you can clone the code. The recommended was of "pulling" and "pushing" changes from/to the repo is ssh. To do this you need to add to your profile in [[https://sylab-srv.cs.fiu.edu/git|gitlab]], the public ssh key of the machine from which you work. Your ssh public key is located in **~/.ssh/id_rsa.pub**. Here are the steps - Log into [[https://sylab-srv.cs.fiu.edu/git|gitlab]] - Navigate to My Profile > Add Public Key - Enter the name of the computer as the title - Copy the content of your **~/.ssh/id_rsa.pub** into the key field - Click on Add key If you don't already have an aash key, you can create one issuing the following command. $ ssh-keygen Now you should be ready to follow the previous steps. === Installing the dependencies === If you are on a Debian/Ubuntu system, you can install git, cmake and clang with the following command. $ sudo apt-get install git-all clang cmake It's a good idea to verify that the version of clang in your system is not too old. [[http://llvm.org/apt/|Here]] you can checkout the most recent version of clang. === Getting the source code === Once you have set your account on gitlab, issue the following command to clone the repo: $ git clone git@sylab-srv.cs.fiu.edu:lmarmol/pmlib.git === Compiling the source code === Change directory into the repo folder. Assuming that you did not change the name, the following commands should work: $ cd pmlib $ mkdir build && cd build $ cmake ../src $ make https://docs.google.com/document/d/1p-zjXeSQWP0RiSe2-iw-ZA53XQOrgfRYNAwwpDDnMLM/edit?usp=sharing