diff --git a/ci-scripts/Jenkinsfile-gitlab b/ci-scripts/Jenkinsfile-gitlab
index 442e5d37910e13c5333890cccf2725eb8f93e4f7..ad97588d9b3cf80814d9eea138f4da52c02b78a5 100644
--- a/ci-scripts/Jenkinsfile-gitlab
+++ b/ci-scripts/Jenkinsfile-gitlab
@@ -8,8 +8,7 @@ pipeline {
         disableConcurrentBuilds()
         timestamps()
         gitLabConnection('OAI GitLab')
-        //gitlabBuilds(builds: ["Build", "Test"])
-        gitlabBuilds(builds: ["Local Build"])
+        gitlabBuilds(builds: ["Build eNb-USRP", "Build basic-sim", "Build phy-sim", "Analysis with cppcheck"])
     }
 
     stages {
@@ -22,6 +21,7 @@ pipeline {
                         // GitLab-Jenkins plugin integration is lacking to perform the merge by itself
                         // Doing it manually --> it may have merge conflicts
                         sh "./ci-scripts/doGitLabMerge.sh --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
+                        sh "zip -r -qq localZip.zip ."
 
                         // Running astyle options on the list of modified files by the merge request
                         // For the moment, there is no fail criteria. Just a notification of number of files that do not follow
@@ -38,6 +38,7 @@ pipeline {
                         echo "Git Branch      is ${GIT_BRANCH}"
                         echo "Git Commit      is ${GIT_COMMIT}"
 
+                        sh "zip -r -qq localZip.zip ."
                         // Running astyle options on all C/H files in the repository
                         // For the moment, there is no fail criteria. Just a notification of number of files that do not follow
                         sh "./ci-scripts/checkCodingFormattingRules.sh"
@@ -45,17 +46,46 @@ pipeline {
                 }
             }
         }
-        stage ("Local Build") {
-            steps {
-                gitlabCommitStatus(name: "Local Build") {
-                    sh "./ci-scripts/buildLocally.sh --workspace $WORKSPACE"
+
+        stage ("Variant Builds") {
+            parallel {
+                stage ("Analysis with cppcheck") {
+                    steps {
+                        gitlabCommitStatus(name: "Analysis with cppcheck") {
+                            sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant cppcheck"
+                        }
+                    }
+                }
+                stage ("Build eNb-USRP") {
+                    steps {
+                        gitlabCommitStatus(name: "Build eNb-USRP") {
+                            sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant enb-usrp"
+                        }
+                    }
+                }
+                stage ("Build basic simulator") {
+                    steps {
+                        gitlabCommitStatus(name: "Build basic-sim") {
+                            sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant basic-sim"
+                        }
+                    }
+                }
+                stage ("Build physical simulators") {
+                    steps {
+                        gitlabCommitStatus(name: "Build phy-sim") {
+                            sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant phy-sim"
+                        }
+                    }
                 }
             }
             post {
                 always {
                     script {
-                        if(fileExists('archives/local_build_logs.zip')) {
-                            archiveArtifacts artifacts: 'archives/local_build_logs.zip'
+                        dir ('archives') {
+                            sh "zip -r vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck"
+                        }
+                        if(fileExists('archives/vm_build_logs.zip')) {
+                            archiveArtifacts artifacts: 'archives/vm_build_logs.zip'
                         }
                         if ("MERGE".equals(env.gitlabActionType)) {
                             sh "./ci-scripts/reportBuildLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
diff --git a/ci-scripts/buildOnVM.sh b/ci-scripts/buildOnVM.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b5fef44ba65415c76970ec7ae7bfb84d978403e0
--- /dev/null
+++ b/ci-scripts/buildOnVM.sh
@@ -0,0 +1,302 @@
+#!/bin/bash
+
+function usage {
+    echo "OAI VM Build Check script"
+    echo "   Original Author: Raphael Defosseux"
+    echo "   Requirements:"
+    echo "     -- uvtool uvtool-libvirt apt-cacher"
+    echo "     -- xenial image already synced"
+    echo "   Default:"
+    echo "     -- eNB with USRP"
+    echo ""
+    echo "Usage:"
+    echo "------"
+    echo "    buildOnVM.sh [OPTIONS]"
+    echo ""
+    echo "Options:"
+    echo "--------"
+    echo "    --workspace #### OR -ws ####"
+    echo "    Specify the workspace."
+    echo ""
+    echo "    --variant enb-usrp   OR -v1"
+    echo "    --variant basic-sim  OR -v2"
+    echo "    --variant phy-sim    OR -v3"
+    echo "    --variant cppcheck   OR -v4"
+    echo "    Specify the variant to build."
+    echo ""
+    echo "    --keep-vm-alive OR -k"
+    echo "    Keep the VM alive after the build."
+    echo ""
+    echo "    --help OR -h"
+    echo "    Print this help message."
+    echo ""
+}
+
+function variant_usage {
+    echo "OAI VM Build Check script"
+    echo "   Original Author: Raphael Defosseux"
+    echo ""
+    echo "    --variant enb-usrp   OR -v1"
+    echo "    --variant basic-sim  OR -v2"
+    echo "    --variant phy-sim    OR -v3"
+    echo "    --variant cppcheck   OR -v4"
+    echo ""
+}
+
+if [ $# -lt 1 ] || [ $# -gt 5 ]
+then
+    echo "Syntax Error: not the correct number of arguments"
+    echo ""
+    usage
+    exit 1
+fi
+
+VM_NAME=ci-enb-usrp
+ARCHIVES_LOC=enb_usrp
+LOG_PATTERN=.Rel14.txt
+NB_PATTERN_FILES=4
+BUILD_OPTIONS="--eNB -w USRP"
+KEEP_VM_ALIVE=0
+
+while [[ $# -gt 0 ]]
+do
+key="$1"
+
+case $key in
+    -h|--help)
+    shift
+    usage
+    exit 0
+    ;;
+    -ws|--workspace)
+    JENKINS_WKSP="$2"
+    shift
+    shift
+    ;;
+    -k|--keep-vm-alive)
+    KEEP_VM_ALIVE=1
+    shift
+    ;;
+    -v1)
+    VM_NAME=ci-enb-usrp
+    ARCHIVES_LOC=enb_usrp
+    LOG_PATTERN=.Rel14.txt
+    NB_PATTERN_FILES=4
+    BUILD_OPTIONS="--eNB -w USRP"
+    shift
+    ;;
+    -v2)
+    VM_NAME=ci-basic-sim
+    ARCHIVES_LOC=basic_sim
+    LOG_PATTERN=basic_simulator
+    NB_PATTERN_FILES=2
+    BUILD_OPTIONS="--basic-simulator"
+    shift
+    ;;
+    -v3)
+    VM_NAME=ci-phy-sim
+    ARCHIVES_LOC=phy_sim
+    LOG_PATTERN=.Rel14.txt
+    NB_PATTERN_FILES=3
+    BUILD_OPTIONS="--phy_simulators"
+    shift
+    ;;
+    -v4)
+    VM_NAME=ci-cppcheck
+    ARCHIVES_LOC=cppcheck
+    LOG_PATTERN=cppcheck.xml
+    NB_PATTERN_FILES=1
+    BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2"
+    shift
+    ;;
+    --variant)
+    variant="$2"
+    case $variant in
+        enb-usrp)
+        VM_NAME=ci-enb-usrp
+        ARCHIVES_LOC=enb_usrp
+        LOG_PATTERN=.Rel14.txt
+        NB_PATTERN_FILES=4
+        BUILD_OPTIONS="--eNB -w USRP"
+        ;;
+        basic-sim)
+        VM_NAME=ci-basic-sim
+        ARCHIVES_LOC=basic_sim
+        LOG_PATTERN=basic_simulator
+        NB_PATTERN_FILES=2
+        BUILD_OPTIONS="--basic-simulator"
+        ;;
+        phy-sim)
+        VM_NAME=ci-phy-sim
+        ARCHIVES_LOC=phy_sim
+        LOG_PATTERN=.Rel14.txt
+        NB_PATTERN_FILES=3
+        BUILD_OPTIONS="--phy_simulators"
+        ;;
+        cppcheck)
+        VM_NAME=ci-cppcheck
+        ARCHIVES_LOC=cppcheck
+        LOG_PATTERN=cppcheck.xml
+        NB_PATTERN_FILES=1
+        BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2"
+        ;;
+        *)
+        echo ""
+        echo "Syntax Error: Invalid Variant option -> $variant"
+        echo ""
+        variant_usage
+        exit 1
+    esac
+    shift
+    shift
+    ;;
+    *)
+    echo "Syntax Error: unknown option: $key"
+    echo ""
+    usage
+    exit 1
+esac
+done
+
+if [ ! -f $JENKINS_WKSP/localZip.zip ]
+then
+    echo "Missing localZip.zip file!"
+    exit 1
+fi
+if [ ! -f /etc/apt/apt.conf.d/01proxy ]
+then
+    echo "Missing /etc/apt/apt.conf.d/01proxy file!"
+    echo "Is apt-cacher installed and configured?"
+    exit 1
+fi
+
+VM_CMDS=${VM_NAME}_cmds.txt
+ARCHIVES_LOC=${JENKINS_WKSP}/archives/${ARCHIVES_LOC}
+
+echo "VM_NAME             = $VM_NAME"
+echo "VM_CMD_FILE         = $VM_CMDS"
+echo "JENKINS_WKSP        = $JENKINS_WKSP"
+echo "ARCHIVES_LOC        = $ARCHIVES_LOC"
+echo "BUILD_OPTIONS       = $BUILD_OPTIONS"
+
+echo "############################################################"
+echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
+echo "############################################################"
+uvt-kvm create $VM_NAME release=xenial --memory 2048 --cpu 4 --unsafe-caching --template ci-scripts/template-host.xml
+echo "Waiting for VM to be started"
+uvt-kvm wait $VM_NAME --insecure
+
+VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
+echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
+
+echo "############################################################"
+echo "Copying GIT repo into VM ($VM_NAME)" 
+echo "############################################################"
+scp -o StrictHostKeyChecking=no localZip.zip ubuntu@$VM_IP_ADDR:/home/ubuntu
+scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$VM_IP_ADDR:/home/ubuntu
+
+echo "############################################################"
+echo "Running install and build script on VM ($VM_NAME)"
+echo "############################################################"
+echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS
+if [ "$VM_NAME" == "ci-cppcheck" ]
+then
+    echo "echo \"sudo apt-get --yes --quiet install zip cppcheck \"" >> $VM_CMDS
+    echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
+    echo "sudo apt-get --yes install zip cppcheck >> zip-install.txt 2>&1" >> $VM_CMDS
+else
+    echo "echo \"sudo apt-get --yes --quiet install zip subversion libboost-dev \"" >> $VM_CMDS
+    echo "sudo apt-get --yes install zip subversion libboost-dev > zip-install.txt 2>&1" >> $VM_CMDS
+fi
+echo "mkdir tmp" >> $VM_CMDS
+echo "cd tmp" >> $VM_CMDS
+echo "echo \"unzip -qq ../localZip.zip\"" >> $VM_CMDS
+echo "unzip -qq ../localZip.zip" >> $VM_CMDS
+if [ "$VM_NAME" == "ci-cppcheck" ]
+then
+    echo "mkdir cmake_targets/log" >> $VM_CMDS
+    echo "cp /home/ubuntu/zip-install.txt cmake_targets/log" >> $VM_CMDS
+    echo "echo \"cppcheck $BUILD_OPTIONS . \"" >> $VM_CMDS
+    echo "cppcheck $BUILD_OPTIONS . 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt" >> $VM_CMDS
+else
+    echo "echo \"source oaienv\"" >> $VM_CMDS
+    echo "source oaienv" >> $VM_CMDS
+    echo "cd cmake_targets/" >> $VM_CMDS
+    echo "mkdir log" >> $VM_CMDS
+    echo "cp /home/ubuntu/zip-install.txt log" >> $VM_CMDS
+    echo "echo \"./build_oai -I $BUILD_OPTIONS \"" >> $VM_CMDS
+    echo "./build_oai -I $BUILD_OPTIONS > log/install-build.txt 2>&1" >> $VM_CMDS
+fi
+ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
+
+echo "############################################################"
+echo "Creating a tmp folder to store results and artifacts"
+echo "############################################################"
+if [ ! -d $JENKINS_WKSP/archives ]
+then
+    mkdir $JENKINS_WKSP/archives
+fi
+
+if [ ! -d $ARCHIVES_LOC ]
+then
+    mkdir $ARCHIVES_LOC
+fi
+
+scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.txt $ARCHIVES_LOC
+if [ "$VM_NAME" == "ci-cppcheck" ]
+then
+    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.xml $ARCHIVES_LOC
+fi
+
+if [ $KEEP_VM_ALIVE -eq 0 ]
+then
+    echo "############################################################"
+    echo "Destroying VM"
+    echo "############################################################"
+    uvt-kvm destroy $VM_NAME
+    ssh-keygen -R $VM_IP_ADDR
+fi
+rm -f $VM_CMDS
+
+echo "############################################################"
+echo "Checking build status" 
+echo "############################################################"
+
+LOG_FILES=`ls $ARCHIVES_LOC/*.txt $ARCHIVES_LOC/*.xml`
+STATUS=0
+NB_FOUND_FILES=0
+
+for FULLFILE in $LOG_FILES 
+do
+    if [[ $FULLFILE == *"$LOG_PATTERN"* ]]
+    then
+        filename=$(basename -- "$FULLFILE")
+        if [ "$LOG_PATTERN" == ".Rel14.txt" ]
+        then
+            PASS_PATTERN=`echo $filename | sed -e "s#$LOG_PATTERN##"`
+        fi
+        if [ "$LOG_PATTERN" == "basic_simulator" ]
+        then
+            PASS_PATTERN="lte-"
+        fi
+        if [ "$LOG_PATTERN" == "cppcheck.xml" ]
+        then
+            PASS_PATTERN="results version"
+            LOCAL_STAT=`egrep -c "$PASS_PATTERN" $FULLFILE`
+        else
+            LOCAL_STAT=`egrep -c "Built target $PASS_PATTERN" $FULLFILE`
+        fi
+        if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
+        NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
+    fi
+done
+
+if [ $NB_PATTERN_FILES -ne $NB_FOUND_FILES ]; then STATUS=-1; fi
+
+if [ $STATUS -eq 0 ]
+then
+    echo "STATUS seems OK"
+else
+    echo "STATUS failed?"
+fi
+exit $STATUS
diff --git a/ci-scripts/reportBuildLocally.sh b/ci-scripts/reportBuildLocally.sh
index d3dd1f52a0af51f53379caba8c71def2c6282b4b..3a19bae812929e0630709e979a1228be21f332b9 100755
--- a/ci-scripts/reportBuildLocally.sh
+++ b/ci-scripts/reportBuildLocally.sh
@@ -68,6 +68,177 @@ function trigger_usage {
     echo ""
 }
 
