|
3 | 3 | # Copyright (c) Microsoft Corporation. |
4 | 4 | # Licensed under the MIT license. |
5 | 5 |
|
6 | | -BASE_IMAGE_TAG=latest |
| 6 | +MARCH=x86-64-v3 |
7 | 7 | CACHE_FLAG= |
8 | 8 |
|
9 | 9 | CURRENT_DIR=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) |
10 | 10 | source $(dirname $(dirname "$CURRENT_DIR"))/set_vars.sh |
11 | 11 |
|
| 12 | +BASE_IMAGE_TAG=$SRSRAN_IMAGE_TAG |
| 13 | + |
12 | 14 | Usage() |
13 | 15 | { |
14 | 16 | # Display Help |
15 | 17 | echo "Build srsRan image" |
16 | 18 | echo "options:" |
17 | | - echo "[-b] Optional base image tag. Default='latest'" |
| 19 | + echo "[-b] Optional base image tag. Default='$SRSRAN_IMAGE_TAG'" |
18 | 20 | echo "[-s] Optional image tag. Default='$SRSRAN_IMAGE_TAG'" |
| 21 | + echo "[-m] Optional CPU march target. Default='x86-64-v3' (AVX2)" |
19 | 22 | echo "[-c] Optional. If included, '--no-cache- is added to the Docker build" |
20 | 23 | echo |
21 | 24 | } |
22 | 25 |
|
23 | 26 | # Get the options |
24 | | -while getopts "b:s:c" option; do |
| 27 | +while getopts "b:s:m:c" option; do |
25 | 28 | case $option in |
26 | 29 | b) # Set image tag |
27 | 30 | BASE_IMAGE_TAG="$OPTARG";; |
28 | 31 | s) # Set image tag |
29 | 32 | SRSRAN_IMAGE_TAG="$OPTARG";; |
| 33 | + m) # Set CPU march target |
| 34 | + MARCH="$OPTARG";; |
30 | 35 | c) # Set image tag |
31 | 36 | CACHE_FLAG="--no-cache";; |
32 | 37 | \?) # Invalid option |
|
38 | 43 |
|
39 | 44 | echo BASE_IMAGE_TAG $BASE_IMAGE_TAG |
40 | 45 | echo SRSRAN_IMAGE_TAG $SRSRAN_IMAGE_TAG |
| 46 | +echo MARCH $MARCH |
| 47 | + |
| 48 | +# Apply jbpf 3p patches (ck, mimalloc, ebpf-verifier) since INITIALIZE_SUBMODULES=OFF |
| 49 | +# skips init_and_patch_submodules.sh which requires git inside the container. |
| 50 | +JBPF_DIR=srsRAN_Project/external/jbpf |
| 51 | +if [ -f "$JBPF_DIR/patches/ck.patch" ]; then |
| 52 | + echo "Applying jbpf 3p patches..." |
| 53 | + cd "$JBPF_DIR/3p/ck" && patch -p1 --forward -r- < ../../patches/ck.patch || true |
| 54 | + cd "$CURRENT_DIR" |
| 55 | + cd "$JBPF_DIR/3p/mimalloc" && patch -p1 --forward -r- < ../../patches/mimalloc.patch || true |
| 56 | + cd "$CURRENT_DIR" |
| 57 | + cd "$JBPF_DIR/3p/ebpf-verifier" && patch -p1 --forward -r- < ../../patches/ebpf_verifier.patch || true |
| 58 | + cd "$CURRENT_DIR" |
| 59 | +fi |
41 | 60 |
|
42 | 61 | docker build $CACHE_FLAG \ |
43 | 62 | --build-arg BASE_IMAGE_TAG=${BASE_IMAGE_TAG} \ |
| 63 | + --build-arg MARCH=${MARCH} \ |
44 | 64 | -t ghcr.io/microsoft/jrtc-apps/srs-jbpf:${SRSRAN_IMAGE_TAG} -f SRS-jbpf.Dockerfile . |
45 | 65 |
|
46 | 66 | exit 0 |
0 commit comments