forked from microsoft/libHttpClient
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathlibHttpClient_Linux.bash
More file actions
97 lines (86 loc) · 2.51 KB
/
libHttpClient_Linux.bash
File metadata and controls
97 lines (86 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash
log () {
echo "***** $1 *****"
}
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
POSITIONAL_ARGS=()
# Default configurations
CONFIGURATION="Release"
BUILD_CURL=true
BUILD_SSL=true
BUILD_STATIC=false
DO_APTGET=true
while [[ $# -gt 0 ]]; do
case $1 in
-c|--config)
CONFIGURATION="$2"
shift # past argument
shift # past value
;;
-nc|--nocurl)
BUILD_CURL=false
shift
;;
-ns|--nossl)
BUILD_SSL=false
shift
;;
-sg|--skipaptget)
DO_APTGET=false
shift
;;
-st|--static)
BUILD_STATIC=true
shift
;;
-*|--*)
echo "Unknown option $1"
exit 1
;;
*)
POSITIONAL_ARGS+=("$1") # save positional arg
shift # past argument
;;
esac
done
set -- "${POSITIONAL_ARGS[@]}" # restore positional parameters
if [ "$DO_APTGET" != "false" ]; then
sudo hwclock --hctosys
sudo apt-get update
sudo apt-get install clang
sudo apt-get install make
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
sudo apt-get install zlib1g zlib1g-dev
fi
log "CONFIGURATION = ${CONFIGURATION}"
log "BUILD SSL = ${BUILD_SSL}"
log "BUILD CURL = ${BUILD_CURL}"
log "CMakeLists.txt = ${SCRIPT_DIR}"
log "CMake output = ${SCRIPT_DIR}/../../Int/CMake/libHttpClient.Linux"
# Verify that required submodules are present
if [ ! -f "$SCRIPT_DIR/../../External/curl/configure.ac" ] || [ ! -f "$SCRIPT_DIR/../../External/openssl/Configure" ]; then
echo "Required submodules are missing. Please run 'git submodule update --init --recursive'."
exit 1
fi
# make libcrypto and libssl
if [ "$BUILD_SSL" = true ]; then
log "Building SSL"
sed -i -e 's/\r$//' "$SCRIPT_DIR"/openssl_Linux.bash
bash "$SCRIPT_DIR"/openssl_Linux.bash -c "$CONFIGURATION"
fi
if [ "$BUILD_CURL" = true ]; then
log "Building cURL"
sed -i -e 's/\r$//' "$SCRIPT_DIR"/curl_Linux.bash
bash "$SCRIPT_DIR"/curl_Linux.bash -c "$CONFIGURATION"
fi
if [ "$BUILD_STATIC" = false ]; then
# make libHttpClient static
sudo cmake -S "$SCRIPT_DIR" -B "$SCRIPT_DIR"/../../Int/CMake/libHttpClient.Linux -D CMAKE_BUILD_TYPE=$CONFIGURATION -D BUILD_SHARED_LIBS=YES
sudo make -C "$SCRIPT_DIR"/../../Int/CMake/libHttpClient.Linux
else
# make libHttpClient shared
sudo cmake -S "$SCRIPT_DIR" -B "$SCRIPT_DIR"/../../Int/CMake/libHttpClient.Linux -D CMAKE_BUILD_TYPE=$CONFIGURATION
sudo make -C "$SCRIPT_DIR"/../../Int/CMake/libHttpClient.Linux
fi