summaryrefslogtreecommitdiffstats
path: root/src/rocksdb/build_tools/update_dependencies.sh
blob: b060544dfd6680a88679f6a66d16f3a00bac638a (plain)
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#!/bin/sh
#
# Update dependencies.sh file with the latest avaliable versions

BASEDIR=$(dirname $0)
OUTPUT=""

function log_variable()
{
  echo "$1=${!1}" >> "$OUTPUT"
}


TP2_LATEST="/mnt/vol/engshare/fbcode/third-party2"
## $1 => lib name
## $2 => lib version (if not provided, will try to pick latest)
## $3 => platform (if not provided, will try to pick latest gcc)
##
## get_lib_base will set a variable named ${LIB_NAME}_BASE to the lib location
function get_lib_base()
{
  local lib_name=$1
  local lib_version=$2
  local lib_platform=$3

  local result="$TP2_LATEST/$lib_name/"
  
  # Lib Version
  if [ -z "$lib_version" ] || [ "$lib_version" = "LATEST" ]; then
    # version is not provided, use latest
    result=`ls -dr1v $result/*/ | head -n1`
  else
    result="$result/$lib_version/"
  fi
  
  # Lib Platform
  if [ -z "$lib_platform" ]; then
    # platform is not provided, use latest gcc
    result=`ls -dr1v $result/gcc-*[^fb]/ | head -n1`
  else
    echo $lib_platform
    result="$result/$lib_platform/"
  fi
  
  result=`ls -1d $result/*/ | head -n1`
  
  # lib_name => LIB_NAME_BASE
  local __res_var=${lib_name^^}"_BASE"
  __res_var=`echo $__res_var | tr - _`
  # LIB_NAME_BASE=$result
  eval $__res_var=`readlink -f $result`
  
  log_variable $__res_var
}

###########################################################
#                platform007 dependencies                 #
###########################################################

OUTPUT="$BASEDIR/dependencies_platform007.sh"

rm -f "$OUTPUT"
touch "$OUTPUT"

echo "Writing dependencies to $OUTPUT"

# Compilers locations
GCC_BASE=`readlink -f $TP2_LATEST/gcc/7.x/centos7-native/*/`
CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/stable/centos7-native/*/`

log_variable GCC_BASE
log_variable CLANG_BASE

# Libraries locations
get_lib_base libgcc     7.x     platform007
get_lib_base glibc      2.26    platform007
get_lib_base snappy     LATEST  platform007
get_lib_base zlib       LATEST  platform007
get_lib_base bzip2      LATEST  platform007
get_lib_base lz4        LATEST  platform007
get_lib_base zstd       LATEST  platform007
get_lib_base gflags     LATEST  platform007
get_lib_base jemalloc   LATEST  platform007
get_lib_base numa       LATEST  platform007
get_lib_base libunwind  LATEST  platform007
get_lib_base tbb        LATEST  platform007

get_lib_base kernel-headers fb platform007
get_lib_base binutils   LATEST centos7-native
get_lib_base valgrind   LATEST platform007
get_lib_base lua        5.3.4  platform007

git diff $OUTPUT

###########################################################
#                   5.x dependencies                      #
###########################################################

OUTPUT="$BASEDIR/dependencies.sh"

rm -f "$OUTPUT"
touch "$OUTPUT"

echo "Writing dependencies to $OUTPUT"

# Compilers locations
GCC_BASE=`readlink -f $TP2_LATEST/gcc/5.x/centos7-native/*/`
CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/stable/centos7-native/*/`

log_variable GCC_BASE
log_variable CLANG_BASE

# Libraries locations
get_lib_base libgcc     5.x     gcc-5-glibc-2.23
get_lib_base glibc      2.23    gcc-5-glibc-2.23
get_lib_base snappy     LATEST  gcc-5-glibc-2.23
get_lib_base zlib       LATEST  gcc-5-glibc-2.23
get_lib_base bzip2      LATEST  gcc-5-glibc-2.23
get_lib_base lz4        LATEST  gcc-5-glibc-2.23
get_lib_base zstd       LATEST  gcc-5-glibc-2.23
get_lib_base gflags     LATEST  gcc-5-glibc-2.23
get_lib_base jemalloc   LATEST  gcc-5-glibc-2.23
get_lib_base numa       LATEST  gcc-5-glibc-2.23
get_lib_base libunwind  LATEST  gcc-5-glibc-2.23
get_lib_base tbb        LATEST  gcc-5-glibc-2.23

get_lib_base kernel-headers 4.0.9-36_fbk5_2933_gd092e3f gcc-5-glibc-2.23
get_lib_base binutils   LATEST centos7-native
get_lib_base valgrind   LATEST gcc-5-glibc-2.23
get_lib_base lua        5.2.3 gcc-5-glibc-2.23

git diff $OUTPUT

###########################################################
#                   4.8.1 dependencies                    #
###########################################################

OUTPUT="$BASEDIR/dependencies_4.8.1.sh"

rm -f "$OUTPUT"
touch "$OUTPUT"

echo "Writing 4.8.1 dependencies to $OUTPUT"

# Compilers locations
GCC_BASE=`readlink -f $TP2_LATEST/gcc/4.8.1/centos6-native/*/`
CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/stable/centos6-native/*/`

log_variable GCC_BASE
log_variable CLANG_BASE

# Libraries locations
get_lib_base libgcc     4.8.1  gcc-4.8.1-glibc-2.17
get_lib_base glibc      2.17   gcc-4.8.1-glibc-2.17  
get_lib_base snappy     LATEST gcc-4.8.1-glibc-2.17
get_lib_base zlib       LATEST gcc-4.8.1-glibc-2.17
get_lib_base bzip2      LATEST gcc-4.8.1-glibc-2.17
get_lib_base lz4        LATEST gcc-4.8.1-glibc-2.17
get_lib_base zstd       LATEST gcc-4.8.1-glibc-2.17
get_lib_base gflags     LATEST gcc-4.8.1-glibc-2.17
get_lib_base jemalloc   LATEST gcc-4.8.1-glibc-2.17
get_lib_base numa       LATEST gcc-4.8.1-glibc-2.17
get_lib_base libunwind  LATEST gcc-4.8.1-glibc-2.17
get_lib_base tbb        4.0_update2 gcc-4.8.1-glibc-2.17

get_lib_base kernel-headers LATEST gcc-4.8.1-glibc-2.17 
get_lib_base binutils   LATEST centos6-native 
get_lib_base valgrind   3.8.1  gcc-4.8.1-glibc-2.17
get_lib_base lua        5.2.3 centos6-native

git diff $OUTPUT