+function details_table {
+    echo "   <h4>$1</h4>" >> $3
+
+    echo "   <table border = \"1\">" >> $3
+    echo "      <tr bgcolor = \"#33CCFF\" >" >> $3
+    echo "        <th>File</th>" >> $3
+    echo "        <th>Line Number</th>" >> $3
+    echo "        <th>Status</th>" >> $3
+    echo "        <th>Message</th>" >> $3
+    echo "      </tr>" >> $3
+
+    LIST_MESSAGES=`egrep "error:|warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto"`
+    COMPLETE_MESSAGE="start"
+    for MESSAGE in $LIST_MESSAGES
+    do
+        if [[ $MESSAGE == *"/home/ubuntu/tmp"* ]]
+        then
+            FILENAME=`echo $MESSAGE | sed -e "s#^/home/ubuntu/tmp/##" | awk -F ":" '{print $1}'`
+            LINENB=`echo $MESSAGE | awk -F ":" '{print $2}'`
+            if [ "$COMPLETE_MESSAGE" != "start" ]
+            then
+                COMPLETE_MESSAGE=`echo $COMPLETE_MESSAGE | sed -e "s#‘#'#g" -e "s#’#'#g"`
+                echo "        <td>$COMPLETE_MESSAGE</td>" >> $3
+                echo "      </tr>" >> $3
+            fi
+            echo "      <tr>" >> $3
+            echo "        <td>$FILENAME</td>" >> $3
+            echo "        <td>$LINENB</td>" >> $3
+        else
+            if [[ $MESSAGE == *"warning:"* ]] || [[ $MESSAGE == *"error:"* ]]
+            then
+                MSGTYPE=`echo $MESSAGE | sed -e "s#:##g"`
+                echo "        <td>$MSGTYPE</td>" >> $3
+                COMPLETE_MESSAGE=""
+            else
+                COMPLETE_MESSAGE=$COMPLETE_MESSAGE" "$MESSAGE
+            fi
+        fi
+    done
+
+    if [ "$COMPLETE_MESSAGE" != "start" ]
+    then
+        COMPLETE_MESSAGE=`echo $COMPLETE_MESSAGE | sed -e "s#‘#'#g" -e "s#’#'#g"`
+        echo "        <td>$COMPLETE_MESSAGE</td>" >> $3
+        echo "      </tr>" >> $3
+    fi
+    echo "   </table>" >> $3
+}
+
+function summary_table_header {
+    echo "   <h3>$1</h3>" >> ./build_results.html
+    echo "   <table border = \"1\">" >> ./build_results.html
+    echo "      <tr bgcolor = \"#33CCFF\" >" >> ./build_results.html
+    echo "        <th>Element</th>" >> ./build_results.html
+    echo "        <th>Status</th>" >> ./build_results.html
+    echo "        <th>Nb Errors</th>" >> ./build_results.html
+    echo "        <th>Nb Warnings</th>" >> ./build_results.html
+    echo "      </tr>" >> ./build_results.html
+}
+
+function summary_table_row {
+    echo "      <tr>" >> ./build_results.html
+    echo "        <td bgcolor = \"lightcyan\" >$1</th>" >> ./build_results.html
+    if [ -f $2 ]
+    then
+        STATUS=`egrep -c "$3" $2`
+        if [ $STATUS -eq 1 ]
+        then
+            echo "        <td bgcolor = \"green\" >OK</th>" >> ./build_results.html
+        else
+            echo "        <td bgcolor = \"red\" >KO</th>" >> ./build_results.html
+        fi
+        NB_ERRORS=`egrep -c "error:" $2`
+        if [ $NB_ERRORS -eq 0 ]
+        then
+            echo "        <td bgcolor = \"green\" >$NB_ERRORS</th>" >> ./build_results.html
+        else
+            echo "        <td bgcolor = \"red\" >$NB_ERRORS</th>" >> ./build_results.html
+        fi
+        NB_WARNINGS=`egrep "warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto" | egrep -c "warning:"`
+        if [ $NB_WARNINGS -eq 0 ]
+        then
+            echo "        <td bgcolor = \"green\" >$NB_WARNINGS</th>" >> ./build_results.html
+        else
+            if [ $NB_WARNINGS -gt 20 ]
+            then
+                echo "        <td bgcolor = \"red\" >$NB_WARNINGS</th>" >> ./build_results.html
+            else
+                echo "        <td bgcolor = \"orange\" >$NB_WARNINGS</th>" >> ./build_results.html
+            fi
+        fi
+        if [ $NB_ERRORS -ne 0 ] || [ $NB_WARNINGS -ne 0 ]
+        then
+            details_table "$1" $2 $4
+        fi
+    else
+        echo "        <td bgcolor = \"lightgray\" >Unknown</th>" >> ./build_results.html
+        echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
+        echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
+    fi
+    echo "      </tr>" >> ./build_results.html
+}
+
+function summary_table_footer {
+    echo "   </table>" >> ./build_results.html
+}
+
+function sca_summary_table_header {
+    echo "   <h3>$1</h3>" >> ./build_results.html
+    echo "   <table border = \"1\">" >> ./build_results.html
+    echo "      <tr bgcolor = \"#33CCFF\" >" >> ./build_results.html
+    echo "        <th>Error / Warning Type</th>" >> ./build_results.html
+    echo "        <th>Nb Errors</th>" >> ./build_results.html
+    echo "        <th>Nb Warnings</th>" >> ./build_results.html
+    echo "      </tr>" >> ./build_results.html
+    echo "0" > ccp_error_cnt.txt
+}
+
+function sca_summary_table_row {
+    echo "      <tr>" >> ./build_results.html
+    echo "        <td bgcolor = \"lightcyan\" >$2</td>" >> ./build_results.html
+    if [ -f $1 ]
+    then
+        NB_ERRORS=`egrep "severity=\"error\"" $1 | egrep -c "id=\"$3\""`
+        echo "        <td>$NB_ERRORS</td>" >> ./build_results.html
+        echo "        <td>N/A</td>" >> ./build_results.html
+        if [ -f ccp_error_cnt.txt ]
+        then
+            TOTAL_ERRORS=`cat ccp_error_cnt.txt`
+            TOTAL_ERRORS=$((TOTAL_ERRORS + NB_ERRORS))
+            echo $TOTAL_ERRORS > ccp_error_cnt.txt
+        fi
+    else
+        echo "        <td>Unknown</td>" >> ./build_results.html
+        echo "        <td>Unknown</td>" >> ./build_results.html
+    fi
+    echo "      </tr>" >> ./build_results.html
+}
+
+function sca_summary_table_footer {
+    if [ -f $1 ]
+    then
+        NB_ERRORS=`egrep -c "severity=\"error\"" $1`
+        NB_WARNINGS=`egrep -c "severity=\"warning\"" $1`
+        if [ -f ccp_error_cnt.txt ]
+        then
+            echo "      <tr>" >> ./build_results.html
+            echo "        <td bgcolor = \"lightcyan\" >Others</td>" >> ./build_results.html
+            TOTAL_ERRORS=`cat ccp_error_cnt.txt`
+            TOTAL_ERRORS=$((NB_ERRORS - TOTAL_ERRORS))
+            echo "        <td>$TOTAL_ERRORS</td>" >> ./build_results.html
+            echo "        <td>$NB_WARNINGS</td>" >> ./build_results.html
+            echo "      </tr>" >> ./build_results.html
+            rm -f ccp_error_cnt.txt
+        fi
+        echo "      <tr bgcolor = \"#33CCFF\" >" >> ./build_results.html
+        echo "        <th>Total</th>" >> ./build_results.html
+        echo "        <th>$NB_ERRORS</th>" >> ./build_results.html
+        echo "        <th>$NB_WARNINGS</th>" >> ./build_results.html
+    else
+        echo "      <tr bgcolor = \"#33CCFF\"  >" >> ./build_results.html
+        echo "        <th>Total</th>" >> ./build_results.html
+        echo "        <th>Unknown</th>" >> ./build_results.html
+        echo "        <th>Unknown</th>" >> ./build_results.html
+    fi
+    echo "      </tr>" >> ./build_results.html
+    echo "   </table>" >> ./build_results.html
+    echo "   <p>Full details in zipped artifact (cppcheck/cppcheck.xml) </p>" >> ./build_results.html
+    echo "   <p>Graphical Interface tool : <code>cppcheck-gui -l cppcheck/cppcheck.xml</code> </p>" >> ./build_results.html
+}
+
 jb_checker=0
 mr_checker=0
 pu_checker=0
