vppinfra: os agnostic api for getting CPU information
[vpp.git] / configure
index d1a356e..19b5ecd 100755 (executable)
--- a/configure
+++ b/configure
@@ -5,12 +5,14 @@ set -o pipefail -o errtrace -o nounset -o errexit
 # submitting any changes
 
 # defaults
+platform=default
 build_dir=.
 install_dir=/usr/local
 build_type=release
 src_dir="$(dirname "$(readlink -f "$0")")"
 host_arch=$(uname -m)
 arch=${host_arch}
+native_only=no
 wipe=no
 args=()
 
@@ -27,7 +29,11 @@ OPTIONS:
   --build-dir, -b         Build directory
   --install-dir, -i       Install directory
   --build-type, -t        Build type (release, debug, ...)
+  --native-only, -n       Only compile for Native CPU (no multiarch)
   --wipe, -w              Wipe whole repo (except startup.* files)
+  --sanitize, -s          Enable sanitizer (mem)
+  --platform, -p          Specify target platform
+  --option, -o            Enable specific VPP options (fib8, fib16)
 __EOF__
 }
 
@@ -73,10 +79,45 @@ while (( "$#" )); do
         exit 1
       fi
       ;;
+    -p|--platform)
+      if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
+        platform=$2
+        shift 2
+      else
+        echo "Error: Argument for $1 is missing" >&2
+        exit 1
+      fi
+      ;;
+    -n|--native-only)
+      native_only=yes
+      shift 1
+      ;;
     -w|--wipe)
       wipe=yes
       shift 1
       ;;
+    -s|--sanitize)
+      shift 1
+      case "$1" in
+       mem)
+         shift 1
+         args+=("-DVPP_ENABLE_SANITIZE_ADDR=ON")
+         ;;
+      esac
+      ;;
+    -o|--option)
+      shift 1
+      case "$1" in
+       fib8)
+         shift 1
+         args+=("-DVPP_IP_FIB_MTRIE_16=OFF")
+         ;;
+       fib16)
+         shift 1
+         args+=("-DVPP_IP_FIB_MTRIE_16=ON")
+         ;;
+      esac
+      ;;
     -*|--*=) # unsupported flags
       echo "Error: Unsupported flag $1" >&2
       exit 1
@@ -105,6 +146,8 @@ args+=("-DCMAKE_PREFIX_PATH=/opt/vpp/external/${arch}")
 args+=("-DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON")
 args+=("-DCMAKE_INSTALL_PREFIX=${install_dir}")
 args+=("-DCMAKE_BUILD_TYPE:STRING=${build_type}")
+args+=("-DVPP_PLATFORM=${platform}")
+[ "${native_only}" == "yes" ] && args+=("-DVPP_BUILD_NATIVE_ONLY:BOOL=ON")
 
 [ "${wipe}" == "yes" ] && git clean -fdx --exclude=startup.\*