MPC-DualDP

Building MPC-DualDP

MPC-DualDP depends on PPAM. You need to build the dependencies of PPAM first, and then build MPC-DualDP.

First, install NASM with apt install nasm, or build and install NASM from source code downloaded from NASM’s official page. Assume that you are working in the root directory of NASM source code.

./configure
make -j
make install

Second, build and install IPCL using the following scripts. Assume that IPCL is cloned into the directory ${IPCL} and will be installed to the directory ${IPCL_INSTALL_DIR}.

cmake -B ${IPCL}/build -S ${IPCL} -DCMAKE_INSTALL_PREFIX=${IPCL_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release -DIPCL_TEST=OFF -DIPCL_BENCHMARK=OFF
cmake --build ${IPCL}/build -j
cmake --build ${IPCL}/build --target install

Third, build JSON for Modern C++ (JSON) using the following scripts. Assume that JSON is cloned into the directory ${JSON}.

cmake -B ${JSON}/build -S ${JSON}
cmake --build ${JSON}/build -j

At last, build MPC-DualDP using the following scripts. Assume that MPC-DualDP is cloned into the directory ${MPC-DualDP}.

cmake -B ${MPC-DualDP}/build -S ${MPC-DualDP} -DCMAKE_BUILD_TYPE=Release -DIPCL_DIR=${IPCL_INSTALL_DIR}/lib/cmake/ipcl-2.0.0  -Dnlohmann_json_DIR=${JSON}/build
cmake --build ${MPC-DualDP}/build -j

Output binaries can be found in ${MPC-DualDP}/build/lib/ and ${MPC-DualDP}/build/bin/ directories.

Compile OptionsValuesDefaultDescription
CMAKE_BUILD_TYPERelease/DebugReleaseThe build type.
MPC-DUALDP_BUILD_SHARED_LIBSON/OFFOFFBuild a shared library if set to ON.
MPC-DUALDP_BUILD_EXAMPLEON/OFFONBuild C++ example if set to ON.
MPC-DUALDP_BUILD_TESTON/OFFONBuild C++ test if set to ON.
MPC-DUALDP_BUILD_DEPSON/OFFONDownload and build unmet dependencies if set to ON.

MPC-DualDP further depends on Google Test. The build system will try to find these dependencies if they exist or will otherwise automatically download and build them.