@@ -224,9 +395,23 @@ echo "<!DOCTYPE html>" > ./build_results.html
 echo "<html class=\"no-js\" lang=\"en-US\">" >> ./build_results.html
 echo "<head>" >> ./build_results.html
 echo "  <title>Build Results for $JOB_NAME job build #$BUILD_ID</title>" >> ./build_results.html
+echo "  <base href = \"http://www.openairinterface.org/\" />" >> ./build_results.html
 echo "</head>" >> ./build_results.html
 echo "<body>" >> ./build_results.html
-echo "   <h1>Job Summary -- Job: $JOB_NAME -- Build-ID: $BUILD_ID</h1>" >> ./build_results.html
+echo "  <table style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
+echo "    <tr style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
+echo "      <td style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
+echo "        <a href=\"http://www.openairinterface.org/\">" >> ./build_results.html
+echo "           <img src=\"/wp-content/uploads/2016/03/cropped-oai_final_logo2.png\" alt=\"\" border=\"none\" height=50 width=150>" >> ./build_results.html
+echo "           </img>" >> ./build_results.html
+echo "        </a>" >> ./build_results.html
+echo "      </td>" >> ./build_results.html
+echo "      <td style=\"border-collapse: collapse; border: none; vertical-align: center;\">" >> ./build_results.html
+echo "        <b><font size = \"6\">Job Summary -- Job: $JOB_NAME -- Build-ID: $BUILD_ID</font></b>" >> ./build_results.html
+echo "      </td>" >> ./build_results.html
+echo "    </tr>" >> ./build_results.html
+echo "  </table>" >> ./build_results.html
+echo "  <br>" >> ./build_results.html
 echo "   <table border = \"1\">" >> ./build_results.html
 echo "      <tr>" >> ./build_results.html
 echo "        <td bgcolor = \"lightcyan\" >GIT Repository</td>" >> ./build_results.html
