lacp: Prohibiting bonding with remote having different key than 1st member
[vpp.git] / configure
1 #!/usr/bin/env bash
2
3 # Experimental script, please consult with dmarion@me.com before
4 # submitting any changes
5
6 # defaults
7 build_dir=.
8 install_dir=/usr/local
9 build_type=release
10 prefix_path=/opt/vpp/external/$(uname -m)/
11 src_dir="$(dirname "$(readlink -f "$0")")"
12
13 help()
14 {
15   cat << __EOF__
16 VPP Build Configuration Script
17
18 USAGE: ${0} [options]
19
20 OPTIONS:
21   --help, -h              This help
22   --build-dir, -b         Build directory
23   --install-dir, -i       Install directory
24   --build-type, -t        Build type (release, debug, ...)
25   --wipe, -w              Wipe whole repo (except startup.* files)
26 __EOF__
27 }
28
29 while (( "$#" )); do
30   case "$1" in
31     -h|--help)
32       help
33       exit 1
34       ;;
35     -b|--build-dir)
36       if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
37         build_dir=$2
38         shift 2
39       else
40         echo "Error: Argument for $1 is missing" >&2
41         exit 1
42       fi
43       ;;
44     -i|--install-dir)
45       if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
46         install_dir=$2
47         shift 2
48       else
49         echo "Error: Argument for $1 is missing" >&2
50         exit 1
51       fi
52       ;;
53     -t|--build-type)
54       if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
55         build_type=$2
56         shift 2
57       else
58         echo "Error: Argument for $1 is missing" >&2
59         exit 1
60       fi
61       ;;
62     -w|--wipe)
63       git clean -fdx --exclude=startup.\*
64       exit 1
65       ;;
66     -*|--*=) # unsupported flags
67       echo "Error: Unsupported flag $1" >&2
68       exit 1
69       ;;
70     *) # preserve positional arguments
71       PARAMS="$PARAMS $1"
72       shift
73       ;;
74   esac
75 done
76
77 cmake \
78   -G Ninja \
79   -S ${src_dir}/src \
80   -B ${build_dir} \
81   -DCMAKE_PREFIX_PATH=${prefix_path} \
82   -DCMAKE_INSTALL_PREFIX=${install_dir} \
83   -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON \
84   -DCMAKE_BUILD_TYPE:STRING=${build_type}
85
86   cat << __EOF__
87
88   Useful build commands:
89
90   ninja                   Build VPP
91   ninja set-build-type-*  Change build type to <debug|release|gcov|...>
92   ninja config            Start build configuration TUI
93   ninja run               Runs VPP using startup.conf in the build directory
94   ninja debug             Runs VPP inside GDB using startup.conf in the build directory
95   ninja pkg-deb           Create .deb packages
96   ninja install           Install VPP to $install_dir
97
98 __EOF__