@@ -289,245 +474,52 @@ then
     echo "   </table>" >> ./build_results.html
 fi
 
-echo "   <h3>OAI Build eNb -- USRP option</h3>" >> ./build_results.html
-echo "   <table border = "1">" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <th>Element</th>" >> ./build_results.html
-echo "        <th>Status</th>" >> ./build_results.html
-echo "        <th>Nb Errors</th>" >> ./build_results.html
-echo "        <th>Nb Warnings</th>" >> ./build_results.html
-echo "      </tr>" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <td bgcolor = \"lightcyan\" >LTE SoftModem - Release 14</th>" >> ./build_results.html
-if [ -f ./archives/enb_usrp/lte-softmodem.Rel14.txt ]
-then
-    STATUS=`egrep -c "Built target lte-softmodem" ./archives/enb_usrp/lte-softmodem.Rel14.txt`
-    if [ $STATUS -eq 1 ]
-    then
-        echo "        <td bgcolor = \"green\" >OK</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >KO</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "error:" ./archives/enb_usrp/lte-softmodem.Rel14.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >$STATUS</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "warning:" ./archives/enb_usrp/lte-softmodem.Rel14.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"orange\" >$STATUS</th>" >> ./build_results.html
-    fi
-else
-    echo "        <td bgcolor = \"lightgray\" >Unknown</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-fi
-echo "      </tr>" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <td bgcolor = \"lightcyan\" >Coding - Release 14</th>" >> ./build_results.html
-if [ -f ./archives/enb_usrp/coding.Rel14.txt ]
-then
-    STATUS=`egrep -c "Built target coding" ./archives/enb_usrp/coding.Rel14.txt`
-    if [ $STATUS -eq 1 ]
-    then
-        echo "        <td bgcolor = \"green\" >OK</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >KO</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "error:" ./archives/enb_usrp/coding.Rel14.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >$STATUS</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "warning:" ./archives/enb_usrp/coding.Rel14.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"orange\" >$STATUS</th>" >> ./build_results.html
-    fi
-else
-    echo "        <td bgcolor = \"lightgray\" >Unknown</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-fi
-echo "      </tr>" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <td bgcolor = \"lightcyan\" >OAI USRP device if - Release 14</th>" >> ./build_results.html
-if [ -f ./archives/enb_usrp/oai_usrpdevif.Rel14.txt ]
-then
-    STATUS=`egrep -c "Built target oai_usrpdevif" ./archives/enb_usrp/oai_usrpdevif.Rel14.txt`
-    if [ $STATUS -eq 1 ]
-    then
-        echo "        <td bgcolor = \"green\" >OK</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >KO</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "error:" ./archives/enb_usrp/oai_usrpdevif.Rel14.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >$STATUS</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "warning:" ./archives/enb_usrp/oai_usrpdevif.Rel14.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"orange\" >$STATUS</th>" >> ./build_results.html
-    fi
-else
-    echo "        <td bgcolor = \"lightgray\" >Unknown</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-fi
-echo "      </tr>" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <td bgcolor = \"lightcyan\" >Parameters Lib Config - Release 14</th>" >> ./build_results.html
-if [ -f ./archives/enb_usrp/params_libconfig.Rel14.txt ]
-then
-    STATUS=`egrep -c "Built target params_libconfig" ./archives/enb_usrp/params_libconfig.Rel14.txt`
-    if [ $STATUS -eq 1 ]
-    then
-        echo "        <td bgcolor = \"green\" >OK</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >KO</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "error:" ./archives/enb_usrp/params_libconfig.Rel14.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >$STATUS</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "warning:" ./archives/enb_usrp/params_libconfig.Rel14.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"orange\" >$STATUS</th>" >> ./build_results.html
-    fi
-else
-    echo "        <td bgcolor = \"lightgray\" >Unknown</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-fi
-echo "      </tr>" >> ./build_results.html
-echo "   </table>" >> ./build_results.html
+sca_summary_table_header "OAI Static Code Analysis with CPPCHECK"
+sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized variable" uninitvar
+sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized struct member" uninitStructMember
+sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Memory leak" memleak
+sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Memory is freed twice" doubleFree
+sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Resource leak" resourceLeak
+sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Possible null pointer dereference" nullPointer
+sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Array access  out of bounds" arrayIndexOutOfBounds
+sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Buffer is accessed out of bounds" bufferAccessOutOfBounds
+sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Expression depends on order of evaluation of side effects" unknownEvaluationOrder
+sca_summary_table_footer ./archives/cppcheck/cppcheck.xml
 
-# conf2uedata.Rel14.txt
-# archives/basic_sim
+summary_table_header "OAI Build eNB -- USRP option"
+summary_table_row "LTE SoftModem - Release 14" ./archives/enb_usrp/lte-softmodem.Rel14.txt "Built target lte-softmodem" ./enb_usrp_row1.html
+summary_table_row "Coding - Release 14" ./archives/enb_usrp/coding.Rel14.txt "Built target coding" ./enb_usrp_row2.html
+summary_table_row "OAI USRP device if - Release 14" ./archives/enb_usrp/oai_usrpdevif.Rel14.txt "Built target oai_usrpdevif" ./enb_usrp_row3.html
+summary_table_row "Parameters Lib Config - Release 14" ./archives/enb_usrp/params_libconfig.Rel14.txt "Built target params_libconfig" ./enb_usrp_row4.html
+summary_table_footer
 
-echo "   <h3>OAI Build basic simulator option</h3>" >> ./build_results.html
-echo "   <table border = "1">" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <th>Element</th>" >> ./build_results.html
-echo "        <th>Status</th>" >> ./build_results.html
-echo "        <th>Nb Errors</th>" >> ./build_results.html
-echo "        <th>Nb Warnings</th>" >> ./build_results.html
-echo "      </tr>" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <td bgcolor = \"lightcyan\" >Basic Simulator eNb - Release 14</th>" >> ./build_results.html
-if [ -f ./archives/basic_sim/basic_simulator_enb.txt ]
-then
-    STATUS=`egrep -c "Built target lte-softmodem" ./archives/basic_sim/basic_simulator_enb.txt`
-    if [ $STATUS -eq 1 ]
-    then
-        echo "        <td bgcolor = \"green\" >OK</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >KO</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "error:" ./archives/basic_sim/basic_simulator_enb.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >$STATUS</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "warning:" ./archives/basic_sim/basic_simulator_enb.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"orange\" >$STATUS</th>" >> ./build_results.html
-    fi
-else
-    echo "        <td bgcolor = \"lightgray\" >Unknown</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-fi
-echo "      </tr>" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <td bgcolor = \"lightcyan\" >Basic Simulator UE - Release 14</th>" >> ./build_results.html
-if [ -f ./archives/basic_sim/basic_simulator_ue.txt ]
-then
-    STATUS=`egrep -c "Built target lte-uesoftmodem" ./archives/basic_sim/basic_simulator_ue.txt`
-    if [ $STATUS -eq 1 ]
-    then
-        echo "        <td bgcolor = \"green\" >OK</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >KO</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "error:" ./archives/basic_sim/basic_simulator_ue.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >$STATUS</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "warning:" ./archives/basic_sim/basic_simulator_ue.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"orange\" >$STATUS</th>" >> ./build_results.html
-    fi
-else
-    echo "        <td bgcolor = \"lightgray\" >Unknown</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-fi
-echo "      </tr>" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <td bgcolor = \"lightcyan\" >Conf 2 UE data - Release 14</th>" >> ./build_results.html
-if [ -f ./archives/basic_sim/conf2uedata.Rel14.txt ]
-then
-    STATUS=`egrep -c "Built target conf2uedata" ./archives/basic_sim/conf2uedata.Rel14.txt`
-    if [ $STATUS -eq 1 ]
-    then
-        echo "        <td bgcolor = \"green\" >OK</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >KO</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "error:" ./archives/basic_sim/conf2uedata.Rel14.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"red\" >$STATUS</th>" >> ./build_results.html
-    fi
-    STATUS=`egrep -c "warning:" ./archives/basic_sim/conf2uedata.Rel14.txt`
-    if [ $STATUS -eq 0 ]
-    then
-        echo "        <td bgcolor = \"green\" >$STATUS</th>" >> ./build_results.html
-    else
-        echo "        <td bgcolor = \"orange\" >$STATUS</th>" >> ./build_results.html
-    fi
-else
-    echo "        <td bgcolor = \"lightgray\" >Unknown</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
-fi
-echo "      </tr>" >> ./build_results.html
-echo "   </table>" >> ./build_results.html
+summary_table_header "OAI Build basic simulator option"
+summary_table_row "Basic Simulator eNb - Release 14" ./archives/basic_sim/basic_simulator_enb.txt "Built target lte-softmodem" ./basic_sim_row1.html
+summary_table_row "Basic Simulator UE - Release 14" ./archives/basic_sim/basic_simulator_ue.txt "Built target lte-uesoftmodem" ./basic_sim_row2.html
+summary_table_row "Conf 2 UE data - Release 14" ./archives/basic_sim/conf2uedata.Rel14.txt "Built target conf2uedata" ./basic_sim_row3.html
+summary_table_footer
+
+summary_table_header "OAI Build Physical simulators option"
+summary_table_row "DL Simulator - Release 14" ./archives/phy_sim/dlsim.Rel14.txt "Built target dlsim" ./phy_sim_row1.html
+summary_table_row "UL Simulator - Release 14" ./archives/phy_sim/ulsim.Rel14.txt "Built target ulsim" ./phy_sim_row2.html
+summary_table_row "Coding - Release 14" ./archives/phy_sim/coding.Rel14.txt "Built target coding" ./phy_sim_row3.html
+summary_table_footer
+
+echo "   <h3>Details</h3>" >> ./build_results.html
+
+for DETAILS_TABLE in `ls ./enb_usrp_row*.html`
+do
+    cat $DETAILS_TABLE >> ./build_results.html
+done
+for DETAILS_TABLE in `ls ./basic_sim_row*.html`
+do
+    cat $DETAILS_TABLE >> ./build_results.html
+done
+for DETAILS_TABLE in `ls ./phy_sim_row*.html`
+do
+    cat $DETAILS_TABLE >> ./build_results.html
+done
+rm -f ./enb_usrp_row*.html ./basic_sim_row*.html ./phy_sim_row*.html
 
 echo "</body>" >> ./build_results.html
 echo "</html>" >> ./build_results.html
diff --git a/ci-scripts/template-host.xml b/ci-scripts/template-host.xml
new file mode 100644
index 0000000000000000000000000000000000000000..efd9912c7adf867cfa5678ab6623782fcb785233
--- /dev/null
+++ b/ci-scripts/template-host.xml
@@ -0,0 +1,27 @@
+<domain type='kvm'>
+  <os>
+    <type>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <features>
+    <acpi/>
+    <apic/>
+    <pae/>
+  </features>
+  <cpu mode='host-passthrough'>
+  </cpu>
+  <devices>
+    <interface type='network'>
+      <source network='default'/>
+      <model type='virtio'/>
+    </interface>
+    <serial type='pty'>
+      <source path='/dev/pts/3'/>
+      <target port='0'/>
+    </serial>
+    <graphics type='vnc' autoport='yes' listen='127.0.0.1'>
+      <listen type='address' address='127.0.0.1'/>
+    </graphics>
+    <video/>
+  </devices>
+</domain>